home.social

#stage0 — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #stage0, aggregated by home.social.

  1. @nixos_org @nzbr

    While we're on the topic: work on minimal-bootstrap in #nixpkgs has actually been picked up again since this thesis was written (October 2025).

    Not only that but, as of a few hours ago, the PR implementing the last step of hooking it up to become the actual bootstrap stdenv in Nixpkgs has been merged!

    github.com/NixOS/nixpkgs/pull/

    #fullsourcebootstrap #reproduciblebuilds #stage0 #minimalbootstrap #bootstrappablebuilds

  2. @nixos_org @nzbr

    While we're on the topic: work on minimal-bootstrap in #nixpkgs has actually been picked up again since this thesis was written (October 2025).

    Not only that but, as of a few hours ago, the PR implementing the last step of hooking it up to become the actual bootstrap stdenv in Nixpkgs has been merged!

    github.com/NixOS/nixpkgs/pull/

    #fullsourcebootstrap #reproduciblebuilds #stage0 #minimalbootstrap #bootstrappablebuilds

  3. @nixos_org @nzbr

    While we're on the topic: work on minimal-bootstrap in #nixpkgs has actually been picked up again since this thesis was written (October 2025).

    Not only that but, as of a few hours ago, the PR implementing the last step of hooking it up to become the actual bootstrap stdenv in Nixpkgs has been merged!

    github.com/NixOS/nixpkgs/pull/

    #fullsourcebootstrap #reproduciblebuilds #stage0 #minimalbootstrap #bootstrappablebuilds

  4. @nixos_org @nzbr

    While we're on the topic: work on minimal-bootstrap in #nixpkgs has actually been picked up again since this thesis was written (October 2025).

    Not only that but, as of a few hours ago, the PR implementing the last step of hooking it up to become the actual bootstrap stdenv in Nixpkgs has been merged!

    github.com/NixOS/nixpkgs/pull/

    #fullsourcebootstrap #reproduciblebuilds #stage0 #minimalbootstrap #bootstrappablebuilds

  5. @nixos_org @nzbr

    While we're on the topic: work on minimal-bootstrap in #nixpkgs has actually been picked up again since this thesis was written (October 2025).

    Not only that but, as of a few hours ago, the PR implementing the last step of hooking it up to become the actual bootstrap stdenv in Nixpkgs has been merged!

    github.com/NixOS/nixpkgs/pull/

    #fullsourcebootstrap #reproduciblebuilds #stage0 #minimalbootstrap #bootstrappablebuilds

  6. github.com/oriansj/stage0/blob

    i havent read much assembly before, but, why does it use a mux for that? why not another loadui? stage1_assembler-0.s uses a loadui, why is it different here?

    #stage0

  7. github.com/oriansj/stage0/blob

    i havent read much assembly before, but, why does it use a mux for that? why not another loadui? stage1_assembler-0.s uses a loadui, why is it different here?

    #stage0

  8. This weekend I shrunk hex0 program on x86 from 190 -> 181 bytes.

    github.com/oriansj/bootstrap-s

    We probably can't go much lower without assuming that registers at the beginning of the program are zeroed or removing features from hex0 (e.g. supporting only one set of comments or only uppercase hex letters).

  9. This weekend I shrunk hex0 program on x86 from 190 -> 181 bytes.

    github.com/oriansj/bootstrap-s

    We probably can't go much lower without assuming that registers at the beginning of the program are zeroed or removing features from hex0 (e.g. supporting only one set of comments or only uppercase hex letters).

    #stage0 #boostrappableBuilds

  10. This weekend I shrunk hex0 program on x86 from 190 -> 181 bytes.

    github.com/oriansj/bootstrap-s

    We probably can't go much lower without assuming that registers at the beginning of the program are zeroed or removing features from hex0 (e.g. supporting only one set of comments or only uppercase hex letters).

    #stage0 #boostrappableBuilds

  11. This weekend I shrunk hex0 program on x86 from 190 -> 181 bytes.

    github.com/oriansj/bootstrap-s

    We probably can't go much lower without assuming that registers at the beginning of the program are zeroed or removing features from hex0 (e.g. supporting only one set of comments or only uppercase hex letters).

    #stage0 #boostrappableBuilds

  12. I was just reviewing the new x86 hex0 bootstrap seed: github.com/oriansj/stage0-posi. Big thanks to Noah Goldstein for making it smaller.

    Now it is only 190 bytes. Excluding ELF header that's only 106 bytes of code.

    For a couple of years hex0 binary was 256 bytes and before that hex0 was 357 bytes (this is the number that is still mentioned in guix.gnu.org/manual/devel/en/h).

  13. I was just reviewing the new x86 hex0 bootstrap seed: github.com/oriansj/stage0-posi. Big thanks to Noah Goldstein for making it smaller.

    Now it is only 190 bytes. Excluding ELF header that's only 106 bytes of code.

    For a couple of years hex0 binary was 256 bytes and before that hex0 was 357 bytes (this is the number that is still mentioned in guix.gnu.org/manual/devel/en/h).

    #bootstrappableBuilds #stage0

  14. I was just reviewing the new x86 hex0 bootstrap seed: github.com/oriansj/stage0-posi. Big thanks to Noah Goldstein for making it smaller.

    Now it is only 190 bytes. Excluding ELF header that's only 106 bytes of code.

    For a couple of years hex0 binary was 256 bytes and before that hex0 was 357 bytes (this is the number that is still mentioned in guix.gnu.org/manual/devel/en/h).

    #bootstrappableBuilds #stage0

  15. @janneke and I were trying to fix 64-bit ( for now) bootstrap. After applying some fixes to M2-Planet and we were able to bootstrap mes-m2 binary from . And it's working well enough to rebuild itself with .

    This is expected to be in the next releases of mes 0.25 and M2-Planet 0.11.

  16. @janneke and I were trying to fix 64-bit (#amd64 for now) #mes bootstrap. After applying some fixes to M2-Planet and #mes we were able to bootstrap mes-m2 binary from #hex0. And it's working well enough to rebuild itself with #mescc.

    This is expected to be in the next releases of mes 0.25 and M2-Planet 0.11.

    #BootstrappableBuilds #stage0

  17. @janneke and I were trying to fix 64-bit (#amd64 for now) #GnuMes bootstrap. After applying some fixes to M2-Planet and #mes we were able to bootstrap mes-m2 binary from #hex0. And it's working well enough to rebuild itself with #mescc.

    This is expected to be in the next releases of mes 0.25 and M2-Planet 0.11.

    #BootstrappableBuilds #stage0

  18. @janneke and I were trying to fix 64-bit (#amd64 for now) #mes bootstrap. After applying some fixes to M2-Planet and #mes we were able to bootstrap mes-m2 binary from #hex0. And it's working well enough to rebuild itself with #mescc.

    This is expected to be in the next releases of mes 0.25 and M2-Planet 0.11.

    #BootstrappableBuilds #stage0

  19. @janneke and I were trying to fix 64-bit (#amd64 for now) #mes bootstrap. After applying some fixes to M2-Planet and #mes we were able to bootstrap mes-m2 binary from #hex0. And it's working well enough to rebuild itself with #mescc.

    This is expected to be in the next releases of mes 0.25 and M2-Planet 0.11.

    #BootstrappableBuilds #stage0

  20. Just like in the case of #CollapseOS or the #Guix minimal bootstrap project with #stage0 , #mes and #mescc that means cutting down on complexity and rebasing the history of actual events, so that iterations can.be short-circuited and the chain from very low technological sophistication to the level that can fulfill the task can be kept as short as possible.
  21. Just like in the case of #CollapseOS or the #Guix minimal bootstrap project with #stage0 , #mes and #mescc that means cutting down on complexity and rebasing the history of actual events, so that iterations can.be short-circuited and the chain from very low technological sophistication to the level that can fulfill the task can be kept as short as possible.
  22. Actually existing 《 #BareMetal coding 》be like:

    Copyright (C) 2016 Jeremiah Orians
    This file is part of #stage0

    stage0 is free software: you can redistribute it and/or modify. It under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. stage0 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

    ## ELF Header
    7F 45 4C 46
    02
    01
    01
    03
    00
    00 00 00 00 00 00 00
    02 00
    3E 00
    01 00 00 00
    FB 00 60 00 00 00 00 00
    40 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00
    00 00 00 00
    40 00
    38 00
    01 00
    00 00
    00 00
    00 00

    ## Program header table
    01 00 00 00
    07 00 00 00
    00 00 00 00 00 00 00 00
    00 00 60 00 00 00 00 00
    00 00 00 00 00 00 00 00
    9B 01 00 00 00 00 00 00
    9B 01 00 00 00 00 00 00
    00 00 20 00 00 00 00 00

    ## Hex
    48 83 f8 23
    74 26
    48 83 f8 30
    7c 6f
    48 83 f8 3a
    7c 5a
    48 83 f8 41
    7c 63
    48 83 f8 47
    7c 58
    48 83 f8 61
    7c 57
    48 83 f8 67
    7c 47
    eb 4f

    ## Purge Comment
    48 c7 c2 01 00 00 00
    48 c7 c6 99 01 60 00
    48 c7 c7 00 00 00 00
    48 c7 c0 00 00 00 00
    0f 05
    48 85 c0
    0f 84 be 00 00 00
    8a 04 25 99 01 60 00
    48 0f b6 c0
    48 83 f8 0a
    75 c8
    48 c7 c0 ff ff ff ff
    c3

    ## ascii num
    48 83 e8 30
    c3

    ## ascii low
    48 83 e8 57
    c3

    ## ascii high
    48 83 e8 37
    c3

    ## ascii other
    48 c7 c0 ff ff ff ff
    c3

    ## start
    49 c7 c7 ff ff ff ff
    49 c7 c6 00 00 00 00

    ## Loop
    48 c7 c2 01 00 00 00
    48 c7 c6 99 01 60 00
    48 c7 c7 00 00 00 00
    48 c7 c0 00 00 00 00
    0f 05
    48 85 c0
    74 5d
    8a 04 25 99 01 60 00
    48 0f b6 c0
    e8 3c ff ff ff
    48 83 f8 00
    7c c7
    49 83 ff 00
    7d 0c
    49 89 c6
    49 c7 c7 00 00 00 00
    eb b5

    ## print
    49 c1 e6 04
    4c 01 f0
    88 04 25 9a 01 60 00
    49 c7 c7 ff ff ff ff
    48 c7 c2 01 00 00 00
    48 c7 c6 9a 01 60 00
    48 c7 c7 01 00 00 00
    48 c7 c0 01 00 00 00
    0f 05
    eb 80

    ## Done
    48 c7 c7 00 00 00 00
    48 c7 c0 3c 00 00 00
    0f 05

    ## Place for input, This actually isn't required but here it is
    02 00 00

    #hex0 #mes #guix #bootstrappable #gnu

    savannah.nongnu.org/cvs/?group

  23. Recently I have been working on my new project:

    git.stikonas.eu/andrius/stage0

    This is probably the first self-hosted compiler that runs on UEFI. But it's not just that, it can also be bootstrapped from hex.

    It is still work in progress and does not go beyond self-hosting M2-Planet on UEFI but its POSIX equivalent (that assumes existence of kernel such as ) can go all the way from hex to GCC:

    github.com/fosslinux/live-boot
    github.com/oriansj/stage0-posix

  24. I have a lot of respect for the people working on these hard problems for decades!

    The goal, the holy grail of computing, to have a Full Source Bootstrap, seem so close.

    For the latest developments check out the mailing list:

    freelists.org/post/bootstrappa
    freelists.org/post/bootstrappa

    #GNU #Mes #stage0 #bootstrap

  25. ‌bcc, the #BootstrappableCompilerCollection

    It's not a project that exists, but someone (a whole bunch of somebodies really) could make it exist!

    Provide a set of compilers that all go the shortest path from #stage0 to e.g.:
    - Forth
    - Scheme
    - C
    - Forth
    - Ada

    Re: hackers.town/@theruran/1068493… @theruran
  26. Actually existing 《 #BareMetal coding 》be like:

    Copyright (C) 2016 Jeremiah Orians
    This file is part of #stage0

    stage0 is free software: you can redistribute it and/or modify. It under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. stage0 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

    ## ELF Header
    7F 45 4C 46
    02
    01
    01
    03
    00
    00 00 00 00 00 00 00
    02 00
    3E 00
    01 00 00 00
    FB 00 60 00 00 00 00 00
    40 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00
    00 00 00 00
    40 00
    38 00
    01 00
    00 00
    00 00
    00 00

    ## Program header table
    01 00 00 00
    07 00 00 00
    00 00 00 00 00 00 00 00
    00 00 60 00 00 00 00 00
    00 00 00 00 00 00 00 00
    9B 01 00 00 00 00 00 00
    9B 01 00 00 00 00 00 00
    00 00 20 00 00 00 00 00

    ## Hex
    48 83 f8 23
    74 26
    48 83 f8 30
    7c 6f
    48 83 f8 3a
    7c 5a
    48 83 f8 41
    7c 63
    48 83 f8 47
    7c 58
    48 83 f8 61
    7c 57
    48 83 f8 67
    7c 47
    eb 4f

    ## Purge Comment
    48 c7 c2 01 00 00 00
    48 c7 c6 99 01 60 00
    48 c7 c7 00 00 00 00
    48 c7 c0 00 00 00 00
    0f 05
    48 85 c0
    0f 84 be 00 00 00
    8a 04 25 99 01 60 00
    48 0f b6 c0
    48 83 f8 0a
    75 c8
    48 c7 c0 ff ff ff ff
    c3

    ## ascii num
    48 83 e8 30
    c3

    ## ascii low
    48 83 e8 57
    c3

    ## ascii high
    48 83 e8 37
    c3

    ## ascii other
    48 c7 c0 ff ff ff ff
    c3

    ## start
    49 c7 c7 ff ff ff ff
    49 c7 c6 00 00 00 00

    ## Loop
    48 c7 c2 01 00 00 00
    48 c7 c6 99 01 60 00
    48 c7 c7 00 00 00 00
    48 c7 c0 00 00 00 00
    0f 05
    48 85 c0
    74 5d
    8a 04 25 99 01 60 00
    48 0f b6 c0
    e8 3c ff ff ff
    48 83 f8 00
    7c c7
    49 83 ff 00
    7d 0c
    49 89 c6
    49 c7 c7 00 00 00 00
    eb b5

    ## print
    49 c1 e6 04
    4c 01 f0
    88 04 25 9a 01 60 00
    49 c7 c7 ff ff ff ff
    48 c7 c2 01 00 00 00
    48 c7 c6 9a 01 60 00
    48 c7 c7 01 00 00 00
    48 c7 c0 01 00 00 00
    0f 05
    eb 80

    ## Done
    48 c7 c7 00 00 00 00
    48 c7 c0 3c 00 00 00
    0f 05

    ## Place for input, This actually isn't required but here it is
    02 00 00

    #hex0 #mes #guix #bootstrappable #gnu

    savannah.nongnu.org/cvs/?group

  27. Actually existing 《 #BareMetal coding 》be like:

    Copyright (C) 2016 Jeremiah Orians
    This file is part of #stage0

    stage0 is free software: you can redistribute it and/or modify. It under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. stage0 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

    ## ELF Header
    7F 45 4C 46
    02
    01
    01
    03
    00
    00 00 00 00 00 00 00
    02 00
    3E 00
    01 00 00 00
    FB 00 60 00 00 00 00 00
    40 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00
    00 00 00 00
    40 00
    38 00
    01 00
    00 00
    00 00
    00 00

    ## Program header table
    01 00 00 00
    07 00 00 00
    00 00 00 00 00 00 00 00
    00 00 60 00 00 00 00 00
    00 00 00 00 00 00 00 00
    9B 01 00 00 00 00 00 00
    9B 01 00 00 00 00 00 00
    00 00 20 00 00 00 00 00

    ## Hex
    48 83 f8 23
    74 26
    48 83 f8 30
    7c 6f
    48 83 f8 3a
    7c 5a
    48 83 f8 41
    7c 63
    48 83 f8 47
    7c 58
    48 83 f8 61
    7c 57
    48 83 f8 67
    7c 47
    eb 4f

    ## Purge Comment
    48 c7 c2 01 00 00 00
    48 c7 c6 99 01 60 00
    48 c7 c7 00 00 00 00
    48 c7 c0 00 00 00 00
    0f 05
    48 85 c0
    0f 84 be 00 00 00
    8a 04 25 99 01 60 00
    48 0f b6 c0
    48 83 f8 0a
    75 c8
    48 c7 c0 ff ff ff ff
    c3

    ## ascii num
    48 83 e8 30
    c3

    ## ascii low
    48 83 e8 57
    c3

    ## ascii high
    48 83 e8 37
    c3

    ## ascii other
    48 c7 c0 ff ff ff ff
    c3

    ## start
    49 c7 c7 ff ff ff ff
    49 c7 c6 00 00 00 00

    ## Loop
    48 c7 c2 01 00 00 00
    48 c7 c6 99 01 60 00
    48 c7 c7 00 00 00 00
    48 c7 c0 00 00 00 00
    0f 05
    48 85 c0
    74 5d
    8a 04 25 99 01 60 00
    48 0f b6 c0
    e8 3c ff ff ff
    48 83 f8 00
    7c c7
    49 83 ff 00
    7d 0c
    49 89 c6
    49 c7 c7 00 00 00 00
    eb b5

    ## print
    49 c1 e6 04
    4c 01 f0
    88 04 25 9a 01 60 00
    49 c7 c7 ff ff ff ff
    48 c7 c2 01 00 00 00
    48 c7 c6 9a 01 60 00
    48 c7 c7 01 00 00 00
    48 c7 c0 01 00 00 00
    0f 05
    eb 80

    ## Done
    48 c7 c7 00 00 00 00
    48 c7 c0 3c 00 00 00
    0f 05

    ## Place for input, This actually isn't required but here it is
    02 00 00

    #hex0 #mes #guix #bootstrappable #gnu

    savannah.nongnu.org/cvs/?group

  28. Recently I have been working on my new project:

    git.stikonas.eu/andrius/stage0

    This is probably the first self-hosted compiler that runs on UEFI. But it's not just that, it can also be bootstrapped from hex.

    It is still work in progress and does not go beyond self-hosting M2-Planet on UEFI but its POSIX equivalent (that assumes existence of kernel such as #linux) can go all the way from hex to GCC:

    github.com/fosslinux/live-boot
    github.com/oriansj/stage0-posi

    #bootstrappable #uefi #stage0

  29. Recently I have been working on my new project:

    git.stikonas.eu/andrius/stage0

    This is probably the first self-hosted compiler that runs on UEFI. But it's not just that, it can also be bootstrapped from hex.

    It is still work in progress and does not go beyond self-hosting M2-Planet on UEFI but its POSIX equivalent (that assumes existence of kernel such as #linux) can go all the way from hex to GCC:

    github.com/fosslinux/live-boot
    github.com/oriansj/stage0-posi

    #bootstrappable #uefi #stage0

  30. Recently I have been working on my new project:

    git.stikonas.eu/andrius/stage0

    This is probably the first self-hosted compiler that runs on UEFI. But it's not just that, it can also be bootstrapped from hex.

    It is still work in progress and does not go beyond self-hosting M2-Planet on UEFI but its POSIX equivalent (that assumes existence of kernel such as #linux) can go all the way from hex to GCC:

    github.com/fosslinux/live-boot
    github.com/oriansj/stage0-posi

    #bootstrappable #uefi #stage0