<str1ngs>sneek: later tell daviid. thanks. It works for me I'm using my own typelib where I can connect the signasl on class initialization. it's unrelated to nomad. something else I'm working on <rlb>Is there something unusual about equal? The goops docs say that (define-generic foo) should promote any procedure foo to a generic and that works fine for say string-compare in 2.2.6, but not for equal? <rlb>scheme@(guile-user)> (use-modules (oop goops)) <rlb>scheme@(guile-user)> (define-generic equal?) <rlb>scheme@(guile-user)> equal? <rlb>$1 = #<procedure equal? (#:optional _ _ . _)> <wingo>i think it's a primitive-generic <wingo>primitive-generics first use primitive code then dispatch to a generic if the types aren't primitive <wingo>they are pretty squirrely though as they break modularity ***civodul` is now known as civodul
*spk121 is trying to understand how Guile starts up. 'compile-shell-switches' is a tangle <civodul>spk121: what do you mean, "how Guile starts up"? <spk121>civodul: imagine some idiot wanted to write a graphical debugger for Guile in Guile w/ guile-gi. haha. You start off by launching the GUI and the kicking off a sort of sandboxed sub-guile to interpret the program to debug. It gets a bit complicated with call-with-prompt, capturing stdin/stdout, and splitting the debugger's command line switches w/ the programs command line switches <spk121>not that you really wanted to know, ;-) <civodul>spk121: i wouldn't call that person an idiot but rather a fearless hacker :-) <civodul>when you say sandbox, do you mean container? <lloda>it's weird how container has come to mean sandbox <civodul>what's even more weird is how container has come to mean Docker <civodul>but that's not what i meant in this case ;-) <lloda>and yeah to the Docker thing :-/ <jcowan>civodul: And indeed the fearless hacker would be able to reach that goal, were it not for ... moose and squirrel! <jcowan>I think the English invented the word "squirrel" so as to have a word that no non-anglophone could pronounce properly. <civodul>wait, i didn't even write it, how do you know i don't pronounce it correctly? ;-) <jcowan>I don't. But with the English w, the English r, and the English dark l in its own syllable, that's a lot. <jcowan>It basically has no regular vowels at all <jcowan>and that's just r-vowel, not also l-vowel <ecraven>use sanskrit, it has l-vowel (but not m-vowel :-/) <spk121>I am in a constant battle with squirrels over who gets to eat the avocados from my tree. So far, squirrels 1000, me 3. <spk121>civodul: I suppose I mean container more than sandbox. I think, in practice I mean the evaluation of external code in the environment provided by a module. Where that environment is within a control-flow barrier or prompt. Where that environment mimics the environment available at the top REPL, but has redirected all the standard ports. Heck, i dunno. i wanna run the things but without the things getting to see a bunch of Gtk funct <civodul>oh i see, so potentially a different process (or thread) to avoid blocking, but not necessarily a container in the Linux sense <spk121>right. Probably a thread rather than a process, so that the debugger (the outer program that will spawn the thread that runs external code) will be able to add traps and capture hooks. <rlb>wingo: thanks -- and I can get equal? promoted to a generic, just not via define-generic, i.e. I can stash equal? somewhere else, then (define equal? #f), and then define-generic works. Maybe this is a bug? <rlb>(extend-primitive-generic! doesn't work either) <rekado>looks like an older version of the tool got started after the reboot <rekado>it’s back. Sorry about that and thanks for the report! <spk121>ilyaigpetrov: Unless I misunderstand the question, (define deposit #f) sets a the module-level variable 'deposit' to the value FALSE. So initially you can't call 'deposit' like a function, because it is just the FALSE constant. Later in the example 'deposit' gets set to a lambda: a procedure. At that point, you can call it like a function. <spk121>#t and #T are TRUE, #f and #F are FALSE <civodul>#t is also #true, and #f is also #false :-) <civodul>i've been thinking we should adopt the long names instead of #t and #f in our code bases <zacts>how does goops differ from CLOS, or is it pretty much the same idea? <davexunit>not as featureful as CLOS, but has a lot of good stuff. ***jao- is now known as jao
<jcowan>#true and #false are indeed in R7. Alex Shinn came up with them because I had overlooked a test that I ran on many Schemes including Chibi and said that Chibi didn't pass, where in fact it did. <jcowan>He thought that was because I didn't see the #t, but actually it was just that my eyes skipped over Chibi in the long, long list of outputs. <jcowan>So he proposed #true and #false, but nobody, not even Chibi, outputs them, because backward compatibility.