summaryrefslogtreecommitdiff
path: root/Meta
AgeCommit message (Collapse)Author
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.
2021-07-29Meta/LibTest: Build object libraries for test main filesAndrew Kaster
By using the power of object libraries and $<TARGET_OBJECTS> we can make sure to only build TestMain.cpp and JavaScriptTestRunnerMain.cpp once. Previously we built these cpp files into object files once for every single test executable. This change reduces the number of total compile jobs in a Serenity target build by around 100.
2021-07-29LibTTF/LibGfx: Remove circular dependency by merging LibTTF into LibGfxAndrew Kaster
LibTTF has a concrete dependency on LibGfx for things like Gfx::Bitmap, and LibGfx has a concrete dependency in the TTF::Font class in Gfx::FontDatabase. This circular dependency works fine for Serenity and Lagom Linux builds of the two libraries. It also works fine for static library builds on Lagom macOS builds. However, future changes will make Lagom use shared libraries, and circular library dependencies are not tolerated in macOS.
2021-07-28LibGUI: Add GUI_HOVER_DEBUG runtime debugging flag (environment)Andreas Kling
You can now see the outline of GUI widgets when hovering them. For example: $ export GUI_HOVER_DEBUG=1 $ FileManager Then move the mouse around in the file manager. :^)
2021-07-27Meta: Ignore everything after the git cut line in a lint-commit.sh hookKarol Kosek
I have set up a commit.verbose variable in my git config, which shows the patch diff on bottom of the commit message. Unfortunately the character limit was also applied to the diff, which meant that I got a false-positive lint error almost every time.
2021-07-27Meta: Bring lint-commit.sh up to date with the CI commit linterIdan Horowitz
This was missing 2 of the recently added checks. Also added a reminder in the CI linter to update the Meta (commit hook) version.
2021-07-27Meta: Set -audiodev explictlyx-yl
Unfortunately seems like QEMU tries to use SPICE for audio so we need to explicitly set -audiodev to use either SDL or coreaudio (depending on platorm)
2021-07-27Kernel: Support loading the kernel at almost arbitrary virtual addressesGunnar Beutner
This enables further work on implementing KASLR by adding relocation support to the pre-kernel and updating the kernel to be less dependent on specific virtual memory layouts.
2021-07-26Meta: Add LibUnicode (and its tests) to LagomTimothy Flynn
This is primarily to allow using LibUnicode within LibJS and its REPL. Note: this seems to be the first time that a Lagom dependency requires generated source files. For this to work, some of Lagom's CMakeLists.txt commands needed to be re-organized to include the CMake files that fetch and parse UnicodeData.txt. The paths required to invoke the generator also differ depending on what is currently building (SerenityOS vs. Lagom as part of the Serenity build vs. a standalone Lagom build).
2021-07-26Meta: Don't reboot on triple-fault in CI modeAli Mohammad Pur
Instead, just make QEMU quit immediately.
2021-07-24Meta/run.sh: Allow for overriding of QEMU ethernet device typeThomas Wagenveld
You can set the SERENITY_ETHERNET_DEVICE_TYPE environment variable to pick another device type (i.e. ne2k_pci). Defaults to e1000 as before.
2021-07-24Lagom/Fuzzers: Add fuzzer for the quoted printable decoderLuke
2021-07-24Meta: Add Homebrew paths for macOS on M1 to the PATH env variableGunnar Beutner
2021-07-22CrashDaemon: Remove BACKTRACE_DEBUG debugging codeAndreas Kling
This thing seems to work fine, no need to hang on to old debug code.
2021-07-20Meta: Add a new qextlinux target for the run.sh scriptGunnar Beutner
This allows testing the extlinux image with QEMU.