summaryrefslogtreecommitdiff
path: root/Userland
AgeCommit message (Collapse)Author
2022-05-02base64: Replace char pointer with StringViewKenneth Myhra
2022-05-02base64: Use TRY() instead of VERIFY(!result.is_error())Kenneth Myhra
2022-05-02base64: Use Core::File standard_input() standard_output()Kenneth Myhra
2022-05-02Kernel: Stop requiring working malloc for syscall.h includesPatrick Meyer
Fixes #13869
2022-05-02PixelPaint: Set title of default image to 'Untitled'cflip
2022-05-02Meta+Userland: Add ENABLE_USERSPACE_COVERAGE_COLLECTION CMake optionAndrew Kaster
This option sets -fprofile-instr-generate -fcoverage-mapping for Clang builds only on almost all of Userland. Loader and LibTimeZone are exempt. This can be used for generating code coverage reports, or even PGO in the future.
2022-05-02LibM: Remove stale commented out CMake commandsAndrew Kaster
2022-05-02DynamicLoader: Remove stale FIXME for removing -nodefaultlibsAndrew Kaster
The FIXME says "Remove after next toolchain update" and I'm very certain we've had some :tool: :chain: in the last 7 months.
2022-05-02readelf: Don't error out on invalid interpreter pathAndrew Kaster
This lets us inspect ELF binaries with un-loadable program interpreters, same as binutils and llvm-readelf.
2022-05-02LibGfx: Fix typo in Color constructorCésar Torres
2022-05-01LibJS: Simplify Is{Accessor,Data,Generic}Descriptor AOsLinus Groh
This is an editorial change in the ECMA-262 spec. See: https://github.com/tc39/ecma262/commit/1c7ae4b
2022-05-01LibJS: Change "Record {}" to "Iterator Record {}" in commentsLinus Groh
This is an editorial change in the ECMA-262 spec. See: https://github.com/tc39/ecma262/commit/85d910c
2022-05-01LibJS: Change "Completion {}" to "Completion Record {}" in commentsLinus Groh
This is an editorial change in the ECMA-262 spec. See: https://github.com/tc39/ecma262/commit/15a7d8a
2022-05-01LibJS: Change "as [the] argument[s]" to "with arguments" in commentsLinus Groh
This is an editorial change in the ECMA-262 spec. See: https://github.com/tc39/ecma262/commit/e671b96
2022-05-01LibJS: Update outdated table reference in BoundFunctionCreateLinus Groh
2022-05-01LibJS: Rename some variables from "script body" to "script"Linus Groh
This is an editorial change in the ECMA-262 spec. See: https://github.com/tc39/ecma262/commit/38a2584
2022-05-01LibJS: Rename scope to environmentLinus Groh
This is an editorial change in the ECMA-262 spec. See: https://github.com/tc39/ecma262/commit/3246553
2022-05-01LibJS: Update spec comments testing presence of a fieldLinus Groh
This is an editorial change in the ECMA-262 spec. See: - https://github.com/tc39/ecma262/commit/497f99a - https://github.com/tc39/ecma262/commit/0b35749
2022-05-01LibJS: Update ValidateAndApplyPropertyDescriptor implementationLinus Groh
These are editorial changes in the ECMA-262 spec. See: - https://github.com/tc39/ecma262/commit/b9efa97 - https://github.com/tc39/ecma262/commit/6f4ff96 - https://github.com/tc39/ecma262/commit/3d18997 - https://github.com/tc39/ecma262/commit/b3c29fd
2022-05-01LibJS: Simplify Array.prototype.splice()Linus Groh
This is an editorial change in the ECMA-262 spec. See: https://github.com/tc39/ecma262/commit/193211a
2022-05-01LibJS: Update a couple of outdated spec commentsLinus Groh
These are editorial changes in the ECMA-262 spec. See: - https://github.com/tc39/ecma262/commit/e080a7f - https://github.com/tc39/ecma262/commit/c5a9094 - https://github.com/tc39/ecma262/commit/5091520 - https://github.com/tc39/ecma262/commit/1c6564b - https://github.com/tc39/ecma262/commit/e06c80c
2022-05-01LibJS: Remove assertions that are now part of structured headersLinus Groh
This is an editorial change in the ECMA-262 spec. See: https://github.com/tc39/ecma262/commit/4fde514
2022-05-01LibJS: Add missing comment in OrdinaryToPrimitiveLinus Groh
2022-05-01ifconfig: Stop supporting setting/displaying default gatewayMaciej
The `route` command allows more sophiscated control over routing tables now, and supporting this in ifconfig is no longer meaningful.
2022-05-01LibC: Implement a faster memset routine for x86-64 in assemblyDaniel Bertalan
This commit addresses the following shortcomings of our current, simple and elegant memset function: - REP STOSB/STOSQ has considerable startup overhead, it's impractical to use for smaller sizes. - Up until very recently, AMD CPUs didn't have support for "Enhanced REP MOVSB/STOSB", so it performed pretty poorly on them. With this commit applied, I could measure a ~5% decrease in `test-js`'s runtime when I used qemu's TCG backend. The implementation is based on the following article from Microsoft: https://msrc-blog.microsoft.com/2021/01/11/building-faster-amd64-memset-routines Two versions of the routine are implemented: one that uses the ERMS extension mentioned above, and one that performs plain SSE stores. The version appropriate for the CPU is selected at load time using an IFUNC.
2022-05-01readelf: Add printing for STT_GNU_IFUNCDaniel Bertalan
2022-05-01LibELF: Fail gracefully when IFUNC resolver's object has textrelsDaniel Bertalan
.text sections of objects that contain textrels have to be writable during the relocation procedure. Because of this, we would segfault if we tried to execute IFUNC resolvers defined in them. Let's print a meaningful error message instead. Additionally, a warning is now printed when we load objects with textrels, as in the future, additional security mitigations might interfere with them being loaded.
2022-05-01LibELF: Add support for IFUNCsDaniel Bertalan
IFUNC is a GNU extension to the ELF standard that allows a function to have multiple implementations. A resolver function has to be called at load time to choose the right one to use. The PLT will contain the entry to the resolved function, so branching and more indirect jumps can be avoided at run-time. This mechanism is usually used when a routine can be made faster using CPU features that are available in only some models, and a fallback implementation has to exist for others. We will use this feature to have two separate memset implementations for CPUs with and without ERMS (Enhanced REP MOVSB/STOSB) support.
2022-05-01LibELF: Keep track of whether the PLT contains REL or RELA relocationsDaniel Bertalan
2022-05-01LibELF: Perform .relr.dyn relocations before .rel.dynDaniel Bertalan
IFUNC resolvers depend on the resolved function's address having been relocated by the time they are called. This means that relative relocations have to be done first. The linker is kind enough to put R_*_RELATIVE before R_*_IRELATIVE in .rel.dyn, but .relr.dyn contains relative relocations too.
2022-05-01LibELF: Relax restriction on allowed values of EI_OSABI to allow GNUAndrew Kaster
This check is here to make sure we only try to load serenity binaries. However, with -fprofile-instr-generate -fcoverage-mapping, clang sets the EI_OSABI field to 3, for GNU. The instrumentation uses a lot of retained COMDAT sections for coverage instrumentation that get the SHF_GNU_RETAINED section header flag set on them, forcing llvm to set the ABI to GNU.
2022-04-30LibJS: Stop fetching GlobalObject from target's realm in ArrayBufferIdan Horowitz
A function object's realm is not necessarily non-null (like when called via the Reflect API), so we can't blindly dereference it. Instead use the object's own GlobalObject.
2022-04-30LibJS: Reject -00000 as extended year in Date parsingIdan Horowitz
2022-04-30LibJS: Do not negate zero into negative zero in ToIntegerOrInfinityIdan Horowitz
When the input value was in the range of [-1, 0] we would incorrectly negate the resulting integer, resulting in -0 instead of the expected 0
2022-04-30LibJS: Reorder parsing for TimeSpecWithOptionalTimeZoneNotAmbiguousIdan Horowitz
Because `TimeHour TimeZoneNumericUTCOffsetNotAmbiguous[opt] TimeZoneBracketedAnnotation[opt]` can be a subset of `TimeHourNotValidMonth TimeZone` we would not exhaust the whole input in some cases, which would result in an incorrectly thrown exception.
2022-04-30Kernel+route: Support global routing table deletionbrapru
2022-04-30LibC: Add all the `POSIX_FADV_*` constantsTim Schumacher
2022-04-29LibJS: Replace U+2212 MINUS SIGN with U+002D HYPHEN-MINUSLinus Groh
This is an editorial change in the Temporal spec. See: https://github.com/tc39/proposal-temporal/commit/bbcd37b
2022-04-29LibJS: Add notes about lifetime of surrounding agentLinus Groh
This is an editorial change in the Temporal spec. See: https://github.com/tc39/proposal-temporal/commit/54e4abc
2022-04-29LibJS: Fix numeric type confusion in GetEpochFromISOParts return valueLinus Groh
This is an editorial change in the Temporal spec. See: https://github.com/tc39/proposal-temporal/commit/2a59eac
2022-04-29LibJS: Update for structured headers added to various Temporal AOsLinus Groh
This is an editorial change in the Temporal spec. See: https://github.com/tc39/proposal-temporal/commit/e6a15a5
2022-04-29LibJS: Drop "integral part of" languageLinus Groh
This is an editorial change in the Temporal spec. See: https://github.com/tc39/proposal-temporal/commit/6ec1608
2022-04-29LibJS: Fix one more instance of Number value / integer confusionLinus Groh
This is an editorial change in the Temporal spec. See: https://github.com/tc39/proposal-temporal/commit/5b1b783
2022-04-29LibJS: Define IsBuiltinCalendar in terms of AvailableCalendarsLinus Groh
This is an editorial change in the Temporal spec. See: https://github.com/tc39/proposal-temporal/commit/896b72d
2022-04-29LibJS: Rename DateFromFields to CalendarDateFromFields, etcLinus Groh
This is an editorial change in the Temporal spec. See: https://github.com/tc39/proposal-temporal/commit/fd27b54
2022-04-29LibC: Implement posix_fadvise() (as a harmless no-op)Andreas Kling
2022-04-29LibC: Add more _POSIX_FOO constants to unistd.hAndreas Kling
Let's advertise more of our POSIX capabilities. :^)
2022-04-29LibC: Add MIN, MAX and howmany macros to sys/param.hAndreas Kling
2022-04-29LibC: Actually set the FPU environment instead of its pointerTim Schumacher
2022-04-29LibJS: Fix RoundNumberToIncrement spec numberLinus Groh