<daviid>is it possible and how to launch a comand from guile and (a) nowait (b) that would remain alive even if guile quits? <daviid>I need to launch gthumb, evince ... nowait, stay alive ... <daviid>it seems it returns immediately, but the repl is still locked <daviid>in geiser, in a terminal it's fine, so i guess it will work in a large program too, let's try <spk121>daviid: try (when (zero? (primitive-fork)) (close (current-input-port)) (close (current-output-port)) (execl "/usr/bin/gedit" "gedit)) <spk121>oops, missed a quote. (when (zero? (primitive-fork)) (close (current-input-port)) (close (current-output-port)) (execl "/usr/bin/gedit" "gedit") <daviid>spk121: I will, but the above (system "cmd args &") works, thought your approach is cleaner maybe? ***ertesx is now known as ertes
<webshinra_>I'm still using guile for the gameplay part of my game engine and I'm beggining to use «seriously» Goops <webshinra_>And, reading the manual about method, I find the fact that they are outside class, a really good conceptual thing <webshinra_>but, here is my problem, where am I supposed to put them if I want to avoid cyclic depedency ? <webshinra_>let's imagine I have a class <A> and e class <B> in two different module file <webshinra_>If I have a method (pwet (foo <A>) (bar <B>) #f) <webshinra_>I feel like I should not put it in the A module but neither in the B one <amz3`>fwiw in python I had the same issue, and I eventually dediced to put both class in the same module <webshinra_>ATM I would prefer it the creation of a module specialize for such association <webshinra_>but it sound like namespace implementation {} in c++ and that's not really satisfying. <webshinra_>Hum, yes, nesting the module seems to be the only good solution I can find <rekado_>sneek: later tell daviid I tried to build guile-gnome with Guile 2.2 but this fails with type errors in “gnome-vfs-port.c” (e.g. gnome-vfs-port.c:62:11: error: dereferencing pointer to incomplete type ‘scm_t_port {aka struct scm_t_port}’) <amz3`>the second half is all about how important it is to make the community welcoming for the beginners <amz3`>regarding this, I have to say that the "read SICP" mantra is getting old. It's not enough funny, it's rather be book and nowdays people don't have the patience to "learn the good way" before being able to build something that spark joy <amz3`>writing a meta-interpreter is fun for me today, but not 10 years ago <OrangeShark_>amz3`: rust has a blog post about trying to grow their community as well <amz3`>I am considering adding features or doing a video <janneke>here i thought after merging the elisp branch guile was 100% elisp compatible...saddened to hear it's not the case and its well known by #emacs <janneke>ice-9/boot-9.scm:251:17: In procedure #{1+}#: <janneke>ice-9/boot-9.scm:251:17: Wrong type to apply: #{1+}# <janneke>dsmith-work: elisp legacy --> until we're bug-for-bug compatible, we'll be maintaining two (at least) lisp within GNU <dsmith-work>I guess I'm just used to the cleanliness and regularity of Scheme <janneke>so sad how RMS saw that ~30 years ago...it takes more than 2 generations... <catonano`>amz3`: that article is very interesting, insightul. I have been an absolute beginner with Clojure <catonano`>amz3`: but SICP is a pearl. Maybe not for the absolute beginner. But it's a pearl <catonano`>it's not only about the metacircular interpreter <catonano`>it's about calculus, object orientation, graphics <catonano`>it is even about the math notation (how to express ffntions in the mathy sense using the lambda calculus) <catonano`>it's an irreplaceable portal into the grand scheme of things <catonano`>that said, it's absolutely true what he observes about interactions in the clojuure community and about the tooling <paroneayea>SICP is great, and I encourage everyone to read it <paroneayea>maybe what amz3` means is (and whether it's what amz3` means, I agree) SICP shouldn't be the "introductory path" to learning Guile / scheme <catonano`>I have been playing with Hoplon (sort of a Common Lisp Enterprrisey framework for thhe web) and I can conffirm that it's a thought journey <paroneayea>it should be there for you, and we should encourage people to explore it <paroneayea>and it should be possible for people to be up and running and doing cool things in a very short period of time <catonano`>paroneayea: but SICP is an incredible contribution not only to computer science but to culture in general <janneke>i know i stranded somewhere in excersize 2.something...a friend of mine got even to 2.further <catonano`>an attempt to asses guile scheme on this scale (metric) would be interesting <janneke>ten years later, i continued reading * 5.3:: Storage Allocation and Garbage Collection <catonano`>I find the tooling for guile is even harsher than the tooling for clojure, for example <catonano`>the community is way smaller too, so maybe it's not a completely ffair comaparison <paroneayea>yes, and clojure is a much smaller than ruby / python / modern js <paroneayea>if you're in guile land right now, it's a lovely place to be but <janneke>yeah, that's unfair, we got 30+ years of emacs to sort out :-D <paroneayea>you will have to be ready to help write a lot of things that aren't here yet <paroneayea>janneke: are you saying once we get elisp integrated we'll just use all the emacs tooling? ;) <catonano`>paroneayea: right. One thing I miss is something like Grimoire <paroneayea>ACTION thinks about all our string operations happening in buffers ;) <janneke>tbh, we could do with some more bold system level architecture vision or so <janneke>my init is guile, my windowmanager is emacs/elisp -- go figure <janneke>not to say civodul and guix aren't bold enough... <paroneayea>guile needs to grow, and is, but there's clearly plenty more room <janneke>not really complaining, the past years have only been better and better <paroneayea>we can challenge ourselves to do better and be constructively critical, and should, without it being complaining :) <catonano`>paroneayea: sure, I am just thinking out loud <janneke>yeah, and we have a truly amazing eh team? that radiates exactly that attitude <paroneayea>I am hoping I can help make it a more exciting place for web development and etc too <paroneayea>which I think is something that will be helpful, and is at least something I know how to do mostly <paroneayea>but I am excited to see a lot of things happening <paroneayea>and I'm glad that we've sort of agreed on guix as a package manager :) <catonano`>one point where the Guile (Guix ? ) community outshines the clojre one is in curtness. The Guix/guile community is a bit more chatty and empatic <janneke>catonano: i wrote patches for Emacs GUD and Guile to work together... <janneke>that was just before i learned about Geiser and the repl <janneke>it got integrated in Emacs, but my patches for gnu-style error messages did not land in guile yet <catonano`>I had to search that, I didn't know what Emacs GUD is ;-) <janneke>ah, a beardy (m/f) c/c++ developer would know <catonano`>is there a GNU style even for error messages ? o_O ? You people are something ;-) <catonano`>yes, the format of the stack traces, the colored terminals... they seem subtle things but are not so subtle. Recently Rekado observed how Guix shhould spill its guts out so readily. That's an interesting observation. That's about user experience <janneke>yeah, but guile (or at least its predecessor SCM) predates that and is one of the few remaining GNU applications not to conform :-/ <catonano`>Guix shold _not_ spill its guts out so readily. That's what I meant. I missed the "not" <janneke>yeah, we'll get there, i'm sure --priorities ;-) <catonano`>I managed to do some step debugging of Guile code. Thhen I let some time pass and now I don't remember what I did :-/ <catonano`>amz3`: the SICP is not introductive material, that's right. That's an argument for te academia, not for the world at large <catonano`>being costructive is a skill. It's not to be taken for granted. It equires restraint and dedication <catonano`>I have been waaaay less constructive than I am now. It took me a while <catonano`>those patches of mine that have been acepted in Guix: that's the first time in my whole life that some contribution of mine makes its way in an established project <rekado>I really like when this happens and you slowly become a regular contributor to a project. <rekado>whether that happens depends a lot on the existing community <janneke>community and contributing seems to be much underrated <janneke>i think it's amazing when people get together to build great works <catonano`>rekado: right. The point I was trying to make is that the Guile/Guix community is the first one to elicit such a result from me :-) <sirgazil>ACTION is clueless. I have an `all-packages` procedure that returns all Guix packages when imported in a REPL or a top-level program, but when I call the same procedure in a haunt website, it returns an empty list... <catonano`>sirgazil: a naive question: did you import all the namespaces containing packages, in your haunt website ? <catonano`>rekado: I had tries some years earlier, with less success <rekado>catonano`: it was the same for me! <rekado>the Guix+Guile communities were the first were I really felt welcome. <amz3`>sirgazil: welcome back, what do you think about printing some tshirt for gnu hacker meeting? <catonano`>in fact I have been subscribed to the Guile dev and Guile user mailing lists for years <catonano`>amz3`: sirgazil I want to make a reservation for a ew o such t-shirts ! <amz3`>I never contributed anything subtantial to anything. I find it really hard, it because of me, I don't ant to commit to a project. <amz3`>I won't say that guile community is less or more friendly than python or javascript community because it's not the case <sirgazil>amz3`: I think I can print some Guile and Guix shirts before that. <amz3`>in my experience, getting feedback is really hard. In Python I never had feedback, and in javascript recently i got a few replies to a message I posted on one (out of hundreds) forums <amz3`>sirgazil: that would be very nice <amz3`>given the size of guile community, I think it still requires "hard skin", but no more no less than other communities I know of <sirgazil>amz3`: I heard your going into space. Send unmaned vehicles first, not people :) <catonano`>amz3`: python´s and javascript's communities are very large. I think it's physiological <happy_gnu>sirgazil: hey thanks :) do you know how can I make guile the default so emacs knows to run guile? <amz3`>the thing with is that Guile is a smalll community with powerful tools, the chance to have an impact is much bigger than the sea of different framewroks found in Javascript or the pletora of machine learning libraries in Python <sirgazil>happy_gnu: You were learning from HtDP, right? I think you could enjoy the How to code course with Gregor Kickzales. <amz3`>happy_gnu: did you install geiser mode for emacs? <happy_gnu>I did first course of edex of gregor with drracket <sirgazil>happy_gnu: That's too hard if you are just starting, imho. But if you understand SICP, then great. <happy_gnu>sirgazil: yes it is hard, I've been stuck with pascal triangle <amz3`>happy_gnu: if you have geiser installed it should recognize .scm files as scheme files and maybe ask you about which scheme you use, simply answer guile <happy_gnu>the only problem I have is I don't know how to ask for the list of numbers and how to make them print in each line so it looks like a pyramid <amz3`>that requires some thinking... <paroneayea>happy_gnu: you don't have to have it print like that. but if you were going to, you'd need to adjust it ahead of time to how many items the last row would have <happy_gnu>:/ for now i will conform with a simple list like (1 1 1 1 2 1 1 3 3 1.. etc) <paroneayea>happy_gnu: but, you don't need to actually do that printing to do the exercise, though it could be a fun exercise <paroneayea>happy_gnu: there you go, use that with ,pretty-print :) <amz3`>happy_gnu: do you know 'iota' procedure? <happy_gnu>ok let me finish and I'll share you the code so you guys tell me what you think :) hopefully it will work <amz3`>happy_gnu: I think you need it <amz3`>happy_gnu: try at the repl (iota 42) with different values for 42 <amz3`>each elment is list give the number of element in the related level of the pyramid starting at the top <amz3`>for instance (iota 3) return (0 1 2) you can convert that to (1 2 3) with (map 1+ (iota 3)) <amz3`>then you have (1 2 3) which describe the number of elements in each level in the pyramid <amz3`>happy_gnu: I would use a named-let to do that, maybe you can do otherwise <amz3`>happy_gnu: anyway paste your solution <sirgazil>happy_gnu: do you laugh in Spanish? "ja ja ja"? :) <sirgazil>amz3`: I'd like to explore waterbodies on Earth with unmanned vehicles, but after finishing the Guix website update I'm working on :) (seriously) <sirgazil>¡Ah! Bienvenid@ a la comunidad de Guile :) <sirgazil>catonano`: Yes. I'm implementing the design proposal I sent before. <sirgazil>The design is pretty much done, but I had to wait for Guix API to be available for guile 2.2. So I was working with dummy packages. <catonano`>ok, I'm tired. I'll fall asleep in a short while ;-) <happy_gnu>it is producing a 0 at the end, not sure how to get rid of it :/ <happy_gnu>I am happy I was able to do this pascal triangle <happy_gnu>I didn't understand anything on how to do it :/ I had to learn a lot of math to do it <happy_gnu>I went to wikipedia I didn't understand the formulas, even the letters, so I read about matematical notation, then I read about pascal triangle and combinatory <happy_gnu>after like 3 days on trying to understand how pascal triangle works I was able to do it :/ <happy_gnu>ohh never mind I am reading documentation now, sorry :) <happy_gnu>is wrong :/ but I have no idea how to get rid of them <happy_gnu>but anyway I am happy :) I thought this was impossible <paroneayea>! was for emphasis, not part of procedure name :) <sirgazil>Does the link in Guile's manual to "the specification of SRFI-64" work for you? I land in the same page of the link when I click it. <sirgazil>It works in Lynx. It may be Firefox then? Anyways...