From c3cd50085e400541e595a7852f84df680bb1dd14 Mon Sep 17 00:00:00 2001 From: Ekaitz Zarraga Date: Thu, 11 Jan 2024 16:36:50 +0100 Subject: Initial commit --- Fosdem2022/TALK.txt | 201 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 201 insertions(+) create mode 100644 Fosdem2022/TALK.txt (limited to 'Fosdem2022/TALK.txt') diff --git a/Fosdem2022/TALK.txt b/Fosdem2022/TALK.txt new file mode 100644 index 0000000..719c001 --- /dev/null +++ b/Fosdem2022/TALK.txt @@ -0,0 +1,201 @@ +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 -- cgit v1.2.3