* Add bigint support to Lisp
* Remove Box
* Replace BigInt by i64
* Add back big int
* Work around big int errors
* Print floats with a dot
* Add conversion to f64
* Use Number#parse instead of double
* Add trigo functions to Number
* Add conversion from number to byte
* Add addition to Number
* Add multiplication to Number
* Add negation and substraction to Number
* Add division to Number
* Add reminder to Number
* Add pow to Number
* Fix tests
* Re-enable BigInt
* Add parsing and printing of BigInt
* Add sign
* Add operations on BigInt
* Fix compilation issues
* Add support for add and mul overflow
* Fix bigint conversion to and from str
* Add number-type function
* Add tests
* Add support for pow overflow
* Fix tests
* Add more checks for overflow
* Add check for division by zero
* Fix typo
* Return inf for large exponential operations
* Check for division by zero in modulo
* Add shift operations
* Rewrite comparisons
* Add lazy eval to cond expressions
* Add set fonction
* Add loop function
* Add pi example
* Add builtin pi example to shell
* Update allocation error messages
* Rewrite number conversions
* Remove debug output from pi example
* Move pi command to a dedicated file
* Rewrite bytes->number and number->bytes
* Update doc
* Move op impl to Number
* Add macros to dry code
* Add more macros
* Run clippy
* Add the Game of Life
* Add seed interval
* Add option to load seed from file
* Add speed option
* Add a status bar at the bottom of the screen
* Refactor rules computation
* Refactor printing
* Add life to autocomplete list
* Fix autocomplete size
* Refactor file loading
* Add centinal.cells
* Add more cells files
* Add ^C to text editor
* Remove -f option
* Remove two patterns
* Remove extra newlines
* Remove code for comments
* Center cells
* Fix host arg
* Add support for binary output
* Send binary data to stdout directly
* Remove header struct
* Refactor states
* Refactor arg match
* Add missing -v option
* Trim protocol from url
* Fix separator when listing root
* Use exit code
* Add macro_use to sys module
* Replace ExitCode with Result<usize, usize>
* Add status var
* Fix status code
* Replace status with ?
* Fix regex for var substitution
* Remove warnings
* Add temporary fix for failing tests
* Add q shortcut to calc
* Use usize for exit code
* Use process exit codes
* Reintroduce ExitCode enum
* Use ExitCode::UsageError where needed
* Display usage error in find command
* Add doc
* Read command line args from userspace programs
* Use Stop syscall to debug pointers from userpace
* Fix address translation system
* Update binaries
* Move print to bin
* Add hardcoded alias system
* Strip debug from binaries
* Build userspace binaries before running tests
* Save all the args in args including the command invocation name
* Move sleep command to /bin
* Rebuild binaries
* Add header to binary
* Add result to spawn
* Use spawn result to display error message
* Use info result to change directory
* Fix binary detection
* Fix lock issue
* Change debug color
* Rewrite net command
* Update doc
* Add dhcp --verbose
* Remove ip and route commands
* Align command outputs
* Adjust colors
* Use system dns if available with host command
* Add error macro
* Display network error
* Use error macro
* Fix broken test
* Update dir listing color
* Update syscall doc
* Use error macro in more commands
* Create dirs from userspace
* Add delete syscall
* Add name to FileStat
* Add offset to Dir
* Add dynamic size to dir
* Add FileStat (de)serializer
* Add ReadDir#block_index
* Add FileStat::root
* Implement FileIO#read for Dir
* Add api::fs::read_dir
* Use read_dir for list command
* Allow read /path/to/dir/ commands
* Save dir size to dir entry
* Fix return value of api::fs::create_device
* Read dir from userspace
* Add proc command
* Close file handle when creating dir
* Add /dev/null
* Remove path restriction
* Allow listing of singular file
* Update doc
* Re-export fs struc in API
* Use read_dir in shell autocomplete
* Use fs::delete in httpd
* Rename stat to info
* Update doc
* Rename attributes
* Improve identify data parsing
* Read status from alternate status register
* Update identify command
* Fix overflow in disk size printing
* Rewrite ATA PIO driver according to ATA-4 spec
* Add 'disk erase' command
* Fix issue with shell redirection in diskless mode
* Check for existence of passwords file during login
* Add IdentifyResponse enum
* Refactor lba match
* Disable debug output on command aborted
* Refactor code
* Pin specific compiler version
* Add spec in comment
* Add process table
* Add exit syscall
* Update binaries
* Make pid mutable
* Use RW lock for the process table
* Change pid atomic ordering
* Fix return code
* Fix lock issue
* Add debug print
* Add exit to sleep binary
* Enable asm_sym feature
* Use the end of code area for stack area
* Add debug macro
* Use array instead of vec for process
* Refactor process data clone
* Increase max file handles to 32
* Increase sleep to 5 seconds
* Fix MAX_PID calculation
* Revert max file handle value to fix crash
* Close file handle after dup syscall
* Remove init
* Run the test in release mode
* Refactor debug
* Refactor debug output of syscall
* Remove NULL syscall
* Save and restore stack frame
* Fix install
* Save only scratch registers to the stack
* Add write volatile to registers
* Overwrite rax register on exit
* Set pid back to 0 after exit
* Add alloc_page function
* Remove debug output
* Unmap pages after exit
* Allocate memory after kernel heap
* Hide unmap error
* Add ELF loader
* Add elf reader
* Fix jump to entry point
* Update mapping code
* Update kernel data segment in GDT
* Refactor wrap macro
* Remove debug from process
* Remove jump to entry point
* Update hello binary
* Improve comments on asm code
* Rename Process#entry to Process#entry_point
* Use cli directly
* Add pic::init()
* Disable again interrupts after halt if needed
* Allow keyboard and serial events during memory init
* Update changelog
* Testing userspace code
* Update program example
* Refactor code
* Read bin from dsk/bin at compile time
* Create mapper and frame allocator during process creation
* Read bin from disk at runtime
* Add missing file
* Add missing bin
* Add src bin
* Replace debug output by a test syscall+binary
* Remove comments from asm files
* Rewrite sleep
* Replace test by hello
* Refactor hello example
* Translate address from user code segment
* Rename entry label
* Update readme and changelog
* Use entry_name for DirEntry
* Increase stack size
* Add file syscalls
* Change syscalls return type
* Add stat syscall
* Add file creation
* Use api::fs::read_to_string in more user programs
* Use syscalls in fs api
* Move some functions from sys::fs to api::fs
* Add FileIO for generic read and write
* Write to stdout
* Add stdout test
* Disable output
* Move FileIO to API
* Add io::stdin and io::stdout to API
* Add a real /dev/random
* Fix test
* Add missing device file
* Refactor stdin read
* Truncate read_line result if larger than buf
* Use fs::read and fs::write to copy files
* Use fs::read for user password database
* Use fs::read for vga command
* Use api::syscall::stat instead of sys::fs::File::open
* Use fs::read and fs::write in httpd
* Add RNG to API
* Add fs::open_dir and fs::create_dir
* Add fs::exists
* Split fs file into multiple files
* Use DirEntry#into
* Reorganize dir entry creation prior to refactoring
* Refactor Block
* Refactor bits manipulation in Dir#create_entry
* Refactor ReadDir
* Truncate filename to 255 chars at most
* Refactor Dir#update_entry
* Refactor new block alloc
* Allow different kinds of block devices
* Display disk usage
* Add fs::read to API
* Add command to mount fs in memory
* Add tests
When `Prompt#input` received a `^C` or `^D` it would return `None`.
It is used in a `while let` loop so in the shell and the lisp
interpreter it translated to exiting. This is good for `^D` but `^C`
should just cancel the current line.
So now in the latter case it returns `Some(String::new())` instead and
let the application deal with the empty string, which is fine for the
shell and the lisp interpreter.
* Add a regular expression engine
* Fix off by one error
* Add + quantifier
* Add more tests
* Use assert_eq instead of assert in tests
* Rewrite tests with an array
* Fix bug in is_match_star
* Use the same do while equivalent in is_match_plus
* Add ? quantifier
* Refactor engine code
* Add backslash char
* Group ifs in match
* Add special escaped chars
* Add doc
* Add find command
* Add Match#find
* Show multiple matches in the same line
* Dry Regex
* Change matches color
* Add greedy version of matching by default
* Add MetaChar enum to fix matching escaped chars
* Change function signatures
* Remove macro_export
* Add TODO
* Find matching lines recursively
* Handle special patterns
* Replace sys::vga::clear_screen() by csi code
* Replace all remaining calls of vga functions by csi code
* Remove dead code
* Add some guard clauses
* Add TODO on partially implemented CSI codes
* Fix inverted params on cursor position
* Print newline char between lines
* Add a TODO to load a palette via ANSI OSC commands
* Move cursor after clear screen
* Simplify line insert
* Fix old bug when scrolling twice the screen width
* Simplify backspace code
* Disable interrupts when printing in serial
* Refactor status line
* Hide cursor during printing
* Avoid printing status line over saving status
* Use 1-indexed rows and cols in the user interface