<janneke>roelj: are you looking for (symbol->string (symbol-append 'my- 'string)) ? <roelj>janneke: No, I'm looking for the other way around. I would like to get "Hello world" instead of "my-string". <paroneayea>but, the from-actor is probably always available via a parameter. <davexunit>roelj: (module-ref (current-module) 'my-string) <roelj>davexunit: Thanks! It took a bit of time to adapt it in my code, but it works. Thanks a lot! <davexunit>roelj: I will note that if you are doing this, you probably have a design issue. <davexunit>it's *very* rare that you need to do something like this <roelj>davexunit: Heh. I am writing a web page in which each page is implemented as a module. <roelj>Well actually, a function in a module. <roelj>Depending on the request path (/hello-world) it goes to the corresponding page. <roelj>Are there examples of running a daemon with Guile code? <paroneayea>always some abstraction in guile I haven't bumped into yet <OrangeShark>paroneayea: there is also acons which is in part of guile <paroneayea>and that one I don't even need to import srfi-1 for :) <paroneayea>here's something I can't figure out how to do with fold-args <paroneayea>syncbot.scm --server irc.freenode.net --username sinkbot --channels "#8sync #guile" <paroneayea>it doesn't seem to automatically snarf the next argument the way getopt-long does <paroneayea>because it doesn't group those arguments together <paroneayea>I'm just surprised that space containing values don't seem to work ***dcluna_ is now known as dcluna
<mbuf>What is the memory footprint of a Guile VM? <ArneBab_>mbuf: for which task? When it does nothing? <ArneBab_>mbuf: I see a newly started guile 2.1.4 consume 15 MiB of memory. <ArneBab_>importing srfi-42 increases that to 23 MiB <mbuf>ArneBab_, if embedding in a C project? <ArneBab_>I don’t know — please let me know if you try it. <ArneBab_>mbuf: however if I run it non-interactively <ArneBab_>also it depends on the tool I use to count… <ArneBab_>with KDE system activity I get only 6 MiB for a newly started Guile 2.1.4 <ArneBab_>top still gives me 6 MiB for the non-interactive one <mbuf>ArneBab_, increased by 1M with -q option to 7.6MB <ArneBab_>Ah, I found the difference. 1.7 MiB private, 4.2 MiB shared <ArneBab_>mbuf: if I start 100 Guile processes (2.1.4) these 4.2 MiB shared are only 42kiB per process <ArneBab_>mbuf: do you have defined requirements you want to meet? <mbuf>ArneBab_, just trying to choose between Lua and Guile <ArneBab_>mbuf: ask wingo if you want a truly informed decision. He’s using Lua for high performance packet filtering and is working on the lowest levels of Guile to make it more efficient. <ArneBab_>and more and more of the GNU sites are currently getting this treatment. <ArneBab_>the Guile site showed me that a modern-style site can actually be done right <ArneBab_>I have read lots of good things about Lua, too, but I did not test any of them myself. <mbuf>ArneBab_, okay; thanks for your feedback! <ArneBab_>mbuf: sorry that I cannot give you a more informed opinion on Lua <ArneBab_>mbuf: what kind of application do you have in mind? <ArneBab_>ACTION kept thinking about your question <mbuf>ArneBab_, nothing specific in mind, actually ***daviid is now known as Guest34943
***Guest34943 is now known as daviid
<amz3>ArneBab: I read you do a presentation about your work <amz3>I have a question kind of related, how much slides do you plan to use? <ArneBab>given that there’s 20 minutes I think I won’t have more than 10 slides <ArneBab>It would be really cool to have a laptop there which could run code, but I don’t think that will be easy enough to prepare <ArneBab>(mine are not compatible with presentations) <amz3>I don't plan to do a demo, but having a laptop to view my slides would be good <amz3>as I don't plan to bring my laptop <ArneBab>I plan to just upload the slides and share the link on the mailing list, asking any of the folks with laptops to download them beforehand <amz3>I will also bring a usb key <amz3>je suis sur qu'ils vont arreter le dev de wiredtiger pour se consacrer pleinement à crée un bon storage backend pour mongodb <paroneayea>which is how to let actors "clean up" after themselves at event loop shutdown. <paroneayea>eg, imagine an actor which is controlling a database, or watching a socket <paroneayea>when the event loop shuts down, they should get sent something that gives them an opportunity to close such things <paroneayea>the question is, should it also use the same event loop <paroneayea>what about messages that are currently in-process? <paroneayea>one option would be: dump the queue, and start up a new queue with one message sent to every actor: *clean-up* <paroneayea>and that's the actor's one chance to do cleanup for an unexpected shutdown. <paroneayea>well, hm, maybe I should leave that as a surprise for my FOSDEM talk :) <paroneayea>daviid: so, here's your chance to convince me of a traditional CLOS style thing I haven't bought into yet ;) <paroneayea>normally when I use generic methods, I still do something like <paroneayea>(define-method (irc-bot-handle-line (irc-bot <irc-bot>) line) <paroneayea>(define-method (handle-line (irc-bot <irc-bot>) line) <paroneayea>which is certainly shorter, but I wonder if you lose something nice about seeing what the "method" is expected to be related to <daviid>you don't loose anything since the dispatch is on the first arg, which vehicle that same info <paroneayea>it's certainly easier to read not having the extra 8 characters of irc-bot- <paroneayea>maybe one motivator for the shortness is that the -method on define-method is already taking up a precious extra 7 characters on my line ;) <daviid>wrt 'less clear', only if you badely name your args <daviid>(define not-a-bot (make <irc-bot>)) then (handler-line not-a-bot) :) but that is also true for none oop programming <daviid>paroneayea: i would always pick the shorter possible name when using goops <paroneayea>daviid: ok, well thanks! I appreciate your input :) <daviid>but you also have to deeply understand guile's module system when exporting these <paroneayea>daviid: because if you have two different "frobnicate" generic methods in two different modules and then import them both... ? :) <daviid>yes, and also you can't use #:export m-name if you impoirt a module that defines m-name ... <daviid>I should write something and upload it about this, but in the mean time, I have a 'strict' approach when it comes to using goops: (1) make sure your class names are unique (for the entire 'system', always unique for all modules) and export them, #:export <...>; (b) always set #:duplicates (merge-generics replace warn-override-core warn last)); (c) do not define generic, let the system do it for you; and (d) always use g-export to <daviid>either export or reexport methods <daviid>then you will never ever face a bug wrt method 'availabiloity' and dispatch from any module <daviid>hum, will paste an up-to-date version in a min <daviid>paroneayea: g-export [goops export], which re-export defined names, should _only_ be used for getters, setters, accessors and methods (of course, but better state it :)) <paroneayea>daviid: d8id you mean to paste the paste link, or the submit link? <paroneayea>daviid: is that copyright header correct? is guile-cv a gnu project you've signed papers for? <daviid>paroneayea: I'm working on and will submit it soon now, I beleive it will be accepted, so I worked with these headers ... but feel free to snarf and change the header ... <daviid>paroneayea: I've signed the papers for guile, and I beleive that covers guile related projects, because they did not ask me to sign any other paper for g-golf and foliot <daviid>but anyway, guile-cv is not publicly available yet, I just posted a copy of one of its file for you to look at and snarf ... <paroneayea>daviid: I don't think it covers related projects as far as I know <paroneayea>but anyway, I don't mean to be hung up on it either, just commenting :) <daviid>paroneayea: ok, but they did not ask me to sign any other paper for guile-gnome, guile-clutter, g-golf and foliot, so I was assuming ... but I'm not a pro wrt license ... if they ask i sign anyway ... everything i do must be gpl or lgpl compatible anyway