IRC channel logs
2022-12-21.log
back to list of logs
<flatwhatson>lloda: if it's a fairly standard gnu+macos setup then fixing compilation there seems worth it imo <flatwhatson>i'll recruit a volunteer to see if that build failure is reproducible <flatwhatson>lloda: confirmed report of that "tls model" error with homebrew gcc-12 on an m1 <lloda>flatwhatson: ty for that, will fix <lloda>btw are you able to review aleix' m1 patch on guile-devel? <gnucode>flatwhatson: do you want a website for guile-steel ? <flatwhatson>gnucode: hah, thanks for the offer, i think it's maybe too soon for anything like that, guile-steel is probably best classified as "vapourware" right now :) <flatwhatson>it might be nice to have a wiki to collect research & notes on ideas related to static scheme, currently the #guile-steel logs are all there is <flatwhatson>lloda: the apple silicon patch lgtm, builds & passes tests on my amd64 guix, builds & fails 2 tests on m1 macos <flatwhatson>FAIL: 00-socket.test: setsockopt AF_INET: IPPROTO_TCP TCP_NODELAY <flatwhatson>ERROR: 00-socket.test: AF_UNIX/SOCK_STREAM: bind abstract - arguments: ((system-error "bind" "~A" ("No such file or directory") (2))) <flatwhatson>FAIL: filesys.test: readlink: port representing a regular file - arguments: (expected-value 22 actual-value 20) <flatwhatson>but those might not be blockers for merging that patch, just unresolved macos compat issues. <gnucode>flatwhatson: how would you define a static scheme? <gnucode>is that the same thing as typed racket? <flatwhatson>gnucode: typed racket is gradual typing, so adding type constraints on top of existing scheme code, but still sitting on a big runtime framework & interpreter <gnucode>so you are saying that static scheme would be lower-level than typed racket. ok <flatwhatson>static scheme as it's done in pre-scheme is about taking a restricted subset of scheme that can be compiled directly to machine code <gnucode>ok. What sort of help could you use for guile-steel? <gnucode>fosskers: I think lists are cut from prescheme... car and cdr and cons....I think. <flatwhatson>yeah the big things are no garbage collector, no lists, restricted lambda captures <flatwhatson>those are missing from pre-scheme but could be added as library code <flatwhatson>gnucode: right now i'm working on a talk "Introduction to Pre-Scheme" for FOSDEM '23 which should help to get interested people onto the same page <flatwhatson>one aim of the talk is to make it easier for people to use pre-scheme as-is from scheme48 <flatwhatson>it would be cool if people would start playing with it & exploring its current limitations there <flatwhatson>meanwhile after the talk i'll focus on hacking a portable stand-alone compiler out of its scheme48 host <lloda>flatwhatson: ty for the check <lloda>i also pushed the tls-model patch, although the extra warning is bad. Looks like a compiler issue for sure <lloda>or compiler/platform i should say, bc 12 worked fine on linux <old>meo: I haven't check the aoc for a few days now. But quickly, you should use `else` in your `cond` clause instead of `#t`. <old>You could even transform the `cond` into `(case ((2) ...) ((4) ...) (else ...))` <graywolf>Hi :) How can I load module name based on a define? Basically I'm trying to do something like (define x 'foo) (use-modules (facts x)) , which I would like to load module (facts foo). <chrislck>(module-use! (current-module) (resolve-interface `(facts ,x))) <old>chrislck: Should it not be `(module-use! (current-module) (module-public-interface (resolve-module `(facts ,x))))` ? <old>Well I'm not sure. Your solution works also <old>well it does import all private bindings <old>graywolf: You're best to use the module-public-interface if you only want public bindings <daviid>old: resolve-interface, quoting the manual, '... The interface of a module is also a module object, but it contains only the exported bindings.', fwiw <daviid>so chrislck solution is also perfectly working <meo>ah damn I didnt even know match was a thing <meo>that is legitimately a transpiler <meo>thanks for the bulb moment