Commit Graph

2634 Commits

Author SHA1 Message Date
8936cca9cf aoc2024: Implement day12 solution 2024-12-12 17:03:31 +02:00
1c704680a8 aoc2024: Implement day11 solution
Finally we got a problem where trivial solution does not work
2024-12-11 09:05:52 +02:00
3e36834751 aoc2024: Implement day10 solution 2024-12-10 17:26:39 +02:00
581caff638 BuildSystem: Install base sysroot only once
Base sysroot is not only installed when creating the syroot directory
for the first time. To get it installed again, you have to either delete
the old sysroot diretory or run clean target

This makes it so its actually possible to edit files specified in the
base sysroot without random hacks.
2024-12-10 16:44:59 +02:00
8b612ba547 aoc2024: Implement day9 solution
part2 is kinda unoptimized, it should not use expanded input, but I did
not feel like rewriting my parsing code :)
2024-12-09 16:20:21 +02:00
90820f24a4 BAN: Make HashMap::{insert,emplace}{,_or_assign} return an iterator
This reduces the number of lookups done into the hash map :)
2024-12-09 03:37:13 +02:00
12a37500b0 Kernel: Fix triple-fault in vitual tty
This was happening when printing non-utf8 data while having virtual tty
as the debug console.
2024-12-09 03:35:51 +02:00
3ae6ffdb01 ports/tcc: Create usr/include/sys/ucontext.h
This file does not have to contain anything, tcc just requires that it
exists.
2024-12-08 20:42:04 +02:00
c4e76b391e aoc2024: Implement day8 solution
I did not feel like optimizing this one, so its a O(n^2) looking over
every cell in the grid. Performs way faster than my optimized day6
solution tho :DD
2024-12-08 16:14:39 +02:00
cf9ba737f0 aoc2024: Implement day7 solution 2024-12-07 07:34:21 +02:00
2d0690ae2d Kernel: Cleanup most of syscalls dealing with files 2024-12-07 05:33:04 +02:00
71a2d0971f Kernel: Remove unnecessary reverse from VFS file search 2024-12-07 01:41:23 +02:00
3bf57e0748 Kernel: Add . and .. entries to /proc/<pid> directories
This allows to run `cd ..` in one of these directories
2024-12-07 01:37:40 +02:00
fbc0319cb6 aoc2024: Implement day6 solution 2024-12-07 01:08:08 +02:00
e8bc3c2d80 General: Add intructions to run doom to README 2024-12-06 20:25:09 +02:00
fe192e07fb General: Update README feature list 2024-12-05 19:49:38 +02:00
51b6329c86 Kernel: Make backspace \b and delete 0x7F
This is what `vim` seems to expect and imo makes way more sense.
2024-12-05 17:34:37 +02:00
72d9e4c1e7 Kernel: Remove accidental debug prints from fcntl syscall 2024-12-05 17:34:32 +02:00
cb7d5c9d09 userspace: Implement dirname utility 2024-12-05 08:30:30 +02:00
097ab82529 userspace: Implement basename utility 2024-12-05 08:30:06 +02:00
ccb603d77f aoc2024: Implement day5 solution 2024-12-05 08:16:34 +02:00
d7b02db832 aoc2024: Implement day4 solution 2024-12-05 08:16:12 +02:00
56cc5da9fb userspace: Implement ln utility 2024-12-05 08:14:45 +02:00
1903079f96 LibC: Fix popen to return correct return value instead of -1 2024-12-05 06:47:10 +02:00
b6d0950ee9 LibC: Fix strftime implementation
This implementation now passes every musl-libc test :)
2024-12-05 06:46:31 +02:00
c1a32a4041 LibC: Implement mktime 2024-12-05 06:43:35 +02:00
8fa443879c ports: Add working tcc port!
You can actually now compile programs within banan-os!!
2024-12-04 21:23:09 +02:00
3a465cb94f DynamicLoader: Don't write to pltgot if it does not exist
This makes `tcc` compile runnable executables
2024-12-04 21:11:43 +02:00
49133dce48 Kernel: Make pipe check data every 100ms
This prevents dead lock if read-end does not detect data before blocking
why write-end already notified.
2024-12-03 21:54:27 +02:00
3b7b6beca5 ports: Allow using banan-os cmake toolchain file for ports 2024-12-03 20:29:38 +02:00
0dd81328ff ports: Unconditionally compile banan-os before building ports
This allows ports to use any banan-os library cleanly. Ninja is fast on
when everything is already compiled, so it doesn't add too much
overhead.
2024-12-03 20:29:38 +02:00
a668593e6b ports: Don't update ports on every build
This makes using ports much less painful :)
2024-12-03 20:29:38 +02:00
3a5a22511a aoc2024: Implement day3 solution 2024-12-03 20:29:38 +02:00
86859267f0 ports/curl: remove libcurl.la file and use /dev/urandom 2024-12-03 20:29:38 +02:00
88c9f6d233 LibC: Make environ a weak alias
If user program defines its own global `environ` variable it will still
work :)
2024-12-03 20:29:38 +02:00
176693dd5a LibC: Implement wcscmp and wcsncmp 2024-12-03 16:21:54 +02:00
62bee04fc0 LibC: Implement dummy utime that just checks file existance 2024-12-03 16:21:18 +02:00
0a5aacfd87 Kernel: Allow open with O_CREAT bypass file permission checks
call to open(path, O_CREAT|O_EXCL|O_RDWR, 0444) should open file as
read-write although file is created as read-only on filesystem.
2024-12-03 16:17:34 +02:00
2dec3a6c95 Kernel: Add some sanity checks for existanse of threads 2024-12-03 16:16:50 +02:00
fcc2814199 Kernel: Remove process from alarm list after it dies 2024-12-03 16:16:08 +02:00
bc93d238dd LibC: Fix fread argument order in gethostname 2024-12-03 16:15:16 +02:00
79e2c5d48c LibC: Make FILE* reading buffered
There was no reason to perform a syscall for every byte read
2024-12-03 16:13:48 +02:00
0fab7ad63b Kernel: Fix SYS_FCNTL command handling :)
I had misunderstood how these work
2024-12-03 16:12:26 +02:00
e6a2f55a59 Kernel: Closing file backed mmap wont expand the file size 2024-12-03 16:12:26 +02:00
67e9ca56ac Kernel: Create /dev/urandom -> /dev/random symlink
Most software uses urandom instead of random so this allows it work
normally.
2024-12-03 16:12:26 +02:00
713daf6cd3 Kernel/LibC: Add support for creating hardlinks 2024-12-03 16:12:26 +02:00
12abe81c6d ports/openssl: Add support for shared libraries 2024-12-03 01:46:59 +02:00
fbcf10c86d LibC: Implement closelog and make syslog print to stddbg 2024-12-03 01:45:54 +02:00
415b20f884 LibC: Remove errno EEXISTS
I don't know why I had added this. It doesn't seem to be a thing on
either POSIX or linux. This was literally equivalent to EXIST
2024-12-02 20:13:38 +02:00
d58ca5f37a Kernel/LibC: Implement symlink{,at} 2024-12-02 20:13:38 +02:00