1
This commit is contained in:
2022-07-22 22:34:52 +02:00
parent 9b6e84641c
commit 60a01461b0
2 changed files with 10 additions and 11 deletions

View File

@ -9,11 +9,11 @@ Changes
- Removed the Input.h/Input.cc files - Removed the Input.h/Input.cc files
- Made device classes singletons - Made device classes singletons
- Changed the multitasking assembly (use stack instead of thread_state) - Changed the multitasking assembly (use stack instead of thread_state)
- Extensive changes to the scheduling: - Many changes to the scheduler (strategy is still round robin):
- Merged dispatcher into the scheduler - Merged dispatcher into the scheduler
- Scheduler no longer uses queue but vector - Scheduler no longer uses queue but vector
- Scheduler owns threads - Scheduler owns threads (no outside references)
- Threads are addressed by tid - Threads are addressed by tid from the outside
- Threads are deallocated automatically when killed/exited - Threads are deallocated automatically when killed/exited
- Retrieve threads from the scheduler without deallocation - Retrieve threads from the scheduler without deallocation
- Scheduler manages blocked threads - Scheduler manages blocked threads
@ -22,14 +22,14 @@ Additions
====================================== ======================================
- Some stream manipulators for CGA_Stream (color) and OutStream (fixed width) - Some stream manipulators for CGA_Stream (color) and OutStream (fixed width)
- Logging class with support for colored serial port output - Logging class with support for colored serial port output
- Main menu to start demo - Main menu to start demos
- A very basic system to broadcast keyboard events to threads - A very basic system to broadcast keyboard events to threads
- Basic implementation of vector with iterator support - Basic implementation of vector with iterator support
- Basic implementation of unique_ptr - Basic implementation of unique_ptr
- Basic implementation of fixed size array - Basic implementation of fixed size array (just a wrapper for C-style arrays)
Bugs Bugs
====================================== ======================================
- Can't exit the PCSPKdemo - Can't exit the PCSPKdemo (bluescreen)
- Random bluescreens that are hard to pinpoint - Random bluescreens that are hard to pinpoint
- Tree Allocator (uses a red black tree to find best-fit blocks) crashes when freelist root is removed - Tree Allocator (uses a red black tree to find best-fit blocks) crashes when freelist root is removed

View File

@ -74,22 +74,21 @@ CXX ?= g++
# CC = clang # CC = clang
# CXX = clang++ # CXX = clang++
# Separate these as they are not compatible with clang14
EMPTY := EMPTY :=
GCC = gcc GCC = gcc
ifeq ($(CXX),$(GCC)) ifeq ($(CXX),$(GCC))
# Separate these as they are not compatible with clang14
EXTRAFLAGS = -mmanual-endbr -mpreferred-stack-boundary=2 EXTRAFLAGS = -mmanual-endbr -mpreferred-stack-boundary=2
else else
EXTRAFLAGS = $(EMPTY) EXTRAFLAGS = $(EMPTY)
endif endif
# NOTE: In some cases I needed O1/O0 to allow paging/bluescreen to work (We need the ebp on the stack) # NOTE: Need -O0 to allow paging/bluescreen to work (We need the ebp on the stack)
# I don't know why but right now it works with O2
CFLAGS := $(CFLAGS) -O0 -m32 -march=i486 -Wall -fno-stack-protector -nostdlib -I. -g -ffreestanding -fno-pie -fno-pic -Wno-write-strings -mno-sse -mno-sse2 $(EXTRAFLAGS) CFLAGS := $(CFLAGS) -O0 -m32 -march=i486 -Wall -fno-stack-protector -nostdlib -I. -g -ffreestanding -fno-pie -fno-pic -Wno-write-strings -mno-sse -mno-sse2 $(EXTRAFLAGS)
# I added -std=c++17 for if constexpr, but it isn't necessary for anything critical (I think?) # NOTE: -std=c++17 for if constexpr and probably some other stuff
# -std=c++20 is needed for template concepts and optional references, but we don't have it available :( # -std=c++20 is needed for template concepts and optional references, but we don't have it available :(
CXXFLAGS := $(CFLAGS) -Wno-non-virtual-dtor -fno-threadsafe-statics -fno-use-cxa-atexit -fno-rtti -fno-exceptions -std=c++17 CXXFLAGS := $(CFLAGS) -Wno-non-virtual-dtor -fno-threadsafe-statics -fno-use-cxa-atexit -fno-rtti -fno-exceptions -std=c++17
BOOT = ../boot BOOT = ../boot