Commit Graph

507 Commits

Author SHA1 Message Date
Bananymous d035068982 aoc2024: Implement day23 solution
I'm not proud of my implementation to last 2 days, but they work in a
reasonable time. I might optimize them later...

Problem is largely with my hash structures. Preallocating a lot of
elements before running day22 makes it run in less than half of the
current time.
2024-12-23 21:20:47 +02:00
Bananymous af8156f310 aoc2024: Implement day22 solution 2024-12-23 01:47:27 +02:00
Bananymous 47b995a2a3 aoc2024: Implement day21 solution 2024-12-22 21:39:28 +02:00
Bananymous 6f8f99f42c Terminal: Set terminal size with TIOCSWINSZ when starting
This actually fixes the very broken vim port
2024-12-21 03:23:21 +02:00
Bananymous 9caa3030ea aoc2024: Implement day20 solution 2024-12-20 21:31:10 +02:00
Bananymous 3e9826acf5 aoc2024: Implement day19 solution 2024-12-19 12:57:28 +02:00
Bananymous a7f3351c0e TaskBar: Prevent possible division by zero
If battery reports its full capacity as zero, battery percentage
calculation did a division by zero crashing the TaskBar :)
2024-12-18 18:36:26 +02:00
Bananymous 2e39668605 aoc2024: Implement day18 solution 2024-12-18 14:06:32 +02:00
Bananymous 0642c569b4 TaskBar: Show battery percentage if available 2024-12-18 14:06:32 +02:00
Bananymous a584e1a4ec aoc2024: Implement day17 solution 2024-12-17 23:30:37 +02:00
Bananymous 463bb72d24 aoc2024: Implement day16 solution 2024-12-16 17:23:08 +02:00
Bananymous a7e06715ba aoc2024: Implement day15 solution 2024-12-15 20:45:57 +02:00
Bananymous a89fd95864 aoc2024: Implement day14 solution 2024-12-14 23:52:22 +02:00
Bananymous 9ba9469bb1 aoc2024: Optimize day12
There is actually no need for hash maps
2024-12-14 03:58:11 +02:00
Bananymous 4dbf173ed4 aoc2024: Implement day13 solution 2024-12-14 03:17:55 +02:00
Bananymous 8936cca9cf aoc2024: Implement day12 solution 2024-12-12 17:03:31 +02:00
Bananymous 1c704680a8 aoc2024: Implement day11 solution
Finally we got a problem where trivial solution does not work
2024-12-11 09:05:52 +02:00
Bananymous 3e36834751 aoc2024: Implement day10 solution 2024-12-10 17:26:39 +02:00
Bananymous 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
Bananymous 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
Bananymous 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
Bananymous cf9ba737f0 aoc2024: Implement day7 solution 2024-12-07 07:34:21 +02:00
Bananymous fbc0319cb6 aoc2024: Implement day6 solution 2024-12-07 01:08:08 +02:00
Bananymous 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
Bananymous cb7d5c9d09 userspace: Implement `dirname` utility 2024-12-05 08:30:30 +02:00
Bananymous 097ab82529 userspace: Implement `basename` utility 2024-12-05 08:30:06 +02:00
Bananymous ccb603d77f aoc2024: Implement day5 solution 2024-12-05 08:16:34 +02:00
Bananymous d7b02db832 aoc2024: Implement day4 solution 2024-12-05 08:16:12 +02:00
Bananymous 56cc5da9fb userspace: Implement `ln` utility 2024-12-05 08:14:45 +02:00
Bananymous 1903079f96 LibC: Fix popen to return correct return value instead of -1 2024-12-05 06:47:10 +02:00
Bananymous b6d0950ee9 LibC: Fix strftime implementation
This implementation now passes every musl-libc test :)
2024-12-05 06:46:31 +02:00
Bananymous c1a32a4041 LibC: Implement mktime 2024-12-05 06:43:35 +02:00
Bananymous 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
Bananymous 3a5a22511a aoc2024: Implement day3 solution 2024-12-03 20:29:38 +02:00
Bananymous 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
Bananymous 176693dd5a LibC: Implement wcscmp and wcsncmp 2024-12-03 16:21:54 +02:00
Bananymous 62bee04fc0 LibC: Implement dummy utime that just checks file existance 2024-12-03 16:21:18 +02:00
Bananymous bc93d238dd LibC: Fix fread argument order in gethostname 2024-12-03 16:15:16 +02:00
Bananymous 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
Bananymous 0fab7ad63b Kernel: Fix SYS_FCNTL command handling :)
I had misunderstood how these work
2024-12-03 16:12:26 +02:00
Bananymous 713daf6cd3 Kernel/LibC: Add support for creating hardlinks 2024-12-03 16:12:26 +02:00
Bananymous fbcf10c86d LibC: Implement closelog and make syslog print to stddbg 2024-12-03 01:45:54 +02:00
Bananymous 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
Bananymous d58ca5f37a Kernel/LibC: Implement symlink{,at} 2024-12-02 20:13:38 +02:00
Bananymous 11b6ee423e LibC: Define timezone structure 2024-12-02 20:13:37 +02:00
Bananymous a10ca47657 Kernel/LibC: Implement {,f}statvfs 2024-12-02 20:13:37 +02:00
Bananymous ad1f175a39 Kernel/LibC: Implement getppid 2024-12-02 20:13:37 +02:00
Bananymous fd3246113a LibC: Implement missing execlp and cleanup exec code 2024-12-02 20:13:37 +02:00
Bananymous b8013c883c LibC: Implement getpass 2024-12-02 20:13:37 +02:00
Bananymous ffcc4fd03a init: Make tty owned by logged in user 2024-12-02 20:13:37 +02:00