Brendan Coles
779f0c6e91
CppLanguageServer: is_empty_property: Return false for null node parent
2021-04-07 09:53:42 +02:00
Itamar
9e2e36724d
LibCpp: Add TemplatizedName
...
This type represents templatized names, and replaces our previous use
of 'TemplatizedType' and 'TemplatizedFunctionCall'.
Also, we now parse function calls as secondary expressions.
2021-04-06 21:51:58 +02:00
Itamar
510b5073de
LanguageServers/Cpp: Refactor logic of find declaration
2021-04-06 21:51:58 +02:00
Itamar
3295609aea
LibCpp: Add AST::Name
...
A Name node is basically an identifier with an optional scope,
e.g Core::File.
2021-04-06 21:51:58 +02:00
Itamar
9288dfced8
LanguageServers/Cpp: Don't include declarations bellow the current line
2021-04-06 21:51:58 +02:00
Andreas Kling
52de9b1753
LibGUI: Do AbstractView::set_column_hidden() => set_column_visible()
...
This API felt backwards, so let's change it.
2021-04-05 11:57:47 +02:00
Tim Waterhouse
7648f6aa7b
HackStudio: File search box stays opened after closing
...
Fix ##5061 by passing the parent widget down to the locator object
and having the locator object parent it's window to it.
2021-04-04 16:13:14 +02:00
AnotherTest
cbd62c472e
UserspaceEmulator: Default-initialize the siginfo struct used in waitid
...
Otherwise it'll have some random value from the stack, and the kernel
will not bother setting it to zero.
Also add a debug print and tweak the FIXME message.
2021-03-31 23:49:26 +02:00
Idan Horowitz
77601e09c8
FontEditor+TextEditor+Playground: Refuse to load device files
...
This prevents the undefined behaviour that would come up as a result of
doing so. (For example: opening "infinite" devices like /dev/full will
result in an infinite loop until exhaustion of memory)
2021-03-30 11:29:52 +02:00
Edgar Araújo
76d4b2c5a4
Playground: Autocomplete after empty {}
...
Enable the oportunity to show name autocompletion
after an empty class, which does not have the redundant
empty {}.
2021-03-29 09:10:23 +02:00
Edgar Araújo
5c1cd50c9a
Playground: Move AutocompleteProvider to a separate file
2021-03-29 09:10:23 +02:00
Andreas Kling
78b12e1521
Userland: Turn all application menus into window menus :^)
2021-03-25 22:14:09 +01:00
Idan Horowitz
0deb0c6891
UserspaceEmulator: Update virt$lseek and virt$ftruncate for 64bit off_t
...
The syscalls' prototypes were recently changed in preparation for 64bit
storage in serenity, so update them here as well :^)
2021-03-23 19:56:13 +01:00
Itamar
84e34d76d8
HackStudio+LanguageServers/Cpp: Show scope of symbols in Locator
2021-03-23 18:32:39 +01:00
Itamar
6054a418e5
LanguageServers/Cpp: Declarations inside namespaces are globally visible
...
This includes declarations inside namespaces in the globally visible
declarations of a cpp document.
2021-03-23 18:32:39 +01:00
Brendan Coles
7191098356
UserspaceEmulator: Add support for SC_abort syscall
2021-03-22 07:43:44 +01:00
Itamar
dee0c46c9b
HackStudio: Display warning when opening binary files
...
We now detect and display a warning when we can't render the text of an
opened file.
Closes #5062 .
2021-03-21 09:46:21 +01:00
Brendan Coles
4915cf5ab0
UE: Add killpg, getsockname, getpeername, shutdown, sync syscalls
2021-03-18 21:47:51 +01:00
Vyacheslav Pukhanov
663fd9abb4
CppLanguageServer: Make preprocessor ignore unsupported keywords
...
During typing the entered keywords can be incomplete and crash
preprocessor. We enable the newly introduced option to prevent
that crash.
2021-03-18 07:49:18 +01:00
Andreas Kling
f59ad2dc57
Everywhere: Remove pessimizing and redundant move()
2021-03-17 16:30:15 +01:00
Brendan Coles
46c7f52896
UserspaceEmulator: Add symlink, rename, set_coredump_metadata syscalls
2021-03-16 21:57:13 +01:00
Brendan Coles
fe97aec8c3
UserspaceEmulator: Print PID in mmap nullptr with MAP_FIXED reportln()
2021-03-16 21:48:29 +01:00
Andreas Kling
e0f32626bc
LibGfx: Rename 32-bit BitmapFormats to BGRA8888 and BGRx888x
...
The previous names (RGBA32 and RGB32) were misleading since that's not
the actual byte order in memory. The new names reflect exactly how the
color values get laid out in bitmap data.
2021-03-16 11:50:03 +01:00
Brendan Coles
7156b61d57
UserspaceEmulator: downgrade TODO to dbgln for invalid fcntl cmd arg
2021-03-15 16:07:31 +01:00
Brendan Coles
1eccd78e3a
UserspaceEmulator: Add SC_rmdir syscall
2021-03-14 21:36:36 +01:00
Brendan Coles
ab9f66a069
UserspaceEmulator: Increase stack size from 64 * KiB to 1 * MiB
2021-03-14 13:55:29 +01:00
Brendan Coles
2c24c0e451
UserspaceEmulator: SoftCPU: Add support for FPTAN instruction
2021-03-14 09:45:22 +01:00
Itamar
8688259ed9
LanguageServers/Cpp: Support jumping to declaration of preprocessor
...
.. definitions.
2021-03-13 10:17:02 +01:00
Itamar
7bf6eca9d8
LanguageServers/Cpp: Complete Preprocessor definitions
...
Preprocessor definitions now appear in the AutoComplete suggestions box
as well as in the Locator.
2021-03-13 10:17:02 +01:00
Itamar
8a102fe3ec
LibCpp: Implement Parser::text_in_range using text of tokens
...
It was previously implemented by directly iterating over the program's
source.
2021-03-13 10:17:02 +01:00
Itamar
5cd1c69b96
LibCpp: Access Cpp::Token members via getter functions
2021-03-13 10:17:02 +01:00
Itamar
3658c4c567
LibCpp: Replace defined preprocessor values when parsing
2021-03-13 10:17:02 +01:00
Andreas Kling
ef1e5db1d0
Everywhere: Remove klog(), dbg() and purge all LogStream usage :^)
...
Good-bye LogStream. Long live AK::Format!
2021-03-12 17:29:37 +01:00
Andreas Kling
0c35c664e6
UserspaceEmulator: Convert a weird klog(!) to dbgln()
2021-03-12 11:23:26 +01:00
Brendan Coles
ec1fdef818
UserspaceEmulator: SoftCPU: Add support for several x86 FPU instructions
...
F2XM1
FYL2X
FYL2XP1
FDECSTP
FINCSTP
FSCALE
2021-03-12 09:59:45 +01:00
Ben Wiederhake
292871c4bc
UserspaceEmulator: Handle MAP_FIXED with invalid addresses better
...
Old behavior: Crash due to VERIFY, unless we're completely and entirely out of
memory (m_available_ranges being empty), in which case it would return -ENOMEM.
New behavior: Return ENOMEM (and don't crash). In the case of nullptr,
also emit a helpful diagnostic.
Note that MAP_FIXED with nullptr is technically okay, but tends to be a sign
that something went wrong.
Also, this should improve mmap performance marginally, as it pulls the check out
of a loop that does not modify any parts of the check.
UE is now self-hosting! Fixes #5709 .
However, this still needs some love: "ue UserspaceEmulator true" spits out tons
of error messages, probably false-positives, and takes about 229 seconds to run.
Then again, true-in-ue-in-ue-in-Qemu is three levels of emulation, so no wonder
it takes a long time! :D
2021-03-11 08:54:54 +01:00
Ben Wiederhake
22d9bd0c45
UserspaceEmulator: Do not pass MAP_FIXED to Kernel
...
Since there is usually no correlation between guest memory-layout and UE memory-layout,
this option does not make any sense. Especially since we provide nullptr.
2021-03-11 08:54:54 +01:00
Ben Wiederhake
d5925f33aa
UserspaceEmulator: Implement set_process_name syscall
2021-03-11 08:54:54 +01:00
Ben Wiederhake
ec8e3edd05
UserspaceEmulator: Split large file into logical pieces
2021-03-11 08:54:54 +01:00
Andreas Kling
ced8dfa037
UserspaceEmulator: Remove debug spam about tracked malloc blocks
2021-03-10 15:21:26 +01:00
Andreas Kling
82aea65bd3
UserspaceEmulator: Add fast-path for is<MmapRegion>()
...
Don't use default RTTI for these since they are performance-sensitive.
2021-03-09 15:17:15 +01:00
Andreas Kling
656cd477c2
UserspaceEmulator+LibX86: Sprinkle some [[unlikely]] and ALWAYS_INLINE
2021-03-09 15:10:08 +01:00
Andreas Kling
c192b6c61d
Emulator: Use libc.so bounds to fast-reject non-malloc addresses
...
The auditing code always starts by checking if we're in one of the
ignored code ranges (malloc, free, realloc, syscall, etc.)
To reduce the number of checks needed, we can cache the bounds of
the LibC text segment. This allows us to fast-reject addresses that
cannot possibly be a LibC function.
2021-03-09 15:01:08 +01:00
Brendan Coles
0c46918b73
UserspaceEmulator: Support FLDL2E / FLDPI, fix typos, use M_LN2 constant
2021-03-09 14:57:55 +01:00
Andreas Kling
54bd2ee738
UserspaceEmulator: Add Emulator::dump_regions() helper function
2021-03-09 14:44:54 +01:00
Andreas Kling
397f564144
UserspaceEmulator: Honor alignment requests in virt$mmap(MAP_RANDOMIZED)
2021-03-09 14:42:49 +01:00
Andreas Kling
0bf457f715
UserspaceEmulator: Add partial support for some more x87 instructions
...
Patch by @bcoles
2021-03-09 14:30:30 +01:00
Andreas Kling
57142a29a0
UserspaceEmulator: Don't set the MmapRegion malloc-block bit too early
...
We were setting it before the malloc metadata had been instantiated.
Fixes #5707 .
2021-03-09 13:57:17 +01:00
Andreas Kling
1381720d1d
UserspaceEmulator: Don't assume entire malloc block is chunked
...
Accesses in the header (or trailing padding) of a malloc block should
not be associated with any mallocation since only the chunk-sized slots
actually get returned by malloc.
Basically, allow address-to-chunk lookup to fail, and handle such
failures gracefully at call sites.
Fixes #5706 .
2021-03-09 13:29:41 +01:00
Andreas Kling
38fc522f5d
UserspaceEmulator: Don't audit accesses in calloc() and libsystem.so
...
These generate a lot of false positives and nothing of value.
2021-03-09 13:24:03 +01:00