summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-02-11AK: Make Bitmap construction OOM-fallibleIdan Horowitz
2022-02-11LibWeb: Remove CascadeOrigin::Any enum valueAndreas Kling
Looks like I removed all uses of this value, but not the value itself! Thanks to Idan for pointing that out. :^)
2022-02-11Kernel/Net: Don't update TCP socket "last sent ACK" field too earlyAndreas Kling
Defer updating this field until after the last fallible operation has succeeded.
2022-02-11Kernel/E1000: Bump RX/TX buffer count to 256/256Andreas Kling
We were frequently dropping packets when downloading large files. Then we had to wait for TCP retransmission which slowed things down. This patch dramatically improves E1000 throughput by increasing the number of RX/TX buffers from 32/8 to 256/256. The largest chunk of JavaScript from Discord now downloads in roughly 1 second instead of 7 seconds. :^)
2022-02-11Kernel: Make contiguous VM objects use "user physical pages" by defaultAndreas Kling
If someone specifically wants contiguous memory in the low-physical- address-for-DMA range ("super pages"), they can use the allocate_dma_buffer_pages() helper.
2022-02-11LibWeb: Remove unused CascadeOrigin::AnyAndreas Kling
This was an ad-hoc concept from before we implemented the CSS cascade.
2022-02-11Kernel: Workaround QEMU hypervisor.framework CPUID max leaf bugIdan Horowitz
This works around issue #10382 until it is fixed on QEMU's side. Patch from Anonymous.
2022-02-10LibSQL: Return unimplemented errors from unimplemented MATCH expressionsTimothy Flynn
A bit friendlier than crashing the entire SQLService process.
2022-02-10LibSQL: Remove the now-unused ExecutionContext::result objectTimothy Flynn
The INSERT and SELECT statements set up this object for any expression evaluation to indicate errors. This is no longer needed.
2022-02-10LibSQL: Convert SQL expression evaluation to use ResultOrTimothy Flynn
Instead of setting an error in the execution context, we can directly return that error or the successful value. This lets all callers, who were already TRY-capable, simply TRY the expression evaluation.
2022-02-10LibSQL+SQLServer: Introduce and use ResultOr<ValueType>Timothy Flynn
The result of a SQL statement execution is either: 1. An error. 2. The list of rows inserted, deleted, selected, etc. (2) is currently represented by a combination of the Result class and the ResultSet list it holds. This worked okay, but issues start to arise when trying to use Result in non-statement contexts (for example, when introducing Result to SQL expression execution). What we really need is for Result to be a thin wrapper that represents both (1) and (2), and to not have any explicit members like a ResultSet. So this commit removes ResultSet from Result, and introduces ResultOr, which is just an alias for AK::ErrorOrr. Statement execution now returns ResultOr<ResultSet> instead of Result. This further opens the door for expression execution to return ResultOr<Value> in the future. Lastly, this moves some other context held by Result over to ResultSet. This includes the row count (which is really just the size of ResultSet) and the command for which the result is for.
2022-02-10LibCore: Convert AnonymousBuffer to use System::anon_createkleines Filmröllchen
2022-02-10LibCore/System: Add anon_create syscall wrapperkleines Filmröllchen
This wrapper is particularly helpful as we use a combination of similar syscalls on Linux to simulate the behavior of the Serenity-exclusive anon_create syscall. Users therefore won't have to worry about the platform anymore :^)
2022-02-10LibWeb: Make :root selector match <html> element onlyAndreas Kling
We were matching every HTML element, instead of just the root (<html>)
2022-02-10LibWeb: Add "tag name" buckets to StyleComputer::RuleCacheAndreas Kling
We can skip rules that require a specific tag name when matching against any element with a different tag name. :^)
2022-02-10LibWeb: Add "ID" buckets to StyleComputer::RuleCacheAndreas Kling
We can skip rules that require a specific ID when matching against any element that doesn't have that ID.
2022-02-10LibWeb: Cache CSS rules in buckets to reduce number of rules checkedAndreas Kling
This patch introduces the StyleComputer::RuleCache, which divides all of our (author) CSS rules into buckets. Currently, there are two buckets: - Rules where a specific class must be present. - All other rules. This allows us to check a significantly smaller set of rules for each element, since we can skip over any rule that requires a class attribute not present on the element. This takes the typical numer of rules tested per element on Discord from ~16000 to ~550. :^) We can definitely improve the cache invalidation. It currently happens too often due to media queries. And we also need to make sure we invalidate when mutating style through CSSOM APIs.
2022-02-10LibWeb: Perform CSS custom property cascade once instead of per-propertyAndreas Kling
Previously we would re-run the entire CSS selector machinery for each property resolved. Instead of doing that, we now resolve a final set of custom property key/value pairs at the start of the cascade.
2022-02-10LibWeb: Fix a bunch of trivial clang-tidy warnings in StyleComputerAndreas Kling
- Replace "auto" with "auto const" where appropriate. - Remove an unused struct. - Make sort_matching_rules() a file-local static function. - Remove some unnecessary includes.
2022-02-10LibWeb: Rename a CascadeOrigin parameter in StyleComputerAndreas Kling
2022-02-10HackStudio: Fix error handling logic in delete_actionDaste
The `result.is_error()` check was inverted, causing a crash.
2022-02-10HackStudio: Don't save file when filename is emptyDaste
When saving a new file, save_as_action will return if the filename input was empty, but save_action would still try to save the file. Added a guard to make sure we never try to save files with empty filenames.
2022-02-10pgrep: Port to LibMainRiccardo Arena
Use unveil to allow access only to required paths. Switch to new pledge format.
2022-02-10pidof: Port to LibMainRiccardo Arena
Use pledge/unveil to allow access only to required paths and syscalls.
2022-02-10LibJS: Do not refer to moved-from completions / valuesTimothy Flynn
In the ThrowCompletionOr constructors, the VERIFY statements are using moved-from objects. We should not rely on those objects still being valid after being moved.
2022-02-10LibJS: Add tests for Set.prototype.keys which is an alias for valuesdavidot
2022-02-10LibJS: Fix Map Iterators when elements are deleted during iterationdavidot
Before this would assume that the element found in operator++ was still valid when dereferencing it in operator*. Since any code can have been run since that increment this is not always valid. To further simplify the logic of the iterator we no longer store the index in an optional.
2022-02-10AK: Clear minimum when removing last node of RedBlackTreedavidot
2022-02-10AK: Fix RedBlackTree::find_smallest_not_below_iteratordavidot
Before this was incorrectly assuming that if the current node `n` was at least the key and the left child of `n` was below the key that `n` was always correct. However, the right child(ren) of the left child of `n` could still be at least the key. Also added some tests which produced the wrong results before this.
2022-02-10Kernel: Convert i8042 code to use the ErrorOr pattern more broadlyLiav A
Not only does it makes the code more robust and correct as it allows error propagation, it allows us to enforce timeouts on waiting loops so we don't hang forever, by waiting for the i8042 controller to respond to us. Therefore, it makes the i8042 more resilient against faulty hardware and bad behaving chipsets out there.
2022-02-10Kernel: Check i8042 existence before trying to use itLiav A
If we don't do so, we just hang forever because we assume there's i8042 controller in the system, which is not a valid assumption for modern PC hardware.
2022-02-10LibSQL: Do not crash when SELECTing from an empty tableTimothy Flynn
The crash was caused by getting the first element of an empty vector.
2022-02-10LibSQL+SQLServer: Move LibSQL/SQLResult.[h,cpp] to LibSQL/Result.[h,cpp]Timothy Flynn
Rename the file to match the new class name.
2022-02-10LibSQL: Remove now-unused SQLResult classTimothy Flynn
2022-02-10LibSQL+SQLServer: Return the new Result class from statement executionsTimothy Flynn
We can now TRY anything that returns a SQL::Result or an AK::Error.
2022-02-10LibSQL: Add a new Result class to replace SQLResultTimothy Flynn
The existing SQLResult class predates our TRY semantics. As a result, in the AST execution methods, there is a lot of is_error checking on values that could instead be wrapped with TRY. This new class will allow such semantics, and is also stack allocated (no need to be a RefPtr). It is heavily based on LibJS's completion class.
2022-02-10LibSQL: Do not return copies of vectors from table/index definitionsTimothy Flynn
2022-02-10Base: Add a quote to the fortunes databasekleines Filmröllchen
2022-02-10LibSoftGPU: Dispatch based on ClipPlane enum at compile-timeLenny Maiorani
The `ClipPlane` enum is being looped over at run-time performing run-time dispatch to determine the comparison operation in `point_within_clip_plane`. Change this `for` loop to be linear code which dispatches using a template parameter. This allows for the `point_within_clip_plane` function to do compile-time dispatch. Note: This linear code can become a compile-time loop when static reflection lands in C++2[y|z] allowing looping over the reflected `enum class`.
2022-02-10Base+HackStudio: Add or insert missing iconselectrikmilk
Insert or add icons where they are missing.
2022-02-10js: Add a command line argument to evaluate a string as a scriptTimothy Flynn
For example: $ js -c "console.log(42)" 42
2022-02-10Utilities: Port realpath to LibMainRyan Chandler
2022-02-10Applications: Port Spreadsheet to LibMainLenny Maiorani
2022-02-10Applications: Port SpaceAnalyzer to LibMainLenny Maiorani
2022-02-10Applications: Port Debugger to LibMainLenny Maiorani
2022-02-10AK: Change static base36 character map to function-local constexprLenny Maiorani
Static variables consume memory and can be subject to less optimization. This variable is only used in 1 place and can be moved into the function and make it non-static.
2022-02-10Base: Add pastel color paletteelectrikmilk
Add pastel color palette for PixelPaint.
2022-02-10Base: Add Ol Chiki characters to font Katica Regular 10Lady Gegga
1C50, 1C51, 1C5A-1C67, 1C6A-1C70, 1C73-1C7C, 1C7E, 1C7F https://www.unicode.org/charts/PDF/U1C50.pdf
2022-02-10Base: Add Lycian characters to font Katica Regular 10Lady Gegga
10280-1029C https://www.unicode.org/charts/PDF/U10280.pdf
2022-02-10Base: Add Carian characters to font Katica Regular 10Lady Gegga
102A0-102D0 https://www.unicode.org/charts/PDF/U102A0.pdf