A lot has happened since the last blogpost! My biggest pieces of progress are in three sections: Self-Hosted Development Server My PC is great at building my OS project and running the pipeline, with a custom cross-compiler built specifically for that machine to target the specific architecture of my operating system. My PC has been perfectly specialized to work with this project. However, it's not very... portable. When I want to work on the project away from home, I have no hopes of actually compiling it and seeing if it runs correctly (if at all) or not. This is why I migrated my project to be on a raspberry-pi, another computer than I'm making a server, running continuously, and providing an environment for me to use wherever I am! This server will be running a clone of my repository, but the interesting thing is I've set up SSH (Safe Secure Shell) on it, meaning with the right commands I can access this device without actually having to be near it. After configuring some ports on my home router, I had it up fully ready to go! But then... the compilation. Now I had to recompile the cross-compiler to an Ubuntu docker container (don't ask me why I didn't target the raspberry pi itself I don't know why I did that). This process. Took. 5 hours. But finally, it worked! I can now develop and build the OS from whatever computer and whatever location I want to!
0 Comments
Hey all! These past two week have been quite a ride, and I decided to take a break from coding because of how much typing I have been doing and to save my self some extra headaches. I decided to go into the more creative path of exploration and started designing the programming language syntax and features. I've also started drafting my requisition forms for the breadboard kit, circuit board programs, and processor. I will upload my notes of the programming language design when I get a hold of them again. For now, let me explain what goes into a compiler and interpreter. A standard interpreter has two main parts: a lexer and parser. A lexer takes in the text and spits out tokenized symbols that represent each word or statement in the code. By transforming text into tokens, it makes the job of actually interpreting and translating the code much easier. The parser takes these tokens and constructs and AST or Abstract Syntax Tree, which represents all the token in a semantic data structure, similar to how we represent English sentences. An AST lends easily to operator precedence, optimization, and advanced syntactic sugar. Requisition Forms I'm currently finalizing my research for the things I need to get to start my EE and quickly pump out a prototype so I can tinker with it. I have three main things I'll need to get: |
AuthorWrite something about yourself. No need to be fancy, just an overview. Archives
November 2022
Categories |