summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-04-25Ports: Fix building opensshGunnar Beutner
This fixes a spelling mistake in the timespeccmp() macro and enables debug symbols for OpenSSH to make diagnosing problems easier.
2021-04-25Base: clang-format the cpp-gui template project.Brian Gianforcaro
I noticed this was miss-formated when fixing up the clang-format error in a different PR. I just ran `pre-commit run --all-files`
2021-04-25Ports: Fix python3 package so linting script doesn't error out.Brian Gianforcaro
I have my environment configured to use https://pre-commit.com/. I guess the scripts were changed recently to lint all ports, and the python port was barfing on my system because of this bug.
2021-04-25Ports: Pass along any command arguments in package.shJelle Raaijmakers
Commit b3db01e20 broke simple commands without arguments like: ./package.sh clean Now, all available arguments are passed along, even if there are none.
2021-04-24Kernel: Support null act argument for sigaction syscallJelle Raaijmakers
Userspace can provide a null argument for the `act` argument to the `sigaction` syscall to not set any new behavior. This is described here: https://pubs.opengroup.org/onlinepubs/007904875/functions/sigaction.html Without this fix, the `copy_from_user(...)` invocation on `user_act` fails and makes the syscall return early.
2021-04-24AK: Add SourceLocation supportBrian Gianforcaro
C++20 added std::source_location, which lets you capture the callers __FILE__ / __LINE__ / __FUNCTION__ etc as a default argument to functions. See: https://en.cppreference.com/w/cpp/utility/source_location During a bug investigation @ADKaster suggested we could use this to make the LOCK_DEBUG feature of the kernel more user friendly and allow it to automatically instrument all call sites. We then implemented / tested it over discord. :^) Co-Authored-by: Andrew Kaster <andrewdkaster@gmail.com>
2021-04-24LibJS: Use linusg@serenityos.org for my new copyright headers, tooLinus Groh
Whoops, I have a new email for these! :^)
2021-04-24LibJS+LibWeb: Move exception logging and remove should_log_exceptionsLinus Groh
LibWeb is now responsible for logging unhandled exceptions itself, which means set_should_log_exceptions() is no longer used and can be removed. It turned out to be not the best option for web page exception logging, as we would have no indication regarding whether the exception was later handled of not.
2021-04-24LibJS: Add VM::on_call_stack_emptied callbackLinus Groh
Instead of having to run queued promise jobs in LibWeb in various places, this allows us to consolidate that into one function - this is very close to how the spec describes it as well ("at some future point in time, when there is no running execution context and the execution context stack is empty, the implementation must [...]"). Eventually this will also be used to log unhandled exceptions, and possibly other actions that require JS execution to have ended.
2021-04-24LibJS: Consolidate exception function names and source rangesLinus Groh
Instead of storing the function names (in a badly named Vector<String>) and source ranges separately, consolidate them into a new struct: TracebackFrame. This makes it both easier to use now and easier to extend in the future. Unlike before we now keep each call frame's current node source range in the traceback frame next to the function name, meaning we can display line and column numbers outside of the VM and after the call stack is emptied.
2021-04-24LibJS: Temporarily clear exception in Object::get_without_side_effects()Linus Groh
This would return an empty value once it hits an exception check otherwise. Considering that this mostly is used in situations where we already *do* have an exception (traceback printing, for example), let's make this easier for ourselves to use.
2021-04-24LibJS: Add TemporaryClearException helper classLinus Groh
This is very similar to AK::TemporaryChange (and in fact replaces one use of it), but since we can't directly set VM's m_exception from outside of the VM, we need something more sophisticated. Sometimes we need to temporarily remove the stored exception for some other operation to succeed (e.g. anything that uses call(), as well as get_without_side_effects()) and later restore it - the boilerplate code required for this is annoying enough to justify a helper.
2021-04-24LibJS: Remove stray '%' from MemberExpression AST dumpAndreas Kling
2021-04-24LibGUI: Remove some unused cruft from GUI::IconViewAndreas Kling
2021-04-24LaunchServer: Fix argument order to FileManagerAlbert S
Correct the order we pass the arguments to the FileManager so opening file:// URLs works. The path is a positional argument that was passed after the flags. We need to make sure the flags are passed before positional arguments.
2021-04-24LibGUI: Prevent a Painter's clip_rect from being outside of its targetMart G
Previously a Painter's m_clip_origin field was initialized to a widget's window_relative_rect, which is not ensured to be within the target rect. m_clip_origin is normally not used for clipping, but after calling clear_clip_rect the clip rect that IS used for clipping gets reset to m_clip_origin (so an invalid state is entered). Now the window_relative_rect will be clipped by the target rect first, and will only then be used to initialize both the active clip_rect and m_clip_origin.
2021-04-24Meta: Add Tim Flynn to the contributors list :^)Linus Groh
2021-04-24LibSQL: Parse ALTER TABLE statementTimothy Flynn
There are 4 forms an ALTER TABLE statement can take, and each are very distinct, so they each get their own AST node class.
2021-04-24LibSQL: Parse UPDATE statementTimothy Flynn
This also migrates parsing of conflict resolution to a helper method, since both INSERT and UPDATE need it.
2021-04-24LibSQL: Parse INSERT statementTimothy Flynn
This also adds missing '&' on a couple AST getter methods.
2021-04-24LibSQL: Add missing forward declarationsTimothy Flynn
2021-04-24Utilities: Add cksumBrendan Coles
2021-04-24Utilities: Add pathchkBrendan Coles
2021-04-24AudioServer: Mixer: limit max volume to 200%Brendan Coles
2021-04-24Ports/scummvm: Add launcherJelle Raaijmakers
2021-04-23LibELF: Avoid calculating symbol hashes when we don't need themGunnar Beutner
2021-04-23UE: Implement FLD_RM80 and FSTP_RM80Hendiadyoin1
We do a bit too big reads and writes, but this should not be that bad although it may taint memory graphs
2021-04-23UE+LibX86: Support bigger reads and writesHendiadyoin1
2021-04-23LibX86: Add basic u128 and u256 constainersHendiadyoin1
These support all bitwise operations
2021-04-23LibSQL: Parse IN / NOT IN expressions with a nested SELECT statementTimothy Flynn
2021-04-23LibSQL: Parse common-table-expressions with a nested SELECT statementTimothy Flynn
This also moves testing of common-table-expression to its own test case.
2021-04-23LibSQL: Parse CREATE TABLE statements with a nested SELECT statementTimothy Flynn
2021-04-23LibSQL: Parse EXISTS expressionsTimothy Flynn
The EXISTS expression is a bit of an odd-man-out because it can appear as any of the following forms: EXISTS (select-stmt) NOT EXISTS (select-stmt) (select-stmt) Which makes it the only keyword expression that doesn't require its keyword to actually be used. The consequence is that we might come across an EXISTS expression while parsing another expression type; NOT would have triggered a unary operator expression, and an opening parentheses would have triggered an expression chain.
2021-04-23LibSQL: Parse terminating semi-colon in top-level statement parserTimothy Flynn
Currently, every parse_*_statement method ends by parsing a semi-colon. This will prevent nested statements, e.g. a SELECT statement may be nested in a CREATE TABLE statement. Move the semi-colon expectation up and out of the individual statement parsers.
2021-04-23LibSQL: Add Parser::parse_schema_and_table_name helperTimothy Flynn
Another common semantic is parsing an identifier of the form "schema_name.table_name" / "table_name". Add a helper to do this work. This helper does not parse any optional alias after the table name. some syntaxes specify an alias using the AS keyword, some let the AS keyword be optional, and others just parse it as an identifier. So callers to this helper will just continue parsing the alias however they require.
2021-04-23LibSQL: Add Parser::parse_comma_separated_list helperTimothy Flynn
A quite common semantic emerged for parsing comma-separated expressions: consume(TokenType::ParenOpen); do { // do something if (!match(TokenType::Comma)) break; consume(TokenType::Comma); } while (!match(TokenType::Eof)); consume(TokenType::ParenClose); Add a helper to do the bulk of the while loop.
2021-04-23LibSQL: Fix handling of optional AS keywordsTimothy Flynn
In some syntaxes, using the 'AS' keyword to define an alias is optional. But if it does appear, an identifier better appear afterwards.
2021-04-23Userland: Piano: Optimize repaintskleines Filmröllchen
The Piano application used to perform very poorly due to unnecessary draw calls. This is solved with two optimziations: 1. Don't draw the widgets as often as possible. The widgets are instead at least updated every 150ms, except for other events. 2. Don't re-draw the entire piano roll sheet. The piano roll background, excluding in-motion objects (notes, the play cursor), is only re-drawn when its "viewport" changes. A minor drawback of this change is that notes will appear on top of the pitch labels if placed at the left edge of the roll. This is IMO acceptable or may be changed by moving the text to the "foreground".
2021-04-23Meta: Support using rsync to install the root filesystemGunnar Beutner
Using rsync is significantly faster when we're using an existing image because we only have to copy files which are new or have been updated. This cuts down the image creation time to about a second or two assuming an old image exists.
2021-04-23Meta: Re-use existing disk image where possibleGunnar Beutner
This adds support for re-using and re-sizing existing disk images. Disk images are checked with e2fsck prior to re-use and a new disk image is automatically created when that check fails.
2021-04-23LibRegex: Put to dbgln()s behind REGEX_DEBUGLinus Groh
2021-04-23LibJS: Correctly handle mixing +0 and -0 in Math.{min,max}()Linus Groh
The native C++ < and > operators won't handle this correctly, so the result was different depending on the order of arguments. This is now fixed by explicitly checking for positive and negative zero values. Fixes #6589.
2021-04-23LibJS/Tests: Remove fileName and lineNumber args from ExpectationErrorLinus Groh
This is nono-standard, not supported by our Error implementation and not even used anywhere, so let's just remove it.
2021-04-23LibJS/Tests: Improve expectation error detailsLinus Groh
2021-04-23Shell: Add a 'kill' builtin that wraps the system's ownAli Mohammad Pur
Fixes #6578.
2021-04-23Shell: Add support for jobspecs in fg/bg/disown/waitAli Mohammad Pur
2021-04-23Ports: Add launcher for OpenTTDGunnar Beutner
2021-04-23Ports: Add openttdGunnar Beutner
2021-04-23Help: Run clang-format on main.cppLinus Groh
2021-04-23SystemMonitor: Show action status tips in the statusbar :^)Andreas Kling