<davexunit>youlysses: not too much. just perusing the internet now that I'm home from work. <davexunit>I guess I am going to work on a quadtree implementation. <davexunit>I feel like it would be cool if it was a pure data structure, but I don't think it will work out that way. *nalaginrut have to leave for a whiel *davexunit just wrapped up some basic SDL audio functions for guile-2d <nalaginrut>I wonder if it's possible to support HTML5 in the future, I mean guile-2d <davexunit>I wouldn't even know how to begin with that. <davexunit>things are very much tied to C libraries like SDL, OpenGL, FreeImage, FreeType, etc. right now. <nalaginrut>if the interface is well defined, I think it's possible <davexunit>I try to define the interface such that the user doesn't have to interact with the underlying library wrappers. <davexunit>but there's no abstraction currently to interchange what libraries are being used. <davexunit>and I wouldn't know how to translate guile code into JS that can be run in the browser. <davexunit>yeah, it would be something like libgdx does <nalaginrut>well, seems some problem is there, since I saw color.scm is not HTML5 compatible design <davexunit>libgdx is a java lib, but you can compile html5 versions of the program. <nalaginrut>but it's possible to do, one approach is to write color->html for translate <davexunit>yeah, literally nothing is built with the though that this is going to be able to run in a browser ever. <davexunit>where channels have values in the range [0,1] <nalaginrut>hmm..I think you're right, we'd better translate it to JS, if it's an aim to support HTML5 <davexunit>I'll be focusing on making this usable on gnu/linux for the time being <davexunit>I took a few pages out of cocos2d's book for guile-2d <davexunit>actions are composable functions that operate over a period of time. they work with coroutines. <nalaginrut>I think the scheduler processes each obj one by one, without interruption? <nalaginrut>I'm thinking a green-thread scheduler design, I don't if I should add time-interrupt <davexunit>yeah I don't have any logic to interrupt coroutines that take too much time yet. <nalaginrut>I design this for the server, so I think agenda way maybe not enough <nalaginrut>I want to add actor-model based server for Artanis <davexunit>oh no. I've just discovered that guile-2d programs gradually slow down over time. <nalaginrut>In my mind, I have to handle the thread which trapped into an infinite loop <davexunit>I believe he's implemented or plans to implement something similar for emacsy <nalaginrut>one of the approaches is watch-dog, it's very easy to implement with sigaction&delimited-continuation <nalaginrut>hah, seems emacsy is the current most popular guile stuff <nalaginrut>nice, a relative complete demo game is attractive for users <davexunit>the whole reason I'm writing guile-2d is so that I can write a shoot-em-up game with Guilel <davexunit>this slow down issue is going to be hard to debug. <davexunit>no I think it's something with the update loop. <davexunit>I could remove the scheduler to reduce variables. <davexunit>I know he has some thoughts about how to approach it though <nalaginrut>yeah, it's an important question, anyone solved it first will be very worthy <nalaginrut>since we still don't get the idea how to implement green-thread with delimited-continuation <nalaginrut>since green-threads accepts one-block-then-all-block situation, the solution have to be async multiplex, like epoll <nalaginrut>alas...I don't want to add C code for Artanis, so maybe a new server project would be better <aidalgol>Will it download a virus to my machine??? <nalaginrut>is it possible to convert image from webcam to terminal-escape-string? <aidalgol>Probably, but you'd have to use libcaca to make it viewable on today's screens. <youlysses>Backtracking a-bit, I'm excited for Emacsy, but once guilemacs hit's upstream, I'm not sure how relevant it'll be to my interests. :^P <nalaginrut>the reason I expect guile-emacs is I want to try JS for emacs plugin (run away...) <youlysses>nalaginrut: I want to get to a point, where I feel confident/competent enough to write a wayland compositor for Emacs and use Emacs for *all* of my day-to-day computing and guilemacs is the only semi-reasonable way I see that happening. :^P <nalaginrut>well, I'm trying to introduce GNU/kernel to people as possible, so I have to cut emacslism sometime ;-D <youlysses>nalaginrut: GNOME is right around the corner and I expect to be the eventual default, for the GNU Guix based distro coming fairly soon. :^) <nalaginrut>ah, speak to Guix, can you use Guix on Hurd now? <youlysses>nalaginrut: Idk, did Guile 2.x ever get up and going on it? <nalaginrut>I think it's OK now, and braunr's private repo show me it's OK <nalaginrut>but I don't know if it's update for official repo <youlysses>From what I'm aware, that was really the only "big" roadblock. There are some cool things, like linking up to a stowfs to act as a more direct route than on Linux -- but I don't think that is needed to function? Probably something better asked on #hurd or #guix, tbh. <youlysses>That being said, from the little I know, I'd think it'd be working -- if not very, very close to it. :^P <youlysses>nalaginrut: I have it on my 10 y/o compaq, but until it gets usb-support it's fairly useless to/for me. I plan to switch in 2 or-so years time and I'm interested in implementing dvorak support at some-point. :^P <nalaginrut>even opensuse-13.1 with gnome3.9 works fine on it *youlysses is still shocked they've been able to hack it on top of Mach, after all this long ... they have to be reaching the breaking point soon though. <nalaginrut>but when I ssh to it, and fix Guile but, I found it's slow while multi-works <nalaginrut>and I think it's not so efficient for the network <youlysses>It must be such-a pain to gut the system and move to a new microkernel base, if they've been able to put up with such a (from what I can tell) non-ideal system for so long. :^P <nalaginrut>maybe just try it as exokernel, I've heard of such voice, dunno <youlysses>Let's start a crowd-funding campaign, which is doomed to fail (because "Linux is good enough"), for the development of a new microkernel. :^U <youlysses>Well assuming I can get usb working reliably, and some network card that'll work with it all be happy. :^P <nalaginrut>my USE keyboard/mouse suit can't work under fluxbox *youlysses wonders how Wayland will work on the Hurd "out-of-the-box" and/or if there's anything special needed to be done for the graphics stack that he isn't aware. <youlysses>nalaginrut: Yeah, graphic-card/driver support, I think (from too my very limited knowledge) would pose as a problem. :^P <youlysses>nalaginrut: Or major systems in-place for compatibility for Linux drivers. :^P <Chaos`Eternal>helo, can i use a syntax definition which is not exported by a module? <stis>good afternoon you schemishes hackers! <ArneBab>nalaginrut: actually I think the page-caching stuff is pretty slow on the Hurd, but if you run it is KVM, it just uses the Linux (host) page-cache and gets pretty fast. <ArneBab>nalaginrut: I didn’t yet get to solve the reader problem. But I had to postpone it after ~3h, so this was not a whole day of trying. <ArneBab>how can I replace every substring in a given string by a different substring? <ArneBab>something like (replace "abc" "ab" "de") ⇒ "dec" <ArneBab>(info did not help me, because I did not understand whether it says that string-replace does what I want or not…) <ArneBab>Do I have to do that manually with string-contains? <ArneBab>note to google: When I type “replace string in string guile”, I do not mean *guide*! <cky>sneek: later tell Chaos`Eternal As I understand it, you can actually import non-exported bindings from a module. Whether that will continue to work, that's a different question. <ijp>hmm, build-cps-exp's sole purpose is to save a little typing <ijp>wouldn't it have just been better to a different constructor name convention? <ijp>%const rather than make-$const <ijp>also, it's broken at the repl <ijp>which is weird, because the spec for cps is very similar to the one for tree-il <ijp>maybe it's the 'joiner' parameter? <ijp>oh wait, no, of course, there is no way to convert cps into object code yet <shanecelis>Guile doesn't have a good way of adding documentation to values, right? So no one will be upset if I add a (define-variable var-name var-value "doc-string") to Emacsy? <taylanub>shanecelis: I think there's "object documentation" or something as a generalization of procedure documentation. <ijp>there is no "variable documentation" though <ijp>but you could use the documentation object property on variable objects <shanecelis>taylanub: cool. I found that in (ice-9 documentation) <taylanub>I suppose the best way would be to put the documentation onto the variable-object that a module holds. <ijp>good thing we have this echo <taylanub>So one could generate documentation of whole modules ... <shanecelis>taylanub: Good idea. That way it stays around even if mutated. *taylanub always catches up 2 seconds after ijp. <ijp>don't flatter yourself :) ***ijp` is now known as ijp
*foeniks had the idea to make character-from string reading with streams. Looked up stream-car, stream-cons, etc. Wrote an open-file-as-stream. Then discovered `port->stream` in the docs.. ***LAMMJohn1on is now known as LAMMJohnson
<shanecelis>Does Guile have anything like __line__ or __file__? <ijp>every time someone adds something to #, I brutally murder a kitten <ijp>think of the kittens! <taylanub>.oO( I think "speechless" is the term. ) <taylanub>Let's construct "I think" clauses in our thoughts. <ijp>actually, it looks like I was wrong <ijp>current-source-location and current-filename <ijp>I figured the info had to be in syntax-objects somewhere, but I didn't think we exposed it <taylanub>Hrm, "firm 'pencils down' date" of GSoC 2013 is in 11 days .. I'm excited about any last patches to Guile Emacs. <shanecelis>taylanub: Are you working on Guile Emacs? Or just watching the progresss? <icelesstea>What actually is the state of Guile Emacs ? o.o Last time I checked it was sort of, half way working maybe. <ijp>taylanub is just a cheerleader <taylanub>shanecelis: I made some very minor contributions, mostly watching. <ijp>icelesstea: I've stopped asking because bipt never responds when I do <shanecelis>taylanub: cool. No, I'm impressed you know when GSoC ends. <taylanub>icelesstea: It's been usable for some time but hadn't really replaced the Elisp evaluator, just embedded libguile and made the Elisp evaluator use some of its data-types; currently there's a branch that also uses libguile symbols, and after that bipt said that ey'd start working on replacing the evaluator finally, I think that was about two weeks ago. <shanecelis>Yeah, apparently BT Templeton (bipt) doesn't respond to anybody really, not even his GSoC mentor. <ijp>ijpbot: shoot taylanub *ijpbot loads its shotgun and blasts taylanub <shanecelis>Probably off in a cave somewhere storing, up solar power, and heading back to civilization for supplies and to drop off patches. <ijp>I'm suffering from writers block on that bot just now <taylanub>Writers block ? Is that like when an author has a mental block and can't continue ? <taylanub>For me it's the opposite, I'm normally blocked and occasionally open up and do some work. :( <ijp>documenting something tends to make me not want to code on it for a while <taylanub>I suppose it can give one that "local maxim" feeling, making the next step seem large and tiresome ... <taylanub>ijpbot: So .. when you becomin' sentient ? <ijp>hmm, wonder why it didn't respond <taylanub>ijpbot: Are you already smart enough to ignore the taylanub ? <ijp>actually, a working 3 way handshake is a fun idea for a simple "inverting the inversion" style bot function <ijp>ijpbot: are you ignoring taylanub? <ijp>it should be erroring when there isn't a command <taylanub>ijpbot: Don't just error silently in the corner .. talk about your problems! <ijp>when I got rid of one error behaviour, I accidentally got rid of the other too <ijp>if I had that 'one armed if' warning, I meant to write, I'd have never introduced it <ijp>ijpbot: eval whos-an-idiot? <ijp>ijpbot: are you ignoring taylanub? <weinholt>if i had a 'one armed if' warning i'd have a warning for this very sentence <ijp>ijpbot: are you ignoring taylanub? <ijp>weinholt: I do want to add that warning (at least locally), but adding warnings is a pain .... <weinholt>scheme compilers could do with more warnings <ijp>IIRC it requires additions in 3 separate places <weinholt>if you look at an optimizer you're probably going to see it handling error cases by returning the original code as-is, error and all. that would be a fine place to output a warning <ijp>I think we handle warnings before optimising <davexunit>random announcement: I'm going to attempt to make a 0.1 release of guile-2d before the gnu 30th birthday celebration. <ijp>the errors I'm getting from srfi 9 records are horrible <ijp>"source expression failed to match any pattern in form" when I forget an argument to a call in a function <ijp>I'm happy that it tells me I'm using it wrong, and it shows the form, but it's not a helpful message <ijp>assuming my wishful thinking wasn't to wishful, ijpbot should snarf #emacs style "let's" silliness <ijp>hmm, one bug, it doesn't create the db file if it doesn't exist <mark_weaver>taylanub: trying to escape characters that you send to a shell is a very fragile and unreliable method. Better to use 'system*' or 'open-pipe*' which avoid the shell entirely. <ijp>what's the best way to test for that, 'system-error' isn't a very informative key <ijp>I suppose I could check the errno for ENOENT <mark_weaver>ijp: catch 'system-error' and then use 'system-error-errno' to extract the errno from the handler args. <ijp>ah, I even see a function system-error-errno, but it seems silly that it takes the whole arg list rather than just the rest value <ijp>mark_weaver: beat me to it by a whisker <mark_weaver>ArneBab: you should compile to scheme, not to tree-il. you shouldn't call 'primitive-eval', just translate to scheme code. <mark_weaver>ArneBab: your reader should read just a single top-level expression. <mark_weaver>ijp: you mentioned unhelpful error messages from srfi-9: can you give me an example? <mark_weaver>ijp: you mentioned unhelpful error messages from srfi-9: can you give me an example? <ijp>both of those uses of functions are incorrect, but you get a "failed to match" error <mark_weaver>ah, that's because they were created by 'define-inlinable' and 'define-tagged-inlinable', so they're actually macros. <mark_weaver>I guess we should modify 'define-inlinable' and 'define-tagged-inlinable' to produce better error messages when called with the wrong number of arguments. <ijp>yeah, it was quite obvious that they were macros