<nalaginrut>mark_weaver: seems et-record-type-printer! won't enable automatically? I set the printer with proper proc <mark_weaver>nalaginrut: can you demonstrate the problem you're seeing with a simple self-contained example? <mark_weaver>nalaginrut: what you're seeing might be caused by redefining the record type. <nalaginrut> (set-record-type-printer! <mfd> (lambda (record port) (write-char #\\[ port) (display (mfd-name record) port) (write-char #\\] port))) <nalaginrut>$104 = #<procedure 46072c0 at <current input>:143:0 (record port)> <mark_weaver>nalaginrut: for example, if you create an object A of type <foo>, and then redefine <foo> (by re-evaluating its record type definition), then object A will not be of the same type as the new <foo> <nalaginrut>but next time I run a certain <mfd> instance, it print the old style <nalaginrut>so I have to put the print setter before the definition of <foo>? <mark_weaver>no, you need to avoid redefining <foo> within a guile session. <mark_weaver>or at least keep in mind that every time you redefine it, you are creating a fresh new type which is distinct from the old one. <mark_weaver>and that objects created before will be of the old type. <mark_weaver>actually, GOOPS allows you to redefine a class, and have all the existing instances be converted to the new class automatically. <mark_weaver>but simple records aren't like that. every time you evaluate the record type definition, you are creating a fresh new type, even if it's structurally the same. just like (cons 1 2) makes a fresh pair each time its run, even though they all print out as (1 . 2) <mark_weaver>I don't know of this is what's causing your problem, but it's something to keep in mind. <nalaginrut>so I should define record first then set the printer <nalaginrut>especially when reloading modules, but I can't reproduce that again <nalaginrut>Artanis support multipart/data-form now, it's easy to upload <nalaginrut>is there any GNU official filesystem? (maybe a bad question here) <ArneBab_>nalaginrut: not that I know - the Hurd uses an adapted ext2 *ArneBab_ likes calling upon fringe knowledge ;) <ArneBab_>nalaginrut: I did most of the month-of-the-hurd newsitems (and I’ll try to get another one published once this years GSoC is finished) <nalaginrut>could you point out that is MIG a kind of language? if so, where can I find the grammar (better BNF) <nalaginrut>if it's a language, I think it'd better to rewrite with Guile <ArneBab_>you could just ask braunr (for example). He might be willing to help if you pledge to update the wiki-page :) <ArneBab_>The most useful step for that would be full guile bindings for the Hurd, I think. Now that the Hurd libraries use pthreads, you might be able to leverage the commonlisp framework for that <ArneBab_>nalaginrut: I see braunr as the definite expert on the GNU mach kernel <ArneBab_>nalaginrut: it would be great to have that for guile, too. <ArneBab_>nalaginrut: essentially one of the key strengths of the Hurd is that it enables every user to do low-level hacking via translators. So it would be great if we were able to use guile for that. <ArneBab_>the right way™ to do that is writing a guile interface to the Hurd libraries. <ArneBab_>we do not need to replace existing, tested code with new code just for the sake of using a different language. But allowing users to write extensions in another language is something entirely different. <nalaginrut>ArneBab_: no, I don't mean to change MIG to Scheme, since Guile is a mult-lang platform, maybe it's better write a front-end for it <ArneBab_>MIG is a language, but it’s not what you normally use to extend the Hurd <ltsampros>system/vm/trace.scm module, is the one provided by the REPL when invoking ,trace (foo)? ***sneek_ is now known as sneek
<amirouche>I created created a script to count vowels using tail recursion <amirouche>isn't count-vowels a candidate to be a lambda inside count-vowels ? <amirouche>should I use a lambda or a define if I want to define the recursive function inside count-vowels <amirouche>I fixed the jump to def by adding the directory of the project to load path :) <taylanub>amirouche: I think the most typical way to do that would be with named-let. <taylanub>ltsampros: You can see the definitions of REPL meta-commands in module/system/repl/command.scm <amirouche>so guile read a file as if it was a guile file, isn't it ? <taylanub>amirouche: Hrm ? Do you mean the `read' procedure ? That reads an s-expression. <amirouche>there is something else than the read procedure ? <taylanub>A Guile s-expression. Every Lisp implementation uses slightly different s-expressions ... <taylanub>If not working with data that has s-expression representation. <amirouche>and then how do I convert it into the proper string ? <amirouche>I mean, If I read a file as a bytestream, I have to convert it to a utf-8 string <taylanub>Pretty sure the documentation tells how to, if you want to read a UTF-8 string. <dsmith-work>amirouche: There are many read-* procedure. You can read a line, until a delimter, a single char, etc. <taylanub>amirouche: It's advisable to learn how to use Info (C-h i) in Emacs if you haven't already. :) <amirouche>I don't have guile documentation in emacs AFAIK <taylanub>If Guile is installed right and your pathes are set right, it should be there. <amirouche>indeed there seem to be a problem regarding this in guix ***janneke1 is now known as janneke