<mark_weaver>zacts: I now know how to define the (reset) that you wanted before in guile: (define (reset) (abort-to-prompt (default-prompt-tag) (lambda (k) (values)))) <mark_weaver>that simply returns back to the prompt without printing anything else. <mark_weaver>(if you want the REPL to think that some values were returned, pass them as arguments in the call to 'values' there) <mark_weaver>so here's a more general version of 'reset' that can also accept arguments that will be returned to the REPL: (define (reset . xs) (abort-to-prompt (default-prompt-tag) (lambda (k) (apply values xs)))) <mark_weaver>and by the way, the 'k' in that lambda is a continuation that would resume the computation after the call to (reset) <amirouche>is there something to install guile programs without using makefiles ? <tupi>amirouche: if pure scheme/guile modules [no external depencies], you can use guildhall <dsmith_>amirouche, Guile itself uses make. Do you mean scheme code you write/package yourself? ***dsmith_ is now known as dsmith
<linas>the ice-9 rw read-string!/partial from a tcpip port seems to mangle any utf8 arriving on that port. <linas>Didn't used to, I don't think <linas>is there a C api to the repl commands? <linas>so that I could export them in my own prl loop? <linas>is there a way of listing all procedures in a module? <linas>I've got a pile of code, I'd like for users to be able to just ask for help at the repl loop, but not sure how to do this. <taylanub>linas: Your procedures can have docstrings, which users can view via ",d foobar" at the REPL. <taylanub>(define (foobar arg1 arg2) "Documentation goes in this string." <procedure-body>) <taylanub>(define foobar (case-lambda "Documentation goes here." <case> ...)) should work too AFAIK. <dsmith>linas, there is a module-for-each <taylanub>You can get the "interface" (exported bindings) of a module via `module-interface', as the documentation says. Getting a list of all bindings could be done with any of the undocumented procedures `module-obarray', `module-map', `module-for-each'. <taylanub>Er, `resolve-interface' not `module-interface'. <taylanub>E.g.: (module-for-each (lambda (symbol value) (display symbol) (newline)) (resolve-interface '(guile))) ;that's a lot of stuff!