summaryrefslogtreecommitdiff
path: root/Meta
AgeCommit message (Collapse)Author
2022-12-10CI: Add a check to report git merge commitLucas CHOLLET
2022-12-10LibCompress: Port GzipDecompressor to `Core::Stream`Tim Schumacher
2022-12-10Meta: Use absolute paths in Meta/analyze-qemu-coverage.shAndrew Kaster
This is a bit easier to read in the output when running locally, and a bit better script hygiene overall.
2022-12-10CMake: Force-link clang_rt.profile.a to LibC when building with coverageAndrew Kaster
This used to be in place until 671712cae67d7b8782afa94c09e980a77450efd6. I had commented on that PR that "yeah should be good to remove". Turns out that's not the case. A future patch to the clang driver might make this obsolete :^).
2022-12-10LibWeb: Add namespace qualifier to type names equal to a C++ namespaceLuke Wilde
For example, Document.getSelection returns Selection, which is in the Selection namespace. Namespaces.h has Linus' copyright since he changed the "is_one_of" list to an Array.
2022-12-08LibCore: Move `Core::Stream::File::exists()` to `Core::File`Tim Schumacher
`Core::Stream::File` shouldn't hold any utility methods that are unrelated to constructing a `Core::Stream`, so let's just replace the existing `Core::File::exists` with the nicer looking implementation.
2022-12-07LibJS: Replace standalone js_string() with PrimitiveString::create()Linus Groh
Note that js_rope_string() has been folded into this, the old name was misleading - it would not always create a rope string, only if both sides are not empty strings. Use a three-argument create() overload instead.
2022-12-07IPCCompiler: Mark size_t as a primitive typeTimothy Flynn
This allows size_t to be used within an IPC message without being passed by const-reference.
2022-12-07Meta+Userland: Pass Gfx::FloatSize by valueMacDue
Just two floats like Gfx::FloatPoint.
2022-12-07Meta+Userland: Pass Gfx::IntSize by valueMacDue
Just two ints like Gfx::IntPoint.
2022-12-07Meta+Userland: Pass Gfx::FloatPoint by valueMacDue
Just a small 8-byte value like Gfx::IntPoint.
2022-12-07Meta+Userland: Pass Gfx::IntPoint by valueMacDue
This is just two ints or 8 bytes or the size of the reference on x86_64 or AArch64.
2022-12-07Meta+Userland: Pass Gfx::Color by valueMacDue
Gfx::Color is always 4 bytes (it's just a wrapper over u32) it's less work just to pass the color directly. This also updates IPCCompiler to prevent from generating Gfx::Color const &, which makes replacement easier.
2022-12-06Meta: Manually compute the length of the WASM JS REPL source stringTimothy Flynn
The REPL does not have a reliable way to tell us the UTF-8 byte count of the source string, so we must use strlen() ourselves.
2022-12-06Everywhere: Rename to_{string => deprecated_string}() where applicableLinus Groh
This will make it easier to support both string types at the same time while we convert code, and tracking down remaining uses. One big exception is Value::to_string() in LibJS, where the name is dictated by the ToString AO.
2022-12-06AK+Everywhere: Rename String to DeprecatedStringLinus Groh
We have a new, improved string type coming up in AK (OOM aware, no null state), and while it's going to use UTF-8, the name UTF8String is a mouthful - so let's free up the String name by renaming the existing class. Making the old one have an annoying name will hopefully also help with quick adoption :^)
2022-12-05Meta: Initialize the WASM JS REPL with a known time zoneTimothy Flynn
The runtime environment of the WASM REPL does not have time zone information; the file system is virtual (does not have /etc/localtime), and the TZ environment variable is not set. This causes LibTimeZone to always fall back to UTC. Instead, we can get the time zone from the user's browser before we enter this limited environment. The REPL website will pass the time zone into the WASM REPL.
2022-12-05Meta: Explicitly link generated compile-time data into the WASM JS REPLTimothy Flynn
Without this, we were in a weird state where LibTimeZone believed it had TZDB data, but that data wasn't actually available to it. This caused functions like JS::get_named_time_zone_offset_nanoseconds() to trip an assertion when entering "new Date();" into the REPL.
2022-12-05LibAudio: Switch LoaderPlugin to a more traditional constructor patternTim Schumacher
This now prepares all the needed (fallible) components before actually constructing a LoaderPlugin object, so we are no longer filling them in at an arbitrary later point in time.
2022-12-03Everywhere: Remove 'clang-format off' comments that are no longer neededLinus Groh
https://github.com/SerenityOS/serenity/pull/15654#issuecomment-1322554496
2022-12-03Everywhere: Run clang-formatLinus Groh
2022-12-03Meta: Switch to clang-format-15 as the standard formatterLinus Groh
The two major changes noticeable on the SerenityOS codebase are: - Much improved support for const placement, clang-format-14 ignored our east-const configuration in various places - Different formatting for requires clauses, now breaking them onto their own line, which helps with readability a bit Current versions of CLion also ship LLVM 15, so the built-in formatting now matches CI formatting again :^)
2022-12-03Meta+CI: Add CI job specifically for bundling serenity-js artifactsAndrew Kaster
These are used by esvu, and it is sad that we don't have macOS binaries availble for consumption by esvu users. Add a matrix job to handle this separately from the test262 results.
2022-11-30LibWeb: Add @@toStringTag to platform object prototypesLuke Wilde
This was forgotten to be added in the LibWeb GC conversion. This caused some brand checks to fail in skribbl.io's JavaScript and thus caused unexpected exceptions.
2022-11-30LibCore: Add support for ReadonlyBytes to MemoryStreamTim Schumacher
2022-11-30LibArchive: Move loading the next tar header into a helper functionTim Schumacher
This now also validates the first header that is loaded, so we can drop the corresponding FIXME from `tar`.
2022-11-30LibArchive: Use Core::Stream inside `TarInputStream`Tim Schumacher
2022-11-26CI: Install gcc-12 for Android nightly CI jobAndrew Kaster
This *also* got missed in the gcc-12 update, because we weren't installing an explicit gcc version prior. Hopefully that's the last of the long tail of issues from that migration!
2022-11-25Meta: Use proper versions in is_compiler_supported check in serenity.shAndrew Kaster
We were checking the compilers against clang-12 and gcc-10. Since the check itself is confusing, some comments are warranted.
2022-11-26FuzzTar+tar: Advance the stream before continuingimplicitfield
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=53733 This bug was caused by a regression introduced in c88d8a2.
2022-11-26Meta: Add a js REPL wasm targetAli Mohammad Pur
...and build it only with emscripten.
2022-11-26Everywhere: Add support for compilation under emscriptenAli Mohammad Pur
Co-Authored-By: Andrew Kaster <akaster@serenityos.org>
2022-11-25LibVideo: Read Matroska lazily so that large files can start quicklyZaggy1024
The Demuxer class was changed to return errors for more functions so that all of the underlying reading can be done lazily. Other than that, the demuxer interface is unchanged, and only the underlying reader was modified. The MatroskaDocument class is no more, and MatroskaReader's getter functions replace it. Every MatroskaReader getter beyond the Segment element's position is parsed lazily from the file as needed. This means that all getter functions can return DecoderErrors which must be handled by callers.
2022-11-25LibVideo: Reorganize demuxer file hierarchy and rename Matroska filesZaggy1024
As new demuxers are added, this will get quite full of files, so it'll be good to have a separate folder for these. To avoid too many chained namespaces, the Containers subdirectory is not also a namespace, but the Matroska folder is for the sake of separating the multiple classes for parsed information entering the Video namespace.
2022-11-24Meta: Look for e2fsck path on build-image-qemu.shBaitinq
Now we attempt to look for the path of e2fsck before checking if the path can be found in any of the predefined routes. This fixes e2fsck not being found on some "special" distros like NixOS. Related #13754
2022-11-24headless-browser: Add a mode for being controlled by WebDriverTimothy Flynn
This adds command line flags for WebDriver to pass its IPC socket path (if running on Serenity) or its FD passing socket (if running elsewhere) for the headless-browser to connect to.
2022-11-23LibJS+LibWeb: Make Runtime/AbstractOperations.h not include AST.hAndreas Kling
This led to considerable fallout and many files had to be patched with now-missing include statements.
2022-11-23LibArchive: Simplify error handlingimplicitfield
2022-11-18Meta: Do not hard-code index types for UCD/CLDR/TZDB code generatorsTimothy Flynn
Hand-picking the smallest index type that fits a particular generated array started with commit 3ad159537e6e59760ed6b2ac2feba3fbcd8481af. This was to reduce the size of the generated library. Since then, the number of types using UniqueStorage has grown a ton, creating a long list of types for which index types are manually picked. When a new UCD/CLDR/TZDB is released, and the current index type no longer fits the generated data, we fail to generate. Tracking down which index caused the failure is a pretty annoying process. Instead, we can just use size_t while in the generators themselves, then automatically pick the size needed for the generated code.
2022-11-15Meta: Don't try to enable GDB support on WindowsGunnar Beutner
This probably didn't work before either but the option was silently ignored by GDB. Unfortunately 7.2.0-rc0 isn't so kind.
2022-11-13LibArchive: Make TarInputStream::advance report errorsimplicitfield
Fixes this bug that was reported by OSS-Fuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=52862
2022-11-11CI: Use gcc-12 in nightly Android host lagom build stageAndrew Kaster
2022-11-09Meta: Generate a helper constructor for single-value IPC responsesTimothy Flynn
When an IPC message returns a single value, we generate a class with a constructor that is something like: class MessageResponse { MessageResponse(SingleReturnType value) : m_value(move(value)) { } }; If that IPC message wants to return a value that SingleReturnType is constructible from, you have to wrap that return call with braces: return { value_that_could_construct_single_return_type }; That isn't really an issue except for when we want to mix TRY semantics with the return type. If SingleReturnType is constructible from an Error type (i.e. something similar to ErrorOr), the following doesn't work: TRY(fallible_function()); Because MessageResponse would not be constructible from Error. Instead, we must do some workaround with a custom TRY macro, as in 31bb792. This patch generates a constructor that makes TRY usable as-is without any custom macros. We perform a very similar trick in ThrowCompletionOr inside LibJS. This constructor will allow you to create MessageResponse from any type that SingleReturnType is constructible from.
2022-11-09Meta: Compile new WebContent IPC endpoints for WebDriver in LagomTimothy Flynn
2022-11-08Kernel: Split the Ext2FileSystem.{cpp,h} files into smaller componentsLiav A
2022-11-06Meta+LibUnicode: Avoid relocations for emoji dataGunnar Beutner
Previously each emoji had its own symbol in the library which was then referred to by another symbol. This caused thousands of avoidable data relocations at load time. This saves about 122kB RAM for each process which uses LibUnicode.
2022-11-06Meta+LibUnicode: Avoid relocations for static unicode dataGunnar Beutner
Previously the s_decomposition_mappings variable would refer to other data in s_decomposition_mappings_data. This would cause thousands of avoidable relocations at load time. This saves about 128kB RAM for each process which uses LibUnicode.
2022-11-04Meta: Make file-system resizing work on macOSGunnar Beutner
Previously we'd fail to execute the resize2fs tool which then results in us recreating the image from scratch: resizing disk image... Image resized. line 132: /usr/sbin/resize2fs: No such file or directory failed, not using existing image done
2022-11-04LibTimeZone: Update to TZDB version 2022fTimothy Flynn
https://mm.icann.org/pipermail/tz-announce/2022-October/000075.html
2022-11-03LibJS+LibUnicode: Add "microsecond" and "nanosecond" as sanctioned unitsTimothy Flynn
This is a normative change in the ECMA-402 spec. See: https://github.com/tc39/ecma402/commit/f627573