profile
viewpoint
Rett Berg vitiral Google Denver, CO Debugging [definition]: being the detective in a crime movie where you are also the murderer

vitiral/artifact 541

The open source design documentation tool for everybody

rust-crates/ergo 56

the ergo crate ecosystem: making rust's ecosystem more ergonomic, therefore more fun.

dpc/cbuf-rs 7

Circular Buffer for Rust

redox-os/design 7

Mirror of https://gitlab.redox-os.org/redox-os/design

rust-crates/ergo_fs 7

ergonomic filesystem operations in rust

vitiral/artifact_py 6

artifact re-imagined in python

vitiral/cloudtb 4

General "ToolBox" for programs developed by cloudformdesign.com

vitiral/bridge-rpc 2

bridged RPC protocol for microcontrollers

vitiral/build_const 2

library for creating importable constants from build.rs or a script

issue commentcivboot/civboot

This effort is doomed. You're trying to build a full encyclopedia of all modern technology without realizing it.

Hey Marcus, thank you for this perspective. I find a lot of what you are saying to be at the very least valuable caution -- this project is very likely to fail, mostly because like any human endeavor it is likely to be dropped and forgotten about as all the other projects I have dropped and forgotten about.

I think the most important criticism here, which I need to fix before this bug is closed, is to clarify that CivBoot is a living concept. 500 people for 4 years is not a requirement it is a goal. The real question is: how many people, for how long, with what resources? Reduce, reduce, reduce. Simplify, simplify, simplify. Having a distributed community of 5000 being able to build a Civboot from scratch with university-level resources would be a triumph. Can it be reduced? How much can it be reduced?

Rather than have a discussion (which you don't want) I just want to make a few clarifying points:

  • Related to above, "first-principles" is too aggressive as a goal -- as you point out. Rather, perhaps the goal should be more along the lines of a working understanding with references. Clearly having a full understanding of how semiconductor materials work and why certain choices are made and how they can be altered, along with all the other fields of understanding, etc is far too aggressive. My hope is a CivBoot can be a starting point to such understanding, and can hold such references in it's databases.
  • I do have any problem with the complexity of current technology, nor do I intend to replicate it. The question is, how much can it be simplified and still be usable enough to replicate itself?
  • This is a living project with a living definition. To achieve some things you have to reach beyond what is thought to be possible. As they say: it's not about the destination, it's about the journey.

Thanks again for taking a look and sharing your insight.

marcusmueller

comment created time in 2 days

startedcivboot/civboot

started time in 3 days

push eventvitiral/dotfiles

Rett Berg

commit sha 3e79e46aebbc645936450be6ea6bbc9d1f39569d

update alias

view details

Rett Berg

commit sha 8a80d69a1af74d0a0fb16a672ebb31e58f2fc906

Merge branch 'goog' of github.com:vitiral/dotfiles into goog

view details

push time in 5 days

push eventcivboot/triforth

Rett Berg

commit sha 20c20adc0e8b315a696b83a380b5a0067ad0eb7b

getting started on alloc tests

view details

Rett Berg

commit sha 218056753e20c2de0944b72f413f9752ea2490cc

working through debugging memory, things not going well haha

view details

push time in 6 days

push eventcivboot/civboot

Rett Berg

commit sha 9c6d0e106b592116fef41f238850f611527c506f

add mp3 for software

view details

push time in 6 days

push eventcivboot/civboot

Rett Berg

commit sha 74ce253bf3909f93e3da68fdf09b902ac5417898

typo

view details

push time in 7 days

push eventcivboot/civboot

Rett Berg

commit sha 9d55ba94af332f0de617eabfb2949f18cd653fff

software add links

view details

push time in 7 days

push eventcivboot/civboot

Rett Berg

commit sha 273b53ace3ae4804b237c7a726d6b5f735459c4f

commit text

view details

Rett Berg

commit sha 3b1d15e9a62cef273e6e9325b8b4ae175a0f8d64

blog episode 3

view details

Rett Berg

commit sha 59b6b3a4e3a303ee1fc982df29db4d1ac8ac4505

software add links

view details

push time in 7 days

push eventcivboot/civboot

Rett Berg

commit sha 8567935b23445545d3769df52ec0b06ad6d65693

edit software

view details

push time in 7 days

push eventcivboot/civboot

Rett Berg

commit sha ea66cfa587c353709ee5feb21762b2f430cb900e

move software to 3rd podcast

view details

Rett Berg

commit sha 9ac80ca5c206227949ebb173d7c88a931a0a82cb

blog episode 3

view details

push time in 7 days

create barnchtypeforth/typeforth

branch : main

created branch time in 7 days

startedtypeforth/typeforth

started time in 7 days

created repositorytypeforth/typeforth

An alternative forth standard designed for type safety with zero overhead

created time in 7 days

push eventcivboot/triforth

Rett Berg

commit sha 9662521c00b94d88b710065602d5c9282c2439f2

continue flusing out allocator. Add eureka around typechecking

view details

Rett Berg

commit sha 405b5462423a86acc0c07916c49bdec56c5c7a59

add Nshl, continue flushing out alocator

view details

Rett Berg

commit sha f4a788165188aee559c95342f2126e046b3097d7

initial implementation, doesn't work yet

view details

push time in 8 days

push eventcivboot/triforth

Rett Berg

commit sha 6733b44cfe9586dd22f0729193ec6086e0ef5874

need to improve R handling

view details

Rett Berg

commit sha 955b091b64d23b8c6a9f5d7127a8379f8178d826

working on n>R, fixed pntUx pntUxSpc

view details

Rett Berg

commit sha 5ba96bb8b033b88102a4e5a1fa202c1a7149e9dd

working on n>R, fixed pntUx pntUxSpc

view details

Rett Berg

commit sha ecf5714e1c23d319f38af2c5ff79e0a1ae27447a

n>R works

view details

Rett Berg

commit sha 369813386cff8b513341b53fbd710bc37bc2db4e

nR> works, also use const for 2 4 8

view details

Rett Berg

commit sha ef94203c5573ba76cd8c8bc1dd41f0f0cbf79ead

refactor

view details

Rett Berg

commit sha c1273415aad90776270b82eaced0ea9d93db8496

add Option, stop using only uppercase in dictionary

view details

Rett Berg

commit sha 8419892b3231dcf2526b008ac5676cd549ae54a5

change case of words

view details

Rett Berg

commit sha 93f5ce74a57c2afb8844a6c503acdb03102a6dc7

start on mem allocator

view details

push time in 8 days

push eventcivboot/triforth

Rett Berg

commit sha 0586c6af6a336f28bde63ed1e5227933ee73e22d

add swapAP, untested

view details

Rett Berg

commit sha 6bfb22cf70012dc1749988432d13721a16ed540f

cleanup, get ready for better panics

view details

Rett Berg

commit sha 90582cce44f62a7e0b78e9f7da72b989d4445fda

well, it KINDA worked...

view details

Rett Berg

commit sha bac0ca3c1c7f9b536d3a22c6aba829041fea05a0

still not working

view details

Rett Berg

commit sha 389a590d56389ba61943cfcd962688215a8d65a7

almost works, I actually didn't need the cache

view details

Rett Berg

commit sha 9af19fd379d3e62a750b799d1b622c4f5e5e265d

fixed .rstack

view details

Rett Berg

commit sha ba5a5106fec5a0c71626b72f7c72d1082ae10e09

works yay

view details

Rett Berg

commit sha 38615d180cbd936d8788609a4900f43f7f0c7d08

implement decimal and binary printing

view details

Rett Berg

commit sha 20183d13c5ce2c83102e3722639e1619839248f5

implement decimal and binary printing

view details

Rett Berg

commit sha 39cb5400196c44880841cc88627dbd7fbb0f62d7

string formatting and working on repeat function

view details

push time in 10 days

push eventcivboot/triforth

Rett Berg

commit sha b6e7e2c8f0973aee902ac045f14f9cf7f8640874

refactor name of pnt, add sh words

view details

Rett Berg

commit sha 95b6ad3160210f982386b704e3cc90bb7e8e5530

add SYSCALLX

view details

Rett Berg

commit sha 050e5c0738b1e5f8bce231adc143b27e11da4601

refactor, getting started on write

view details

push time in 12 days

push eventcivboot/triforth

Rett Berg

commit sha 6bc762956150be2519f0b43124fb23d2863f6435

handle escapes besides \" in _lits

view details

Rett Berg

commit sha cc56f07028d4bd74f8d94204171749dbefc773be

update iob, some refactoring

view details

Rett Berg

commit sha 81975f7c0c1cf37d33dfc1dacf9bf471a8a57692

update iob, some refactoring

view details

Rett Berg

commit sha a5c4abd3861a33f44066b3f0b473e0125e6d787e

add tests for >2R and checks for compiler state

view details

Rett Berg

commit sha cd88bbb90e2f5874a719dd3ea776479b7ad74164

trying to think how to do error handling... very difficult

view details

Rett Berg

commit sha 3133ffdff75e92e9f76d6602b0e3c347d6e0db11

I think this is how error handling needs to be!

view details

Rett Berg

commit sha b185ebf1dd4997733fc4facc5b6e86405e052c32

error handling compiles

view details

Rett Berg

commit sha 86d9503842e167353e94d15ed8af6d5dc1f1b9aa

no idea what is going on...

view details

Rett Berg

commit sha b9b1610f3fdf432ddb54e030439f4be2eeaa79bb

add IF? and ?

view details

push time in 12 days

push eventcivboot/triforth

Rett Berg

commit sha 34539e2daf6191d30f9c4a9fc7424b0c931ce727

TODO next

view details

push time in 13 days

push eventcivboot/triforth

Rett Berg

commit sha 3baeb572b076071dcc63963b736ece10644c8a9b

rename count -> count8. c8bytes is 8bit counted bytes

view details

Rett Berg

commit sha f2badfc8099a93366b74bd7915823b506d336136

add some docs on types

view details

Rett Berg

commit sha 181bb3294bbeb023188dff55abe9d358454bb461

add u16 tests

view details

Rett Berg

commit sha c196fb65371f2a1a94d4d373aba585d9684986ae

test u16 store/fetch

view details

Rett Berg

commit sha 7d08b7777cc6fbdecd212b9c7f1f1b79ca758c53

use 8bit counted strings for litbytes

view details

Rett Berg

commit sha 63d22cafe537d12758c4e86630d63351aab89f21

hello world indeed

view details

push time in 13 days

push eventcivboot/triforth

Rett Berg

commit sha e731ec073b3dafb10b26f79aa62318c30768a8a1

better tests for \"

view details

push time in 14 days

push eventcivboot/triforth

Rett Berg

commit sha fa542ae7e444f17754db5822586b50c878e8638a

figured out how ' works

view details

Rett Berg

commit sha efcd25ce7953adeb248e8a74d3c7acbfde5096b5

complete string literals

view details

Rett Berg

commit sha f51de4b39e6460c2a7bc037e5fa258e9b296eb82

use indirection in string implementation

view details

Rett Berg

commit sha 68d58e7cabc976c645d27dccc833920981a44209

fix R@ and R@1 and test for B,

view details

Rett Berg

commit sha e349c5b9bb66a520965b82e37322f0d0dbfb760a

use R@ instead of R> dup >R

view details

push time in 14 days

push eventcivboot/triforth

Rett Berg

commit sha f7ab28ff389158be870fbfd177e8f868f233f246

make find not case sensitve and make WORD not force-uppercase

view details

push time in 14 days

push eventcivboot/triforth

Rett Berg

commit sha f42c3582ce216a7e427e92a38756aa5e71fc02f1

basic \" works!

view details

Rett Berg

commit sha a95531f762f49566d99de65b9e0788f415773ad2

minor change

view details

Rett Berg

commit sha f26cc7caffd155f202fea5d75c7165f8c1168930

rename to .tf

view details

push time in 14 days

push eventvitiral/typeforth.vim

Rett Berg

commit sha c6b107b1c0ca431c69f7b58fbc408bd5b507937b

update for typeforth

view details

push time in 14 days

create barnchvitiral/typeforth.vim

branch : master

created branch time in 14 days

created repositoryvitiral/typeforth.vim

vim syntax for typeforth

created time in 14 days

push eventcivboot/triforth

Rett Berg

commit sha f8fa1c55fade94247c030bafb8106e03f1f3a094

Add documentation for \" strings

view details

Rett Berg

commit sha a61ecdeda43a3dc0352fe92e793d93c5bb630093

use "byte" instead of "char"

view details

Rett Berg

commit sha 8372a9cf8ec0de4737ae4299fdf5e624eae6a340

rename char->byte

view details

Rett Berg

commit sha 6797326dd1fdc9ed7b1a8ead664bef0c313a108e

implement initial \" word

view details

Rett Berg

commit sha 163fcfc33c385b7daccb14dcfdc7311ce33d47e3

TYPE -> PNT

view details

Rett Berg

commit sha 9182de9833f9f4d313de9b84d7104962e8d0e894

getting close on string

view details

push time in 14 days

push eventcivboot/triforth

Rett Berg

commit sha b1b81526849ba5ff67453fd4cfbaf88580187dd1

minor rewording

view details

Rett Berg

commit sha 0a3c82ce70dd9b69a400c02f75f2769eaa453beb

make linecomments simpler and allow words starting with //

view details

push time in 15 days

push eventcivboot/triforth

Rett Berg

commit sha 64b628b45a956cfdc08259da7d14b52dd33b25ad

Comments, refactoring, cleanup, PICK + REPLACE oh my

view details

push time in 15 days

push eventcivboot/triforth

Rett Berg

commit sha e087fb02c43b44f60e9a8edfc84ee0ec8d744114

BEGIN WHILE REPEAT

view details

push time in 16 days

push eventcivboot/triforth

Rett Berg

commit sha 893e6945729b9157bc649a028475e1f45c962ac7

BEGIN UNTIL

view details

push time in 16 days

push eventcivboot/triforth

Rett Berg

commit sha 23857a6560e34c5f29a04f2acac1abeac92d8c76

add simple math checks and fix

view details

push time in 16 days

push eventcivboot/triforth

Rett Berg

commit sha 68e5d797808d5e510f48edf93196398ef3e4882a

add indexing methods and check for stackEmpty in ;

view details

push time in 16 days

push eventcivboot/triforth

Rett Berg

commit sha 51219b882cc1abf932d6224ea0b83de96d51329b

add [COMPILE] and LITBYTES

view details

Rett Berg

commit sha b6c4af7fc82b18853f80fb54240e6619b0c6285e

cleanup

view details

Rett Berg

commit sha 608ca337654a3a35c9181ea39c017500442e3e4a

add control structures, get ready to add MARK

view details

Rett Berg

commit sha 9e771988fef06037bc85a932bb65065ca88099d8

add MARK

view details

push time in 17 days

push eventcivboot/triforth

Rett Berg

commit sha 39b918ce7a0dae869baf4623a2438b3cdcd18d61

fix /mod

view details

Rett Berg

commit sha 3c855be667ec05a8de2943a1736a8d79e62a3fe4

fix bug in uPntX for 0

view details

Rett Berg

commit sha eb4fc007961c1ec2f36c79f18a3e2edfe989954d

fix WORD for \ chars

view details

Rett Berg

commit sha bc75b5468733a0599e8e4a4c11105d04d60d0f96

fix IMM

view details

Rett Berg

commit sha 496300788454e4670d6cfe285569108fd46f9509

actually fix IMM

view details

Rett Berg

commit sha b0f0b5f93f98e20d55c6511ee52e3ee489556e75

HERE -> &HERE

view details

Rett Berg

commit sha 01cb3b303894ea1d9732c1a989179958d1f4c365

LATEST->&LATEST, fix HERE namelen

view details

Rett Berg

commit sha 31fb15fb27e2df2acb3b3fe3c187739c38976b1f

RSTACKMAX->&RSTACKMAX

view details

push time in 17 days

push eventcivboot/triforth

Rett Berg

commit sha 5962efd9f705103632fbb937ec6600fac3040d1d

expand simplemath

view details

Rett Berg

commit sha 1085712eebc479583bf5f97fafc0197b95796aa1

remove unnecessary TODOs

view details

Rett Berg

commit sha cfdef3747822f82ff2b03a3438b117174cb88fc9

found another trigger. This is so annoying

view details

Rett Berg

commit sha 0cd311a6c14533f0240923f01a83f9f1d2d52b77

it was xt_ntTOfr instead of xtTOfr... AGH

view details

Rett Berg

commit sha 5f64d6b127fbc592b244d39cfa65d25d646dc555

reenable all tests

view details

Rett Berg

commit sha 0f8668b19b4e095d0d99c86b949e895eb951f3f3

add initial uPntX

view details

Rett Berg

commit sha a3479f75b3331539f80504715ebb180021689dcf

uPntX working

view details

Rett Berg

commit sha bb7824d04a81a700fb36d9ad5eecddec8c00d59a

get rid of DOT

view details

Rett Berg

commit sha 2f20d20692bc179f2b2a3c4756276c090988adcf

get rid of base

view details

Rett Berg

commit sha c46fa5ccc6a730fac86221da93ce7e93dbcb4960

add some basic mul/div

view details

push time in 17 days

push eventcivboot/triforth

Rett Berg

commit sha 9cdbe51651bb3f7ec344e4601ccf19f80c4ca403

INTERPRET says it works now...

view details

Rett Berg

commit sha 53f516d72d440f0c0ac1be103c490a8335e69e52

Finally figured out the bug -- I wasn't converting to xt on compile path

view details

push time in 18 days

push eventcivboot/triforth

Rett Berg

commit sha a4e98b83febaffbeffcb13ead5001e2b3cbd7b0d

use 2 cells for flags, right most containing lookback

view details

Rett Berg

commit sha d9c874f94d098ecadd00d7284ba2fe813931fcfd

initial INTERPRET definition

view details

Rett Berg

commit sha 0db06452ed52546c041f69e3340de349edee83c2

getting pstack underflow when compiling word

view details

Rett Berg

commit sha 521d2e7ada159210a34ad5eff8017ae2dc1a810e

add underflow checking in assembly words

view details

Rett Berg

commit sha 05f5218d5cd7daa8b62170f137358b3e5d0a35c4

fixed CREATE

view details

Rett Berg

commit sha 08ca6c128a8ecff14fe22007fd484ac7c53244e1

Still segfault for testInterpret

view details

Rett Berg

commit sha c5a02af31411212872af4cd9194d7179fb785149

testCreate passes

view details

Rett Berg

commit sha 854522cbd63dec61ee921988f8015bc78be95af7

add dump function

view details

Rett Berg

commit sha f067dd064cac779c9d59881d03ecffc6aa54c91c

getting close I can feel it

view details

Rett Berg

commit sha 9c4840b15ea11bba060b192cf1c1e467901b7645

getting close I can feel it

view details

Rett Berg

commit sha 50fc65da1112c1b4d4b0a4de6aa85dea717a9bc2

fixed initial testIntpret test

view details

Rett Berg

commit sha 9df503559f4a04b3cb1ea4956f4533dffb4ebb3a

debugging going a long way here

view details

Rett Berg

commit sha fdb41ae87679652f109cc4a7b009742f81eb8afb

debugging going a long way here

view details

Rett Berg

commit sha c9ed4d5ee72711e2656fd3eb055447f642839b52

wtf

view details

Rett Berg

commit sha 062a6232107e32676cd47bb41fd4712146d0a604

found an error

view details

Rett Berg

commit sha 61fd97c583fbe8c7fb7e973f71a3f3494ff96b8b

testColon going surprisingly well

view details

Rett Berg

commit sha fa96d14368e4d0eb89fba13335305a1e12ed0211

testColon going surprisingly well

view details

Rett Berg

commit sha d9babe56d1ba07fe01a46fe31abb01c3c6fd2791

amazingly, it worked

view details

push time in 18 days

push eventcivboot/triforth

Rett Berg

commit sha c8b31401d62e7b15414932645a52024bb9f14514

interpret initial implementation

view details

Rett Berg

commit sha e9be33e7235ef902f2001c2483a46e71adb40282

interpreter runs but math fails

view details

Rett Berg

commit sha 475fe393fc0c8a87b358c8a160fc83299f8ae8ca

interpret and math works!

view details

push time in 19 days

push eventcivboot/triforth

Rett Berg

commit sha 1318651c25edb730a76c253b2cdca95bf2773a15

need to use ebx for character conversions

view details

Rett Berg

commit sha b3ce22c95ca0807857e344d79e05f921f293b7d3

replace al_toupper with bl_toupper

view details

Rett Berg

commit sha 6893a3ddac3eac501f1f7b973de973960b6788ab

add 0X word

view details

push time in 19 days

push eventcivboot/triforth

Rett Berg

commit sha cdf08579af057a1677e0632610cdc5260eb548f5

more typeforth edits

view details

push time in 20 days

issue commentjart/cosmopolitan

WASI?

triforce and civboot are not google sponsored projects, so they probably won't fork over the cash. Maybe I will... except I just want to work on open source stuff so probably won't have a need.

Good luck with the project! I would love to see these goals work more broadly :smile:

vitiral

comment created time in 20 days

issue commentjart/cosmopolitan

WASI?

Nice, redbean looks awesome. Suggestion before launch: add a link to an example site hosted with redbean -- or if that page is such a site, say so along with the commands to create it (I'm imagining it's just stuff an html file and the cosmopolitan binaries in a zip and run a command).

I'm not sure which WASM runtime you are running, but I doubt the complexity you're seeing is necessary (current wasm doesn't even have mutexes... so why futexes???). WASM itself is an ultra-simple stack machine. For Civboot I'm extremely willing to escew some performance to keep code small and simple as well as reduce the layers of complexity. 20MiB is out of the question, I'm hoping CivBoot can manage to build a chip with 512k RAM... which might easily be 20-30 years in the future. So ya, when I finally write a WASM/WASI runtime it will NOT be very performant -- but it will be simple, secure and hopefully under a few thousand lines of typeforth code (the dialect I'm creating). Furthermore, I believe Civboot will probably need to create it's own stack-cpu, which should provide an almost 1:1 mapping to stack-based languages -- improving the simplicity even further.

I just started to learn assembly to build triforth, so I wouldn't trust myself to inspect an assembly dump/dbg session haha

I saw SectorForth! Super cool demonstration of what makes Forth awesome. IMO wasm compilation doesn't need to be much more complicated, but I will know more after I write a wasm->x86 compiler in Forth.

This project has actually given me an interesting idea: I could use the magic numbers and sh-injection method you've documented to allow my forth implementation to be able to run anywhere. I'm curious, do you think you can release those files/concepts on a more permissive license (i.e. MIT, UNLICENSE, CC)? I kind of doubt magic numbers and shell injection methods CAN have copyright claims made to them, but I'm no lawyer and copyright freaks me out, which is why CivBoot software is UNLICENSE throughout.

vitiral

comment created time in 20 days

push eventcivboot/triforth

Rett Berg

commit sha 1a0f3416f11b8c8f40557c65bbd1d2ac386ed4fc

Update typeforth docs

view details

push time in 20 days

push eventcivboot/civboot

Rett Berg

commit sha beac2d49770480a0e2fc269c8393b14238e1af53

type-forth.md moved to triforth

view details

push time in 20 days

push eventcivboot/triforth

Rett Berg

commit sha a639be6c4dcc04f965a48e6e1f4dc71d571a0768

hidden isn't part of the spec, remove it

view details

Rett Berg

commit sha 2124a4a1edeb8521ebb30df4e2efe3d903ed7d8d

hidden isn't part of the spec, remove it

view details

Rett Berg

commit sha bf39c169b1e9de19c3b2000ababb0552bbde64ae

update nt>str for :noname

view details

Rett Berg

commit sha ef9e61fd6252746340c3131fc377995412678ff4

move type-forth docs from Civboot, add initial implementation of several compiler internals

view details

push time in 20 days

startedcivboot/triforth

started time in 20 days

issue commentjart/cosmopolitan

WASI?

By "half works" I mean that I will be solidly impressed if software compiled this way (with the restrictions you say) half works at all... on half the systems you say it supports. Seriously, several of these files can act as a working cheat-sheet of operating system API ~internals~ bloody guts. I'm super enthused but also have trouble trusting a source repository 750,000 lines long written/modified by a single person -- which is why I say horrified and amazed. The revelation you had that all these platforms support some archane shell-injection is a minor point to being able to exploit it to this extent by yourself.

WASI/wasmtime isn't so much AppStore (although it shares somewhat similar goals), it's more like an ultra-lightweight docker for only WASM. You give it the exact permissions you want (which files/directories, sockets, clock, etc) and it runs in a very lightweight container that can't access anything outside. WASM's stack-machine is way simpler than JVM too, just i32/i64 and basic assembly instructions but lacking arbitrary jumps (tables are provided for indirection), which allows for static memory out of bounds checking at compile time (idea being the host compiles the code so can ensure security). Here is an entertaining overview if you're interested. My personal desire is to write an OS (bootstrapped forth with only ~1000 lines of assembly, see CollapseOS.org for my inspiration, Civboot.org for what I'm trying to build) and write a WASM-compiler + WASI-runtime that runs directly in the kernel to provide the security. "User" processes are then simply a "shell" running in a WASI container that can spawn other WASI containers with a subset of their privileges.

To me, it's fine that Cosmopolitan doesn't provide containerization. Neither do binaries and that's not a design goal. You want a compile-once run-anywhere for the world of programs compiled with GCC. In fact, if you wanted to distribute a WASI runtime you might do so using Cosmopolitan... You could even distribute a WASI program by bundling a downloaded-not-trusted WASI program with your cosmpolitan-wasi-runtime (in a zip maybe?) and have the later run the former to get both crossplatform+security. Horray!

Super cool stuff.

vitiral

comment created time in 20 days

push eventcivboot/triforth

Rett Berg

commit sha f5cb8f1fa6f6a24bea99a9d6d4ca2d3645414717

create... actually works

view details

Rett Berg

commit sha f116a4974c2e68f8fb181c15191a60f394901a32

add , [ ] -- getting close to :

view details

push time in 21 days

issue openedjart/cosmopolitan

WASI?

I've spent about an hour going down the rabbit hole of this source repository. I'm horrified, baffled, amazed and enthused all at once. If this project even half works it is fundamentally a work of art. I feel like what it does better than anything is lay out in gory details the mind bending complexity that our software and platforms have put on us engineers in order to get anything to work. Excellent work.

Related to that, I the feeling I get from this project is a wakeup call for more portable binaries. Have you heard of wasi? I feel it aligns with all of the goals of this project but is far simpler. I mention it here because I didn't see a reference to it in your docs, which I found confusing.

Obviously WASI can't instantly run on ANY system with zero dependencies -- what you've created is something I couldn't have dreamed was possible.

created time in 21 days

startedjart/cosmopolitan

started time in 21 days

push eventcivboot/triforth

Rett Berg

commit sha 4ccef0b5a142e9eef796b5f386330855bbaeadfe

add initial CREATE definition

view details

Rett Berg

commit sha d13bccaabbb7f391ddddd3af388f1d9cc49bc66b

create works

view details

push time in 21 days

push eventcivboot/triforth

Rett Berg

commit sha 155935202e3af817d85e4d0878b16ccde9a8e7b1

find works with hidden

view details

push time in 22 days

push eventcivboot/triforth

Rett Berg

commit sha 3296578a91d0575d0283b197994ec56bdeca1371

add tests for COMPARE and CEQ

view details

Rett Berg

commit sha 15115126df51094e60ab08f59bde1446205d1c66

add flags and method to get

view details

Rett Berg

commit sha 69ebd8104fc59bb3fc9bc1c8d79fc4c857550c9a

fix nt>other with tests

view details

push time in 22 days

push eventcivboot/triforth

Rett Berg

commit sha a31cf475afebeb135e80e9e0b66301ab04534e31

need to test cstr

view details

Rett Berg

commit sha 0ceb941f93c5c6fc66a84b997f6ee43acc175f42

I think I got FIND to work, needs more testing

view details

Rett Berg

commit sha 84bb05fbae00c3fb4d8f7f9ae1f94c32584cf870

Find test fails but doesn't infinitely loop

view details

push time in 22 days

push eventcivboot/triforth

Rett Berg

commit sha 9883dedd3446b5ac2d8b47ff242db1432d14a8a1

FIND almost working...

view details

push time in 22 days

push eventcivboot/triforth

Rett Berg

commit sha 93ecee974cc7058168437012bf458bab5c71cbbc

NUMBER works

view details

push time in 23 days

push eventcivboot/triforth

Rett Berg

commit sha d83758393138ac8a6750f4127da79c5382d73033

write basic dict test

view details

Rett Berg

commit sha d987b2338d1c8f543cad52199361abd317ba502f

add WORD and test

view details

push time in 24 days

push eventcivboot/triforth

Rett Berg

commit sha dbe9ec072f43c7a09a9aaa7fa53b9be3e24b9871

adding more builtin words

view details

Rett Berg

commit sha ff53784eb565d26ca60f67c2bc468c89d6d450ee

add callXt

view details

Rett Berg

commit sha 20512dbd00699da1a13846d9d189074fb576433a

fix callXt

view details

Rett Berg

commit sha 8d055eaa03a88c20175786ec1b5388ffa413262e

clean up callXt

view details

push time in 25 days

pull request commentvitiral/gpio

Fix overwriting of logging config

Thanks for bringing this up. I have opened #20, let me know if you or someone else is interested!

randombenj

comment created time in a month

issue openedvitiral/gpio

Looking for a new maintainer

So I haven't used this library in ~5 years, and haven't really even used python in ~2 years. Every time I need to update PyPi it is a headache for me.

With a million other projects including a full time job, father of 3 including a new infant and the effort I am doing with civboot.org, I will not be able to push updates to this project. If someone is willing to maintain it, please come forward.

Thanks!

created time in a month

push eventcivboot/triforth

Rett Berg

commit sha 7095b06f3cab9535ca9cf4b314760fd9023ed150

put asm labels into dictionary

view details

push time in a month

push eventcivboot/triforth

Rett Berg

commit sha b58310d1a288d114615f63fb5368ce5d7da2a768

cleaup

view details

Rett Berg

commit sha adfced1d1be462808cb952497c88e0a92b54e1f1

start dict

view details

Rett Berg

commit sha 0c24058514adfe0f1b107ce1257f380bc5d3dfb1

add basic words to dict

view details

push time in a month

push eventcivboot/triforth

Rett Berg

commit sha 9840faf7f8bd0c81603d6824a97a09812cbc5c08

wtf

view details

push time in a month

push eventcivboot/triforth

Rett Berg

commit sha 4f882077e96a64c22f2b89b876cdf9544ab43742

getting close I think to DOCOL EXIT

view details

Rett Berg

commit sha 187115ecd3ee44093ef58904e9c6663a4bc9050b

getting close I think to DOCOL EXIT

view details

Rett Berg

commit sha 68b9e41b3bab5846bd11ea6a7f2c18c60dc7093a

I'm so damn close

view details

Rett Berg

commit sha 8d7381ea24af588527419cd76b98718af164eaa0

the interpret works, whew

view details

Rett Berg

commit sha 12bd43d97a6b8e6cd5ab0c7bfb1140ee673cffb7

cleanup

view details

push time in a month

push eventcivboot/triforth

Rett Berg

commit sha 733edbba013336bf530edf49da001e4e15a27970

stack printing almost working

view details

Rett Berg

commit sha b9d8d28654b972ba0002eef441da91a17d03a28a

cleanup DOTbase

view details

Rett Berg

commit sha 6f942b3b605784b1e7928a046635e466f2ad4a0e

.S almost works, reversed

view details

Rett Berg

commit sha 3f9bc9aaa2d4ccbe6b42d97d006a714cf8f6c33a

.S works :D

view details

Rett Berg

commit sha bd13ebe94178ce3a3cc80355d6e98e909a27f6e7

.S works :D

view details

Rett Berg

commit sha 5ae13043c55500bb6074120ccc925b7a212d116b

cleanup tests

view details

Rett Berg

commit sha 4c6b23b4e15158f46ffc3b465d290b3118eabd70

add docs

view details

Rett Berg

commit sha e8543ca7d74fa25f9e3515b69fd275e83e6d86d7

make dumpInfo awesome

view details

Rett Berg

commit sha cc8e4c0b3a55ae2f45fc244dda15924c564720f1

make dumpInfo awesome

view details

Rett Berg

commit sha 36bd44633f0b2ddc3baa80af36c3cb4f539dd5de

add dict docs

view details

Rett Berg

commit sha 06745c1e4f6cefce516ccc56043fac43a9a688df

start work on NEXT

view details

push time in a month

push eventcivboot/triforth

Rett Berg

commit sha ad6cc3e558e0e9c7fa6e825f9cdf265b064b26d1

implement DOT and DOTbase

view details

Rett Berg

commit sha 3cad1a8758068f291feef839eec1d2942bc53c3b

implement DOT and DOTbase

view details

Rett Berg

commit sha a8b9341768b85feb5cca04b81ccec99fd8db0607

DOT actually works

view details

push time in a month

push eventcivboot/triforth

Rett Berg

commit sha 45aaa627591c2af4602d7aa28fe44f30658d8979

refactor

view details

Rett Berg

commit sha 51ea09233f4c8e363c570604ec7e4840dc55454a

replace tabs with spaces

view details

Rett Berg

commit sha 61df789f8922a2f64805d281af8d6d1b7b57a92f

add push/pop and test

view details

Rett Berg

commit sha af8e40cb50ebd67be22544a1cff156c829010b44

add test for underflow

view details

Rett Berg

commit sha 88f9cd93e1285048533e98f3a763f25904336e22

overflow test fails

view details

Rett Berg

commit sha 55aab42bdb9e4fcd41441d53cc9722f65d87cb8b

the space is... not being reserved?

view details

Rett Berg

commit sha 0533219c0fc5915b72f0bf8547c7522c4393f35a

io buffer is working

view details

Rett Berg

commit sha 240fcfc11f062a3edc315212ca8dceb6d86ef72c

implement TYPE

view details

push time in a month

push eventcivboot/triforth

Rett Berg

commit sha 0bc24ed22b5cb10d947f29beb533599fb9b7cc10

add license

view details

push time in a month

push eventcivboot/triforth

Rett Berg

commit sha aa17036db7924af9abaad77844932d4115f36ab3

add license

view details

push time in a month

create barnchcivboot/triforth

branch : master

created branch time in a month

created repositorycivboot/triforth

A typeforth implementation in tutorial-style assembly and forth (WIP)

created time in a month

push eventvitiral/notes

Rett Berg

commit sha dea0a7953b0ebf985918259c583d37a85520ff3d

basic function

view details

Rett Berg

commit sha c953607689c55bf2f0e1e4cc3ca3fa611c7bd321

do basic IO

view details

Rett Berg

commit sha 06168080a9df487b409abd98aecfaba8e8fef186

finish chapters I need from Programming From the Ground Up

view details

push time in a month

push eventvitiral/notes

Rett Berg

commit sha 8e892c7f2189b3db8c8a70f4bf66b23a83e423b0

learning assembly

view details

Rett Berg

commit sha dc6501fa3e49fbe96138e7c42014db1617fe22f1

I just wrote a real assembly program...

view details

Rett Berg

commit sha ec5fe436a60c6bca49ba58dd7f918534604e8ed2

I just wrote a real assembly program...

view details

Rett Berg

commit sha ff2bd1aa63aaca74478ce2217aac536a201e80a2

figured out jonesforth (label)==label for addressing... agh

view details

push time in a month

push eventcivboot/civboot

Rett Berg

commit sha 5690ec0407d1c6614ec0fdb3a7b67c562bcf8b75

add typeforth thoughts

view details

push time in a month

push eventvitiral/wheat

Rett Berg

commit sha 52e4f519141fd22010c9569d7ed9ddc9dc66cf28

adding type_, fix parse_name

view details

Rett Berg

commit sha 61e11569b7ada3742b28e32d17be9699eb80ec46

dontknow

view details

push time in a month

push eventvitiral/notes

Rett Berg

commit sha 73108ff68658e8f7e9865fd60557c04f3fa1dcf8

scheme

view details

Rett Berg

commit sha a3279e7aa1a8d22aa56f7e7360e2ef7f66e965d3

jonesforth

view details

Rett Berg

commit sha 8ecb5d3fe22581b5ddc264c54f078a4d53819b09

get jonesforth working and add notes

view details

Rett Berg

commit sha 3fdf950686de5d82b7b58e21d48fd9946c85b252

add jonesforth makefile

view details

push time in a month

push eventcivboot/civboot

Rett Berg

commit sha 1f17f051db44b1eaec3979fdccde68a7bc43a24b

add typed-forth architecture

view details

push time in a month

issue commentvitiral/path_abs

add wasm32-wasi target

Agreed! I'm not actively using this library but will review and merge a PR.

ctaggart

comment created time in a month

push eventcivboot/civboot

Rett Berg

commit sha 8a3b31184eec88466493d1bbdc132dd7c2887c54

remove scheme as it does not have type checking

view details

push time in a month

push eventcivboot/civboot

Rett Berg

commit sha 60ebc3540922dfd88658b1d090b11e2f160887eb

add thoughts on stack chip

view details

push time in a month

push eventcivboot/civboot

Rett Berg

commit sha a9bba4a6e620c5e1c9b79cec2871463c2955f222

flush out README more

view details

push time in a month

push eventcivboot/civboot

Rett Berg

commit sha 1af3a52d830c9c7775c75e33f6649bccdb0a2e62

rename some stuff, add jpg

view details

push time in a month

push eventcivboot/civboot

Rett Berg

commit sha 68e5cb67b0330e4bb49f74cb4cfbdb118598d5c2

podcast 0002 recorded

view details

push time in a month

push eventvitiral/notes

Rett Berg

commit sha 3d479de8667cc1248f32bf7439a7eb777fdb4fe9

doing good

view details

Rett Berg

commit sha 0fccf961df806863ac5acf11da8ff17c315011fc

forth

view details

push time in a month

push eventcivboot/civboot

Rett Berg

commit sha a4c89861e20ce8e705572e20cf96bb057572d827

podcast 0002 recorded

view details

push time in a month

push eventvitiral/notes

Rett Berg

commit sha b5ed493e4bb11535d8bf423597175874b18d2dd1

forth

view details

Rett Berg

commit sha 8065789c97b6b0c35c4f7b13bfec3ecf0510782c

forth

view details

push time in a month

push eventvitiral/notes

Rett Berg

commit sha 5b3619774a4da5d5c97f067cb6f93dae4cc2ed53

tutorial init

view details

Rett Berg

commit sha 95cca7dde9f30edd486a4c15fd8c3c6728a6ee6e

forth code

view details

Rett Berg

commit sha ccef0ddeeab3df25ebdb25679c993e2da91419a9

forth

view details

Rett Berg

commit sha d58ff9ad0af31e7967de57bc732ccdede515ba66

forth

view details

push time in a month

push eventcivboot/civboot

Rett Berg

commit sha d34d40817f5bc6262bfe7fcbb7b019fa93917a70

add notes

view details

push time in a month

startedgoogle/schism

started time in a month

push eventvitiral/notes

Rett Berg

commit sha cce43bff6d1d51e37a51f5ff3ccd9d3fb02e5afd

forth

view details

push time in a month

push eventvitiral/notes

Rett Berg

commit sha a636e34de229d70455b380d51f17cccd6cceeab6

forth

view details

Rett Berg

commit sha 17dfbf39e1931917fe5a65d003d1086792424653

forth

view details

Rett Berg

commit sha 4229b77144a833f22771161ffeb60f620b10ef8c

forth

view details

push time in a month

push eventvitiral/notes

Rett Berg

commit sha da35b0595bb32cc4120368664d5e9fac08eb45a0

learning haskell

view details

Rett Berg

commit sha c0feabc7994be65d9a9bd42746a29fba64055bb8

learning forth

view details

push time in a month

issue commentcarp-lang/Carp

Philosophy of Carp? Or: is intended for this language to remain small and simple?

I guess it all depends on how difficult it is to compile and understand the feature in question. I had assumed that HKT are difficult to implement, mostly because few languages have. If that is mistaken then by all means, they should be included. They certainly seem useful from what I understand (which is little, I need to learn moar Haskell).

vitiral

comment created time in a month

issue commentcarp-lang/Carp

Philosophy of Carp? Or: is intended for this language to remain small and simple?

@jacereda I just went down a small rabbit hole learning the basics of FORTH and reading CollapseOS. I think a CivbootOS doesn't take reduced size at quite the premium as CollapseOS. Also, simplicity is a double-sided coin: It looks like FORTH achieves simplicity of several important metrics such as the language constructs and the compiler itself, but is often mocked as a "write-only" language because it's nearly impossible to build upon existing code. In particular, it appears to me that creating libraries and memory management would be very difficult to do in FORTH. One of Civboot's core goals is that all the layers are understandable. It's great that FORTH is easy to learn and reimplement, but would software written in it be understandable? It seems like the answer is no, albeit from my limited understanding.

In all, I think FORTH is very similar in goals to WASM seeing that they are both ultra-simple stack-based languages that operate exclusively on numeric types. However, I cannot imagine trying to write a programming language which compiles to FORTH, whereas doing so for WASM is entirely the point of the language. However, FORTH might very well be a good starting point for the bootstrapper. I will have to see how readable it is to have a WASM compiler in (transpiled) WASM. One of my goals is to have as few languages as possible in the tech stack.

vitiral

comment created time in a month

issue commentcarp-lang/Carp

Philosophy of Carp? Or: is intended for this language to remain small and simple?

Sidenote: for a bit of context, the reason I would like simplicity and to bootstrap is because I would like to be able to use a language like Carp as the basis for a Civboot software stack. This might help clarify why I require excessive simplicity in my choices :laughing:

vitiral

comment created time in a month

issue commentcarp-lang/Carp

Philosophy of Carp? Or: is intended for this language to remain small and simple?

Hey, thanks for the responses

#1 is an area I would personally appreciate more clarity.

For me, a "small" systems language without a GC/RC should still have at least:

  • RAII/ownership + lifetimes, Carp is working towards this
  • Interop with a lower level language. This would be primarily C and wasm. In my limited opinion C/wasm is preferred, ASM interrop frequently introduces too much complexity. Carp looks to be on the right track here!
  • A powerful and hygenic-ish macro system, which I think Carp has/is working towards. This allows libraries to enable complex workflows without increasing the complexity of the compiler/language itself. In other words, it is the ultimate "opt-in" form of complexity.

Not necessary but acceptable:

  • A basic type system, specifically interfaces. This looks like where Carp is focusing. Personally, (with wheat) I thought of removing even this and instead allowing macros to inject definitions of functions/macros into a module. So if you wanted a version of List that works for MyType you could do MyTypeList = (List MyType) which both generates the code and injects it into the List namespace (i.e. List.List_mypkg_MyType), preventing multiple versions of MyTypeList (also guarantees that all such attempts to generate would be identical). However, I was reasonably concerned that this would introduce other issues, so an interface system makes sense too :smile:
  • A basic panic/stack trace system, like rust. However, catching panics is probably out of scope and has introduced tons of complexity in rust. IMO, simply being able to dump the trace (like in C) is probably the best for simple systems languages.

Probably out of scope:

  • More complex types like Higher Kinded Types/etc. A macro system should be sufficient for filling in the gaps in most cases, and any attempt to make a "perfect" language is going to run into ramping up the complexity of the language.
  • Extensive std library: a reduced and optional one (like rust has) is fine, but a stdlib is going to make assumptions about the host platform, increase complexity and make porting more difficult.
  • APIs around async / processes / mutex / etc. It should be possible to implement some of these things in libraries (by calling into C / wasm / etc), but making requirements in the language is going to increase complexity. If possible however, a Sync type trait would be good, and some basic interfaces in the (optional) stdlib are healthy for the language.

#2 and #3 are great to hear. Probably out of scope:

  • More complex types like Higher Kinded Types/etc. A macro system should be sufficient for filling in the gaps in most cases, and any attempt to make a "perfect" language is going to run into ramping up the complexity of the language.
  • Extensive std library: a reduced and optional one (like rust has) is fine, but a stdlib is going to make assumptions about the host platform, increase complexity and make porting more difficult.
  • APIs around async / processes / mutex / etc. It should be possible to implement some of these things in libraries (by calling into C / wasm / etc), but making requirements in the language is going to increase complexity. If possible however, a Sync type trait would be good, and some basic interfaces in the (optional) stdlib are healthy for the language.

#2 and #3 are great to hear. I wouldn't need to bootstrap for several years, at a minimum. It's good to know there wouldn't be resistance in this area!

vitiral

comment created time in a month

issue openedcarp-lang/Carp

"implements" missing from LanguageGuide.md

It looks like the LanguageGuide.md is missing implements

It includes definterface, but doesn't state how to implement said interface. I believe implements is the way. Example from Double.carp

  (implements + Double.+)
  (implements - Double.-)
  (implements * Double.*)
  (implements / Double./)
  (implements < Double.<)
  (implements > Double.>)
  (implements = Double.=)
  (implements copy Double.copy)
  (implements neg Double.neg)
  (implements to-int Double.to-int)
  (implements from-int Double.from-int)

created time in a month

startedcarp-lang/Carp

started time in 2 months

more