summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-08-05Kernel: Use Userspace<T> for the open syscallBrian Gianforcaro
2020-08-05Kernel: Switch IPv4Socket receive queue to SinglyLinkedListWithCount<T>Brian Gianforcaro
Avoid walking the packet queue, instead use a linked list with a count.
2020-08-05AK: Add SinglyLinkedListWithCount<T>, a singulary linked list with countBrian Gianforcaro
There are use cases where a linked list is useful but it's also worth the overhead to maintain a count so you can quickly answer queries of the size of the list.
2020-08-04Kernel: Send SIGTTIN and SIGTTOU signals on background TTY read/writeAndreas Kling
A process that is not in the foreground process group of a TTY should not be allowed to read/write that TTY. Instead, we now send either a SIGTTIN (on read) or SIGTTOU (on write) signal to the process, and fail the I/O syscall with EINTR. Fixes #205.
2020-08-04Shell: Give the TTY to the foreground processAnotherTest
This fixes the bug with the shell not waiting for any foreground process that attempts to read from the terminal in the Lagom build.
2020-08-04Revert "LibM: Always include <math.h> instead of <LibM/math.h>"Andreas Kling
This reverts commit dc12cbca41b8b667ae7ced1066647d47186d1557. Sadly this broke the build due to some confusion about <new>. Reverting until this can be solved fully.
2020-08-04Revert "AK: Let the compiler provide the default new and delete operators"Andreas Kling
This reverts commit 45b05e9734962b07f95630e76b9a680e1775f002. I forgot about the Toolchain build again. :^(
2020-08-04SystemMonitor: Replace custom ProcessTableView with just GUI::TableViewAndreas Kling
This class was added in the very early days of LibGUI, when I wasn't quite sure if subclassing table views made sense or not.
2020-08-04LibM: Always include <math.h> instead of <LibM/math.h>Andreas Kling
This makes Lagom pick up the host math.h, which is what we want.
2020-08-04AK: Let the compiler provide the default new and delete operatorsAndreas Kling
...except in kernelspace.
2020-08-04Shell: Use NonnullRefPtr to simplify some things in the parser/ASTAndreas Kling
2020-08-04Kernel: Make File::write() and File::read() return KResultOr<size_t>Andreas Kling
Instead of returning a ssize_t where negative values mean error, we now return KResultOr<size_t> and use the error state to report errors exclusively.
2020-08-04Kernel+LibC: Tidy up sys$ttyname() and sys$ptsname()Andreas Kling
- Remove goofy _r suffix from syscall names. - Don't take a signed buffer size. - Use Userspace<T>. - Make TTY::tty_name() return a String instead of a StringView.
2020-08-04LaunchServer: Disown child processes after spawningAndreas Kling
2020-08-04ResourceGraph.MenuApplet: Disown child processes after spawningAndreas Kling
2020-08-04Clock.MenuApplet: Disown child process after spawningAndreas Kling
2020-08-04SystemMenu: Disown child processes after spawningAndreas Kling
2020-08-04Terminal: Disown child processes after spawningAndreas Kling
2020-08-04SystemMonitor: Disown child processes after spawningAndreas Kling
2020-08-04QuickShow: Disown child process after spawningAndreas Kling
2020-08-04FileManager: Disown spawned processesAndreas Kling
2020-08-04Taskbar: Disown quick-launched programsAndreas Kling
2020-08-04SystemMenu: Disown spawned programsAndreas Kling
2020-08-04Kernel+LibC: Add sys$disown() for disowning child processesAndreas Kling
This syscall allows a parent process to disown a child process, setting its parent PID to 0. Unparented processes are automatically reaped by the kernel upon exit, and no sys$waitid() is required. This will make it much nicer to do spawn-and-forget which is common in the GUI environment.
2020-08-04Kernel: Tidy up the syscalls list by reorganizing the enumerator macroAndreas Kling
2020-08-04Build: Make things build with clang without needing local changesNico Weber
Useful for sanitizer fuzzer builds. clang doesn't have a -fconcepts switch (I'm guessing it just enables concepts automatically with -std=c++2a, but I haven't checked), and at least the version on my system doesn't understand -Wno-deprecated-move, so pass these two flags only to gcc. In return, disable -Woverloaded-virtual which fires in many places. The preceding commits fixed the handful of -Wunused-private-field warnings that clang emitted.
2020-08-04LibGemini: Remove unused private field m_queued_finishNico Weber
2020-08-04LibX86: Remove unused private fields m_segment, m_handlerNico Weber
2020-08-04LibLine: Removed unused private field m_prompt_metricsNico Weber
2020-08-04Build: Support make's and ninja's restat optimizationNico Weber
After running a build command, make by default stat()s the command's output, and if it wasn't touched, then it cancels all build steps that were scheduled only because this command was expected to change the output. Ninja has the same feature, but it's opt-in behind the per-command "restat = 1" setting. However, CMake enables it by default for all custom commands. Use Meta/write-only-on-difference.sh to write the output to a temporary file, and then copy the temporary file only to the final location if the contents of the output have changed since last time. write-only-on-difference.sh automatically creates the output's parent directory, so stop doing that in CMake. Reduces the number of build steps that run after touching a file in LibCore from 522 to 312. Since we now no longer trigger the CMake special case "If COMMAND specifies an executable target name (created by the add_executable() command), it will automatically be replaced by the location of the executable created at build time", we now need to use qualified paths to the generators. Somewhat related to #2877.
2020-08-04Shell: Correct FdRedirection inheriting from two RefCounted basesAnotherTest
Also add missing calls to `adopt()`.
2020-08-04Shell: Add support for ARGV (and $*, $#)AnotherTest
This patchset also adds the 'shift' builtin, as well as the usual tests. closes #2948.
2020-08-04LibJS: The Math.ceil() of a number between -1 and 0 should be -0,Melissa Goad
according to the spec.
2020-08-04Meta: Provide a way to only update a file if the output changesBen Wiederhake
This is only useful for build commands that update their destination in all cases and thus sometimes confuse cmake into rebuilding everything needlessly.
2020-08-04LibCompress: Add LibCompressstelar7
For now this only contains DEFLATE, and a very simple Zlib Eventually GZip, etc. can go here as well.
2020-08-04LibWeb: Make sure that head and body always get the HTML elementLuke
Now that document element returns a generic DOM element, we need to make sure head and body get a html element. The spec just says to check if the document element is a html element, so let's do that.
2020-08-04Shell: factor out updating the path cache into a function.Mathieu PATUREL
2020-08-04Shell: update cached_path when adding aliasesMathieu PATUREL
This has the nice side effect of fixing alias completion, because cached_path is the source of truth for the completion system, and it was only refreshed (with shell::cache_path()) in the shell's constructor, before the rc files where loaded (ie no aliases) This also means that shell::is_runnable can now rely on the cache, and doesn't have to check the aliases itself.
2020-08-04Shell: highlight runnable commandsMathieu PATUREL
And display in red the command which will result in something like "no command, or is directory" (inspired by the fish shell).
2020-08-04AK: Remove an unused variable in the Span test (#2985)Uma Sankar
2020-08-03LibWeb: Add a very basic test for Text node APIs ("data" and "length")Andreas Kling
2020-08-03LibWeb: Add CharacterData and Text IDL interfacesAndreas Kling
2020-08-03LibWeb: Reorganize tests into DOM/ and HTML/Andreas Kling
2020-08-03LibWeb: Add Element.{next,previous}ElementSibling IDL attributesAndreas Kling
2020-08-03LibWeb: Move "element sibling" getters to NonDocumentTypeChildNodeAndreas Kling
Here's another CRTP mixin since that's the best we can do with C++. This prepares exposing these via IDL on Element and CharacterData.
2020-08-03LibWeb: Send key events to the WebContent processAndreas Kling
This makes contenteditable work in multi-process mode. :^)
2020-08-03Unicode: s/codepoint/code_point/gAndreas Kling
Unicode calls them "code points" so let's follow their style.
2020-08-03Kernel: Use Userspace<T> in sys$link() and sys$symlink()Andreas Kling
2020-08-03Meta: Add Nico Weber to the contributors list :^)Andreas Kling
2020-08-03WindowServer: Bring window stack to front when clicking on frameTom
When clicking on a window's frame that is blocked by a modal window, we want to bring the entire window stack to the front regardless of where the user clicked in the frame (not just the icon).