summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-01-04LibCore: Make Core::Object::property() constAndreas Kling
2021-01-03Toolchain+LibTTF: Remove some blank line at the end of CMake files.Emanuele Torre
2021-01-03Meta: Rewrite the check-newlines-at-eof script in pythonEmanuele Torre
The bash version takes around 15 seconds to run; that is way too slow. This python3 version should take less than one second to run. :^) Also, the script will now also check .py files and .txt CMake files.
2021-01-03Calculator: Port interface to GML (#4742)Glenford Williams
2021-01-03CrashReporter: Show termination signalLinus Groh
...in both text (using strsignal) and numeric form. Closes #4775.
2021-01-03Kernel+LibELF: Store termination signal in coredump ProcessInfoLinus Groh
2021-01-03SystemMonitor: Re-use the /proc/all file descriptor when updatingTom
This makes it more likely to be able to get statistics when resources are scarce.
2021-01-03ResourceGraph: Re-use the ProcFS file descriptors when updating statsTom
This makes it more likely to be able to get statistics when resources are scarce.
2021-01-03LibCore: Allow caching and reusing the ProcFS file descriptorsTom
Because ProcFS will refresh the data upon seek to 0, we can re-use the same file descriptor. This saves us from having to open it every time, but it also reduces the odds that we are unable to open a new file descriptor due to low memory conditions.
2021-01-03LibCore: Report error condition when reading process statistics failedTom
2021-01-03ResourceGraph: Handle low memory situations bit betterTom
Rather than crashing with an ASSERT, when we can't read from /proc we draw the graph with red instead. This also alerts the user that memory is very low.
2021-01-03Kernel: Improve ProcFS behavior in low memory conditionsTom
When ProcFS could no longer allocate KBuffer objects to serve calls to read, it would just return 0, indicating EOF. This then triggered parsing errors because code assumed it read the file. Because read isn't supposed to return ENOMEM, change ProcFS to populate the file data upon file open or seek to the beginning. This also means that calls to open can now return ENOMEM if needed. This allows the caller to either be able to successfully open the file and read it, or fail to open it in the first place.
2021-01-03Lagom: Build gml-formatLinus Groh
2021-01-03Userland: Add gml-formatLinus Groh
TL;DR: Like clang-format but for GML files :^) It takes a list of files (or reads from standard input if none is given), formats them and prints the result to standard output or writes back to the file when using the -i/--inplace option.
2021-01-03Playground: Add "Format GML" menu actionLinus Groh
This can be invoked via the Edit menu or with Ctrl+Alt+F. If the current text in the editor can be parsed as valid GML, it will be formatted and updated, otherwise an alert is shown (no specific error message as those are only printed to the debug console in the parser for now). If the source contains comments, which would be lost after formatting, the user will be notified and has to confirm the action.
2021-01-03LibGUI: Add GMLFormatterLinus Groh
This will be useful for both the Playground app as well as for a standalone CLI tool (à la clang-format). It cannot handle comments yet (and will drop them from the formatted output), but other than that it produces valid GML that matches the formatting we have so far! :^)
2021-01-03LibGUI: Allow comment(s) before first class marker in GML parserLinus Groh
This wasn't considered valid GML but now is: // This is a comment // This as well @Foo::Bar {}
2021-01-03Kernel+Loader.so: Allow dynamic executables without an interpreterWilliam Marlow
Commit a3a9016701e487a5ca92d83b8cff179a190cdeb2 removed the PT_INTERP header from Loader.so which cleaned up some kernel code in execve. Unfortunately it prevents Loader.so from being run as an executable
2021-01-03ls: Use Core::File::real_path_for()Andreas Kling
2021-01-03Kernel: Fix ProcFS returning Inodes that are being deletedTom
There is a window between dropping the last reference and removing a ProcFSInode from the lookup map. So, when looking up we need to check if that Inode is being destructed.
2021-01-03LibELF: Add missing newlines at end of filesAndreas Kling
2021-01-03LibVT: Show terminal hyperlink targets as tooltipsAndreas Kling
This lets you see the target of a hyperlink before deciding to drag or double click it.
2021-01-03LibGUI: Hide the tooltip if widget with open tooltip unsets itAndreas Kling
If you call set_tooltip({}) on a widget currently showing a tooltip, we will now remove the tooltip window from screen.
2021-01-03LibVT: Make terminal hyperlinks double-click-to-activateAndreas Kling
This patch makes hyperlinked terminal cells require a double click to activate. The appearance of a hovered link is changed to not look like a classic underlined link, but instead like some kind of typical double-clickable GUI widget. Also the hover cursor for links is changed from Hand to Arrow.
2021-01-03LibELF: Support relocating weak symbols against global librariesWilliam Marlow
A strong symbol anywhere in an executable must override any weak symbol used in any library. This means that the weak symbol must be overridden by a strong symbol even if the strong symbol is in a dependent library. This means we need to perform relocations twice, and resolve weak symbols globally before attempting to resolve them locally. Consequentially we need to defer performing any initialisations until after we have performed the second round of relocations.
2021-01-03Loader.so+LibELF: Move most of Loader.so's logic into ELF::DynamicLinkerWilliam Marlow
Loader.so now just performs the initial self relocations and static LibC initialisation before handing over to ELF::DynamicLinker::linker_main to handle the rest of the process. As a trade-off, ELF::DynamicLinker needs to be explicitly excluded from Lagom unless we really want to try writing a cross platform dynamic loader
2021-01-03man: Rename manual section 1 to "User programs"Brendan Coles
2021-01-03Shell: Implement a 'source' builtinAnotherTest
2021-01-03Shell: Show a snippet of what caused the error (if possible)AnotherTest
Now we can have nice errors too: ``` Shell: Glob did not match anything! 0| echo ?x ~~~~~~~~~~^^ 1| ```
2021-01-03Shell: Give commands and globs a source positionAnotherTest
This will help us have nicer error reporting.
2021-01-03Shell: Move AST::create() into the header and use itAnotherTest
2021-01-03TextEditor+Meta+Ports+Shell: Remove blank lines at the end of some filesEmanuele Torre
2021-01-03LibGfx+Ports: Add missing newlines at the end of file.Emanuele Torre
2021-01-03Meta: Add a script that makes sure files end in a newline.Emanuele Torre
This script checks .html, .css, .js, .cpp, .h, .gml and .sh files. It also makes sure that there are no black lines at the end of the files checked.
2021-01-03FuzzJs: If the program successfully parsed, try running itLuke
This should help us get a lot more coverage in LibJS.
2021-01-03LibGUI: Use String::formatted() and String::number() moreAndreas Kling
2021-01-03LibGUI: Use String::formatted() and String::number() moreAndreas Kling
2021-01-03LibWeb: Convert a bunch of String::format() => String::formatted()Andreas Kling
2021-01-03CrashReporter: Make the window resizableAndreas Kling
Also hide the backtrace scrollbars when they're not needed.
2021-01-03FontEditor: Add help documentationBrendan Coles
2021-01-03ProtocolServer: Add some debug log output for failed downloadsAndreas Kling
To make it easier to work out what went wrong.
2021-01-03Demos: add CatDog (Neko clone)TheMorc
2021-01-03Browser: Tell LaunchServer we only want to show the downloads directoryAndreas Kling
Browser only uses LaunchServer for one thing: to open the user's downloads directory after a download is finished. Eventually I'd like to move this functionality to a separate download manager service, but for now, let's at least lock down what Browser is able to ask LaunchServer to do. :^)
2021-01-03LaunchServer+LibDesktop: Add ability to allow URL without handlerAndreas Kling
This lets clients say they want to be able to open a specific URL without specifying which handler to use.
2021-01-03Revert "Terminal: Tell LaunchServer we only need to open "Help""Andreas Kling
This reverts commit 8bf98eb581e6297e732bd442cd5c95cf2e8940ad. Terminal uses LaunchServer to open URLs that you click on. Oopsie!
2021-01-03Terminal: Tell LaunchServer we only need to open "Help"Andreas Kling
2021-01-03LaunchServer+LibDesktop: Add unveil-like mechanism for LaunchServerAndreas Kling
Clients of LaunchServer can now provide a list of allowed handlers, optionally with a specific set of URLs. The list can be sealed to prevent future additions to it. If LaunchServer receives a request to open something not on the allowed handlers list, it will disconnect the client immediately. The main idea here is to allow otherwise restricted programs to launch specific things, e.g "Help" to open their manual, or "Browser" to load the SerenityOS home page. :^)
2021-01-03LibGUI: Also specialize PgUp/PgDn/Home/End in line-wrapped TextEditorsAndreas Kling
This exposes some bugs in TextEditor's widget/document coordinate conversions which we'll need to track down separately.
2021-01-03LibGUI: Improve up/down arrow behavior in TextEditor with wrappingAndreas Kling
Instead of moving between physical lines, the up/down arrow keys now move between visual lines.
2021-01-03Help: Support loading help page by file path as command line argumentBrendan Coles