IRC channel logs


back to list of logs

<nalaginrut>morning guilers~
<nalaginrut>yup, many bugs of Guile just disappeared when I prayed then make clean (I'm serious), sometimes I don't have any chance to find out what's the matter...
<nalaginrut>maybe it's related to .go cache?
<adu>cache can be tricky
<Chaos`Eternal>helo gurus
<Chaos`Eternal>anybody has idea about whether guile can serialize a continuation ?
***chaos_ is now known as Chaos`Eternal
<nalaginrut>heya wingo
<wingo>moin janneke
<janneke>hey wingo! aren't we early :)
<wingo>yes, wtf :)
<wingo>i was waiting at the baker's this morning before they opened
<wingo>something is clearly wrong :)
<janneke>yeah, bakers starting to sleep in, what's this world coming to?
<janneke>some great off topic news
<janneke>last saturday, a lilypond-made national hymn book was presented, 40,000 copies and already sold out
<wingo>wow, that's wonderful!
<wingo>what a good feeling :)
<janneke>yeah, great national coverage [no word on lilypond yet, though]
<janneke>but several comments on how beautiful the book is :-)
*janneke sees nice patchset in guile-devel and has an experience-based theory on why wingo was up so early
<wingo>hack on the mind? :)
<janneke>why sleep if you need to hack :-)
<nalaginrut>wingo: any recommended approach to serialize continuation/procedure/hash-table? I saw hash-table can't be serialized in Racket, but I could permit users pass in a call-back to unserialize their hash-table
<wingo>yes, the application ultimately needs to control how to serialize and deserialize its data
<wingo>as far as procedures go that can be difficult
<wingo>racket has serializable continuations fwiw
<nalaginrut>I have an idea to serialize procedure from bytecode, but I can't get rid of its binding name
<wingo>it's a special kind of continuation though
<wingo>don't hack the bytecode, all that will change in 2.2...
<wingo>and with native compilation...
<nalaginrut>wingo: so not all kind of continuation could be serialized, right? Unless we design a serializable one?
<nalaginrut>and it won't be full-work one
<wingo>dunno, many things are possible in software ;)
<nalaginrut>OK, don't hack the bytecode ;-P
<nalaginrut>but what's the proper point to cut in?
<wingo>but i would look to racket for ideas.
<wingo>nalaginrut: study racket and see what they do :)
<nalaginrut>I'm reading the code in racket, just ask some advices
<nalaginrut>hmm...racket can't serialize procedure too...
<nalaginrut>OK, seems chicken's s11n picked the very same design of mine, just pass serializor/unserializor in
<civodul>Hello Guilers!
<wingo>heya civodul :-)
<Chaos`Eternal>anybody has idea about whether guile can serialize a continuation, so that the continuation can be stored in a file or send over network
<Chaos`Eternal>and then be restored later?
<civodul>short answer is it can't
<Chaos`Eternal>don't like this short answer
<Chaos`Eternal>chicken can, gambit-c can
<civodul>oh really?
<civodul>i'd expect it to be more difficult in the case of native code compilers
<civodul>on Guile's VM you could play tricks with the debugging/introspection features
<civodul>but that still wouldn't allow you to reinstate the stack frames
<Chaos`Eternal>nalaginrut has some suggestions , but i still want to hear more from gurus...
<wingo>i just gave him my answers :) basically, look to racket and see what they do, and if it makes sense for guile, come back with a proposal
<wingo>it's not a high priority atm tho
<Chaos`Eternal>e, yes, racket has this feature...
<Chaos`Eternal>em, I'm trying to port termite(a erlang style concurrency libarary on gambit-c) to guile
<Chaos`Eternal>but there are too many pitfalls : no thread-mailbox, no match/action, and at last, no serializable continuations
<Chaos`Eternal>no s11n continuations, no process migrations
<Chaos`Eternal>for thread-mailbox, guile-zmq can be used instead, and mathc/action also not necessary
<nalaginrut>Chaos`Eternal: actually I've talked that with wingo few minutes ago
<nalaginrut>Chaos`Eternal: And continuation/procedure/hash-table can't be serialized in Racket/Chicken
<nalaginrut>Chaos`Eternal: but chicken give users a way to implement serialization themself
<nalaginrut>and it's the same design with my guile-persist
<nalaginrut>For serializable-continuation, it's totally another story
<Chaos`Eternal>chicken egg s11n
<nalaginrut>Chaos`Eternal: I've checked s11n ago
<Chaos`Eternal>en, i'm checking it now
<nalaginrut>it permit users pass their own serializor to implement the serialization
<nalaginrut>that's the same design in my guile-persist, anyway, there's no given way to serialization continuation/procedure/hash-table, it depends on users
<nalaginrut>users have to write their own serializator/deserializator to done the work
<Chaos`Eternal>but that is trivial
<Chaos`Eternal>here is an example of the serializer :
<nalaginrut>it's one of the serializator
<Chaos`Eternal>trivial serializer
<nalaginrut>anyway, serializer depends on users' work, for any language
<Chaos`Eternal>but there is no hook...
<Chaos`Eternal>i tried your code...
<nalaginrut>I'm writing the thing you need
<nalaginrut>include a middle-structure for users' convert of serializator
***chaos_ is now known as Chaos`Eternal
<civodul>wingo: mega branch cleanup on the repo! :-)
<civodul>high overdue ;-)
<civodul>s/high/long/, even
<wingo>hehe :)
<wingo>yeah it seemed like a good idea :)
<add^_>Long time no see #guile :-)
<civodul>i just noticed that GUILE_LOAD_PATH= is different from GUILE_LOAD_PATH unset
<shanecelis>My guile project Emacsy got accepted as a google summer of code project. Woohoo!