summaryrefslogtreecommitdiff
path: root/Meta
AgeCommit message (Collapse)Author
2022-01-20LibWeb: Remove Length::Type::Percentage :^)Sam Atkins
All `<percentage>`s in the CSS grammar are now represented by the `Percentage` class, and `<length-percentage>` by `LengthPercentage`.
2022-01-20LibWeb: Add CSS::Percentage, PercentageOr and LengthPercentage typesSam Atkins
Length and Percentage are different types, and sometimes only one or the other is allowed in a given CSS property. This is a first step towards separating them.
2022-01-19LibJS+LibUnicode: Return the appropriate time zone name depending on DSTTimothy Flynn
2022-01-19LibUnicode: Generate both standard and daylight time zone namesTimothy Flynn
While LibTimeZone didn't support DST, we only generated one of them, preferring the standard name. Now that DST can be tested, generate both names.
2022-01-19LibJS+LibTimeZone+LibUnicode: Indicate whether a time zone is in DSTTimothy Flynn
Return whether the time zone is in DST during the provided time from TimeZone::get_time_zone_offset,
2022-01-19LibJS+LibTimeZone: Begin handling DST when computing time zone offsetsTimothy Flynn
This also updates some expectations in a Temporal time zone offset test that is using a time stamp which is in DST for a few time zones.
2022-01-19LibTimeZone: Parse and generate DST rule links for each ZONE entryTimothy Flynn
Each ZONE entry contains a RULES segment with one of the following: * A DST rule name, which links the ZONE to a RULE entry holding the DST rules to apply. * A static offset to be applied to the STDOFF offset. This implicitly means that the time zone is in DST during that time frame. * A "-" string, meaning no offset is applied to the STDOFF offset, and the time zone is in standard time during that time frame.
2022-01-19LibTimeZone: Begin parsing and generating DaylightSavings rulesTimothy Flynn
2022-01-18LibUnicode: Generate code point abbreviationsTimothy Flynn
2022-01-17LibJS+LibUnicode: Make static const Utf8View variables constexprIdan Horowitz
2022-01-17Meta: Add icons to online man pagesTobias Christiansen
Previously all the added icons weren't available in the online version of the man pages. This patch adds functionality to copy all the used icons over when assembling the HTML version.
2022-01-17Meta+Ports: Make 'package.sh showproperty' report multiple propertiesAli Mohammad Pur
And use that to avoid shelling out multiple times for checking properties in lint-ports.py.
2022-01-17Meta: Optimized lint-ports.py by avoiding duplicate execs of package.shBrian Gianforcaro
The way that lint-ports.py obtains the ports properties is unfortunately very process intensive. You have to execute `./package.sh showproperty` once for each property, for each port. Resulting in hundreds of executions. We were doing this work twice in both `check_package_files()` and in `read_port_dirs()`. This resulted in a runtime of around ~10 seconds on my machine. Removing the duplicate work and allowing the other code path to utilize the to use the cached properties brought the runtime down to ~5 seconds on my machine.
2022-01-17Meta: Skip shellcheck for Ports in pre-commit hookBrian Gianforcaro
Shellcheck barfs on many of the patterns we use in port scripts, the check is already disabled when we run the script in CI, so we might as well disable the check for pre-commit as well.
2022-01-16Meta: Ensure that all port patches are documented in the linterAli Mohammad Pur
This adds a list of ports without descriptions to filter out the existing ports with unexplained ports, this list should *not* be appended to! It also adds a (for now) disabled check that ensures all ports have patches made with (or compatible with) git.
2022-01-15Meta: Make check-symbols.sh use the correct build directorycreator1creeper1
Since the build now happens in Build/$SERENITY_ARCH/ and not in Build/, this updates check-symbols.sh to use the correct directory to check the LibC symbols in. For some reason, the constant failures did not show up as errors in CI.
2022-01-15LibCore+LibIPC+Everywhere: Return Stream::LocalSocket from LocalServersin-ack
This change unfortunately cannot be atomically made without a single commit changing everything. Most of the important changes are in LibIPC/Connection.cpp, LibIPC/ServerConnection.cpp and LibCore/LocalServer.cpp. The notable changes are: - IPCCompiler now generates the decode and decode_message functions such that they take a Core::Stream::LocalSocket instead of the socket fd. - IPC::Decoder now uses the receive_fd method of LocalSocket instead of doing system calls directly on the fd. - IPC::ConnectionBase and related classes now use the Stream API functions. - IPC::ServerConnection no longer constructs the socket itself; instead, a convenience macro, IPC_CLIENT_CONNECTION, is used in place of C_OBJECT and will generate a static try_create factory function for the ServerConnection subclass. The subclass is now responsible for passing the socket constructed in this function to its ServerConnection base; the socket is passed as the first argument to the constructor (as a NonnullOwnPtr<Core::Stream::LocalServer>) before any other arguments. - The functionality regarding taking over sockets from SystemServer has been moved to LibIPC/SystemServerTakeover.cpp. The Core::LocalSocket implementation of this functionality hasn't been deleted due to my intention of removing this class in the near future and to reduce noise on this (already quite noisy) PR.
2022-01-14CI: Disallow test failures on macOS Lagom :^)Timothy Flynn
2022-01-14gml-format: Port to LibMainLucas CHOLLET
2022-01-14disasm: Port to LibMainLucas CHOLLET
2022-01-13LibUnicode: Do not limit language display names to known localesTimothy Flynn
Currently, the UnicodeLocale generator collects a list of known locales from the CLDR before processing language display names. For each locale, the identifier is broken into language, script, and region subtags, and we create a list of seen languages. When processing display names, we skip languages we hadn't seen in that first step. This is insufficient for language display names like "en-GB", which do not have an locale entry in the CLDR, and thus are skipped. So instead, create the list of known languages by actually reading through the list of languages which have a display name.
2022-01-13LibUnicode: Parse and generate locale display patternsTimothy Flynn
These patterns indicate how to display locale strings when that locale contains multiple subtags. For example, "en-US" would be displayed as "English (United States)".
2022-01-13LibUnicode: Parse and generate locale display names for date fieldsTimothy Flynn
2022-01-13LibUnicode: Parse and generate locale display names for calendarsTimothy Flynn
Note there's a bit of an unfortunate duplication in the calendar enum generated by UnicodeLocale and the existing enum generated by UnicodeDateTimeFormat. The former contains every calendar known to the CLDR, whereas the latter contains the calendars we've actually parsed for DateTimeFormat (currently only Gregorian). The new enum generated here can be removed once DateTimeFormat knows about all calendars.
2022-01-13man.serenityos.org: Include Games section on index pageDavidLindbom
2022-01-13Meta: Use fuse2fs if available to avoid root when building imageChris Frey
The fuse2fs tool that is part of e2fsprogs-1.46 has a 'fakeroot' mount option. This allows a non-root users to modify file ownership and permissions without actually being root. This package is available in Debian bullseye and buster-backports. If available, the script assumes the user wants to use it. Otherwise, it falls back to the usual root requirements. Now that root is not required, the root check in build-root-filesystem.sh is not necessary. Since build-root-filesystem.sh has 'set -e' enabled, removing this check will not cause a change in functionality.
2022-01-13Meta: Use consistent indents in build-image-qemu.shChris Frey
This is a whitespace only commit to avoid confusion with the next feature commit.
2022-01-13Meta: Do not ignore error message with execChris Frey
When calling sub-programs from shell with exec, the useful || die idiom does not actually do anything, since the first script is gone.
2022-01-12LibUnicode: Swap the preferred order of standard time zone display namesTimothy Flynn
Our generator is currently preferring the DST variant of the time zone display names over the non-DST variant. LibTimeZone currently does not have DST support, and operates in a mode that basically assumes DST does not exist. Swap the display names for now just to be consistent until we have DST support. Note we will need to generate both of these variants and select the appropriate one at runtime once we have DST support.
2022-01-12CMake: Add HACKSTUDIO_BUILD option for building from Hack StudioItamar
If this option is set, we will not build all components. Instead, we include an external CMake file passed in via a variable named HACKSTUDIO_BUILD_CMAKE_FILE. This will be used to build serenity components from Hack Studio.
2022-01-12LibUnicode: Perform number system lookups by enumeration valueTimothy Flynn
Now that number systems are generated as an enum, we can generated the number system data in the order of that enum. This lets us perform lookups of that data by index instead of a loop of string comparisons.
2022-01-12LibUnicode: Parse number system digits from the CLDRTimothy Flynn
We had a hard-coded table of number system digits copied from ECMA-402. Turns out these digits are in the CLDR, so let's parse the digits from there instead of hard-coding them.
2022-01-11LibUnicode: Parse and generate long and short generic time zone namesTimothy Flynn
This implements the CalendarPatternStyle::{Long,Short}Generic styles of time zone name formatting.
2022-01-11LibUnicode: Implement TR-35's localized GMT offset formattingTimothy Flynn
This adds an API to use LibTimeZone to convert a time zone such as "America/New_York" to a GMT offset string like "GMT-5" (short form) or "GMT-05:00" (long form).
2022-01-11LibTimeZone: Use new AK::Time factory method in generated codeTimothy Flynn
2022-01-11CI: Require a blank line between commit titles and bodiesIdan Horowitz
2022-01-11LibTimeZone: Begin generating GMT offset rules for each time zoneTimothy Flynn
This is a rather naive implementation, but serves as a first pass at determining the GMT offset for a time zone at a particular point in time. This implementation ignores DST (because we are not parsing any RULE entries yet), and ignores any offset patterns of the form "Mon>4" or "lastSun".
2022-01-11LibTimeZone: Add method to convert a time zone to a stringTimothy Flynn
2022-01-11LibTimeZone: Perform time-zone-from-string lookups case insensitivelyTimothy Flynn
Time zone names in the TZDB are defined to be case insensitive.
2022-01-11LibTimeZone: Add a unit test for generated time zone dataTimothy Flynn
2022-01-11LibTimeZone: Tweak the enumeration generated for parsed time zonesTimothy Flynn
For example, generate "Etc/GMT+12" as "Etc_GMT_Ahead_12" (instead of as "Etc_GMT_P12"). A little clearer what the name means without having to know off-hand what "P" was representing.
2022-01-11Meta: Don't assume how each generator wants to generate keyed map namesTimothy Flynn
The generate_mapping helper generates a series of structs like: Array<SomeType, 1> s_mapping_key_0 {}; Array<SomeType, 2> s_mapping_key_1 {}; Array<SomeType, 3> s_mapping_key_2 {}; Array<Span<SomeType const>> s_mapping { { s_mapping_key_0.span(), s_mapping_key_1.span(), s_mapping_key_2.span(), } }; Where the names of the struct were generated by the format_mapping_name lambda inside the helper. Rather than this lambda making assumptions on how each generator wants to name its structs, add a parameter for the caller to provide a naming formatter. This is because the TimeZoneData generator will want pretty specific identifier formatting rules.
2022-01-11Meta: Support generating case-insensitive value-from-string methodsTimothy Flynn
This also extracts the default parameters for generate_value_from_string to a structure. This is just to make it cleaner to add new options.
2022-01-11LibTimeZone: Remove accidental pluralization of generator variable namesTimothy Flynn
2022-01-11Meta: Convert new help page link styles for the man page websitekleines Filmröllchen
The special URL links (help://man) and the application opening links now work on the man page website. While the page links are translated correctly, the application launch can't be implemented. For this reason, an explanatory error page is shown instead.
2022-01-10Lagom: Avoid declaring `Time` in the global namespaceMichel Hermier
When compiled using clang, an ambiguity error is detected between `class AK::Time` aliased to `::Time` and the `struct ::Time` provided in `GenerateTimeZoneData.cpp`. Solve this by moving most of the code in an anonymous namespace.
2022-01-10LibGUI+AK: Add DRAG_DEBUG opt and put drag operations behind dbgln_ifMarcus Nilsson
No need to have this enabled all the time.
2022-01-10Toolchain+CI: Link LLVM with LLD if availableDaniel Bertalan
According to most benchmarks, LLD is faster than GNU ld and the macOS linker, so let's use it if possible in order to speed up the toolchain build.
2022-01-10CI: Hash only relevant files for the key of the compiler cacheDaniel Bertalan
In the last few commits, a second patch was added to the LLVM toolchain, and it no longer uses our binutils patch. This commit changes the CI cache keys accordingly, in order to prevent unnecessary rebuilds of both toolchains when only one is changed. The Clang toolchain's cache now only takes into account patches that begin with `llvm`, and the GNU toolchain excludes those from the hash calculation. We now also hash the two CMake cache files that we use for building LLVM and its runtime libraries.
2022-01-09Userland: Port wasm to LibMainFederico Guerinoni