diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index a490b20..91f9060 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,32 +1,29 @@ // For format details, see https://aka.ms/devcontainer.json. For config options, see the README at: // https://github.com/microsoft/vscode-dev-containers/tree/v0.166.1/containers/docker-existing-dockerfile { - "name": "Dockerfile", - - // Sets the run context to one level up instead of the .devcontainer folder. - "context": "..", - - // Update the 'dockerFile' property if you aren't using the standard 'Dockerfile' filename. - "dockerFile": "../Dockerfile.x86_64", - - // Set *default* container specific settings.json values on container create. - "settings": { - "terminal.integrated.shell.linux": null - }, - - // Add the IDs of extensions you want installed when the container is created. - "extensions": [ - "editorconfig.editorconfig", - "foxundermoon.shell-format", - "timonwong.shellcheck", - "dtsvet.vscode-wasm", - "13xforever.language-x86-64-assembly", - "ms-vscode.cpptools", - "ms-vscode.cpptools-themes", - "jeff-hykin.better-cpp-syntax" - ], - "workspaceMount": "source=${localWorkspaceFolder},target=/sledge,type=bind,consistency=cached", - "workspaceFolder": "/sledge", - "postCreateCommand": "make -C /sledge install && make -B -C /sledge/runtime/tests clean all", - "containerUser": "dev", + "name": "Dockerfile", + // Sets the run context to one level up instead of the .devcontainer folder. + "context": "..", + // Update the 'dockerFile' property if you aren't using the standard 'Dockerfile' filename. + "dockerFile": "../Dockerfile.x86_64", + // Set *default* container specific settings.json values on container create. + "settings": { + "terminal.integrated.shell.linux": "bash" + }, + // Add the IDs of extensions you want installed when the container is created. + "extensions": [ + "editorconfig.editorconfig", + "foxundermoon.shell-format", + "timonwong.shellcheck", + "dtsvet.vscode-wasm", + "13xforever.language-x86-64-assembly", + "ms-vscode.cpptools", + "ms-vscode.cpptools-themes", + "jeff-hykin.better-cpp-syntax", + "mads-hartmann.bash-ide-vscode" + ], + "workspaceMount": "source=${localWorkspaceFolder},target=/sledge,type=bind,consistency=cached", + "workspaceFolder": "/sledge", + "postCreateCommand": "make -C /sledge install && make -B -C /sledge/runtime/tests clean all", + "containerUser": "dev", } diff --git a/.editorconfig b/.editorconfig index bfe019d..0234938 100644 --- a/.editorconfig +++ b/.editorconfig @@ -23,3 +23,15 @@ ignore = true [thirdparty/**] ignore = true + +[*.json] +indent_style = tab +indent_size = 4 + +[dockerfile] +indent_style = tab +indent_size = 4 + +[Dockerfile.*] +indent_style = tab +indent_size = 4 diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json index a247cb5..f3e9c8a 100644 --- a/.vscode/c_cpp_properties.json +++ b/.vscode/c_cpp_properties.json @@ -1,19 +1,23 @@ { - "configurations": [ - { - "name": "Linux", - "intelliSenseMode": "clang-x64", - "includePath": [ - "/usr/include/", - "${workspaceFolder}/runtime/include/", - "${workspaceFolder}/runtime/thirdparty/ck/include/", - "${workspaceFolder}/runtime/thirdparty/http-parser/", - "${workspaceFolder}/runtime/thirdparty/jsmn/" - ], - "defines": ["USE_MEM_VM", "x86_64", "_GNU_SOURCE"], - "cStandard": "c17", - "compilerPath": "/usr/bin/clang" - } - ], - "version": 4 -} + "configurations": [ + { + "name": "Linux", + "intelliSenseMode": "clang-x64", + "includePath": [ + "/usr/include/", + "${workspaceFolder}/runtime/include/", + "${workspaceFolder}/runtime/thirdparty/ck/include/", + "${workspaceFolder}/runtime/thirdparty/http-parser/", + "${workspaceFolder}/runtime/thirdparty/jsmn/" + ], + "defines": [ + "USE_MEM_VM", + "x86_64", + "_GNU_SOURCE" + ], + "cStandard": "c17", + "compilerPath": "/usr/bin/clang" + } + ], + "version": 4 +} \ No newline at end of file diff --git a/.vscode/extensions.json b/.vscode/extensions.json index dd5cc50..695c290 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,12 +1,12 @@ { - "recommendations": [ - "editorconfig.editorconfig", - "foxundermoon.shell-format", - "timonwong.shellcheck", - "dtsvet.vscode-wasm", - "13xforever.language-x86-64-assembly", - "ms-vscode.cpptools", - "ms-vscode.cpptools-themes", - "jeff-hykin.better-cpp-syntax" - ] -} + "recommendations": [ + "editorconfig.editorconfig", + "foxundermoon.shell-format", + "timonwong.shellcheck", + "dtsvet.vscode-wasm", + "13xforever.language-x86-64-assembly", + "ms-vscode.cpptools", + "ms-vscode.cpptools-themes", + "jeff-hykin.better-cpp-syntax" + ] +} \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json index cc566d0..670e39e 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -1,52 +1,52 @@ { - // Use IntelliSense to learn about possible attributes. - // Hover to view descriptions of existing attributes. - // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 - "version": "0.2.0", - "configurations": [ - { - "name": "Hyde", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/runtime/bin/sledgert", - "args": [ - "${workspaceFolder}/runtime/experiments/applications/ocr/hyde/spec.json" - ], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "envFile": "${workspaceFolder}/.env", - "setupCommands": [ - { - "description": "Enable pretty-printing for gdb", - "text": "-enable-pretty-printing", - "ignoreFailures": true - } - ] - }, - { - "name": "Preemption", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/runtime/bin/sledgert", - "args": [ - "${workspaceFolder}/runtime/experiments/preemption/spec.json" - ], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "envFile": "${workspaceFolder}/.env", - "setupCommands": [ - { - "description": "Enable pretty-printing for gdb", - "text": "-enable-pretty-printing", - "ignoreFailures": true - } - ] - } - ] -} + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "name": "Hyde", + "type": "cppdbg", + "request": "launch", + "program": "${workspaceFolder}/runtime/bin/sledgert", + "args": [ + "${workspaceFolder}/runtime/experiments/applications/ocr/hyde/spec.json" + ], + "stopAtEntry": false, + "cwd": "${workspaceFolder}", + "environment": [], + "externalConsole": false, + "MIMode": "gdb", + "envFile": "${workspaceFolder}/.env", + "setupCommands": [ + { + "description": "Enable pretty-printing for gdb", + "text": "-enable-pretty-printing", + "ignoreFailures": true + } + ] + }, + { + "name": "Preemption", + "type": "cppdbg", + "request": "launch", + "program": "${workspaceFolder}/runtime/bin/sledgert", + "args": [ + "${workspaceFolder}/runtime/experiments/preemption/spec.json" + ], + "stopAtEntry": false, + "cwd": "${workspaceFolder}", + "environment": [], + "externalConsole": false, + "MIMode": "gdb", + "envFile": "${workspaceFolder}/.env", + "setupCommands": [ + { + "description": "Enable pretty-printing for gdb", + "text": "-enable-pretty-printing", + "ignoreFailures": true + } + ] + } + ] +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json index 8fd085a..25adc10 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,81 +1,113 @@ { - "files.associations": { - "*.inc": "cpp", - "arm_nnexamples_cifar10_parameter.h": "c", - "arm_nnexamples_cifar10_weights.h": "c", - "__hash_table": "cpp", - "__split_buffer": "cpp", - "__tree": "cpp", - "array": "cpp", - "bitset": "cpp", - "deque": "cpp", - "dynarray": "cpp", - "simd": "cpp", - "hash_map": "cpp", - "hash_set": "cpp", - "initializer_list": "cpp", - "iterator": "cpp", - "list": "cpp", - "map": "cpp", - "queue": "cpp", - "random": "cpp", - "regex": "cpp", - "set": "cpp", - "stack": "cpp", - "string": "cpp", - "string_view": "cpp", - "unordered_map": "cpp", - "unordered_set": "cpp", - "utility": "cpp", - "valarray": "cpp", - "vector": "cpp", - "__locale": "cpp", - "__config": "c", - "*.def": "c", - "mman.h": "c", - "types.h": "c", - "assert.h": "c", - "fstream": "c", - "locale": "c", - "*.tcc": "c", - "sandbox.h": "c", - "runtime.h": "c", - "panic.h": "c", - "ucontext.h": "c", - "stdlib.h": "c", - "pthread.h": "c", - "signal.h": "c", - "current_sandbox.h": "c", - "admissions_control.h": "c", - "sigval_t.h": "c", - "__sigval_t.h": "c", - "sigaction.h": "c", - "string.h": "c", - "errno.h": "c", - "siginfo_t.h": "c", - "features.h": "c" - }, - "files.exclude": { - "**/.git": true, - "**/.svn": true, - "**/.hg": true, - "**/CVS": true, - "**/.DS_Store": true, - "awsm/wasmception": true - }, - "C_Cpp.default.cStandard": "c17", - "C_Cpp.exclusionPolicy": "checkFilesAndFolders", - "C_Cpp.experimentalFeatures": "Enabled", - "C_Cpp.files.exclude": { - "awsm/wasmception": true, - "**/.vscode": true - }, - - "shellformat.flag": "-ln=bash -i 0 -bn -ci -sr -kp", - "terminal.integrated.profiles.linux": { - "bash": { - "path": "bash" - } - }, - "terminal.integrated.shell.linux": "bash" + "files.associations": { + "*.inc": "cpp", + "arm_nnexamples_cifar10_parameter.h": "c", + "arm_nnexamples_cifar10_weights.h": "c", + "__hash_table": "cpp", + "__split_buffer": "cpp", + "__tree": "cpp", + "array": "cpp", + "bitset": "cpp", + "deque": "cpp", + "dynarray": "cpp", + "simd": "cpp", + "hash_map": "cpp", + "hash_set": "cpp", + "initializer_list": "cpp", + "iterator": "cpp", + "list": "cpp", + "map": "cpp", + "queue": "cpp", + "random": "cpp", + "regex": "cpp", + "set": "cpp", + "stack": "cpp", + "string": "cpp", + "string_view": "cpp", + "unordered_map": "cpp", + "unordered_set": "cpp", + "utility": "cpp", + "valarray": "cpp", + "vector": "cpp", + "__locale": "cpp", + "__config": "c", + "*.def": "c", + "mman.h": "c", + "types.h": "c", + "assert.h": "c", + "fstream": "c", + "locale": "c", + "*.tcc": "c", + "sandbox.h": "c", + "runtime.h": "c", + "panic.h": "c", + "ucontext.h": "c", + "stdlib.h": "c", + "pthread.h": "c", + "signal.h": "c", + "current_sandbox.h": "c", + "admissions_control.h": "c", + "sigval_t.h": "c", + "__sigval_t.h": "c", + "sigaction.h": "c", + "string.h": "c", + "errno.h": "c", + "siginfo_t.h": "c", + "features.h": "c" + }, + "files.exclude": { + "**/.git": true, + "**/.svn": true, + "**/.hg": true, + "**/CVS": true, + "**/.DS_Store": true, + "awsm/wasmception": true + }, + "C_Cpp.default.cStandard": "c17", + "C_Cpp.exclusionPolicy": "checkFilesAndFolders", + "C_Cpp.experimentalFeatures": "Enabled", + "C_Cpp.files.exclude": { + "awsm/wasmception": true, + "**/.vscode": true + }, + "shellformat.effectLanguages": [ + "shellscript", + "dockerfile", + "ignore", + "gitignore", + ], + "shellformat.path": "/usr/local/bin/shfmt", + "shellformat.flag": "-ln=bash -i 0 -bn -ci -sr -kp", + "terminal.integrated.shell.linux": "bash", + "[jsonc]": { + "editor.defaultFormatter": "vscode.json-language-features" + }, + "[json]": { + "editor.defaultFormatter": "vscode.json-language-features" + }, + "[shellscript]": { + "editor.defaultFormatter": "foxundermoon.shell-format" + }, + "[dockerfile]": { + "editor.defaultFormatter": "foxundermoon.shell-format" + }, + "[ignore]": { + "editor.defaultFormatter": "foxundermoon.shell-format" + }, + "files.watcherExclude": { + "**/.git/objects/**": true, + "**/.git/subtree-cache/**": true, + "**/.git/**": true, + "**/awsm/target/**": true, + "**/runtime/thirdparty/**": true, + "**/runtime/thirdparty/ck/**": true, + "**/runtime/thirdparty/http-parser/**": true, + "**/runtime/thirdparty/jsmn/**": true, + "**/runtime/thirdparty/dist/**": true, + "*.o": true, + "**/res/**": true, + "**/concurrency/res/**/**": true, + "**/deadline/res/**/**": true, + "**/preemption/res/**/**": true, + } } diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 91af595..180edf2 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -6,32 +6,32 @@ FROM ubuntu:bionic # install some basic packages RUN apt-get update RUN apt-get install -y --no-install-recommends \ - build-essential \ - curl \ - git \ - cmake \ - ca-certificates \ - libssl-dev \ - pkg-config \ - gcc \ - g++ \ - clang-8 \ - clang-tools-8 \ - llvm-8 \ - llvm-8-dev \ - libc++-dev \ - libc++abi-dev \ - lld-8 \ - lldb-8 \ - libclang-8-dev \ - libclang-common-8-dev \ - vim \ - binutils-dev \ - build-essential \ - automake \ - libtool \ - strace \ - less + build-essential \ + curl \ + git \ + cmake \ + ca-certificates \ + libssl-dev \ + pkg-config \ + gcc \ + g++ \ + clang-8 \ + clang-tools-8 \ + llvm-8 \ + llvm-8-dev \ + libc++-dev \ + libc++abi-dev \ + lld-8 \ + lldb-8 \ + libclang-8-dev \ + libclang-common-8-dev \ + vim \ + binutils-dev \ + build-essential \ + automake \ + libtool \ + strace \ + less RUN rm -rf /var/lib/apt/lists/* # set to use our installed clang version diff --git a/devenv.sh b/devenv.sh index 1b23e08..40f156e 100755 --- a/devenv.sh +++ b/devenv.sh @@ -132,11 +132,11 @@ envrun() { echo "Starting ${SYS_DOC_NAME}" docker run \ --privileged \ - --security-opt seccomp:unconfined \ + --security-opt seccomp:unconfined \ --name=${SYS_DOC_NAME} \ --detach \ - --mount type=bind,src="$(cd "$(dirname "${0}")" && pwd -P || exit 1),target=/${SYS_NAME}" \ - ${SYS_DOC_NAMETAG} /bin/sleep 99999999 > /dev/null + --mount type=bind,src="$(cd "$(dirname "${0}")" && pwd -P || exit 1),target=/${SYS_NAME}" \ + ${SYS_DOC_NAMETAG} /bin/sleep 99999999 > /dev/null fi echo "Running shell"