summaryrefslogtreecommitdiff
path: root/Meta
AgeCommit message (Collapse)Author
2021-09-12LibWeb: Use ErrorType::NotAnObjectOfType instead of NotATimothy Flynn
2021-09-11AK: Replace the mutable String::replace API with an immutable versionIdan Horowitz
This removes the awkward String::replace API which was the only String API which mutated the String and replaces it with a new immutable version that returns a new String with the replacements applied. This also fixes a couple of UAFs that were caused by the use of this API. As an optimization an equivalent StringView::replace API was also added to remove an unnecessary String allocations in the format of: `String { view }.replace(...);`
2021-09-11LibUnicode: Generate numeric keyword values for each localeTimothy Flynn
This is needed for Intl.NumberFormat's usage of the ResolveLocale AO, where the [[RelevantExtensionKeys]] internal slot will be "nu".
2021-09-08LibUnicode: Fix typo in listPatterns.json parsing methodTimothy Flynn
2021-09-07CI+Meta: Add Signed-off-by tag filter to the commit message linterIdan Horowitz
2021-09-07Meta: Don't immediately continue in serenity.sh's gdb optionIdan Horowitz
This allows us to step through the initial boot instructions.
2021-09-07Toolchain: Build aarch64-gdb for cross-debugging on x86Idan Horowitz
2021-09-06LibUnicode: Remove Unicode locale variants from CLDR path namesTimothy Flynn
There's only a couple of cases like this, but there are some locale paths in the CLDR that contain variants. For example, there isn't a en-US path, but there is a en-US-POSIX path. This interferes with the operation to search for locales by name. The algorithm is such that searching for en-US will not result in en-US-POSIX being found. To resolve this, we should remove variants from the locale name.
2021-09-06LibUnicode: Parse and generate the Unicode locale list patterns datasetTimothy Flynn
This data informs consumers how to join lists of values. For example, in en-US, the list ["a", "b", "c"] formatted to a string should become "a, b, and c".
2021-09-06LibUnicode: Extract cldr-misc dataset from CLDR databaseTimothy Flynn
2021-09-06Meta: Unbreak `serenity.sh run aarch64` after 918f7cb4a88Nico Weber
2021-09-06LibUnicode: Sort special casing array by locale specificityTimothy Flynn
This is to simply the Default Case Conversion implementation. Otherwise, the implementation would need to determine which special casing rule to apply, instead of just picking the first match.
2021-09-06LibUnicode: Generate canonical combining class in Unicode dataTimothy Flynn
Will be used by special casing rules.
2021-09-06Meta: Correct misuse of ByteBuffer::resize() as grow() in FuzziliJSAli Mohammad Pur
2021-09-06Everywhere: Make ByteBuffer::{create_*,copy}() OOM-safeAli Mohammad Pur
2021-09-04Meta: Force legacy xAPIC when using 8 cores or lessTom
This is merely so that we exercise the legacy xAPIC code when we don't really need x2APIC.
2021-09-04LibUnicode: Generate an implementation of the Add Likely Subtags methodTimothy Flynn
2021-09-04LibUnicode: Generate the entire locale likely-subtags datasetTimothy Flynn
The amount of aliases in the likely-subtags dataset is quite large, so this also needed to change the way the data is generated. Otherwise, the compiler would complain about the size of the generated code. Previously, a static method was generated that would effectively parse the dataset into a HashMap of Unicode::LanguageID at runtime. We now perform that parsing at generation-time, and instead generate an Array of a structure similar to Unicode::LanguageID (we cannot use the same structure because it contains String and Optional, which cannot be used at compile-time).
2021-09-04Meta: Add q35grub option in run.shLiav A
This option is similar to the qgrub option, but instead of starting a QEMU PIIX4 machine, it starts a QEMU Q35 machine, booting a grub image disk within it.
2021-09-03Meta: Add the ability to specify clang with serenity.shTom
This enables maintaining gcc and clang builds side-by-side.
2021-09-03LibWeb: Add support for IDL static functionsLuke Wilde
2021-09-02LibWeb: Add initial support for AbortController and AbortSignalLuke Wilde
The DOM specification says that the primary use case for these is to give Promises abort semantics. It is also a prerequisite for Fetch, as it is used to make Fetch abortable. a
2021-09-01LibUnicode: Generate Unicode locale likely subtag dataTimothy Flynn
CLDR contains a set of likely subtag data where, given a locale, you can resolve what is the most likely language, script, or territory of that locale. This data is needed for resolving territory aliases. These aliases might contain multiple territories, and we need to resolve which of those territories is most likely correct for a locale. Note that the likely subtag data is quite huge (a few thousand entries). As an optimization encouraged by the spec, we only generate the smallest subset of this data that we actually need (about 150 entries).
2021-09-01LibUnicode: Generate complex Unicode locale alias matchingTimothy Flynn
Most alias substitutions are "simple", meaning that alias matching is done by examining a single locale subtag. However, there are a handful of "complex" aliases where matching is done by examining multiple subtags. For example, the variant subtag "lojban" causes the locale "art-lojban" to be canonicalized to "jbo", but only when the language subtag is "art" (i.e. this should not occur for the locale "en-lojban"). This generates a method to perform complex alias matching.
2021-09-01LibUnicode: Generate Unicode locale alias dataTimothy Flynn
CLDR contains a set of aliases for languages, territories, etc. that no longer are meant to be used (e.g. due to deprecation). For example, the language "aam" is deprecated and should be canonicalized as "aas".
2021-09-01LibUnicode: Extract cldr-core dataset from CLDR databaseTimothy Flynn
2021-08-31Tests: Test LibMarkdown against commonmark test suitePeter Elliott
TestCommonmark runs the CommonMark test suite (https://spec.commonmark.org/0.30/spec.json) against LibMarkdown. Currently 44/652 tests pass.
2021-08-30Meta: Implement support for the "unlinkable" Wasm spectest assertionAli Mohammad Pur
2021-08-30Meta: Generate bigints for i64 values in LibWasm test suite filesAli Mohammad Pur
2021-08-30Meta: Update lint-ports.py for the SerenityPorts moveAndreas Kling
2021-08-30CMake: Add custom target to build only the generated sourcesBrian Gianforcaro
This is needed so all headers and files exist on disk, so that the sonar cloud analyzer can find them when executing the compilation commands contained in compile_commands.json, without actually building. Co-authored-by: Andrew Kaster <akaster@serenityos.org>
2021-08-29Meta: Remove duplicate valid target check from serenity.shLinus Groh
2021-08-29Meta: Mention aarch64 as a supported TARGET in serenity.sh's helpLinus Groh
2021-08-28Meta: Don't pass net -device flags in aarch64 buils in run.shNico Weber
2021-08-28Meta: Introduce SERENITY_MACHINE variable in run.shNico Weber
Set it to all the `-m`, `-display`, `-device` flags for Intel, and to just "-M raspi3" for aarch64 builds.
2021-08-28Meta: Disable spice in aarch64 buils in run.shNico Weber
2021-08-28Meta: Run qemu-system-aarch64 in aarch64 builds in run.shNico Weber
2021-08-28Meta: Disable kvm for aarch64 in run.shNico Weber
2021-08-28Meta: Make build-root-filesystem.sh omit libgcc_so.so in aarch64 buildsNico Weber
2021-08-28Kernel: Verify interrupts are disabled when interacting with MutexesAndrew Kaster
This should help prevent deadlocks where a thread blocks on a Mutex while interrupts are disabled, and makes it impossible for the holder of the Mutex to make forward progress because it cannot be scheduled in. Hide it behind a new debug macro LOCK_IN_CRITICAL_DEBUG for now, because Ext2FS takes a series of Mutexes from the page fault handler, which executes with interrupts disabled.
2021-08-28Toolchain: Enough to make `rebuild-toolchain aarch64` workNico Weber
The gcc patch might not be completely correct, but at least the toolchain completes building.
2021-08-28Meta: Let serenity.sh's TARGET default to SERENITY_ARCH, not i686Linus Groh
This environment variable is already widely used across our build scripts and tooling, so serenity.sh should respect it as well. It still uses i686 as the fallback.
2021-08-28Meta: Remove write-only-on-difference scriptAndrew Kaster
It's now been replaced with "${CMAKE_PROGRAM}" -E copy_if_different in all previous usage locations.
2021-08-28Everywhere: Move all host tools into the Lagom/Tools subdirectoryAndrew Kaster
This allows us to remove all the add_subdirectory calls from the top level CMakeLists.txt that referred to targets linking LagomCore. Segregating the host tools and Serenity targets helps us get to a place where the main Serenity build can simply use a CMake toolchain file rather than swapping all the compiler/sysroot variables after building host libraries and tools.
2021-08-28Meta+LibUnicode: Move unicode_data helper to Meta/CMakeAndrew Kaster
Moving this helper CMake file to the centralized Meta/CMake folder helps to get a better grasp on what extra files are required for the build, and what files are generated. While we're at it, don't use add_compile_definitions for ENABLE_UNICODE_DATA, which only needs to be seen by LibUnicode sources.
2021-08-28Meta: Prefer SerenityOS_SOURCE_DIR to CMAKE_SOURCE_DIRAndrew Kaster
By using SerenityOS_SOURCE_DIR we can make custom targets and commands agnostic to the actual location of the root CMakeLists directory. All we care about is the root of the SerenityOS project.
2021-08-28Meta: Move code generator helpers to their own CMake helper fileAndrew Kaster
compile_gml, compile_ipc, and generate_state_machine all use host tools to generate sources for the target build. As part of trying to organize host tools into a common area, let's move these helper rules to a common file that we can add other host tools to later. And, keep the host tool helpers separate from the CMake target helpers for apps and libraries.
2021-08-28Meta: Move components CMake helpers to their own fileAndrew Kaster
It's hard to follow how all the functions in the utils.cmake helper file flow together, so let's move the pieces that are related to each other into specialized helpers. First up: all the ConfigureComponents related properties and functions.
2021-08-27Meta: Add System32 to the PATH so that reg.exe is always foundkleines Filmröllchen
On my machine (c), /mnt/c/Windows/System32 is not on the PATH by default. This causes reg.exe to fail, which is responsible for detecting the presence of QEMU. By putting this path on the PATH on WSL, it will always work regardless of the specific PATH configuration, and QEMU is always detected.
2021-08-26CI: Ensure unzip is installed on the buildersTimothy Flynn
The CLDR database comes in a .zip file.