summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-12-20Build: Get rid of the USERLAND defineAndreas Kling
Let's simplify things. There is now only KERNEL. To see if you're on Serenity, check if __serenity__ is defined.
2019-12-20Build: Have makeall.sh clean up before runningAndreas Kling
This matches the old behavior where makeall.sh would always try to produce a clean build.
2019-12-20Toolchain: Use "make install" to install our LibC and LibMAndreas Kling
2019-12-20Build: Abort makeall.sh without building a disk image if make failsAndreas Kling
2019-12-20LibC: Always install as part of the default targetAndreas Kling
We always want to put crt0.o in the location where it can get picked up by the i686-pc-serenity toolchain. This feels a bit hackish but should get the build working again. :^)
2019-12-20Build: Add Libraries/LibPCIDB to library search pathAndreas Kling
2019-12-20Build: Oops, we forgot to build LibMAndreas Kling
2019-12-20Build: Add Libraries/LibPthread to the default includesAndreas Kling
2019-12-20Kernel+LibC: Build with basic -fstack-protector supportAndreas Kling
Use simple stack cookies to try to provoke an assertion failure on stack overflow. This is far from perfect, since we use a constant cookie instead of generating a random one on startup, but it can still help us catch bugs, which is the primary concern right now. :^)
2019-12-20Kernel: Make sure we build with -mno-387, -mno-sse, etc.Andreas Kling
2019-12-20LibC: Make sure we build crt0.oAndreas Kling
2019-12-20Build: Make Kernel/makeall.sh a simple wrapper around the root MakefileAndreas Kling
2019-12-20Build: Add PRE_CXX before the host CXX as wellAndreas Kling
This allows the use of ccache for building the host-side tools.
2019-12-20Build: clean up build system, use one shared Makefilejoshua stein
Allow everything to be built from the top level directory with just 'make', cleaned with 'make clean', and installed with 'make install'. Also support these in any particular subdirectory. Specifying 'make VERBOSE=1' will print each ld/g++/etc. command as it runs. Kernel and early host tools (IPCCompiler, etc.) are built as object.host.o so that they don't conflict with other things built with the cross-compiler.
2019-12-20Kernel: Remove AK_MAKE_NONCOPYABLE from PDE and PTE classesAndreas Kling
This avoids -Wclass-memaccess warnings exposed by the new Makefiles.
2019-12-20Kernel: Fix some warnings about passing non-POD to kprintfAndreas Kling
2019-12-20LibC: Make empty malloc blocks purgeableSergey Bugaev
2019-12-20WindowServer: Starting a drag should forget the active input windowAndreas Kling
When we're in a drag, we're no longer concerned with streaming mouse events to the window that initiated the drag, so just clear the active input window pointer. This fixes an issue where you'd have to click once after drag and drop in order to "release" the mouse from the active input window.
2019-12-20QuickShow: Allow dropping an image file on the QuickShow windowAndreas Kling
We now try to open image files dropped on us from FileManager. :^) The QuickShow code is not exactly well-factored, and should be fixes up to not do the same thing twice, etc.
2019-12-20QuickShow: Don't disable background fillAndreas Kling
2019-12-20TextEditor: Handle drop eventsAndreas Kling
We now handle drop events with data type "url-list". This makes it possible to drop a file from FileManager on TextEditor to open it.
2019-12-20WindowServer+LibGUI: Add data_type and data fields to drag operationsAndreas Kling
These fields are intended to carry the real meat of a drag operation, and the "text" is just for what we show on screen (alongside the cursor during the actual drag.) The data field is just a String for now, but in the future we should make it something more flexible.
2019-12-20LibGUI: GWidget::drop_event() should ignore the event by defaultAndreas Kling
This will cause the event to bubble up the widget tree.
2019-12-20VirtualConsole: use memmove for an overlapping copyjoshua stein
2019-12-19Kernel: Rename vmo => vmobject everywhereAndreas Kling
2019-12-19Kernel: Merge Process::fork() into sys$fork()Andreas Kling
There was no good reason for this to be a separate function.
2019-12-19Toolchain: Redirect git command output to /dev/nullAndreas Kling
Travis is currently failing and whining about the log being too long. It appears to be filling up with output from the git hackery.
2019-12-19Toolchain: Fix outdated MD5 sum of binutils tarballAndreas Kling
2019-12-19Update toolchain to binutils-2.33.1 gcc-9.2.0Philip Herron
Toolchain build makes git repo out of toolchain to allow patching Fix Makefiles to use new libstdc++ Parameterize BuildIt with default TARGET of i686 but arm is experimental
2019-12-19DisplayProperties: Highlight current resolution at startupHüseyin ASLITÜRK
2019-12-19AK: Add Vector::find_first_index(const T&)Hüseyin ASLITÜRK
2019-12-18Kernel: Fix intermittent assertion failure in sys$exec()Andreas Kling
While setting up the main thread stack for a new process, we'd incur some zero-fill page faults. This was to be expected, since we allocate a huge stack but lazily populate it with physical pages. The problem is that page fault handlers may enable interrupts in order to grab a VMObject lock (or to page in from an inode.) During exec(), a process is reorganizing itself and will be in a very unrunnable state if the scheduler should interrupt it and then later ask it to run again. Which is exactly what happens if the process gets pre-empted while the new stack's zero-fill page fault grabs the lock. This patch fixes the issue by creating new main thread stacks before disabling interrupts and going into the critical part of exec().
2019-12-18Kernel: Add a specific-page variant of Region::commit()Andreas Kling
2019-12-18LibHTML: Ignore layout repaints outside the visible viewportAndreas Kling
Now that Frame knows the visible viewport rect, it can easily ignore repaint requests from e.g <blink> elements that are not currently scrolled into view. :^)
2019-12-18LibHTML: Add TreeNode::for_each_in_subtree_of_type<T>()Andreas Kling
This allows you to iterate a subtree and get a callback for every node where is<T>(node) == true. This makes for quite pleasant DOM traversal.
2019-12-18LibHTML: Mark image bitmaps outside the visible viewport as volatileAndreas Kling
When the visible viewport rect changes, we walk the layout tree and check where each LayoutImage is in relation to the viewport rect. Images outside have their bitmaps marked as volatile. Note that the bitmaps are managed by ImageDecoder objects. If a bitmap is purged by the kernel while volatile, we construct a new ImageDecoder next time we need pixels for the image.
2019-12-18LibHTML: Push the visible viewport rect from HtmlView to FrameAndreas Kling
This will allow various mechanisms and optimizations based on the currently visible viewport rect.
2019-12-18LibHTML: Add LayoutNode::is_image() and is<LayoutImage> helperAndreas Kling
2019-12-18LibDraw: Create purgeable GraphicsBitmap in the PNG decoderAndreas Kling
Also add ImageDecoder APIs for controlling the volatile flag.
2019-12-18LibDraw: Add GraphicsBitmap::create_purgeable()Andreas Kling
This allows you to create a process-private purgeable GraphicsBitmap. The volatile flag is controlled via set_volatile() / set_nonvolatile().
2019-12-18Kernel: Ignore MADV_SET_NONVOLATILE if already non-volatileAndreas Kling
Just return 0 right away without changing any region flags.
2019-12-18Kernel: Add MADV_GET_VOLATILE for checking the volatile flagAndreas Kling
Sometimes you might want to know if a purgeable region is volatile.
2019-12-18LibC: Store empty malloc blocks in an array instead of a linked listSergey Bugaev
2019-12-18LibHTML: Insert a new linebox for every newline in "white-space: pre"Andreas Kling
2019-12-18LibHTML: Ignore case of presentation attribute namesAndreas Kling
2019-12-18LibHTML: Don't insert line breaks between multiple <pre>'s on a lineAndreas Kling
When iterating lines for "white-space: pre", we should only break when there is an actual line break character.
2019-12-18LibHTML: Let's display <basefont> as block-level elements for nowAndreas Kling
2019-12-18LibHTML: Use a fixed-width font for <pre> tags, duh!Andreas Kling
2019-12-18AK: Add String::equals_ignoring_case(StringView)Andreas Kling
2019-12-17PaintBrush: Shift key constrains LineTool angleZyper
Holding Shift key will constrain the LineTool's line angle to 15 degrees increments. Many graphics editors have similar feature.