summaryrefslogtreecommitdiff
path: root/Meta
AgeCommit message (Collapse)Author
2021-08-22Meta: Add 'copy-src' command to serenity.shItamar
This command copies the project's source tree to /home/anon/Source/serenity in the built disk image. This will be useful for working on serenity inside serenity :^)
2021-08-20CI: Set on-target test timeout to 60 minutesTimothy Flynn
The on-target pipelines have a timeout of 6 hours to allow time for a clean toolchain + Serenity build. Tests should time out much sooner than that though.
2021-08-20CI: Include a timestamp in the Azure ccache keyTimothy Flynn
Caches on Azure are immutable - so if a cache changes, but its key does not, then the cache is not updated. Include a timestamp in the ccache key so that we always push an updated cache from the master branch. Then use a subkey without the timestamp to pull the cache. We use a similar trick on GitHub Actions.
2021-08-19Meta: Explicitly configure source directory in debug-kernel.shBrian Gianforcaro
Previously debug-kernel.sh wouldn't detect source if you launched the script from the wrong path. By explicitly setting the name, source will be loaded by gdb in all situations.
2021-08-18README+Meta: Update the screenshot :^)networkException
2021-08-18Meta: Assume and find GNU duMartin Åberg
We want to use use the 'du' option '--apparent-size' which is a GNU coreutils extension. GNU coreutils is a build dependency so we know it is available. With this commit we first try to pick up du as 'gdu', and if that fails, try 'du' instead.
2021-08-18Meta: Create memory disk before mounting it on FreeBSDMartin Åberg
There was previously a case where the build-image-qemu.sh script decided to mount an existing disk image, but without creating the memory disk device and recording its /dev file name. After this commit, We create the memory disk device just before it is used to mount the disk image.
2021-08-18CI: Ensure relevant patch files are part of Toolchain cache hashAndrew Kaster
We were over-hashing for the GNU build on GitHub Actions by including the LLVM patch as well. The GNU Toolchain doesn't care about our LLVM patches. For Azure, fix the inversion of the condition for which jobs check which Build*.sh script, and add the Toolchain patch files to the cache hash calculation.
2021-08-18CI: Print on-target debug logs when the tests failTimothy Flynn
2021-08-17CI: Build Lagom with fuzzing on AzureTimothy Flynn
2021-08-17CI: Build and test SerenityOS with the Clang toolchain on AzureTimothy Flynn
2021-08-17CI: Use Azure caching for Lagom buildTimothy Flynn
Adds a compiler cache and a cache for the UCD files.
2021-08-17Meta: Semi-automatically detect ccache for Lagom buildsTimothy Flynn
The top-level CMakeLists.txt already automatically detects ccache, but CI will invoke CMake with Lagom's CMakeLists.txt. Add an option to Lagom to do the same detection.
2021-08-16CI: Build and test Lagom (non-fuzzer) on AzureTimothy Flynn
2021-08-14Meta: Disable printing frame args when debugging the kernel with gdbBrian Gianforcaro
The function arguments almost always optimized away, so you never get much value out of showing these in the default back trace view, it just adds a bunch of extra stuff that you need to visual wade through. So lets disable showing them.
2021-08-14Tests: Add regression tests for the LibCpp preprocessorItamar
Similarly to the LibCpp parser regression tests, these tests run the preprocessor on the .cpp test files under Userland/LibCpp/Tests/preprocessor, and compare the output with existing .txt ground truth files.
2021-08-14LibCpp: Move parser tests to Userland/Libraries/LibCpp/Tests/parserItamar
2021-08-13Meta: Add new-project.sh :^)sin-ack
This script will instantiate a HackStudio template into a project on the host. It currently supports all templates used by HackStudio. To avoid having to maintain compatibility between other shells and the Serenity shell in the postcreate scripts, we build the Serenity shell with Lagom and use that to run the script.
2021-08-13Meta: Tune default QEMU disk sizeJean-Baptiste Boric
Having lots of small files in Base/ may require more inodes in the ext2 filesystem than the format utility sets aside by default. Let's make a more educated guess since we have a rough idea of how many inodes we need by counting files and directories.
2021-08-12Meta: Un-escape escaped strings when generating Wasm testsAli Mohammad Pur
2021-08-12Meta: Don't roundtrip floats for i64/i32 hex literals in wasm testsAli Mohammad Pur
2021-08-12Meta: Properly quote some CMake variables in serenity_componentsin-ack
This probably isn't all of them, because I'm no CMake expert. :^) It does however allow "/bin/false" to build now.
2021-08-09Meta: Add SERENITY_CPUS environment variable to control number of CPUsTom
2021-08-08Meta: Add Clang support to the CMake build scriptsDaniel Bertalan
2021-08-08Toolchain: Add LLVM patch and script for building itDaniel Bertalan
This contains all the bits and pieces necessary to build a Clang binary that will correctly compile SerenityOS. I had some trouble with getting LLVM building with a single command, so for now, I decided to build each LLVM component in a separate command invocation. In the future, we can also make the main llvm build step architecture-independent, but that would come with extra work to make library and include paths work. The binutils build invocation and related boilerplate is duplicated because we only use `objdump` from GNU binutils in the Clang toolchain, so most features can be disabled.
2021-08-08Meta: Allow attaching GDB to the QEMU instance on the WSL2 hostGunnar Beutner
2021-08-08Meta: Don't use x86_64 QEMU for the i686 kernelGunnar Beutner
This seemed like a good idea at the time to avoid an unnecessary dependency on qemu-system-i386. However this makes debugging the kernel with GDB more difficult because GDB assumes that the QEMU architectures matches the kernel architecture.
2021-08-07Meta: Remove syslog.h from clang-format exclusion listAndrew Kaster
Before Libraries was moved to Userland/Libraries syslog.h had a bunch of manually aligned defines and array initializations. Andreas seems to have formatted the file with clang-format as part of that file move. Since syslog.h is now properly formatted, we don't need to exclude it from the linter list.
2021-08-07Kernel: Implement a ISO 9660 filesystem reader :^)sin-ack
This commit implements the ISO 9660 filesystem as specified in ECMA 119. Currently, it only supports the base specification and Joliet or Rock Ridge support is not present. The filesystem will normalize all filenames to be lowercase (same as Linux). The filesystem can be mounted directly from a file. Loop devices are currently not supported by SerenityOS. Special thanks to Lubrsi for testing on real hardware and providing profiling help. Co-Authored-By: Luke <luke.wilde@live.co.uk>
2021-08-07Meta: Remove legacy hardware components from Q35 machineLiav A
As this is a test machine I use personally to test "modern" hardware setups, it feels quite comfortable to not care too much about VGA with this type of machine. Also, we don't actively use the IDE controller on this machine type, so let's just remove it :^)
2021-08-07Meta: Add run-local.shsin-ack
This allows one to set their desired parameters for run.sh without the need to set them in every terminal session or add it to the user account shell files. If a run-local.sh file exists at the repository root and is executable, it will be sourced. The file can contain any variables that are expected to be set in run.sh.
2021-08-05Meta: Fix wrong path for AK Tests in check-ak-test-files.shMandar Kulkarni
2021-08-04Meta: Detect nested KVM support for WSL2 and use that when availableGunnar Beutner
This allows running QEMU inside WSL2 for hosts which have nested KVM and WSLg support (e.g. Windows 11). Running QEMU inside the WSL2 VM is slightly slower than running QEMU on Windows, probably because of how WSLg handles screen updates.
2021-08-04Meta: Automatically enable WHPX when possibleGunnar Beutner
2021-08-04Meta: Auto-detect where QEMU is installed on WindowsGunnar Beutner
2021-08-03Meta: Make the Q35 machine more realisticLiav A
Although it is nice to test the system without too many devices, in reality bare metal hardware is far more complex than the default skeleon that QEMU provides. As a preparation of supporting more devices, we need to ensure we are capable of at least booting on complex hardware setups without easily-observable problems. Later on, this can be the foundations of testing new drivers :^)
2021-08-03Meta: Prefer to use the 64-bit QEMU binary if that's availableGunnar Beutner
Some users might not have qemu-system-i386 installed.
2021-08-03Meta: Prefer to use -machine pcspk-audiodev for QEMU >=5.1Gunnar Beutner
This gets rid of the following warning message from QEMU on startup: qemu-system-i386: warning: '-soundhw pcspk' is deprecated, please set a backend using '-machine pcspk-audiodev=<name>' instead Fixes #4093.
2021-08-02Meta: Improve WSL detection for the run.sh scriptGunnar Beutner
For users who use a custom kernel with WSL our previous method of detecting WSL doesn't work. This new check instead detects WSL by checking if the wslpath utility is available.
2021-08-02Meta: Add BUILD_SHARED_LIBS option for Lagom buildsAndrew Kaster
This standard CMake option controls whether add_library() calls will use STATIC or SHARED by default. The flag is set to on by default since that's what we want for normal CI jobs and local builds and the test262 runner, but disabled for oss-fuzz builds. This should finally fix the oss-fuzz build after it was broken in #9017 oss-fuzz un-breakage was verified by running the following commands in the oss-fuzz repo: python infra/helper.py build_image serenity python infra/helper.py build_fuzzers --sanitizer address --engine afl \ --architecture x86_64 serenity /path/to/local/checkout/Meta/Lagom python infra/helper.py check_build --sanitizer address --engine afl \ --architecture x86_64 serenity
2021-08-02Meta: Explicitly specify the disk format in the QEMU optionsx-yl
Otherwise we're getting this warning: WARNING: Image format was not specified for '_disk_image' and probing guessed raw. Automatically detecting the format is dangerous for raw images, write operations on block 0 will be restricted. Specify the 'raw' format explicitly to remove the restrictions.
2021-08-02Meta: Fix compatibility with QEMU 5.xGunnar Beutner
QEMU 5 doesn't support -machine pcspk-audiodev so we need to fall back to using -soundhw for that.
2021-07-31LibWeb: Define proper debug symbols for CSS Parser and TokenizerSam Atkins
You can now turn debug logging for them on using `CSS_PARSER_DEBUG` and `CSS_TOKENIZER_DEBUG`.
2021-07-30Meta: Make audiodev detection more robustGunnar Beutner
This fixes audio on Windows as well as Linux systems which don't have SDL. Fixes #8903.
2021-07-30Meta: Make rsync a hard dependency and remove the fallback codeGunnar Beutner
Previously we'd fall back to using cp if rsync wasn't available. Not only is this considerably slower it also breaks when some of the files in the target directory are symlinks because cp tries to dereference them. Fixes #8672.
2021-07-30LibRegex+LibUnicode: Begin implementing Unicode property escapesTimothy Flynn
This supports some binary property matching. It does not support any properties not yet parsed by LibUnicode, nor does it support value matching (such as Script_Extensions=Latin).
2021-07-30Lagom: Fix oss-fuzz build error due to CMake typoBrian Gianforcaro
The OSS-Fuzz build was failing with the following error: /usr/bin/ld: cannot find -l{}
2021-07-29Lagom: Add proper install rulesAndrew Kaster
Create the proper export files to allow Lagom to be a well-behaved ExternalProject, based on the example project from the cmake-init project generator here: https://github.com/friendlyanon/cmake-init-shared-static
2021-07-29Lagom: Exclude GMLAutocompleteProvider.cpp from GML library sourcesLinus Groh
2021-07-29Lagom: Change to shared library build for all Lagom codeAndrew Kaster
Split the Lagom build into shared libraries to match the Serenity build. This reduces the cognitive load when trying to edit the Lagom CMakeLists significantly. It also reduces the amount of source files that must be compiled to run each test or host program significantly. Also re-organize all the build rules into sections. And reorganize the CMakeLists file in general.