IRC channel logs

2020-11-01.log

back to list of logs

<OriansJ>yt: if you look at cc_x86.S you'll see in that single case we just emit "\n#continue statement\n" (aka do nothing but put a comment that a continue was there in case we actually need to do continues correctly in the future)
<OriansJ>snnw, deesix: the stage0 Linux Bootstrap folder is just the mescc-tools-seed git repo at a known working commit (I'm behind on updating it as I want hex2 faster and to do a mescc-tools release first)
<OriansJ>as for what work people are focused on: markjenkinsznc is leading the stage0 development enhancements. janneke is leading the MesCC work. deesix is doing M2-Planet and leading the aarch64 work. fossy is laying the ground work for when mes-m2 is done (the gcc-seed work) rain1 is doing brilliant lisp work as always. xentrac has an interesting lisp compiler written in lisp. efraim, lfam, vagrantc, rekado and civodul are major guix
<OriansJ>developers but we love them and their support. akkartik has a rather impressive assembler work. bauen1 is doing a minimal posix kernel. dongcarl is doing bitcoin work if I remember correctly. gio is solving the bison and other hard bootstrapping problems for us.
<OriansJ>If I forgot or got wrong what anyone else is doing. please feel free to remind me how much of a moron I am for forgetting (I swear it isn't intensional)
<OriansJ>Plus there are a bunch of people I have no idea what they are working on or if they just like to watch the work being done.
<OriansJ>as for what I do. Mostly just make big messes for other people to shake their heads at and go "here it would be much better if you just did this: $SIMPLE_THING"
<OriansJ>Short version: we have a big pile of people working on anything they find fun, with virtually no coordination or cooperation between projects; except when people feel like it.
<OriansJ>My overly ambitious ass is late on all my projects and it is holding everyone else up.
<xentrac>Sounds like free software since the 1970s
<xentrac>I also wrote a sort of Forth compiler written in itself, a metacircular interpreter for Bicicleta (as well as its ordinary interpreter, in OCaml), and a parser generator producing JS written in itself
<xentrac>but I haven't done anything useful in a long time
<OriansJ>xentrac: well you did provide tests for mes-m2
<OriansJ>I just wish I could have gotten your lisp compiler to run on mes-m2
<OriansJ>it'll probably just work, once I get all the mistakes out of mes-m2's macro support.
<xentrac>yes but i wrote them long before mes-m2 :)
<xentrac>ur-scheme doesn't define any macros
<xentrac>I mean it doesn't use define-syntax or anything similar
<xentrac>it's just ordinary functional Scheme
<xentrac>that's because I didn't want to implement syntax-rules or syntax-case because I knew it would be hard
<xentrac>like, several times more code than the rest of ur-scheme
<xentrac>so because it doesn't provide them, it can't use them, or it wouldn't be able to compile itself
<xentrac>it does implement some of the special forms it provides as macros, internally to the compiler, but it doesn't provide the code it compiles with any way to define new ones
<fossy>also kaem in a kind-of-very-slowly way
<xentrac>yay kaem!
<xentrac>okay now I'm really headed bedwards
<OriansJ>fossy: thank you for reminding me of the major bash compatibility enhancements you are adding to kaem (part of mescc-tools)
<fossy>and thank you for reminding me that i need to fix it
<OriansJ>fossy: we are all human here after all ^_^
<xentrac>well, most of us
<OriansJ>xentrac: I don't think any dogs or rogue AIs are here but I always could be wrong.
<rain1>that was kind of you to say OriansJ
<OriansJ>rain1: the work speaks for itself ^_^
<snnw>OriansJ: thanks for the overview of what's going on! As for me, I found bootstrappable through guix, which I started using recently.
<snnw>The very early bootstrapping tools in mescc-tools-seed looked interesting and I noticed that they were missing for arm/aarch64. I have a background in compilers for aarch64 and thought it'd be "fun" to translate the amd64 versions for aarch64.
<snnw>hex0, hex1, hex2, and M0 are all done and bootstrapping from a hex0-seed, I've got a GNU as version of cc targeting aarch64 now, which just needs converting to M1
<snnw>that should complete the bootstrap for aarch64 native to mes-m2, but I guess the step to mes-cc is still not quite complete? I might tackle that next, but I haven't really wrapped my head around what's missing there just yet
<OriansJ>snnw: nice and one iteresting thing to note; when you complete the cc_aarch64.S you will literally be the first person to ever write a C compiler in aarch64 assembly
<rain1>hi snnw
<snnw>"written" is a strong word. mangled out of an existing one for amd64. but I'll take that :D
<snnw>hey rain1 are you the lisp guru I need to talk to about what's missing in mes-m2?
<OriansJ>snnw: well mes-m2 is more of my mess
<OriansJ>essentially it is just getting lots of little things right with the C code
<snnw>I guess I'm mainly looking for something to run/test that doesn't work yet and build up some understanding from there
<OriansJ>for example the macro expansion in mes_macro.c is wrong but because it bundles together macro evaluation, it is hard to figure out the root cause.
<OriansJ>there are also disabled tests in mes-m2; which do not work
<rain1>what is your compiler bg?
<OriansJ>when working with mes-m2: export MES_CORE=0 will strip out everything but the C primitives; which when combined with cgdb makes for easier debugging
<snnw>rain1: I work on LLVM in my day job. AArch64 performance work
<rain1>oh that's super cool!
<OriansJ>also if anything isn't comletely obvious. Let me know as I consider it a bug
<snnw>some of it upstream when I actually find something meaningful to do, but too much of my time is spent staring at gcc vs LLVM profiles and scratching my head about why gcc is faster :D
<rain1>welcome to our channel
<snnw>OriansJ: thanks! I found the disabled tests. looks like a good starting point
<rain1>that sounds like it could get pretty tricky since gcc is likely to be full of weird hacks, i remember a good article about why grep is so fast by "cheating"
<OriansJ>I'd think cache alignment/hitrate, pipeline bubbles and a willingness to do super optimizations is a good chunk of it.
<snnw>yeah. codegen can be vastly different, with lots of differences that don't actually impact perf significantly. needle, haystack. I needed a break and build a C compiler in assembly instead ;)
<snnw>and thanks for the welcome, you seem like a fun bunch
<OriansJ>snnw: we also have C versions of cc_aarch64 if you would find it helpful
<snnw>that's M2-Planet, right? if you look through the cross compilation bits
<OriansJ>snnw: even simpler than M2-Planet
<OriansJ> https://github.com/oriansj/stage0/tree/master/stage2/High_level_prototypes/cc_aarch64
<OriansJ>which reminds me; I need to review those pull requests
<snnw>ah sweet I didn't see that. could be quite useful to compare to if I need to chase down any bugs
<snnw>OriansJ: I'll hopefully have some pull requests soon-ish
<OriansJ>snnw: sounds awesome ^_^
<OriansJ>snnw: if it isn't too much trouble; please ping me here when you need me to pull as I don't check github that often.
<snnw>OriansJ: will do, thanks!
<markjenkinsznc>OriansJ, yesterday you wrote "xentrac has an interesting lisp compiler written in lisp", this is https://github.com/kragen/urscheme or something else?
<OriansJ>markjenkinsznc: yep
<markjenkinsznc>ah, so this wasn't a suggestion it is being reactivated as a work in progress, but is an interesting source of test cases?
<OriansJ>markjenkinsznc: approximately correct
***ChanServ sets mode: +o rekado