Who I am (it's a little bit relevant to understand my previous knowledge) - telecommunication engineer (EEE equivalent) - Freelance engineer/programmer at ElenQ.Tech - Guix user and contributor Recently: - Interested in small computing - Lisp, specially scheme, specially small scheme implementations The early beginnings: - Started a very small scheme compiler for small machines, and thought about RISC-V. I decided to target RISC-V assembly (following: https://compilers.iecc.com/crenshaw/) - I studied RISC-V via [riscvbook] - I studied several scheme implementations - Nothing happened out of this, I gave up when I read about continuations but I learned some stuff. The random events - One day a friend tells me guix mailing list is looking for help to make a RISC-V port. I decide to raise my hand. - Now I'm involved in RISC-V porting effort somehow. - One day Andy Wingo, the Guile maintainer, mentions it would be interesting to port Lightening, Guile's JIT code generation library to RISC-V. Now I'm working on Lightening: things learned - Code is data -> I'm a lisp guy, I already knew that! - Some cool GDB debugging I already forgot (disassemble) - Now I'm able to hand-assemble instructions too - Machine code generation is not that complex - Relocations and large immediates are painful Lightening RISC-V is passing all the tests, next step is to give it a serious try and see if it works! Cross fingers! Stage0 - There was a chance to work on the bootstrap system of Guix via NlNet and the guys involved in the porting effort helped me prepare a proposal. - I had to learn about all the steps around so I started with Stage0. Stage0's steps: hex0 -> hex1 -> hex2 -> M0 (macro system) -> M2-Planet [ -> Gnu Mes ] Hex0 - Hex0 are hex files that contain what the ELF executable would, but encoded in Hexadecimal text. - I started with hex0, porting it to RISC-V (RV64). Thankfully, I was developing a RISC-V assembler (I never finished) that helped me generate the instructions by hand. - Took the ELF headers from the wikipedia. - It worked!! Effects of this effort - Other people at Bootstrappable took this work and finished the whole chain of Stage0! A random afternoon: - I was bored and the Hex0 for RV32 was missing. Looked the headers in the wikipedia and 20 minutes later it was added to the project. Another starting point solved! Now: - Took the NlNet grant and now I'm going to contribute to the full source bootstrap ecosystem. So now this is kind of my job. Conclusions: - This is just random work - Embrace the randomness of life, stay curious and you may reach interesting places. --- My blogposts about this process: https://ekaitz.elenq.tech/lightening.html https://ekaitz.elenq.tech/hex0.html https://ekaitz.elenq.tech/machine-code-generation.html RISC-V: http://riscvbook.com/ Bootstrap related: http://bootstrappable.org https://github.com/oriansj/stage0 https://github.com/oriansj/bootstrap-seeds GUILE https://www.gnu.org/software/guile/ https://gitlab.com/wingo/lightening/-/merge_requests/14/commits --- We are excited to announce a devroom on Declarative and Minimalistic Computing at FOSDEM on 5th and 6th of February, 2022, online! FOSDEM is one of the most important free software conferences and is hosted annually at Université libre de Bruxelles in Brussels, Belgium. Unfortunately again this year FOSDEM will not run a physical conference but will be online only. Talks will be pre-recorded with some live content including Q&A sessions and discussion panels. We accept talks from languages that attempt to minimize use of hardware and software while trying to make systems simpler, more robust and more secure. If you are working on improving today's systems taking declarative/minimalistic approaches feel free to submit a talk proposal. Examples include the Scheme/Lisp family of programmings languages. In past editions, this devroom has received presentations from a varied number of language communities, including Forth, Guile, Lua, Nim, Racket, Raku and Tcl as well as several experimental projects that push minimalism in new directions. Minimalism and declarative programming are two important topics for this devroom. Minimalism matters. Minimalism allows for smaller systems that take less resources and consume less energy. More importantly, free and open source minimalism allows for secure systems that are easy to understand. Declarative programming is a programming paradigm that expresses the logic of a computation without describing its control flow. Many languages that apply this style attempt to minimize or eliminate side effects by describing what the program must accomplish in terms of the problem domain, rather than describe how to accomplish it as a sequence of the programming language primitives. Finally, in this year's virtual conference we will honor the late Professor [https://en.wikipedia.org/wiki/John_McCarthy_(computer_scientist) John McCarthy] as the founder of AI and the inventor of LISP. McCarthy with his work pioneered artificial intelligence, developed the Lisp programming language family and kickstarted our modern computing world. We want to invite you to submit a talk on declarative and minimalistic computing that fits that description. We are especially happy to receive talk submissions from members of groups underrepresented in free software. If you have something you’d like to share with your fellow developers, please E-mail us! Talks considered for the devroom will have to be entered in - https://penta.fosdem.org/submission/FOSDEM22 The deadline for submission is December 20th. If you have a FOSDEM pentabarf account from a previous year, please use that account. Otherwise add one on https://penta.fosdem.org/user/new_account. Reach out to pjotr.public456@thebird.nl or manolis837@gmail.com if you run into any trouble. When submitting your talk make doubly sure to select "Declarative and Minimalistic Computing devroom" as track (if you don't we won't find it), and include the following information: * The title and subtitle of your talk * A short abstract of one paragraph * A longer description if you wish to do so * Links to related websites/blogs etc * Presentations has to be pre-recorded and streamed before the event. * Start recording early! To see what a final talk looks like see https://archive.fosdem.org/2021/schedule/event/gnumes/ For accepted talks * Once your talk was accepted, we will assign you an organizer to help you to produce the pre-recorded content. * The organizer will review the content and ensure it has the required quality. He is also responsible for ensuring the content is into the system and ready to broadcast. * During the stream of your talk, you must be available online for the Q/A session Let's make this a fun day! = Organizers = Pjotr Prins, Manolis Ragkousis, Ludovic Courtès, Amirouche Boubekki, Hisham Muhammad, Jan Nieuwenhuizen, Ricardo Wurmus, Alex Sassmannshausen, William Byrd, Oliver Propst, Efraim Flashner, Julien Lepiller = Code of conduct = - https://fosdem.org/2022/practical/conduct/ = Original proposal = - https://libreplanet.org/wiki/FOSDEM2022-devroom-proposal = Important dates: = - Dec 20th 2021: submission deadline for talk proposals - Dec 31th 2021: announcement of the final schedule - Jan 14th 2021: submission deadline for recordings - Feb 5th 2022: FOSDEM! = Links: = - https://libreplanet.org/wiki/FOSDEM2022-devroom-declarative-and-minimalistic-computing-cfp