summaryrefslogtreecommitdiff
path: root/Meta
AgeCommit message (Collapse)Author
2021-05-22Meta: Exclude LibCpp&LanguageServer tests from check-newlines-at-eof.pyItamar
2021-05-22Revert "Kernel: Fix PCI layout of i440fx QEMU machine"Liav A
This reverts commit 5018b3b4b7dc191d217ec60d2ac744cf7444e39f. Let's help our future selves by making sure we don't introduce a bug because of duplicating a network interface name or related bug to this topic. Therefore, we can have multiple e1000 devices in the system now.
2021-05-22Meta: Display DistinctNumeric as its alias name in GDB if possibleAli Mohammad Pur
All DistinctNumerics are given an identifying tag, if the tag is generated by the macro, print the alias instead of DistinctNumeric.
2021-05-22Meta: Add GDB pretty printer for AK::VariantAli Mohammad Pur
2021-05-22Meta: Pretty-print the types in serenity_gdb.pyAli Mohammad Pur
DistinctNumeric<T, ...> and some other types are very long, but the template arguments provide no particular value, so just don't show them
2021-05-21Games: Add HeartsGunnar Beutner
2021-05-21Kernel: Fix PCI layout of i440fx QEMU machineLiav A
Some folks on discord said adding another e1000 network adapter made it so we don't have networking on the system anymore. To fix this, we will use other unsupported PCI device instead.
2021-05-21Meta: Make i440fx QEMU machine PCI hierarchy a bit more complexLiav A
Let's help our future selves by ensuring we have proper support for secondary PCI buses always.
2021-05-21Meta: Add GDB pretty printer for AK::SinglyLinkedListBrian Gianforcaro
2021-05-21Meta: Add GDB pretty printer for AK::InlineLinkedListBrian Gianforcaro
This allows a developer to easily dump a InlineLinkedList in the debugger without having to manually running the list. I needed this for a recent bug investigation in the Kernel.
2021-05-21Shell: Hide job times behind SHELL_JOB_DEBUG flagAndrew Kaster
2021-05-21LibWasm+Meta: Implement instantiation/execution primitives in test-wasmAli Mohammad Pur
This also optionally generates a test suite from the WebAssembly testsuite, which can be enabled via passing `INCLUDE_WASM_SPEC_TESTS` to cmake, which will generate test-wasm-compatible tests and the required fixtures. The generated directories are excluded from git since there's no point in committing them.
2021-05-21LibWasm+Meta: Add test-wasm and optionally test the conformance testsAli Mohammad Pur
This only tests "can it be parsed", but the goal of this commit is to provide a test framework that can be built upon :) The conformance tests are downloaded, compiled* and installed only if the INCLUDE_WASM_SPEC_TESTS cmake option is enabled. (*) Since we do not yet have a wast parser, the compilation is delegated to an external tool from binaryen, `wasm-as`, which is required for the test suite download/install to succeed. This *does* run the tests in CI, but it currently does not include the spec conformance tests.
2021-05-21Meta: Add a Wasm parser fuzzerAli Mohammad Pur
2021-05-20StateMachineGenerator: Put output into the CMake build directoryAndreas Kling
Don't pollute the source directory with generated code.
2021-05-20Meta: Make generate_state_machine() generate a proper targetAli Mohammad Pur
And use GENERATED_SOURCES (or add_dependencies) to make LibVT depend on that target. Fixes a FIXME.
2021-05-19LibCpp: Add regression tests for the parserItamar
For each .cpp file in the test suite data, there is a .ast file that represents the "known good" baseline of the parser result. Each .cpp file goes through the parser, and the result of invoking `ASTNode::dump()` on the root node is compared to the baseline to find regressions. We also check that there were no parser errors when parsing the .cpp files.
2021-05-19CppLanguageServer: Put cpp test files in /home/anon/cpp-tests/Itamar
This is similar to the LibJS test data that resides in /home/anon/js-tests. It's more convenient than storing the test programs as raw strings in the code.
2021-05-18LibJS+LibTest: Move out the test-js test runner into LibTestAli Mohammad Pur
2021-05-18LibGfx: Add support for DDS imagesstelar7
2021-05-17Meta: Build LibWasm and the wasm utility as part of LagomAli Mohammad Pur
2021-05-17LibWasm: Start implementing a naive bytecode interpreterAli Mohammad Pur
As the parser now flattens out the instructions and inserts synthetic nesting/structured instructions where needed, we can treat the whole thing as a simple parsed bytecode stream. This currently knows how to execute the following instructions: - unreachable - nop - local.get - local.set - {i,f}{32,64}.const - block - loop - if/else - branch / branch_if - i32_add - i32_and/or/xor - i32_ne This also extends the 'wasm' utility to optionally execute the first function in the module with optionally user-supplied arguments.
2021-05-17Build: Stop using precompiled headers (PCH)Andreas Kling
This had very bad interactions with ccache, often leading to rebuilds with 100% cache misses, etc. Ali says it wasn't that big of a speedup in the end anyway, so let's not bother with it. We can always bring it back in the future if it seems like a good idea.
2021-05-16Meta: Run 'du' with '--apparent-size', except on macOSSiddharth Kapoor
Fixes #7172.
2021-05-16Meta: Update grub configuration to adopt the new textual boot modeLiav A
2021-05-16Kernel/Graphics + SystemServer: Support text mode properlyLiav A
As we removed the support of VBE modesetting that was done by GRUB early on boot, we need to determine if we can modeset the resolution with our drivers, and if not, we should enable text mode and ensure that SystemServer knows about it too. Also, SystemServer should first check if there's a framebuffer device node, which is an indication that text mode was not even if it was requested. Then, if it doesn't find it, it should check what boot_mode argument the user specified (in case it's self-test). This way if we try to use bochs-display device (which is not VGA compatible) and request a text mode, it will not honor the request and will continue with graphical mode. Also try to print critical messages with mininum memory allocations possible. In LibVT, We make the implementation flexible for kernel-specific methods that are implemented in ConsoleImpl class.
2021-05-16Kernel/Graphics: Add basic support for Intel native acceleratorLiav A
We simply modeset the resolution after determining the preferred resolution after getting the EDID from the attached display.
2021-05-16Meta: Boot the Q35 machine without VGA supportLiav A
Use the bochs-display device instead :)
2021-05-16AK+Userland: Fix some compiler warnings and make variables const-refGunnar Beutner
This fixes a few compiler warnings and makes some variables const-ref in preparation for the next commit which changes how ByteBuffer works.
2021-05-16AK+Meta: Add a debug option for SolitaireTimothy Flynn
2021-05-16LibVT: Implement new ANSI escape sequence parserDaniel Bertalan
This commit replaces the former, hand-written parser with a new one that can be generated automatically according to a state change diagram. The new `EscapeSequenceParser` class provides a more ergonomic interface to dealing with escape sequences. This interface has been inspired by Alacritty's [vte library](https://github.com/alacritty/vte/). I tried to avoid changing the application logic inside the `Terminal` class. While this code has not been thoroughly tested, I can't find regressions in the basic command line utilities or `vttest`. `Terminal` now displays nicer debug messages when it encounters an unknown escape sequence. Defensive programming and bounds checks have been added where we access parameters, and as a result, we can now endure 4-5 seconds of `cat /dev/urandom`. :D We generate EscapeSequenceStateMachine.h when building the in-kernel LibVT, and we assume that the file is already in place when the userland library is being built. This will probably cause problems later on, but I can't find a way to do it nicely.
2021-05-16Meta: Add a check for periods on the end of titles to commit linterIdan Horowitz
2021-05-15Meta: Check that copyright headers are followed by a blank lineLinus Groh
2021-05-15Meta: Bump BIOS/MBR boot partition size of grub disk image to 1MiBLinus Groh
As of ~April 2021 the Meta/build-image-grub.sh script no longer works for me (on Fedora 34) and fails with the following error: /usr/sbin/grub2-install: warning: ../grub-core/partmap/msdos.c:403: your core.img is unusually large. It won't fit in the embedding area. /usr/sbin/grub2-install: warning: Embedding is not possible. GRUB can only be installed in this setup by using blocklists. However, blocklists are UNRELIABLE and their use is discouraged.. /usr/sbin/grub2-install: error: will not proceed with blocklists. Changing the size of the boot partition from 32 kiB to 1 MiB (2048 sectors) fixes the issue. This is also described in the following Ubuntu grub2 bug (as well as 40 duplicates!) from 2012, which suggests the same fix: https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1059827 The Arch Linux wiki also uses 1 MiB in their BIOS/MBR examples for parted: https://wiki.archlinux.org/title/Parted I'm not sure why this suddenly stopped working, however I was able to boot with an image created with this change applied.
2021-05-14AK: Remove unused STRINGIMPL_DEBUG instrumentationAndreas Kling
2021-05-14Kernel: Add the ability to verify we don't kmalloc under spinlock.Brian Gianforcaro
Ideally we would never allocate under a spinlock, as it has many performance and potentially functionality (deadlock) pitfalls. We violate that rule in many places today, but we need a tool to track them all down and fix them. This change introduces a new macro option named `KMALLOC_VERIFY_NO_SPINLOCK_HELD` which can catch these situations at runtime via an assert.
2021-05-14Lagom: Enable sanitizer builds with gccAndrew Kaster
Previously the CMake options for -fsanitize=address, thread and undefined were gated behind clang, which was unecessary. Only -fsanitize=fuzzer is clang-only.
2021-05-13CMake: Make missing medium icon a FATAL_ERRORBrian Gianforcaro
Now that all of the medium icons pass this check, we can make it FATAL_ERROR to stop any new violations from being checked in.
2021-05-13LibCrypto: Split BigInteger operations into an Algorithms classDexesTTP
Since the operations are already complicated and will become even more so soon, let's split them into their own files. We can also integrate the NumberTheory operations that would better fit there into this class as well. This commit doesn't change behaviors, but moves the allocation of some variables into caller classes.
2021-05-13CMake: Fix message levels for error conditions during configurationBrian Gianforcaro
Make messages which should be fatal, actually fail the build. - FATAL is not a valid mode keyword. The full list is available in the docs: https://cmake.org/cmake/help/v3.19/command/message.html - SEND_ERROR doesn't immediately stop processing, FATAL_ERROR does. We should immediately stop if the Toolchain is not present. - The app icon size validation was just a WARNING that is easy to overlook. We should promote it to a FATAL_ERROR so that people will not overlook the issue when adding a new application. We can only make the small icon message FATAL_ERROR, as there is currently one violation of the medium app icon validation.
2021-05-12Meta: Add script to build image with EXTLINUX bootloaderDolphinChips
2021-05-12Meta: Add EXTLINUX configDolphinChips
2021-05-10LibPDF: Parse page structuresMatthew Olsson
This commit introduces the ability to parse the document catalog dict, as well as the page tree and individual pages. Pages obviously aren't fully parsed, as we won't care about most of the fields until we start actually rendering PDFs. One of the primary benefits of the PDF format is laziness. PDFs are not meant to be parsed all at once, and the same is true for pages. When a Document is constructed, it builds a map of page number to object index, but it does not fetch and parse any of the pages. A page is only parsed when a caller requests that particular page (and is cached going forwards). Additionally, this commit also adds an object_cast function which logs bad casts if DEBUG_PDF is set. Additionally, utility functions were added to ArrayObject and DictObject to get all types of objects from the collections to avoid having to manually cast.
2021-05-09Meta: Always try genext2fs as fallback to build disk imageEric Butler
If mounting disk image fails (e.g. fuse is not available on macos), always try using genext2fs before giving up.
2021-05-09LibSQL: Add a syntax highlighterDylan Katz
2021-05-08LibWasm: Start implementing a basic WebAssembly binary format parserAli Mohammad Pur
This can currently parse a really simple module. Note that it cannot parse the DataCount section, and it's still missing almost all of the instructions. This commit also adds a 'wasm' test utility that tries to parse a given webassembly binary file. It currently does nothing but exit when the parse fails, but it's a start :^)
2021-05-08AK+LibCpp: Remove DEBUG_SPAM in favour of per-application definesAli Mohammad Pur
What happens if one file defines DEBUG_SPAM, and another doesn't, then we link them together and get ODR violations? -- @ADKaster
2021-05-08LibGL: Implement a basic OpenGL 1.x compatible libraryJesse Buhagiar
This currently (obviously) doesn't support any actual 3D hardware, hence all calls are done via software rendering. Note that any modern constructs such as shaders are unsupported, as this driver only implements Fixed Function Pipeline functionality. The library is split into a base GLContext interface and a software based renderer implementation of said interface. The global glXXX functions serve as an OpenGL compatible c-style interface to the currently bound context instance. Co-authored-by: Stephan Unverwerth <s.unverwerth@gmx.de>
2021-05-08Meta + Lagom: Fix paths after movement of tests to Tests/Brian Gianforcaro
Not sure how this didn't cause a build break when I originally moved them in #6891. Better fix them now.
2021-05-08Meta: Remove AK/Tests from check-newlines-at-eof.pyBrian Gianforcaro
The json file was removed a while back, and now AK/Tests has been moved to Tests/AK. So this is wrong and out of date in every way.