Dominik M. Kwiatek
782cd93c01
Meta: Add openSUSE dependencies to build documentation ( #2801 )
2020-07-15 00:06:16 +02:00
Matthew Olsson
6075defd55
LibJS: Add Symbol.hasInstance tests
2020-07-14 20:15:19 +02:00
Matthew Olsson
b0296735a5
LibJS: Implement Symbol.hasInstance
2020-07-14 20:15:19 +02:00
Matthew Olsson
dd49ec17a2
LibJS: Implement spec-complient instance_of operation
2020-07-14 20:15:19 +02:00
Stijn
7bf4b1c9f0
Userland: Add a basic version of the tree command
2020-07-14 20:15:10 +02:00
thankyouverycool
09152a6fe1
Base: Add missing single quotes to en.json keymap
...
This replaces the double quote in map and alt_map with the correct
single quote character.
2020-07-14 17:58:52 +02:00
Matthew Olsson
a51b2393f2
LibJS: Integrate iterator protocol into language features
...
Finally use Symbol.iterator protocol in language features :) currently
only used in for-of loops and spread expressions, but will have more
uses later (Maps, Sets, Array.from, etc).
2020-07-14 17:58:42 +02:00
thankyouverycool
4970c448bf
LibGUI: Draw contiguous frame if GroupBox title is left empty
2020-07-14 17:55:39 +02:00
Nico Weber
1dfae92eac
LibMarkdown: Reset offset to 0 on each new List line
...
Found by FuzzMarkdown.
2020-07-14 17:45:16 +02:00
Nico Weber
c22790adb2
Lagom: Add a markdown fuzzer
2020-07-14 17:45:16 +02:00
Nico Weber
417caeb14a
Lagom: Add a note on how to build the fuzzers to readme
2020-07-14 17:45:16 +02:00
AnotherTest
d6c7cdce98
unzip: Correct compression method offset value
2020-07-14 12:05:37 +02:00
Andreas Kling
ef84865c8c
LibX86+UserspaceEmulator: Devirtualize and inline more instruction code
...
Use some template hacks to force GCC to inline more of the instruction
decoding stuff into the UserspaceEmulator main execution loop.
This is my last optimization for today, and we've gone from ~60 seconds
when running "UserspaceEmulator UserspaceEmulator id" to ~8 seconds :^)
2020-07-13 21:00:51 +02:00
Andreas Kling
f608b9d89a
UserspaceEmulator: Mark some generic instructions ALWAYS_INLINE :^)
2020-07-13 20:47:45 +02:00
Andreas Kling
7ea36f5ed0
LibX86: Don't build_opcode_table_if_needed() every instruction decode
...
Instead, just do this once at startup. :^)
2020-07-13 20:42:37 +02:00
Andreas Kling
2f81c20002
UserspaceEmulator: Move the SoftCPU stream virtuals to the header
...
They don't actually get inlined yet, but at least this devirtualizes
them which is nice.
2020-07-13 20:41:48 +02:00
Andreas Kling
868db2313f
LibX86: Apply aggressive inlining to Instruction decoding functions
...
These functions really benefit from being inlined together instead
of being separated.
This yields roughly a ~2x speedup.
2020-07-13 20:34:54 +02:00
Andreas Kling
a27473cbc2
UserspaceEmulator+LibX86: Turn on -O3 optimization for emulation code
...
Since this code is performance-sensitive, let's have the compiler do
whatever it can to help us with the most important files.
This yields a ~8% speedup.
2020-07-13 20:23:00 +02:00
Andreas Kling
8656835935
UserspaceEmulator: Add a very simple instruction fetch cache
...
To avoid MMU region lookup on every single instruction fetch, we now
cache a raw pointer to the current instruction. This gets automatically
invalidated when we jump somewhere, but as long as we're executing
sequentially, instruction fetches will hit the cache and bypass all
the region lookup stuff.
This is about a ~2x speedup. :^)
2020-07-13 20:14:14 +02:00
Tom
c8d3f8cdeb
LibGUI: Add Options flags and OpenMultiple mode for FilePicker
...
If the application can't open more than one file, we should not
allow the user to select multiple.
2020-07-13 19:49:34 +02:00
Tom
d4c6ae8263
LibGUI: Add ability to disable multiselect for views
2020-07-13 19:49:34 +02:00
Tom
f266f0e880
LibGUI: Improve IconView performance with large selections
...
This implements the following optimizations:
* Rather than clearing a HashTable of selected items and re-populating
it every time the selection rectangle changes, determine the delta
by only examining the items that might be in the area where the
selection may have changed compared to the previous area. Then
only add/remove selection items as needed.
* When painting, only query and paint the items actually visible.
Also, keep a local cache of item information such as calculated
rectangles and selection state, so it doesn't have to be calculated
over and over again.
2020-07-13 19:49:34 +02:00
Tom
b778804d20
LibGUI: Add ModelClient abstract class and allow registering clients
...
This solves a problem where the SortingProxyModel doesn't
receive the on_update call because other code overwrote
the handler later on.
2020-07-13 19:49:34 +02:00
Nico Weber
0e10a92ebc
LibLine: Add Ctrl-N/P as history next/previous shortcuts
2020-07-13 19:48:53 +02:00
Nico Weber
b0384bb1bb
LibLine: Move search-related updates into do_cursor_left/right
...
This way, arrow-left and arrow-right behave consistently with ctrl-b/ctrl-f.
2020-07-13 19:48:53 +02:00
AnotherTest
dc62371439
Shell: Avoid waiting for jobs that were *just* unblocked
...
This fixes the issue with C-z not suspending the job on the first try.
...and further signal issues when the suspended job is contiued.
2020-07-13 19:48:45 +02:00
Nico Weber
46661f02c6
Csilla: Make 'W' and 'w' even thinner
...
'W' doesn't have to go up to the edges which makes 'WWW'
look better, and it imho looks fine in other contexts too.
Update 'w' to match.
Don't change Katica since it has enough room for the current W.
2020-07-13 17:36:56 +02:00
AnotherTest
151e4d41ed
Shell: Put children in their own process groups and fix job control
...
This commit fixes job control by putting children in their own process
group, and proxying TTY signals to active jobs.
This also cleans up the code around builtin_disown a bit to use
the newer job interfaces.
2020-07-13 15:29:16 +02:00
AnotherTest
3a7a689b87
unzip: Remove some magic numbers and create directories when needed
...
This commit also adds an assert about the compression method instead of
just writing out the compressed data.
2020-07-13 15:28:54 +02:00
AnotherTest
6a265f7c21
unzip: mmap() the zip file if possible to avoid spamming syscalls
...
This patch makes `unzip' mmap the zip file instead of seeking the file
repeatedly.
This makes unzipping big files bearable, and unzipping huge files
impossible.
The later could be fixed by mapping/unmapping chunks on the fly once we
have support for mmap() offsets.
2020-07-13 15:28:54 +02:00
AnotherTest
7170df7dd8
Shell: Resolve aliases in builtin_time
2020-07-13 15:12:28 +02:00
AnotherTest
b0ce8d725a
Shell: Move out run_commands and expand_aliases to be Shell member fns
...
This makes running commands from outside the AST chain easier.
2020-07-13 15:12:28 +02:00
Matthew Olsson
4c3a415dc3
LibJS: Add String Iterator tests
2020-07-13 15:07:29 +02:00
Matthew Olsson
c831fb17bf
LibJS: Add StringIterator
2020-07-13 15:07:29 +02:00
Nico Weber
ac2470e66e
FontEditor: Don't add duplicate extension in Save As dialog
2020-07-13 15:00:14 +02:00
Nico Weber
552789902a
AK: Make LexicalPath keep everything before the last dot as title
...
Previously, TextEditor would put "foo.txt" in the Save As dialog
for files named "foo.bar.txt". Now, it puts "foo.bar.txt" instead.
2020-07-13 15:00:14 +02:00
Nico Weber
97cea9e61c
AK: Give String::index_of() an optional second "start" argument
2020-07-13 15:00:14 +02:00
thankyouverycool
332f349e07
LibGUI: Fix keybind conflicts in TreeView
...
Changes the shortcut to expand and collapse subtrees from alt to
ctrl+right/left arrows in TreeView. The current shortcuts conflict
with applications that already have navigation controls bound to alt
like file manager.
2020-07-13 14:27:23 +02:00
thankyouverycool
366d7e6d05
LibGUI: Only report toggled directories once on subtree collapse/expansion
...
This prevents redundant calls to on_toggle for the same indices when
subtrees are collapsed or expanded.
2020-07-13 14:27:23 +02:00
Andreas Kling
f1bbc39148
LibX86: ALWAYS_INLINE some Instruction members
2020-07-13 13:50:22 +02:00
Andreas Kling
a83fe7f82d
UserspaceEmulator: Add the POPFD instruction
...
I'm not sure the mask I'm using here is completely correct, but it's
not terribly important since we're a userspace-only emulator anyway.
2020-07-13 13:50:22 +02:00
Andreas Kling
dba6f9b24b
UserspaceEmulator: Add the NOT instruction (with bonus: NOP!)
2020-07-13 13:50:22 +02:00
Andreas Kling
5ecbfd8451
UserspaceEmulator: Add the STC/CLC and STD/CLD instructions
2020-07-13 13:50:22 +02:00
Andreas Kling
9f293054e8
UserspaceEmulator: Implement the ADC instruction
2020-07-13 13:50:22 +02:00
Andreas Kling
6230c60296
UserspaceEmulator: Make SBB actually respect the SoftCPU carry flag
...
We were forgetting to set the host CPU's carry flag before executing
the SBB instruction. This made the result a bit unpredictable. :^)
2020-07-13 13:50:22 +02:00
Andreas Kling
a9f92e5d75
UserspaceEmulator: Remove an unnecessary step in some instructions
...
We don't need to move the result of shifts around like this, we can
just use inline assembly outputs to make it end up in the right place.
2020-07-13 13:50:22 +02:00
Andreas Kling
80d3306840
UserspaceEmulator: Fix wrong ESI/EDI step sizes in MOVSW and MOVSD
2020-07-13 13:50:22 +02:00
Andreas Kling
e0580e2975
UserspaceEmulator: Add some more syscalls
...
We can now unmap mapped memory, among other things. This is all very
ad-hoc as I'm trying to run UserspaceEmulator inside itself. :^)
2020-07-13 13:50:22 +02:00
Andreas Kling
9b6464010f
UserspaceEmulator: Add basic support for memory-mapped files
...
MmapRegion now supports using an mmap'ed file descriptor as backing.
2020-07-13 13:50:22 +02:00
Andreas Kling
63d3f5d19b
UserspaceEmulator: Implement the PUSHFD instruction
2020-07-13 13:50:22 +02:00