Commit Graph

661 Commits

Author SHA1 Message Date
4b2c303873 LibC: Add weak_alias header that defines a weak_alias macro 2025-01-14 18:33:57 +02:00
8c45249c06 LibC: Remove stdint.h as toolchain provides one
I have no idea why i even had this written, it was just containing
compiler macros
2024-12-30 06:26:17 +02:00
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