summaryrefslogtreecommitdiff
path: root/Userland
AgeCommit message (Collapse)Author
2020-03-18LibCore: Moved cal.cpp functions to DateTimerhin123
2020-03-16LibJS+js: Add a debug option (js -g) to GC after every allocationAndreas Kling
This is very useful for discovering collector bugs.
2020-03-16LibJS: Add "Heap" and "Runtime" subdirectoriesAndreas Kling
Let's try to keep LibJS tidy as it expands. :^)
2020-03-15Userland: ifconfig can change the IP address of the default gatewaymarprok
ioctl can now perform a request for a specific route and change the address of it's default gateway.
2020-03-12LibJS: Allow functions to take arguments (#1405)howar6hill
2020-03-12js: Take the script file as a command-line argumentAndreas Kling
Now that we have the beginnings of a parser, let's take the script to run as a command-line argument and move all the test scripts into /home/anon/js :^) To run a script, simply use "js": $ js my-script.js To get an AST dump before execution, you can use "js -A"
2020-03-12LibJS: Add Javascript lexer and parserStephan Unverwerth
This adds a basic Javascript lexer and parser. It can parse the currently existing demo programs. More work needs to be done to turn it into a complete parser than can parse arbitrary JS Code. The lexer outputs tokens with preceeding whitespace and comments in the trivia member. This should allow us to generate the exact source code by concatenating the generated tokens. The parser is written in a way that it always returns a complete syntax tree. Error conditions are represented as nodes in the tree. This simplifies the code and allows it to be used as an early stage parser, e.g for parsing JS documents in an IDE while editing the source code.:
2020-03-11Userland: Set the mask of a network adapter with ifconfig (#1388)Marios Prokopakis
A new IP address or a new network mask can be specified in the command line arguments of ifconfig to replace the old values of a given network adapter. Additionally, more information is being printed for each adapter.
2020-03-11js: Oopsie, fix buildAndreas Kling
2020-03-11LibJS: Allow the choice of a scope of declaration for a variable (#1408)0xtechnobabble
Previously, we were assuming all declared variables were bound to a block scope, now, with the addition of declaration types, we can bind a variable to a block scope using `let`, or a function scope (the scope of the inner-most enclosing function of a `var` declaration) using `var`.
2020-03-11LibJS: Support "hello friends".lengthAndreas Kling
The above snippet is a MemberExpression that necessitates the implicit construction of a StringObject wrapper around a PrimitiveString. We then do a property lookup (a "get") on the StringObject, where we find the "length" property. This is pretty neat! :^)
2020-03-11Userland: Correction in the the copyrightmarprok
Change the date in the copyright.
2020-03-09js: Make it a little easier to add new AST builder functionsAndreas Kling
2020-03-09js: Add another little test AST to exercise marking of localsAndreas Kling
2020-03-09LibJS: Add basic support for (scoped) variablesAndreas Kling
It's now possible to assign expressions to variables. The variables are put into the current scope of the interpreter. Variable lookup follows the scope chain, ending in the global object.
2020-03-09Userland: Use ArgParser in stat and support multiple files + linksShannon Booth
The '-L' option can be used for calling stat instead of lstat
2020-03-09js: Fixed program comment (#1391)Mr.doob
2020-03-08js: Exercise the garbage collector a little bitAndreas Kling
2020-03-08Userspace: Add missing #includes now that AK/StdLibExtras.h is smallerAndreas Kling
2020-03-08AK: Add global FlatPtr typedef. It's u32 or u64, based on sizeof(void*)Andreas Kling
Use this instead of uintptr_t throughout the codebase. This makes it possible to pass a FlatPtr to something that has u32 and u64 overloads.
2020-03-07LibJS: Start building a JavaScript engine for SerenityOS :^)Andreas Kling
I always tell people to start building things by working on the thing that seems the most interesting right now. The most interesting thing here was an AST + simple interpreter, so that's where we start! There is no lexer or parser yet, we build an AST directly and then execute it in the interpreter, producing a return value. This seems like the start of something interesting. :^)
2020-03-07LibWeb: Rename directory LibHTML => LibWebAndreas Kling
Let's rename this to LibWeb since it aims to provide more parts of the web platform than just HTML. :^)
2020-03-07LibWeb: Move everything into the Web namespaceAndreas Kling
2020-03-07LibCore: Remove all remaining C prefix referencesShannon Booth
LibCore's GZip is also moved into the Core namespace with this change.
2020-03-06Userland: Use ArgsParser in `crash`Shannon Booth
2020-03-06Userland: Replace lsinterrupts with lsirqLiav A
Also, lsirq will return more useful data than lsinterrupts did
2020-03-04Userland: Add du programhowar6hill
2020-03-04LibGUI: Use GUI::Window::set_main_widget<WidgetType>() in clientsAndreas Kling
2020-03-03Userland: Speed up the execution of the cut command.marprok
Avoid creating SingleIndexes in case of byte ranges. This, boosts the performance significantly in case a byte range is too big(e.g 666-123123). Also, claim copyright over this mess since I am the one responsible for it.
2020-03-03AK: Make quick_sort() a little more ergonomicAndreas Kling
Now it actually defaults to "a < b" comparison, instead of forcing you to provide a trivial less-than comparator. Also you can pass in any collection type that has .begin() and .end() and we'll sort it for you.
2020-03-02Meta: Adjust some copyright dates by Fei WuAndreas Kling
2020-03-01ps: Add some options and slim down the default output styleAndreas Kling
The following options are now available: -e: Show every process (not just the ones on your TTY) -f: Full format (instead of the short format) We should definitely support more options and formats, I just wanted to get away from the static single style of output. :^)
2020-03-01AK: Remove unnecessary casts to size_t, after Vector changesAndreas Kling
Now that Vector uses size_t, we can remove a whole bunch of redundant casts to size_t.
2020-03-01rm: Allow specifying multiple paths to removeAndreas Kling
2020-02-27ps: Don't assert when coming across a zombie processAndreas Kling
Fixes #1278.
2020-02-25AK: Make Vector use size_t for its size and capacityAndreas Kling
2020-02-24Userland: Add a utility for viewing interrupts from ProcFSLiav A
2020-02-23Userland: Delete redundant code in truncateShannon Booth
Fixes #1262
2020-02-22head: Use pledge()Brian Gianforcaro
2020-02-22profile: Allow launching a command with profiling enabledAndreas Kling
You can now profile a program from start to finish by doing: $ profile -c "cat /etc/passwd" The old "enable or disable profiling for a PID" mode is accessible via: $ profile -p <PID> -e # Enable profiling for PID $ profile -p <PID> -d # Disable profiling for PID The generated profile is available via /proc/profile like before. This is far from perfect, but it at least makes profiling a lot nicer to use since you don't have to hurry and attach to something when you want to profile the whole thing anyway.
2020-02-21mv: Use ArgsParser, and check lstat for failurehowar6hill
2020-02-20Userland: Fix nullptr dereference if we fail to open the PCIDBhowar6hill
In the code below, db could be null, and would cause UB. Instead of crashing, let's simply skip symbolicating names. Fixes #1247
2020-02-20host: Use ArgsParser to parse arguments, and add man page (#1252)howar6hill
Fixes #1246.
2020-02-20AK: Use size_t for ByteBuffer sizesAndreas Kling
This matches what we already do for string types.
2020-02-19Userland: Add userdel program (#1217)howar6hill
2020-02-18realpath: Use pledge()Andreas Kling
2020-02-18uname: Use pledge()Andreas Kling
2020-02-18touch: Use pledge()Andreas Kling
2020-02-18rm: Use pledge()Andreas Kling
2020-02-18ln: Use pledge()Andreas Kling