summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-07-31Kernel: Remove SmapDisabler in sys$setsockopt()Andreas Kling
2020-07-31Kernel: Remove SmapDisabler in sys$ioctl()Andreas Kling
Use copy_{to,from}_user() in the various File::ioctl() implementations instead of disabling SMAP wholesale in sys$ioctl(). This patch does not port IPv4Socket::ioctl() to those API's since that will be more involved. That function now creates a local SmapDisabler.
2020-07-30Kernel: Rename region_from_foo() => find_region_from_foo()Andreas Kling
Let's emphasize that these functions actually go out and find regions.
2020-07-30Kernel: Turn Process::FileDescriptionAndFlags into a proper classAndreas Kling
2020-07-30Kernel: Simplify the ScopedSpinLock templateAndreas Kling
We can just templatize the LockType here. This makes my Qt Creator syntax highlighting work again. :^)
2020-07-30Kernel: Move syscall implementations out of Process.cppAndreas Kling
This is something I've been meaning to do for a long time, and here we finally go. This patch moves all sys$foo functions out of Process.cpp and into files in Kernel/Syscalls/. It's not exactly one syscall per file (although it could be, but I got a bit tired of the repetitive work here..) This makes hacking on individual syscalls a lot less painful since you don't have to rebuild nearly as much code every time. I'm also hopeful that this makes it easier to understand individual syscalls. :^)
2020-07-30Kernel: Run clang-format on Scheduler.cppAndreas Kling
2020-07-30Shell: Tweak tests to use 'echo -n' when newlines are significantAnotherTest
2020-07-30Userland: Add support for the '-n' flag to 'echo'AnotherTest
2020-07-30Shell: Add tests for '&&' and '||' parsing and evaluationAnotherTest
2020-07-30Shell: Fix parse mistake in '&&' not being recursiveAnotherTest
2020-07-30Shell: Do not assume that wstatus is valid after wait() returns 0AnotherTest
According to the linux waitid manpage, the value of wstatus is unspecified if wait() returns 0, so we should not assume that any value it holds is correct (including the exit code). This is only applicable to the Lagom build.
2020-07-30AK: Add (more) tests for String(View)::split*AnotherTest
This patchset adds some tests for String(View)::split*, hopefully documenting their behaviour in some cases.
2020-07-30LibCrypto: Add some checksum algorithmsstelar7
Namely CRC32 and Adler32
2020-07-30Meta: Add .gitattributes filestelar7
This file is used to configure Git to properly handle line endings
2020-07-30Kernel: Make BXVGA detection actually detect VBoxVGALuke
I decided to play around with trying to run Serenity in VirtualBox. It crashed WindowServer with a beautiful array of multi-color flashing letters :^) Skipping getting side-tracked seeing that it chose MBVGA in the serial debug and trying to debug why it caused such a display, I finally checked BXVGA. While find_framebuffer_address checks for VBoxVGA, init_stage2 didn't. Whoops!
2020-07-30LibWeb: Complete the redirect URL before loading itAnotherTest
the "Location" header is allowed to be a relative URL (as is the case in our very own WebServer!)
2020-07-30LibX86: FPU instructions never have a lock prefixNico Weber
2020-07-30LibX86: Disassemble most remaining FPU instructionsNico Weber
Some of the remaining instructions have different behavior for register and non-register ops. Since we already have the two-level flags tables, model this by setting all handlers in the two-level table to the register op handler, while the first-level flags table stores the action for the non-reg handler.
2020-07-29Toolchain: Strip cc1Nico Weber
2020-07-29Meta: make check-style.sh ignore Libraries/LibCore/puff.cppEmanuele Torre
This file was formerly named `Libraries/LibCore/puff.c` and it was not checked by `check-style.sh` because it only checks .h and .cpp files. Since this file was not written by us, we shouldn't check its style. This file was also causing our Travis builds to fail.
2020-07-29Lagom: Clean up glob after puff.c -> puff.cpp renameNico Weber
2020-07-29Toolchain: Let's leave cc1 in place for nowAndreas Kling
2020-07-29LibCore: Rename puff.c => puff.cppAndreas Kling
Now that we don't keep a C compiler around in the toolchain (to save space) we can't have .c files in the build. This reminds me that #362 exists and we should fix that at some point.
2020-07-29Meta: Find potentially missing resourcesBen Wiederhake
2020-07-29Eyes: Introduce and use iconsBen Wiederhake
The icons are made using a screenshot which was then scaled down. The 16x16 icon needed some light post-processing to look good.
2020-07-29FileManager: Improce icon contrast (filetypes music and sound)Ben Wiederhake
2020-07-29PixelPaint: Improve icon contrastBen Wiederhake
2020-07-29DisplaySettings: Improve icon contrastBen Wiederhake
2020-07-29Screensaver: Improve icon contrastBen Wiederhake
2020-07-29Snake: Improve icon contrastBen Wiederhake
2020-07-29Meta: Ensure that icons and other resources remain non-executableBen Wiederhake
2020-07-29Icons: Unset executable flagBen Wiederhake
Icons cannot be executed. Or at least they *really* shouldn't be executed.
2020-07-29Meta: Fix shellcheck issues in BuildIt.shBen Wiederhake
2020-07-29Travis: Reduce Toolchain cache item size by 73%Ben Wiederhake
Empirically, every single push or PR has to download *and then upload* about 3.6 GiB of "cache stuff", which takes up about 400 seconds: https://travis-ci.com/github/SerenityOS/serenity/builds/177500795 On every single push/PR! No matter what! Those 3.6 GB consist of: - 3.2 GB Toolchain cache (around 260 MB per compressed item) - 0.4 GB ccache, but is capped at 0.5 GB: https://travis-ci.com/github/BenWiederhake/serenity/builds/177528549 - (And 200 KB for some weird debian package? Dunno.) Investigating in the size, the Toolchain consists mostly of *DEBUG SYMBOLS IN THE COMPILER BINARIES* which comically misses the point. If we ever run into compiler crashes, any stacktrace would be lost anyway as soon as the Travis VM shuts down. Furthermore, Travis will only ever compile Serenity itself, and Serenity forbids C in it's Contribution Guidelines. That's another 20 MB we don't need to cache. Stripping the binaries and deleting the C compiler reduces the uncompressed size from 1200 MB down to 220 MB. The compressed size gets reduced from 260 MB to 70MB. That's a reduction of 73%. It'll take a while until the 'old' toolchains get deleted. I guess it'll take less than a week. From that point onward, the Travis cache will be 1.2 GB, consisting of: - 0.7 GB Toolchain cache - 0.5 GB ccache - (And that weird 200 KB deb file) If network speeds are linear, then this should reduce the "cache network overhead time" from about 400 seconds to about 120 seconds. tl;dr: Strip unnecessary debug infos, delete an unused files, and speed everything up by two minutes. (Both Toolchain cache hits and Toolchain rebuilds!)
2020-07-29Travis: Show cache sizes before uploadBen Wiederhake
Uploading the cache takes several minutes. This gives us a handy way to tell which parts the worst culprits are. The Toolchain cache seems to be the worst offender by far, because the binary size nearly doubled when we upgraded from gcc9 to gcc10.
2020-07-28Net: Fix IPv4 fragmentation not working for larger payloadsAndreas Kling
We were masking the fragment offset bits incorrectly in the IPv4 header sent out with fragments. This worked up to ~32KB but after that, things would get very confused. :^)
2020-07-28Kernel: Use AK::Span a bunch in the network adapter codeAndreas Kling
2020-07-28LibWeb: Make layout tree have non-const pointers to the DOMAndreas Kling
Const pointers into the DOM was a nice idea, but in practice, there are too many situations where the layout tree wants to some non-const thing to the DOM.
2020-07-28LibWeb: Oops, provide the correct WrapperType for UIEventAndreas Kling
2020-07-28LibWeb: Add UIEvent class (base of MouseEvent, and others)Andreas Kling
2020-07-28LibWeb: Move the Page/Frame/EventHandler classes into Page/Andreas Kling
2020-07-28LibWeb: Fix bad #include in CSSParser.cppAndreas Kling
2020-07-28LibWeb: Move the CSS parser into CSS/Parser/Andreas Kling
2020-07-28LibWeb: Move the HTML parser into HTML/Parser/Andreas Kling
2020-07-28LibCrypto: Implement and test CTR decryptionBen Wiederhake
2020-07-28LibCrypto: Fix broken CTR mode, implement RFC 3686 Test VectorsBen Wiederhake
2020-07-28LibCrypto: Document CTR weirdness in depthBen Wiederhake
2020-07-28LibCrypto: Already using strong cryptoBen Wiederhake
ModularFunctions::random_number calls into AK::fill_with_random calls (on Serenity) into arc4random_buf calls into Process::sys calls into get_good_random_bytes, which is cryptographically secure.
2020-07-28LibJS: Soothe gcc about printf-%s on (non-)nullptrBen Wiederhake