summaryrefslogtreecommitdiff
path: root/Meta
AgeCommit message (Collapse)Author
2022-01-08CI: Add a cache for the IANA time zone database filesTimothy Flynn
2022-01-08LibTimeZone+Meta: Add plumbing for an IANA Time Zone Database generatorTimothy Flynn
The IANA Time Zone Database contains data needed, at least, for various JavaScript objects. This adds plumbing for a parser and code generator for this data. The generated data will be made available by LibTimeZone, much like how UCD and CLDR data is available through LibUnicode.
2022-01-08Meta: Move invoke_generator to utils.cmakeTimothy Flynn
2022-01-08Meta: Move remove_unicode_data_if_version_changed to utils.cmakeTimothy Flynn
This function will be used by the time zone database parser. Move it to the common utilities file, and rename it remove_path_if_version_changed to be more generic.
2022-01-08Meta: Redefine link_with_unicode_data to not include unicode_data.cmakeTimothy Flynn
This is to prevent an import cycle in a subsequent commit.
2022-01-08Meta: Remove -ldl linkage from LagomUnicodeTimothy Flynn
This was needed for dlopen() on some systems, but is no longer needed as of commit 1116a29c19c797bd1299aa42827bb69286d3bade.
2022-01-07CI: Extract toolchain ccache in the Serenity build stageTimothy Flynn
The toolchain is built in a previous stage, but once the Serenity stage has begun, we have to re-pull the toolchain from the Azure cache. There is a timing window where a cache-busting change can be commited between these steps; to alleviate the affect this has, pull the toolchain ccache so that the build only takes a few minutes instead of a couple hours.
2022-01-07Everywhere: Fix spelling mistakesmjz19910
2022-01-07Meta: Remove explicit IDE attached drive from q35 setupLiav A
Use $SERENITY_BOOT_DRIVE to determine it for us.
2022-01-07Meta+CI+Documentation: Bump host gcc requirement up to gcc 11Andrew Kaster
Bump macOS CI version to macOS 11 while we're here.
2022-01-07Everywhere: Fix many spelling errorsmjz19910
2022-01-07LibSQL: Implement LIKE SQL expressionsGuilherme Gonçalves
2022-01-06LibUnicode: Do not assume time zones & meta zones have a 1-to-1 mappingTimothy Flynn
The generator parses metaZones.json to form a mapping of meta zones to time zones (AKA "golden zone" in TR-35). This parser errantly assumed this was a 1-to-1 mapping.
2022-01-06LibUnicode: Move UTC verification to the scope that requires itTimothy Flynn
In Unicode::get_time_zone_name(), we don't need to require that the time zone is UTC for long- and short-style name lookups. This is required for other styles, because they will depend on TZDB data - so move the VERIFY to that scope.
2022-01-05LibJS+LibUnicode: Handle flexible day periods that roll over midnightTimothy Flynn
When searching for the locale-specific flexible day period for a given hour, we were neglecting to handle cases where the period crosses 00:00. For example, the en locale defines a day period range of [21:00, 06:00). When given the hour of 05:00, we were checking if (21 <= 5 && 5 < 6), thus not recognizing that the hour falls in that period.
2022-01-04LibUnicode: Remove now unused value-from-string generator overloadTimothy Flynn
2022-01-04LibUnicode: Convert UnicodeData to link with weak symbolsTimothy Flynn
2022-01-04LibJS+LibUnicode: Convert UnicodeLocale to link with weak symbolsTimothy Flynn
2022-01-04LibUnicode: Add temporary overload of value-from-string generatorTimothy Flynn
This is a temporary mechanism while LibUnicode is in an in-between state where some symbols are weakly linked and others are dynamically loaded. The latter require an asm() label to be loaded.
2022-01-04LibUnicode: Convert UnicodeDateTimeFormat to link with weak symbolsTimothy Flynn
2022-01-04LibUnicode: Convert UnicodeNumberFormat to link with weak symbolsTimothy Flynn
Currently, we load the generated Unicode symbols with dlopen at runtime. This is unnecessary as of 565a880ce5a14bac817c73916e91ebfa04c8b99b. Applications that want Unicode data now link directly against the shared library holding that data. So the same functionality can be achieved with weak symbols.
2022-01-04LibWeb: Implement CanvasRenderingContext2D.measureTextsin-ack
This requires an implementation of the "text preparation algorithm" as specified here: html.spec.whatwg.org/multipage/canvas.html#text-preparation-algorithm However, we're missing a lot of things such as the CanvasTextDrawingStyles interface, so most of the algorithm was not implemented. Additionally, we also are not able to use a LineBox like the algorithm suggests, because our layouting infra is not up to the task yet. The prepare_text function does nothing other than figuring out the width of the given text and return glyphs with offsets at the moment.
2022-01-03LibUnicode: Add minimal support for generic & offset-based time zonesTimothy Flynn
ECMA-402 now supports short-offset, long-offset, short-generic, and long-generic time zone name formatting. For example, in the en-US locale the America/Eastern time zone would be formatted as: short-offset: GMT-5 long-offset: GMT-05:00 short-generic: ET long-generic: Eastern Time We currently only support the UTC time zone, however. Therefore, this very minimal implementation does not consider GMT offset or generic display names. Instead, the CLDR defines specific strings for UTC.
2022-01-01Meta: Rename SERINITY_NVME_ENABLE variable to SERENITY_NVME_ENABLETom
2022-01-01Meta: Enable attaching NVMe storage devices to qemuPankaj Raghav
Add an option to enable NVMe storage device as the boot drive. To enable NVMe support, run the following: $ SERENITY_NVME_ENABLE=1 Meta/serenity.sh run i686 root=/dev/nvme0n1
2022-01-01Kernel/NVMe: Add initial NVMe driver supportPankaj Raghav
Add a basic NVMe driver support to serenity based on NVMe spec 1.4. The driver can support multiple NVMe drives (subsystems). But in a NVMe drive, the driver can support one controller with multiple namespaces. Each core will get a separate NVMe Queue. As the system lacks MSI support, PIN based interrupts are used for IO. Tested the NVMe support by replacing IDE driver with the NVMe driver :^)
2021-12-30Meta: Add helper CMake function to link directly against LibUnicodeDataTimothy Flynn
Rather than each CMakeLists.txt needing to import unicode_data.cmake and check if Unicode data generation is enabled, add a helper method to do this.
2021-12-29Meta+Documentation: Don't rebuild disk image for every run on OpenBSDtuftedocelot
2021-12-29Meta: Add egcc as a GCC candidatetuftedocelot
egcc is the alias for the GCC compiler (since OpenBSD uses Clang by default). Toolchain/BuildIt.sh has the necessary adjustments, but the compiler check occurs before BuildIt.sh is called.
2021-12-29Build: Remove gzip -k usage in PCI/USB ID files and crypt for OpenBSDtuftedocelot
OpenBSD gzip does not have the -k flag to keep the original after extraction. Work around this by copying the original gzip to the dest and then extracting. A bit of a hack, but only needs to be done for the first-time or rebuilds OpenBSD provides crypt in libc, not libcrypt. Adjust if/else to check for either and proceed accordingly Remove outdated OpenBSD checks when building the toolchain
2021-12-28Meta: Add SSE3, SMAP and SMEP to our bochsrcAndreas Kling
- SSE3 makes LibM's trunc() not SIGILL (due to FISTTP). - SMAP and SMEP allow us to exercise more kernel security mechanisms.
2021-12-27Meta: Add link to awesome new meta-project from main website :^)Ben Wiederhake
2021-12-26Meta: Don't override SERENITY_KVM_SUPPORT if it is already setKelvium
I've seen how @awesomekling changes the script to disable KVM, so that's a useful thing to have. An example how to use it: SERENITY_KVM_SUPPORT='0' ./Meta/serenity.sh run x86_64 My first commit btw :^)
2021-12-24LibGL+LibSoftGPU: Move rendering related code to LibSoftGPU libraryStephan Unverwerth
This introduces a new library, LibSoftGPU, that incorporates all rendering related features that formerly resided within LibGL itself. Going forward we will make both libraries completely independent from each other allowing LibGL to load different, possibly accelerated, rendering backends.
2021-12-23LibC: Allow multiple includes of `<assert.h>`Michel Hermier
ISO C requires in section 7.2: The assert macro is redefined according to the current state of NDEBUG each time that <assert.h> is included. Also add tests for `assert` multiple inclusion accordingly.
2021-12-23Meta: Allow to skip `#pragma once` checkMichel Hermier
Some headers migth need to be reentered multiple times (eg. <assert.h>) so a mecanism to skip that check is necessary.
2021-12-22IPCCompiler: Default initialize all parameter member variablesBrian Gianforcaro
PVS Studio static analysis noticed we didn't initialize these in a bunch of cases. This change fixes that so we will always initialize these using universal initialization.
2021-12-22Meta: Add a cmake flag for building for compiler explorerAli Mohammad Pur
We don't need to build tests/binaries for CE.
2021-12-21LibUnicode: Remove now unused value-from-string generator overloadTimothy Flynn
The generate_value_from_string_for_dynamic_loading() overload was just temporary until all generates were switched over to dynamic loading.
2021-12-21LibUnicode: Dynamically load the generated UnicodeDateTimeFormat symbolsTimothy Flynn
2021-12-21LibUnicode: Dynamically load the generated UnicodeNumberFormat symbolsTimothy Flynn
2021-12-21LibUnicode: Dynamically load the generated UnicodeLocale symbolsTimothy Flynn
2021-12-21LibUnicode: Dynamically load the generated UnicodeData symbolsTimothy Flynn
The generated data for libunicodedata.so is quite large, and loading it is a price paid by nearly every application by way of depending on LibRegex. In order to defer this cost until an application actually uses one of the surrounding APIs, dynamically load the generated symbols. To be able to load the symbols dynamically, the generated methods must have demangled names. Typically, this is accomplished with `extern "C"` blocks. The clang toolchain complains about this here because the types returned from the generators are strictly C++ types. So to demangle the names, we use the asm() compiler directive to manually define a symbol name; the caveat is that we *must* be sure the symbols are unique. As an extra precaution, we prefix each symbol name with "unicode_". For more details, see: https://gcc.gnu.org/onlinedocs/gcc/Asm-Labels.html This symbol loader used in this implementation provides the additional benefit of removing many [[maybe_unused]] attributes from the LibUnicode methods. Internally, if ENABLE_UNICODE_DATABASE_DOWNLOAD is OFF, the loader is able to stub out the function pointers it returns. Note that as of this commit, LibUnicode is still directly linked against LibUnicodeData. This commit is just a first step towards removing that.
2021-12-21Meta: Add a fuzzer for the QOILoaderLinus Groh
2021-12-18Lagom: Bind `time_zone_list_index_type` in the generatorMichel Hermier
The variable `s_time_zone_list_index_type` seems to be unused (detected when compiling with clang), and it seems logical to bind it even it if it is not used for now.
2021-12-18Websites: Update the SerenityOS bug bounty program :^)Andreas Kling
Let's increase the reward since I have significantly improved funding over the last year! Merry haxmas! :^)
2021-12-15Lagom: Add argument `WORKING_DIRECTORY` to `lagom_test(...)`Simon Woertz
So far the working directory was set in some cases using `set_tests_properties(...)`, but this requires to know which name is picked by `lagom_test(...)` when calling `add_test(...)`. In case of adding multiple test cases using a globbing pattern this would require to duplicate code to construct the test name from the file name.
2021-12-14LibWeb: Add support for the BufferSource IDL parameter typeLinus Groh
2021-12-14LibWeb: Add the SubtleCrypto interfaceLinus Groh
Just some boilerplate code to get started :^) This adds both the SubtleCrypto constructor to the window object, as well as the crypto.subtle instance attribute.
2021-12-13LibUnicode: Generate unique list patterns and lists of list patternsTimothy Flynn