IRC channel logs

2014-05-03.log

back to list of logs

<LRN>still no sign of building fully-functional guile 2.0.10 on W32?
<LRN>last version that worked for me was 2.0.9 with --disable-posix and GC_MARKERS=1
<daviid>LRN: don't know about W32 but you should install 2.0.11 and _not_ 2.0.10 [they discovered a bug the day of the release and immediately made a new one...]
<LRN>well, yes, i probably meant 2.0.11
<davexunit>a user named Madsy has made a lot of progress on a windows build
<davexunit>not sure of the status, though.
<davexunit>but from what I remember things are improved in the latest guile release.
<nalaginrut>morning guilers
*davexunit is trying to figure out how to create a scene graph for guile-2d that doesn't involve OOP
<LRN>what's wrong with OOP?
<nalaginrut>LRN: I think it's no wrong, just boring for a FP user
<davexunit>yeah, I think functional programming is the way to go.
<DeeEff>hey #guile, is it possible a guile program into a single binary (similar to chicken and gambit)?
<DeeEff>s/possible/possible to compile/
<DeeEff>(。 ‿°)
<ijp>no
<ijp>native code generation is a long term plan, but we won't be there for a while
<DeeEff>so in the meantime, how is guile compiled into programs?
<DeeEff>I suppose you need the libguile.so installed?
<DeeEff>or .dll, if on Windows
<ijp>you either run it from the guile interpreter, or from a C program than uses libguile
<DeeEff>In either case though, you'd need to have the user install guile as a pre-requisite. Okay. Thanks.
<nalaginrut>ijp: AOT is one of way for standalone binary
<nalaginrut>DeeEff: there could be a way to package your program with Guile, but maybe larger
<DeeEff>nalaginrut: details? It's more a question of curiousity.
<nalaginrut>DeeEff: I never tried it, but it's possible
<nalaginrut>the easiest way maybe static-compiled-Guile + your script and added this bunch of binary image to a bash script
<nalaginrut>but I think it's better to install Guile, rather than standalone, because Guile has many prerequisites, so this approach could cause a very large image
<LRN>well, you can write a C program that uses libguile and has the guile script embedded into it
<LRN>that will look like a "guile program"
<nalaginrut>yeah, and static link
<nalaginrut>linking
<nalaginrut>another way to go
<nalaginrut>maybe static linking is redundant
<DeeEff>yeah, sounds like overall it's not an optimal solution
<DeeEff>to be honest though I prefer guile to other scheme dialects, I just sometimes need binaries
<DeeEff>Guess that's what C++ or Python are for.
<LRN>or Rust
<DeeEff>Rust doesn't have a stable API yet
<DeeEff>when it does perhaps, but until then, no.
<nalaginrut>besides API, I think even it's grammar is not stable yet
<nalaginrut>it's under continuous improvement, maybe it's a very language in the future, but not now
<nalaginrut>DeeEff: you may have binaries, but along with external Scheme scripts
<nalaginrut>you don't have to wrap all the things into binaries, or you have reasons to hide some info?
<DeeEff>not necessarily hide information, but it makes it easier to install if you can freeze dependencies.
<DeeEff>e.g. user wants to use your tool, but the don't have guile installed and can't install it (lack of admin priviliges or otherwise)
<DeeEff>it's hard to tell them "you need to install this program first"
<DeeEff>in that sense, having the choice to compile down makes sense.
<nalaginrut>it seems what static linking works
<nalaginrut>even one day we have AOT, you have to use static linking
<nalaginrut>for libguile is the runtime of Guile, so it's needed
<nalaginrut>s/runtime of program written with Guile
<muep>a precompiled libguile.so could also be shipped with the application
<muep>similar to what e.g. many Qt applications do when they ship precompiled binaries
<wingo>greets
<ijp>moo
<wingo>sneek: later tell davexunit regarding scalar replacement in the real world -- such situations can occur
<sneek>Will do.
<wingo>sneek: later tell davexunit like when you want to match on two values so you (match (cons a b) ...), or the box that is created for assignment conversion, or other such things
<sneek>Okay.
<wingo>,x (lambda (a) (set! a 30) (set! a 40) a)
<wingo>Disassembly of #<procedure ad5290 at <current input>:1:0 (a)> at #xad5208:
<wingo> 0 (assert-nargs-ee/locals 2 0) ;; 1 arg, 0 locals at (unknown file):1:0
<wingo> 1 (make-short-immediate 0 162) ;; 40
<wingo> 2 (return 0)
<wingo>so no box allocated in that case
<wingo>not yet pushed to master tho
<wingo>but now it is :)
<wingo>vectors are still squirrely though, we don't model effects precisely enough
<wingo>and structs are hard for other reasons
<wingo>pairs and boxes are eliminated if possible though :)
<nalaginrut>the last point sounds cool ;-)
<nalaginrut>wingo: I found ,tr in master get little info than before, is it unfinished yet?
<nalaginrut>s/little/less
***sneek_ is now known as sneek
<aidalgol>ijp: What do we want done on cbot next?
<ijp>pffft, no idea
<ijp>surprise me!
<aidalgol>replace sneek
*aidalgol grins evilly.
<aidalgol>ijp: Does guile have a decent logging library?
<ijp>for my site, I use the one in spells (with a bug fix)
<ijp>there might be one in guile-lib
<ijp>(there is)
<zacts>lo