summaryrefslogtreecommitdiff
path: root/Meta
AgeCommit message (Collapse)Author
2023-01-16LibUnicode: Generate simple case folding mappings for titlecaseTimothy Flynn
Note we already generate the special case foldings for titlecase.
2023-01-15LibIPC: Decode messages using Core::Stream internallyTim Schumacher
2023-01-15Lagom/Fuzzers: Add fuzzer for the TGALoader codeLiav A
2023-01-15LibJS+Everywhere: Rename Value::to_string to to_deprecated_stringTimothy Flynn
2023-01-15Everywhere: Fully qualify IsLvalueReference in TRY() macrosAndrew Kaster
If USING_AK_GLOBALLY is not defined, the name IsLvalueReference might not be available in the global namespace. Follow the pattern established in LibTest to fully qualify AK types in macros to avoid this problem.
2023-01-14LibWeb: Implement value_id_from_string by hash lookupBen Wiederhake
The old approach was basically a linear scan, which is slower than a hash map for the currently 303 elements, as evidenced by the new benchmark in TestCSSIDSpeed. Before: Completed benchmark 'value_id_from_string' in 3238ms After: Completed benchmark 'value_id_from_string' in 193ms
2023-01-14LibWeb: Run tests in lagom if ENABLE_LAGOM_LIBWEB is setBen Wiederhake
2023-01-13AK+Everywhere: Disallow returning a reference from a fallible expressionTimothy Flynn
This will silently make a copy. Rather than masking this behavior, let's explicitly disallow it.
2023-01-12LibWebView+Ladybird: Begin de-duplicate WebView implementationsLinus Groh
This starts moving code equally shared between the OOPWV and Ladybird WebContentView implementations to WebView::ViewImplementation, beginning with the client state.
2023-01-12Utilities: Add ttfdisasm for disassembling OpenType instructionsMacDue
This utility when given a .tff font provides options for disassembling: - The 'fpgm' table, this a program that's run once when the font is loaded. It's used to define instructions and functions used by used by other programs. - The 'prep' table, this is a general program that's run when ever the font size (or other properties) changes. - And the programs associated with any individual glyph. The disassembly is printed in a format that matches the examples from: https://learn.microsoft.com/en-us/typography/opentype/spec/tt_instructions I'm mainly adding this because I think it's neat to be able to look at these things, and think it'll be helpful for debugging an interpreter. With this you can see that all of the LiberationSerif-XXX.tff fonts in Serenity have these programs ready to go.
2023-01-10LibWeb: Ensure legacy constructors are defined on the global objectTimothy Flynn
This regressed in 6e93d89ee3108873a30bd0178b0f84fff3db3315.
2023-01-10LibWeb: Generate exposed Window/Worker interfaces as lazy objectsTimothy Flynn
We now lazily create these instances on-demand rather than all at once when a Window/Worker object is created.
2023-01-10LibWeb: Generate dedicated methods to create Web constructors/prototypesTimothy Flynn
Currently, for each exposed interface, we generate one massive function to create every Web constructor and prototype. In an effort to lazily create these instead, this first step is to extract the creation of each of these into its own method. First, this generates a forwarding header for all IDL types. This is to allow callers to remain unchanged without forcing them to include the (very heavy) generated IDL headers. This header is included by LibWeb's forwarding header. Next, this defines a base template method on Web::Bindings::Intrinsics to create a prototype/constructor pair. Specializations of this template are now generated in a new .cpp file, IntrinsicDefinitions.cpp. The base Intrinsics class is updated to use this new method, and will continue to cache the result. Last, some WebAssembly classes are updated to use this new mechanism. They were using some ad hoc cache keys that are now in line with the generated specializations. That one massive function is still used to invoke these specializations, so they are not lazy as of this commit.
2023-01-09AK+LibUnicode: Provide Unicode-aware String case transformationsTimothy Flynn
Since AK can't refer to LibUnicode directly, the strategy here is that if you need case transformations, you can link LibUnicode and receive them. If you try to use either of these methods without linking it, then you'll of course get a linker error (note we don't do any fallbacks to e.g. ASCII case transformations). If you don't need these methods, you don't have to link LibUnicode.
2023-01-09LibUnicode: Move Unicode-aware case transformations to a helper fileTimothy Flynn
These will be needed by AK::String as well, so move them to a helper file where they can be re-used.
2023-01-09LibWeb+WebContent: Use new String class in CSS::StyleValuemartinfalisse
Converts uses of DeprecatedString to String in StyleValue, and patches surrounding files that depend on these functions.
2023-01-08Kernel: Remove the NE2000 PCI network adapter driverLiav A
Nobody tests this network card as the person who added it, Jean-Baptiste Boric (known as boricj) is not an active contributor in the project now. After a discussion with him on the Discord server, we agreed it's for the best to remove the driver, as for two reasons: - The original author (boricj) agreed to do this, stating that he will not be able to test the driver anymore after his Athlon XP machine is no longer supported after the removal of the i686 port. - It was agreed that the NE2000 network card family is far from the ideal hardware we would want to support, similarly to the RTL8139 that got removed recently for almost the same reason.
2023-01-08Meta/build-manpages-website: Use absolute paths for all linkskleines Filmröllchen
Previously, we had some broken cross-manpage links on the website after the introduction of subsections. This is fixed by simply always using an absolute path (leading '/') for links, making all images, icons and page links work in all subsections. Unfortunately, this change means that navigating the website build while opening the files in the browser directly will no longer work. However, a local static server such as `python -m http.server 8080` in the output/ directory will work just fine for testing.
2023-01-08Meta/build-manpages-website: Copy all manpage PNGskleines Filmröllchen
This will allow using images in manpages elsewhere in the future without adjusting the PNG copying command. rsync unfortunately cannot place all files into the root folder when receiving a list of files via --files-from=-.
2023-01-08LibArchive+Utilities: Stop using DeprecatedStringimplicitfield
This also slightly improves error propagation in tar, unzip and zip.
2023-01-07Kernel: Remove the RTL8139 PCI network adapter driverLiav A
Nobody tests this network card, and the driver has bugs (see the issue https://github.com/SerenityOS/serenity/issues/10198 for more details), so it's almost certain that this happened due to code being rotting when there's simply no testing of it. Essentially this has been determined to be dead-code so this is the most important reason to drop this code. Another good reason to do so is because the RTL8139 only supports Fast Ethernet connections (10/100 Megabits per second), and is considered obsolete even for bare metal setups.
2023-01-07Everywhere: Remove "LibC/" includes, add lint-rule against itBen Wiederhake
2023-01-06Meta/Lagom: Link Threads::ThreadsMacDue
This is required for me to be able to build both Serenity and Ladybird from the same repo. Without this the two builds seem to stomp on each other, then fail to link.
2023-01-06Meta: Pass `Core::Stream::OpenMode` by value in the `IPCCompiler`Lucas CHOLLET
2023-01-06CI: Automatically apply pull request labels for generic PR actionsLuke Wilde
Generic PR actions include opening a PR, submit review comments, adding new commits, etc. This prevents the reviewer and PR submitter from having to manually bounce the labels back and forth in the general case. The reviewer also may not have permission to set labels, meaning the reviewer won't be able to update the labels accordingly themselves. This does not handle more subjective labels such as pr-is-blocked and pr-unclear. Unfortunately, there does not seem to be a GitHub Actions trigger for when a PR has merge conflicts, so the pr-has-conflicts label cannot be automatically applied. Co-authored-by: kleines Filmröllchen <filmroellchen@serenityos.org>
2023-01-05Meta: Create nested manpage section indices for the websitekleines Filmröllchen
This is probably committing some sed crimes, but it looks very nice!
2023-01-05Meta: Use parallel rsync for file coyping for online manpageskleines Filmröllchen
The main point is to bring this in line with all the other file copying, which is always done via rsync. On my machine this leads to very little speedup, but I'm also on WSL, so :shrug: Timings: Before: Time (abs ≡): 20.440 s [User: 133.928 s, System: 12.290 s] After: Time (abs ≡): 20.346 s [User: 135.534 s, System: 11.207 s]
2023-01-05Meta: Generate manpages for website in parallelkleines Filmröllchen
pandoc is a single-threaded and pretty slow application, so we can run it in the background and "synchronize" before generating section indices. Timing results: Before: Time (abs ≡): 59.833 s [User: 49.541 s, System: 6.943 s] After: Time (abs ≡): 20.440 s [User: 133.928 s, System: 12.290 s] (both generated with hyperfine -p "rm -r output || true" -r 1 Meta/build-manpages-website.sh )
2023-01-05Meta: Print progress during the website manpage buildkleines Filmröllchen
This especially helps when building locally.
2023-01-05Meta: Make the manpage website build work with manpage subsectionkleines Filmröllchen
For now, we create simple but complete indices and actually generate the HTML for the manpages in subsections. For these purposes, switch to using "find" as a file finding tool everywhere, instead of the very limited globs from before.
2023-01-05Meta: Remove duplicate manpage section generation for the websitekleines Filmröllchen
2023-01-04IPCCompiler+LibIPC: Propagate IPC encoder errorsTimothy Flynn
This propagates errors from user-defined encoders up to IPC::Connection. There, we currently just log the error, as we aren't in a position to propagate it further (i.e. we are inside a deferred invocation).
2023-01-03Lagom: Fix up a missed usage of `Compress::Zlib` in the fuzzersTim Schumacher
2023-01-02Everywhere: Remove unused includes of AK/Format.hBen Wiederhake
These instances were detected by searching for files that include AK/Format.h, but don't match the regex: \\b(CheckedFormatString|critical_dmesgln|dbgln|dbgln_if|dmesgln|FormatBu ilder|__FormatIfSupported|FormatIfSupported|FormatParser|FormatString|Fo rmattable|Formatter|__format_value|HasFormatter|max_format_arguments|out |outln|set_debug_enabled|StandardFormatter|TypeErasedFormatParams|TypeEr asedParameter|VariadicFormatParams|v_critical_dmesgln|vdbgln|vdmesgln|vf ormat|vout|warn|warnln|warnln_if)\\b (Without the linebreaks.) This regex is pessimistic, so there might be more files that don't actually use any formatting functions. Observe that this revealed that Userland/Libraries/LibC/signal.cpp is missing an include. In theory, one might use LibCPP to detect things like this automatically, but let's do this one step after another.
2023-01-02Everywhere: Move AK/Debug.h include to using files or removeBen Wiederhake
2022-12-28CI: Remove extraneous toolchain job from Azure CITimothy Flynn
This was useful when building both i686 and x86_64 SerenityOS targets as we could use a single toolchain build for both targets. But now all this extra job does is create the opportunity for the toolchain to need to be built twice (i.e. if the pipelines are backed up and the toolchain cache is busted between these jobs while the x86_64 step is waiting for a VM).
2022-12-28Meta: Force compilation with DWARF revision 4Liav A
We currently don't support DWARF revision 5 and LLVM/Clang might create such debug info into our binaries in x86_64, which will lead to a crash in CrashReporter that is unable to parse that information correctly.
2022-12-28Meta: Remove i686 targetLiav A
2022-12-27LibGfx: Start adding a utility for handling ICC color profilesNico Weber
For now, this dumps file version and device class. https://github.com/saucecontrol/compact-icc-profiles has good test inputs.
2022-12-26LibIPC+Everywhere: Change IPC decoders to construct values in-placeTimothy Flynn
Currently, the generated IPC decoders will default-construct the type to be decoded, then pass that value by reference to the concrete decoder. This, of course, requires that the type is default-constructible. This was an issue for decoding Variants, which had to require the first type in the Variant list is Empty, to ensure it is default constructible. Further, this made it possible for values to become uninitialized in user-defined decoders. This patch makes the decoder interface such that the concrete decoders themselves contruct the decoded type upon return from the decoder. To do so, the default decoders in IPC::Decoder had to be moved to the IPC namespace scope, as these decoders are now specializations instead of overloaded methods (C++ requires specializations to be in a namespace scope).
2022-12-26IPCCompiler+LibIPC: Generate message decoders with better TRY semanticsTimothy Flynn
Instead of a bunch of manual error checking and returning a null OwnPtr, we can propagate the errors up and return NonnullOwnPtr on success.
2022-12-26IPCCompiler: Fix build when GENERATE_DEBUG is enabledTimothy Flynn
1. We don't need to escape the quotes in the dbgln() statements because these are raw strings. 2. The dbgln() statements must end with a semicolon.
2022-12-25CI: Bump macOS Azure runners to macos-12 tagAndrew Kaster
2022-12-25Meta: Enable starting ladybird from serenity.shAndrew Kaster
This solution feels really hacky and should be refined later.
2022-12-25CI: Enable ladybird builds in Lagom CIAndrew Kaster
2022-12-25Lagom: Add option to build Ladybird as part of a Lagom buildAndrew Kaster
This means that Ladybird can be built with either Meta/Lagom or Ladybird as the top-level source directory. This setup is a bit awkward, but will preserve the packaging story for Ladybird until we come up with a more permanent solution.
2022-12-24Meta: Move UCD/CLDR/TZDB downloaded artifacts to Build/cachesTimothy Flynn
They currently reside under Build/<arch>, meaning that they would be redownloaded for each architecture/toolchain build combo. Move them to a location that can be re-used for all builds.
2022-12-21CMake: Fall back to the Web Archive when downloading filesTim Schumacher
2022-12-21LibGfx: Rename TTF/TrueType to OpenTypeAndreas Kling
OpenType is the backwards-compatible successor to TrueType, and the format we're actually parsing in LibGfx. So let's call it that.
2022-12-20LibUnicode: Use www.unicode.org domain to download emoji-test.txtTimothy Flynn
The non-www domain does not appear to be available now. We use the www domain for UCD.zip already. Co-authored-by: Stephan Unverwerth <s.unverwerth@serenityos.org>