55c8a15983
aoc2024: Implement day25 solution
...
This was a nice AOC season. First time I fully completed it! I may still
optimize my solutions as some of them are a bit slow...
2024-12-25 18:13:57 +02:00
3607e2e759
aoc2024: Implement day24 solution
...
This is kinda weird and specific to my input but it works xD
2024-12-25 18:13:20 +02:00
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
af8156f310
aoc2024: Implement day22 solution
2024-12-23 01:47:27 +02:00
47b995a2a3
aoc2024: Implement day21 solution
2024-12-22 21:39:28 +02:00
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
9caa3030ea
aoc2024: Implement day20 solution
2024-12-20 21:31:10 +02:00
3e9826acf5
aoc2024: Implement day19 solution
2024-12-19 12:57:28 +02:00
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
2e39668605
aoc2024: Implement day18 solution
2024-12-18 14:06:32 +02:00
0642c569b4
TaskBar: Show battery percentage if available
2024-12-18 14:06:32 +02:00
a584e1a4ec
aoc2024: Implement day17 solution
2024-12-17 23:30:37 +02:00
463bb72d24
aoc2024: Implement day16 solution
2024-12-16 17:23:08 +02:00
a7e06715ba
aoc2024: Implement day15 solution
2024-12-15 20:45:57 +02:00
a89fd95864
aoc2024: Implement day14 solution
2024-12-14 23:52:22 +02:00
9ba9469bb1
aoc2024: Optimize day12
...
There is actually no need for hash maps
2024-12-14 03:58:11 +02:00
4dbf173ed4
aoc2024: Implement day13 solution
2024-12-14 03:17:55 +02:00
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
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
fbc0319cb6
aoc2024: Implement day6 solution
2024-12-07 01:08:08 +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
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
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
3a5a22511a
aoc2024: Implement day3 solution
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
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
713daf6cd3
Kernel/LibC: Add support for creating hardlinks
2024-12-03 16:12:26 +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
11b6ee423e
LibC: Define timezone structure
2024-12-02 20:13:37 +02:00
a10ca47657
Kernel/LibC: Implement {,f}statvfs
2024-12-02 20:13:37 +02:00
ad1f175a39
Kernel/LibC: Implement getppid
2024-12-02 20:13:37 +02:00
fd3246113a
LibC: Implement missing execlp and cleanup exec code
2024-12-02 20:13:37 +02:00