<ijp>but let* is "pure sequential" and let "pure parallel" and there are strange examples where neither is what you want <ijp>I can exhibit the behaviour for you, but it's hard to do *convincingly* <ijp>I haven't looked at the above code, so I don't know that it applies <ijp>one of the examples in that file uses a special kind of let, which we call "named let" and so isn't really nested. it's more like a letrec <ijp>(let ((dnlt #f)) (let read-fields-or-eof ((c blah)) fumble)) ~=~ (letrec ((dnlt #f) (read-fields-or-eof (lambda (c) fumble))) (read-fields-or-eof blah)) <ijp>actually that covers most of the cases in that file <ijp>zv: consider (let ((a 1) (b 2)) (let ((a b) (b a)) (list a b))) <ijp>and ignore that it is a completely stupid example <ijp>you can't really turn it into a let* without introducing a temporary variable <ijp>(let* ((a 1) (b 2) (a b) (b a)) (list a b)) produces (2 2) rather than (2 1) <ijp>likewise (let* ((a 1) (b 2) (b a) (a b)) (list a b)) produces (1 1) <amz3>daviid: good code, good read! <ijp>now, this example is not something you would write, but it is something you might generate <amz3>I just need the panama papers then :p <ijp>if you are really good santa ClauSE comes in at night and fixes up your generated code <ijp>so, I've just spent the past five minutes trying to come up with a play on the "on dasher on dancer" bit from "twas the night before xmas", and I have to decide between metre and being faithful to the compilation order :/ <ijp>ACTION files idea away for winter <daviid>ijp: i found 2 detectives [fictional caracters/inspectors] named Banks <daviid>how do we bind these beast: #define GI_IS_ARG_INFO(info) <daviid>and the manual says 'Parameters: info, an info structure' I guess this means info is a pointer to an info structure right? <kori>is it possible to use guile as a shell <kori>(i.e. chsh -s /bin/guile) <jmd>kori: Why not just run /bin/guile ? <kori>I mean, I could................................ but where's the fun in time <jmd>Every time you want a shell, start guile. Yes. <jmd>What do you normally do when you want a shell? <jmd>Collect them from the beach? <jmd>Well, yes, you could, like you say change your shell to guile with chsh <wingo>ACTION debugging that miscompilation on 32-bit <wingo>happily the bootstrap/ .go files seem to be compiled fine, so it's an optimization problem <wingo>i have narrowed down this miscompilation a bit <wingo>if i do a -j1 make, the bootstrap/ completes <wingo>and the module/ build fails with a compile error on language/ecmascript/base.go <wingo>that error goes away if i delete the optimized language/cps/types.go <wingo>however, if i make clean in module/, then make language/cps/types.go with optimizations, then make base.go, it succeeds <wingo>indicating that it's types.go which is miscompiled due to some earlier miscompilatoin <wingo>i am currently running a script to build all previous .go files, then build types.go, then base.go <wingo>once i find the error i will know which file to work on :) <wingo>downloading cvs from guix was 666 KB <nalaginrut>ACTION doesn't want to support windows for Artanis, so he is going to build docker image for quick users <wingo>new guile documentation snapshot uploaded <wingo>for posterity, i have reduced the bug on 32-bit <wingo>you can make in bootstrap/ and then in module/ you do: <wingo>make clean ./language/cps/intmap.go ./language/cps/intset.go ./language/cps/licm.go ./language/cps/type-checks.go language/cps/types.go language/ecmascript/base.go <wingo>the miscompilation evidently starts with intmap.go but you need the next four files to be optimized in order for compiling base.go to error <wingo>now i can bisect on optimization flags <wingo>or rather, the powerset thereof :/ <wingo>indeed with -O2 the error happens and not with -O1 <wingo>which is good, at least i am isolating it a bit more :) <wingo>aaah, finally i am getting reliable backtraces in this thing <wingo>there were a couple of cases where we could throw an error without saving the IP, made me not understand what the deal was :) <wingo>that was weird having lots of backtraces that didn't make sense <wingo>now it looks like maybe just a logic error in an optimization pass; hard to tell tho. <civodul>remember the good times where all the optimizations were high-level enough that hardware details didn't matter :-) <wingo>bah, i was testing the wrong thing <dsmith>wingo: Wow! That sounds incredibly difficult. <wingo>it's a pain but since everything works fine with -O1 it's possible to narrow it down ***DerGuteM1 is now known as DerGuteMoritz
***Bobbejaantje is now known as McScottish
<paroneayea>I'm back from traveling, settling back into things <avoine>Would you mind making a release? I'll do the rest an update it's version/checksum in Guix. <amz3>here's a very simple csv parser using guile parser combinators <amz3>yeah could have made this a bit better <amz3>ie. (compose list->string car) <amz3>now i need to find a way to explain it