<linas>so -- how might one send an exception to a thread? <ijp>I don't think you can <linas>.... when I hit ctrl-C in the guile interpreter, how does that interrupt a running block of code <ijp>signals are handled specially afaik <linas>Ah, so you figure ctrl-C is a signal? <linas>I dunno -- it depends on how the guile repl got written/designed <ijp>afaik, the signal handler for C-c throws the usual exception <ijp>anyway, you can set signal handlers from guile (info "(guile) Signals") <linas>throws to where ... which thread? <linas>I see there is a scm_sigaction_for_thread ... <linas>I'm trying to avoid calling pthread_cancel to kill a thread ... I'm looking for the cleanest way to break some guile thread out of an inf loop. <wingo>linas: i think you can register an async on a thread <wingo>guile receives all signals on a dedicated thread and then registers an asynchronous interrupt on the thread to which the signal should go; something like that <wingo>i guess we should roll a 2.0.13 for mingw's benefit <civodul>dunno if mark_weaver had a chance to look at the deterministic compilation thing? <wingo>i reckon we should wait until eli's patch stack is empty <wingo>also i am going to be on holiday until next week fwiw <wingo>some holidays later too, but that will slow down patch review etc <wingo>ACTION just updated master to have all the recent patches against 2.0 <wingo>i didn't realize gnulib had a posix_spawn function; neat. <ajh>hello. is there something like (with-output-to-string (lambda () <ajh>It doesn't work although the book teach yourself scheme in fixnum days says that system outputs to standard output. i also tried to get the outputvalue with getenv, but it seems that system is creating always a new environment. <ajh>wingo: works. thank you very much! <paroneayea>MIT Scheme allows some interesting nested definition argument syntax that guile does not <koosha>I was searching for a guile programming envierment . For examble an ipython for python . Can you introduce one to me ? <ijp>paroneayea: (use-modules (ice-9 curried-definitions)) <amz3`>koosha: you are looking for guile REPL <amz3`>koosha: there is no other command REPL <amz3`>koosha: what are you missing from guile REPL <ijp>there is no repl but guile and geiser is one of its prophets <dsmith-work>koosha: Also, you can add readline support to the guile REPL <amz3`>you can use (help proc) to get some help <paroneayea>dsmith-work: ah, I wasn't talking about hte documentation structure just the styling, though I do like that about guile 2.X <dsmith-work>paroneayea: I did mean that I thought the style was updated about the same time as the latest 2.0 release <koosha>That was exactly what I wanted . Thank you . <dsmith-work>koosha: The guile REPL has a lot of helpful things that are probably similar to ipython. Like access to previously evaled expressions. <koosha>dsmith-work: Right . interesting . <koosha>What name should I putt on my guile configuration file in .guile ? <koosha>dsmith-work: So , ~/.guile/guile ? <koosha>I wrote (cons 1 null) but I got an error . <koosha>amz3`: Right . Why can't I use null ? I saw in a video that null was used in Scheme . <davexunit>the person that made that video wasn't using guile <dsmith-work>An alternative spelling is (list) though probably has more overhead than '() <davexunit>dsmith-work: yeah (list) will construct a new list <davexunit>(unless the compiler decides not to, I guess ;) <davexunit>I questioned what I said as soon as I typed it <koosha>But he was teaching Scheme in the video . Isn't guile an implemention of Scheme ? <davexunit>koosha: there are many schemes, each supporting different things. <davexunit>koosha: there are standards, but it's best to think of Scheme as a family of related, but *different*, languages. <davexunit>I didn't watch that video, but maybe the author did something like (define null '()) for the sake of teaching <davexunit>or maybe another Scheme implementation does that by default <ijp>dsmith-work: no extra overhead <ijp>well, I suppose there could be, since we can't guarantee list is bound to the list procedure in a module <paroneayea>there's some kind of bug with emacs' syntax highlighting for #| comment |# <paroneayea>where it goofs up if you have certain things, I think ; <paroneayea>amz3`: sussman's advanced glass on symbolic computation <paroneayea>includes all sorts of fascinating things, especially in the problem sets <paroneayea>implementing diffe-hellman, studying combinators and applying them to build better regexps (in the style of irregex), SKI combinators and building a lambda->SKI combinator mini-compiler, and the propagators system, which I'm currently very interested in <paroneayea>the propagators system is the root of my interest in this presently <paroneayea>I've been thinking about how to apply it to a "filter the firehose" stuff for both email and stuff like activitypub (the federation standard stuff I'm working on) <paroneayea>amz3`: oh, unrelated, but I was thinking about it earlier <paroneayea>you mentioned your search engine is or at least can be powered by minikanren right? <paroneayea>amz3`: how do you deal with the combinatorial explosion problem? <amz3`>it was... yes. It was only a query language on top of a list of tuple (tuple space). To avoid combinatorial explosion, they are a reverse index <amz3`>basically, you never iterate over the whole database if you write the correct query <amz3`>but anyway, i dropped it, because it's not really handy, I need a better abstraction <paroneayea>good if you can do "correct" queries... "incorrect" queries in any logic programming system seem to lead to search that goes unpredictably wild <paroneayea>seems hard to figure out which ones are going to be "incorrect" from the outset, too :) <amz3`>hmm... I never hit the incorrect query case <amz3`>yes, it can, but you need a big database for the explosion to be significant <amz3`>also, the queries were simple <amz3`>paroneayea: you know SPARQL, how the queries look in SPARQL? <amz3`>actually it's possible to explain in SLQ <amz3`>it's equivalent to, SELECT * FROM A = B, C = D... <amz3`>expect you can traverse foreign keys <paroneayea>amz3`: yes it's probably possible for things to be reasonable :) <amz3`>SELECT * FROM A.id = 123 AND A.fk = B.id <paroneayea>anyway yeah it's also possible to create crazy queries in SQL too... I guess you don't expose that stuff to users <paroneayea>amz3`: btw I've worked with SPARQL but I'm not good at it :) <amz3`>actually: SELECT B FROM A.id = 123 AND A.fk = B.id <zv_>is there any way for a inner sexp macro to escape prior to it's parent macro? <zv_>i.e to make (include (string-append base "/dir/file"))? <dsmith-work>zv_: Well, the whole point of a macro is that it gets it's armument(s) unevaulated. Could be any syntax at all. ***zv_ is now known as zv
<ijp>there are tricks to do it, but it gets weird with phasing <linas>so I just noticed -- there does not seem to be any scm_lambda call ... !?