summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-10-17LibDebug: Make use of the newly supported data formsDaniel Bertalan
With this change, our DWARF 5 support is nearly feature-complete.
2021-10-17LibDebug: Support `DW_FORM_data16`Daniel Bertalan
Clang emits this form at all debug levels.
2021-10-17LibDebug: Support `addrx*`, `strx*` and `rnglistx` formsDaniel Bertalan
These forms were introduced in DWARF5, and have a fair deal of advantages over the more traditional encodings: they reduce the size of the binary and the number of relocations. GCC does not emit these with `-g1` by default, but Clang does at all debug levels.
2021-10-17LibDebug: Don't expose AttributeValue internals, use getters insteadDaniel Bertalan
This will be needed when we add `DW_FORM_strx*` and `DW_FORM_addrx*` support, which requires us to fetch `DW_AT_str_offsets_base` and `DW_AT_addr_base` attributes from the parent compilation unit. This can't be done as we read the values, because it would create infinite recursion (as we might try to parse the compilation unit's `DW_FORM_strx*` encoded name before we get to the attribute). Having getters ensures that we will perform lookups if they are needed.
2021-10-17LibCoredump: Accept dynamic libraries with versioned namesDaniel Bertalan
Our Clang toolchain uses versioned names for its shared libraries, meaning that our applications link against `libc++.so.1.0`, not simply `libc++.so`. Without this change, the LLVM runtime libraries are excluded from backtraces, which makes debugging toolchain issues harder.
2021-10-17AK: Make Span trivially copy-constructibleDaniel Bertalan
There is no need to have a user-defined copy constructor that simply calls the base class's copy constructor. By having the compiler generate it for us, Span is made trivially copyable, so it can be passed in registers.
2021-10-17Toolchain: Introduce stubs for core system librariesDaniel Bertalan
This allows the linker to link against these dynamic libraries when compiling libc++/libunwind, without having to do a separate bootstrapping LibC build. Without this change, libc++ would fail to pick up the need to link to `LibPthread` if no prior builds of it existed. Because of this, we'd immediately have an assertion failure in SystemServer, as mutexes are used for the safe construction of function-local static variables.
2021-10-17LibC: Primitively implement wcsxfrmDaniel Bertalan
The `wcsxfrm` function copies a wide character string into a buffer, such that comparing the new string against any similarly pre-processed string with `wcscmp` produces the same result as if the original strings were compared with `wcscoll`. Our current `wcscoll` implementation is simply an alias for `wcscmp`, so `wcsxfrm` needs to perform no actions other than copying the string.
2021-10-17LibC: Implement wcslcpyDaniel Bertalan
2021-10-17LibC: Fix wcsrchr declaration to return a non-const wchar*Daniel Bertalan
This is how the standard specifies it; similarly to the already correctly declared wcschr function.
2021-10-17LibC: Stub out mbsnrtowcsDaniel Bertalan
2021-10-17LibC: Stub out wcsnrtombsDaniel Bertalan
2021-10-17LibC: Implement wmemcmpDaniel Bertalan
2021-10-17LibC: Add ELAST errno macroDaniel Bertalan
The ELAST macro is used on many systems to refer to the largest possible valid errno value. LLVM's libc++ uses errno values of ELAST+1 and ELAST+2 internally, and defines an arbitrary fallback value for platforms which don't have the macro. This means that it's possible for their internal errno numbers could coincide with values we actually use, which would be a very bad thing.
2021-10-17LibC: Forward-declare `struct tm` in wchar.hDaniel Bertalan
The C standard specifies that this forward-declaration be present in wchar.h, and is needed in order to build libstdc++.
2021-10-17Prekernel: Force enable PAE on Intel Pentium M CPUsTim Schumacher
2021-10-17Prekernel: Split early boot printing into two subroutinesTim Schumacher
2021-10-17FontEditor: Accept file dropsKarol Kosek
2021-10-17FontEditor: Add FontEditorWidget::open_file() functionKarol Kosek
This part is also quite needed when opening files from drag-and-drop events.
2021-10-17FontEditor: Reuse the request_close() function in Open actionKarol Kosek
2021-10-17Base: Add a test page for the various element attribute APIsTimothy Flynn
2021-10-17LibWeb: Implement the Element attributes getterTimothy Flynn
2021-10-17LibWeb: Reimplement Element attribute related methods with NamedNodeMapTimothy Flynn
2021-10-17LibWeb: Implement (most of) NamedNodeMap to store attributesTimothy Flynn
2021-10-17LibWeb: Set an attribute's owning element when it is knownTimothy Flynn
2021-10-17LibWeb: Implement Attribute closer to the spec and with an IDL fileTimothy Flynn
Note our Attribute class is what the spec refers to as just "Attr". The main differences between the existing implementation and the spec are just that the spec defines more fields. Attributes can contain namespace URIs and prefixes. However, note that these are not parsed in HTML documents unless the document content-type is XML. So for now, these are initialized to null. Web pages are able to set the namespace via JavaScript (setAttributeNS), so these fields may be filled in when the corresponding APIs are implemented. The main change to be aware of is that an attribute is a node. This has implications on how attributes are stored in the Element class. Nodes are non-copyable and non-movable because these constructors are deleted by the EventTarget base class. This means attributes cannot be stored in a Vector or HashMap as these containers assume copyability / movability. So for now, the Vector holding attributes is changed to hold RefPtrs to attributes instead. This might change when attribute storage is implemented according to the spec (by way of NamedNodeMap).
2021-10-17LibWeb: Alphabetize LibWeb's forward and JS wrapper declarationsTimothy Flynn
2021-10-17sysctl: Allow showing or setting multiple variablesSeekingBlues
The `-w` option is enforced when setting variables.
2021-10-17Kernel/ProcFS: Provide a way to write to ProcFS inodesSeekingBlues
ProcFSGlobalInode now calls `write_bytes()`, `truncate()` and `set_mtime()` on its associated component. This allows us to write 0 or 1 to a ProcFSSystemBoolean component to toggle a boolean value.
2021-10-17Ports: Remove long unused SERENITY_ROOT from .hosted_defs.shLinus Groh
2021-10-17Ports: Add an Angband port :^)Tim Schumacher
2021-10-17Ports: Provide designated wide-char versions of ncursesTim Schumacher
2021-10-17LibC: Implement wctobTim Schumacher
2021-10-17LibC: Implement mbstowcsTim Schumacher
2021-10-17LibC: Implement wctombTim Schumacher
2021-10-17Kernel: Print CPU check errors by writing to VRAMTim Schumacher
2021-10-17LibJS: Convert to_property_key() to ThrowCompletionOrIdan Horowitz
2021-10-17LibJS: Convert to_double() to ThrowCompletionOrIdan Horowitz
2021-10-17LibJS: Convert to_bigint_uint64() to ThrowCompletionOrIdan Horowitz
2021-10-17LibJS: Convert to_bigint_int64() to ThrowCompletionOrIdan Horowitz
2021-10-17LibJS: Convert to_bigint() to ThrowCompletionOrIdan Horowitz
2021-10-17LibJS: Convert to_numeric() to ThrowCompletionOrIdan Horowitz
2021-10-16Kernel: Move ScopedCritical + SmapDisabler CPP files into x86 commonJames Mintram
2021-10-16Ports: Fix dependencies for SDL2Tim Schumacher
We are doing nonstandard stuff with our headers, so SDL assumed that both iconv and dlopen are available inside LibC, which they aren't. Fix that by adding a dependency on libiconv and adding additional linker flags.
2021-10-17LibWeb: Implement Event.composedPathLuke Wilde
I originally implemented this as something to use the new sequence wrapper, however, after having a look at uses with grep.app, it's used often, for example: - Bootstrap 5 Dropdowns - Polymer - Angular - Closure
2021-10-17LibWeb: Convert ArrayFromVector wrapper to instead be sequence<T>Luke Wilde
This adds the ParamatizedType, as `Vector<String>` doesn't encode the full type information. It is a separate struct as you can't have `Vector<Type>` inside of `Type`. This also makes Type RefCounted because I had to make parse_type return a pointer to make dynamic casting work correctly. The reason I made it RefCounted instead of using a NonnullOwnPtr is because it causes compiler errors that I don't want to figure out right now.
2021-10-16Kernel: Add MiniStdLib to the Aarch64 kernelJames Mintram
2021-10-16PixelPaint: Create an empty layer when the last layer is removedFelix Rauch
Previously, when the last layer got deleted, the active layer was set to nullptr, causing a crash. Now, we create a new transparent background layer with the image dimensions instead.
2021-10-16LibWeb: Serialize selectors only in CSSStyleRule::selector_text()Sam Atkins
Previously, this was returning the serialization for the whole style rule, which isn't what we want.
2021-10-16LibWeb: Use the serialize_a_{identifier,string} algorithms for selectorsSam Atkins
Also fixed that serializing an attribute selector never output the value.