Bananymous 
							
						 
						
							
								0c3e5980d6 
								
							 
						 
						
							
							
								
								AOC2023: Implement day9  
							
							
							
						 
						
							2023-12-09 16:22:43 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								951873098e 
								
							 
						 
						
							
							
								
								BAN: Rewrite heap sort  
							
							... 
							
							
							
							Heap sort is now more close to gnulibc++ version. This is just more
simplified version. 
							
						 
						
							2023-12-08 22:45:55 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								2b927b9729 
								
							 
						 
						
							
							
								
								BAN: Restructure sort functions and namespaces  
							
							
							
						 
						
							2023-12-08 18:58:47 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								b523ccb893 
								
							 
						 
						
							
							
								
								AOC2023: Implement day8  
							
							... 
							
							
							
							Second part was kinda weird. You are supposted to assume something
of the input, which necessarily is not true. 
							
						 
						
							2023-12-08 17:13:20 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								7bb3172591 
								
							 
						 
						
							
							
								
								AOC2023: Use the default sort algorithm  
							
							
							
						 
						
							2023-12-08 00:10:59 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								be657b9b18 
								
							 
						 
						
							
							
								
								BAN: Add default sort. This is wrapper around sort_intro  
							
							
							
						 
						
							2023-12-08 00:10:09 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								94e6b9fa65 
								
							 
						 
						
							
							
								
								BAN: Implement intro sort  
							
							
							
						 
						
							2023-12-07 23:56:11 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								d8ea0eeba3 
								
							 
						 
						
							
							
								
								BAN: Add less than operator for iterator  
							
							
							
						 
						
							2023-12-07 23:55:41 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								6873244169 
								
							 
						 
						
							
							
								
								BAN: Move placement new to New.h  
							
							... 
							
							
							
							I have no idea why they were defined in Move.h 
							
						 
						
							2023-12-07 23:52:57 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								805b4096e9 
								
							 
						 
						
							
							
								
								BAN: Remove empty else. Builds with -Wall -Wextra  
							
							
							
						 
						
							2023-12-07 23:50:35 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								0f74e123b8 
								
							 
						 
						
							
							
								
								BAN: Implement ilog2 for unsigned integers  
							
							
							
						 
						
							2023-12-07 23:50:04 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								7f212106db 
								
							 
						 
						
							
							
								
								BAN: Implement heap sort  
							
							
							
						 
						
							2023-12-07 23:18:49 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								46c3da71b6 
								
							 
						 
						
							
							
								
								BAN: Cleanup sorting code  
							
							
							
						 
						
							2023-12-07 23:18:49 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								e5cab047d6 
								
							 
						 
						
							
							
								
								BAN: Implement more methods for iterators  
							
							
							
						 
						
							2023-12-07 23:18:49 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								bf3e9eabd5 
								
							 
						 
						
							
							
								
								BAN: Implement distance() for iterators  
							
							
							
						 
						
							2023-12-07 23:18:49 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								19604015de 
								
							 
						 
						
							
							
								
								BAN: Implement quick sort  
							
							
							
						 
						
							2023-12-07 19:28:31 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								08bc0a2815 
								
							 
						 
						
							
							
								
								BAN: Implement next() and prev() for iterators and use them in sorts  
							
							
							
						 
						
							2023-12-07 19:28:05 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								3bc7113cc5 
								
							 
						 
						
							
							
								
								sudo: fix some typos  
							
							
							
						 
						
							2023-12-07 14:05:17 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								24243268a6 
								
							 
						 
						
							
							
								
								Shell: do path resolution only if command doesn't contain '/'  
							
							
							
						 
						
							2023-12-07 13:34:46 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								2e858fddb5 
								
							 
						 
						
							
							
								
								Kernel: Remove obsolete Scheduler::is_valid_tid()  
							
							... 
							
							
							
							This function was used when processes could die at any point in time.
Now that processes can only die in known spots, we can be sure they
are not holding any locks. This allows much more performant locking. 
							
						 
						
							2023-12-07 13:26:42 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								12474addda 
								
							 
						 
						
							
							
								
								Kernel: Make Inodes use the new lock  
							
							... 
							
							
							
							Also remove old lock from TTY since it can just use the one Inode
already has. 
							
						 
						
							2023-12-07 13:19:12 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								7c25e4ce5a 
								
							 
						 
						
							
							
								
								Kernel: Implement RecursivePrioritySpinLock  
							
							... 
							
							
							
							This locks won't allow locking from userspace thread if there is
kernel thread waiting to lock this. 
							
						 
						
							2023-12-07 13:18:21 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								669d55707e 
								
							 
						 
						
							
							
								
								AOC2023: Use quick sort in solution  
							
							
							
						 
						
							2023-12-07 11:55:28 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								6caa9b6f95 
								
							 
						 
						
							
							
								
								BAN: implement quick sort and test for it  
							
							
							
						 
						
							2023-12-07 11:55:28 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								59ad639fa8 
								
							 
						 
						
							
							
								
								BAN: Fix simple iterator operator--()  
							
							
							
						 
						
							2023-12-07 11:55:28 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								43458cc74f 
								
							 
						 
						
							
							
								
								BAN: implement exchange sort and test for it  
							
							
							
						 
						
							2023-12-07 11:55:28 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								e935a33a4d 
								
							 
						 
						
							
							
								
								BAN: add value_type to iterators  
							
							
							
						 
						
							2023-12-07 10:15:18 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								536bb74d53 
								
							 
						 
						
							
							
								
								AOC2023: optimize hand score calculation  
							
							
							
						 
						
							2023-12-07 09:26:17 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								a872efdef2 
								
							 
						 
						
							
							
								
								BAN: implement basic swap  
							
							... 
							
							
							
							This will be improved, currently just works on general type T and
moves values between arguments. 
							
						 
						
							2023-12-07 09:26:17 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								efd8be8207 
								
							 
						 
						
							
							
								
								AOC2023: implement day7  
							
							
							
						 
						
							2023-12-07 07:56:56 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								06a84da844 
								
							 
						 
						
							
							
								
								Userspace: Implement barebones sudo  
							
							... 
							
							
							
							This doesn't do any password checking or anything. Just sets uid and
gid before execvp() 
							
						 
						
							2023-12-06 18:15:42 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								24b71d1170 
								
							 
						 
						
							
							
								
								Kernel: Appreciate setuid and setgid bits executables  
							
							
							
						 
						
							2023-12-06 18:14:27 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								0dc168a8c0 
								
							 
						 
						
							
							
								
								LibC: Implement basic execvp  
							
							
							
						 
						
							2023-12-06 18:14:00 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								76049b2e13 
								
							 
						 
						
							
							
								
								LibC: Implement and fix some string.h functions  
							
							
							
						 
						
							2023-12-06 18:13:34 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								393ac33e3c 
								
							 
						 
						
							
							
								
								Kernel: Make sys_nanosleep interruptable by signals  
							
							
							
						 
						
							2023-12-06 16:22:24 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								deeb6d2756 
								
							 
						 
						
							
							
								
								Kernel: Cleanup sys_sleep() and TTY::read_impl  
							
							
							
						 
						
							2023-12-06 16:21:22 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								1ac831d4b1 
								
							 
						 
						
							
							
								
								Kernel: Add API to block on semaphore until unblock or EINTR  
							
							
							
						 
						
							2023-12-06 16:13:07 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								534969df32 
								
							 
						 
						
							
							
								
								Kernel: Scheduler::unblock_thread() wakes sleeping threads  
							
							
							
						 
						
							2023-12-06 16:12:37 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								976ae64f88 
								
							 
						 
						
							
							
								
								LibC: make sleep() set errno if sleep woke up early  
							
							
							
						 
						
							2023-12-06 13:13:43 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								a12ffaa8a2 
								
							 
						 
						
							
							
								
								Kernel: Make sleep syscall interruptable  
							
							
							
						 
						
							2023-12-06 13:13:37 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								ff8b3be8dc 
								
							 
						 
						
							
							
								
								Userspace: implement basic sleep command  
							
							
							
						 
						
							2023-12-06 13:05:53 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								56008869d6 
								
							 
						 
						
							
							
								
								Shell: Handle keyboard input that was interrupted by signal  
							
							
							
						 
						
							2023-12-06 13:04:33 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								1c78671078 
								
							 
						 
						
							
							
								
								Kernel: Rework all signal code  
							
							... 
							
							
							
							Signal handling code was way too complex. Now everything is
simplified and there is no need for ThreadBlockers.
Only complication that this patch includes is that blocking syscalls
have to manually be made interruptable by signal. There might be some
clever solution to combat this is make this happen automatically. 
							
						 
						
							2023-12-06 13:02:17 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								cdcc36efde 
								
							 
						 
						
							
							
								
								Kernel: Remove unnecessary raise syscall  
							
							
							
						 
						
							2023-12-06 13:00:45 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								336daa2cc5 
								
							 
						 
						
							
							
								
								Kernel: Add helper for checking whether segment is from userspace  
							
							
							
						 
						
							2023-12-06 12:57:13 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								531211e09d 
								
							 
						 
						
							
							
								
								AOC2023: implement day6  
							
							
							
						 
						
							2023-12-06 07:27:25 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								894065a67e 
								
							 
						 
						
							
							
								
								LibC: cleanup and fix fgets  
							
							... 
							
							
							
							My quick fix for fgets wrote non-nullterminated newline if size was
one.
POSIX doesn't specify what happens if size == 0, so I do the same as
glibc and return NULL without setting errno. 
							
						 
						
							2023-12-05 10:00:43 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								82cb2ea20b 
								
							 
						 
						
							
							
								
								AOC2023: implement day5  
							
							
							
						 
						
							2023-12-05 09:13:13 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								95fc894303 
								
							 
						 
						
							
							
								
								LibC: fix fgets when reading empty line  
							
							
							
						 
						
							2023-12-05 07:46:14 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								622007f2ee 
								
							 
						 
						
							
							
								
								Shell: Verify that command exists before executing it  
							
							... 
							
							
							
							This prevents page fault somewhere when executing non-existing
commands. 
							
						 
						
							2023-12-04 22:57:27 +02:00