* 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
* Define device file buffer in kernel
* Implement from u8 for Device
* Reading /dev/null result in error
* Reading an empty dir should not result in error
* Print all bytes from reading devices
* Print errors while reading devices
* Handle ^C and ^D when reading /dev/console
* Create pseudo device files for clocks
* Avoid hardcoding ^C and ^D
* Add missing comment
* 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
* Move path canonicalization from API to kernel
* Add api::fs::read_exact
* Add read-bytes to lisp
* Add str function to lisp
* Rename fs::read to fs::read_to_bytes
* Rename fs::read_exact to fs::read
* Add bytes fonction to lisp
* Add progn special form to lisp
* Fix failing test
* Add calc doc
* Link doc from readme
* Rename stdnil to stdnull
* Add items to the TODO list in the README
* Update instructions in the README
* Improve feature list in README
* Add link to doc in README
* Disable unused show command
* Add colors to chess perf command
* 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
* Rewrite Lisp parser
* Parse special symbols
* Add eval for calculator
* Replace original parser with the new one
* Handle escaped chars in strings
* Add more special characters to parser
* Refactor eval
* Add operations on files
* Refactor more of eval
* Add number parsing
* Refactor eval
* Improve error messages
* Use .lsp for lisp files
* Refactor eval
* Add ensure_len macro
* Add default-run attribute
* Use f64 instead of f32 in calc
* Allow empty line in REPL
* Check that FS is mounted before reading superblock
* Add cmd env var
* Update changelog
* 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 support for Extended ASCII to VGA
* Read multibyte chars
* Fix deletion of extended ascii chars
* Add UTF-8 support to Prompt
* Refactor vec char
* Add unicode support to text editor
* Refactor code
* Update changelog
* Enable cursor after boot
* Remove unused time attribute on file
* Fix compilation warning
* Clear screen after vga init
* Add disable_blinking function
* Set palette registers at boot
* Set default palette
* Fix attribute control registers initialization
* Clear palette address source bit when setting palette
* Refactor code
* Remove index from palette
* Update comment
* Update changelog
* Add sys::ata::Drive struct
* Add fs size to superblock
* Add missing usage option to disk command
* Update changelog
* Store ata::Drive in AtaBlockDevice
* Store allocated block count in superblock
* Rename Superblock to SuperBlock
* Add superblock to memfs
* Use Block instead of LinkedBlock for BlockBitmap
* Rename BlockBitmap to BitmapBlock
* Fix removed const
* Remove some hardcoded constants
* Fix BitmapBlock::free_all
* Allocate the whole remaining disk space
* Use memory size to alloc memfs
* Dynamically use half of the memory for the heap
* Add SuperBlock::check_ata
* Move init to mod.rs
* Update python fuse
* Add BITMAP_SIZE constant
* Fix available space computation
* Limit the heap to 8 GB max
* Fix memfs size
* 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