IRC channel logs

2017-04-07.log

back to list of logs

<sapientech>hi all, trying to build origin/master, but getting configure.ac:1006: error: possibly undefined macro: AM_GNU_GETTEXT
<sapientech>after calling ./autogen.sh
<sapientech>this is in a guix environment: `guix environment --pure guile-next --ad-hoc automake autoconf libtool flex`
<daviid>sapientech: you should ask on #guix
<spk121>sapientech: don't know about the guix part, but you need gettext.m4 for your m4 directory. Usually it is part of a gettext-devel package.
<sapientech>autoconf says: If this token and others are legitimate, please use m4_pattern_allow, which i tried. it ended up finishing, but then ./configure fails
<sapientech>daviid: ok thanks for letting me know this is a guix related issue :)
<sapientech>spk121: thanks, adding that to the env...
<daviid>spk121: on debian it is in the main package
<daviid>dpkg -S gettext.m4
<daviid>gettext: /usr/share/aclocal/gettext.m4
<daviid>
<sapientech>okay chill thanks guys, seems to be working :), ill let the guix folks know to add that package as a dep for guile
<daviid>sapientech: i would be very surprised they did not have that setup already
<daviid>guix has a guile and a gule-next package for years now ...
<daviid>anyway, better talk to them...
<daviid>there are next door :)
<sapientech>daviid: yeah i was pretty surprised i was having issues in the first place...
<ArneBab>taylan: it is from srfi-43, yes
<ArneBab>paroneayea: one important point for genetic algos might be that sexual reproduction in humans allows deep exploration of the pretty narrow solution space in which cells work at all. Most mutations kill the cell or the offspring, so it only explores the ones which survive.
<webshinra>hum, most mutation dosen't do anything sensible
<xvilka>hi
<xvilka>I'm trying to rewrite some non-guile program into guile
<xvilka>and met the problem of an unknown type
<xvilka> https://github.com/aoh/owl-lisp/blob/master/owl/tuple.scm - this
<xvilka>it's not a list, nor a pair
<xvilka> https://github.com/aoh/owl-lisp/blob/master/owl/defmac.scm#L329
<xvilka>any ideas how-to implement it in guile? may be there are some ready solutions?
<xvilka>and a program is heavily using it, so rewriting everything to usual lists/pairs is not an option - it's easier to emulate tuple somehow
<xvilka>at least for now
<OrangeShark>xvilka: you could probably implement a tuple type using a list or vector. Looking at the implementation, it allocates a block of memory to store the elements.
<ArneBab>webshinra: that assumption is changing in biology right now. If you speak german: http://www.deutschlandfunk.de/genom-in-aufruhr-der-mensch-ist-genetisch-instabil.740.de.html?dram:article_id=372348
<ArneBab>webshinra: the genome is constantly changing in small ways by mutation and in large scales due to jumping genes, and the latter are most active in the brain.
<ArneBab>(that’s the short version of the article)
<ArneBab>and then there are semi-persistent activation patterns of genes which can change during your life and can be passed on to later generations but fade generation by generation.
<xvilka>OrangeShark: yep, thats what I'm going to do. Just can't get why not to use list originally
<xvilka>OrangeShark: and wonder what differences it does expect
<xvilka>hm https://github.com/aoh/radamsa/blob/master/rad/mutations.scm#L1016 - it seem able to store the function
<xvilka>'ascii-bad' is a function
<xvilka> https://github.com/aoh/radamsa/blob/master/rad/mutations.scm#L765
<OrangeShark>xvilka: ya, a list could be used just the same for the most part. A tuple would allow constant time access to its elements but depending on how you use it, might not be too much of a big deal compared to a small list.
<xvilka>sure thx
<OrangeShark>xvilka: I think they use the tuple because owl lisp has tuple-case for some useful pattern matching
<OrangeShark>xvilka: you can get a similar result using (ice-9 match) in guile
<xvilka>ok, will try, thank you a lot!
<webshinra>ArneBab: that epigenetic, yhea, garbage DNA concept is probably obsolete
<webshinra>but, refering to ontophylogenesis, we see that most gene expression are stocastic phenomena with height redudancy
<webshinra>so altering a random part of the genome (or the epigenome) have little chance of breaking the individual
<davexunit>some anecdotal evidence of why async programming using something like fibers is so nice: https://spin.atomicobject.com/2017/04/06/nodejs-promises-callbacks
<davexunit>author runs into serious problems when mixing code using callbacks and code using promises
<amz3`>yo #guile
<amz3`>at last friday!
<amz3`>\\o/
<OrangeShark>finally friday :)
<amz3`>I started to get my feet wet regarding translation guile into javascript using the compiler twoer
<amz3`>I defined a custom language and can arbitrary stuff in the .go file
<amz3`>now I am trying to understand how cps works
<amz3`>what are the different parts basically what's the model
<amz3`>the cps datastructure
<amz3`>I know the cps datastructure is composed of several kind of objects which are listed in comment in the source
<amz3`> http://git.savannah.gnu.org/cgit/guile.git/tree/module/language/cps.scm#n19
<amz3`>in cps datastructure, there are terms which seems like somekind of atoms of cps
<amz3`>several terms makes up a function
<amz3`>and it's written that “term is a labelled expression that calls a continuation. A function is collection of term [...].”
<amz3`>Then it continue
<amz3`>“Terms are themselves wrapped in continuations which specify how precedecessors may continue them”
<amz3`>are $kargs, $kclause , $kreceive, $kfun, $ktail terms?
<amz3`>so many words I don't master, but already read about
<amz3`>like continuation, closure. I think there is chapter about closure in guile manual
<amz3`> https://www.gnu.org/software/guile/manual/guile.html#About-Closure
<amz3`>!
<amz3`>paroneayea: are you familiar with the iterated prisoner dilemma?
<xvilka_>btw, always wanted to ask
<xvilka_>elisp(emacs) full support was merged in guile-2.2, right?
<amz3`>idk
<paroneayea>amz3`: I am
<paroneayea>amz3`: and also tit-for-tat and also how seeing how genetic algorithms adapt to the iterated prisoner's dilemma game
<amz3`>paroneayea: When i was youger, i created a python simulator for the iterated prisoner dilemma (IPD) in python, it's kind of tournament between different startegies to maximize or minize a score given a set of rules and move that each player can do. Fights were 1 vs 1. I implemented GP algorithm made of simpler algorithms to try to guess the best algorithm. It comes out that it's a variation of 'gradual
<amz3`>tit-for-tat' is the best
<amz3`>ah !
<amz3`>nice!
<amz3`>btw I stumbled upon a standard for describing games for computers. basically the goal of this field of software/CS science is that create a program that read that description and can play and win the read game :)
<amz3`>sadly i lost the link in all my data crushing
<amz3`>dmiles: should know about it. Isn't that ^ KIF?
<amz3`>IIRC it looks like that http://general-game-playing.de/index.html
<dmiles>yes GGP is kif
<amz3`>dmiles: tx!
<amz3`>kif in arab of my parent country, meaks both canabis and 'idem'
<amz3`>s/meaks/means/
<dmiles>ah that is probly why futurama uses the name kif
<amz3`>what does it mean in futurama?
<dmiles>kif is the name of an alien who drives arround a jerk https://drawception.com/game/TQnyeC8tZf/kif-kroker-smoking-futurama/
<amz3`>fun!
<amz3`>tonight, is the night.
<amz3`>...
<amz3`>I will code a frontend to replace github using my forward.scm
<amz3`>I totally change plans at the last minute, that's weed's effect x)
<amz3`> https://github.com/amirouche/forward.scm
<amz3`>direct link to The Clicker https://amirouche.github.io/forward.scm/
<amz3`>“as shown in the above, you can benchmark the clicker with human intervention... biwascheme is slow.”
<[df]_>replace github?
<amz3`>yeah, like a gitlab thing
<amz3`>or notabug
<amz3`>or bitbucket
<amz3`>things like that
<amz3`>I will need to mock everything, since guile-git is not ready for primetime
<[df]_>hmm ok, well if you have a particularly inspired night, could you solve the problem that all these things break the decentralisation that made git good in the first place?
<[df]_>please :)
<amz3`>that's the difficult part!
<amz3`>you are right
<amz3`>yet another interface for git is useless somewhat
<amz3`>I pinged people at #opendht (GNU Ring fame) whether they have something ready for that problem
<[df]_>I think people need a protocol for exchanging things like "pull requests"
<[df]_>and while emailed patches *should* be perfectly suitable for the purpose, the modern world doesn't seem happy with them
<amz3`>[df]_: that's a basically a phonecall that's why I think about opendht and gnu ring
<[df]_>sort of?
<amz3`>the problem, is that there is no C wrapper around gnu ring DHT lib
<[df]_>but it's broadcast
<amz3`>yeah
<amz3`>it's public
<OrangeShark>[df]_: git has request pull https://git-scm.com/docs/git-request-pull
<[df]_>intended to be used over email though, I think?
<[df]_>what we need is easy-to-use websites that can host this stuff, but interoperate
<OrangeShark>[df]_: it just sends an email of where to pull from
<[df]_>so I choose to host my project on gitblub (though it might be mirrored on gitstub and gitschlub), but someone on gitstub can send me a PR
<[df]_>or someone choosing to host their own version
<[df]_>and it all interoperates cleanly and nicely
<OrangeShark>what might be interesting is a website that sort of supports and enhances email patch based workflow
<OrangeShark>so one instance can send patches or maybe even request pulls to other instances?
<[df]_>yeah
<OrangeShark>can still work with mailing lists as well
<[df]_>you could implement all that with email
<[df]_>but a simple web api might be easier
<amz3`>it's always simpler higher up the stack ™
<amz3`>see browsers are simpler :p
<wingo>sooooooo
<wingo>who is going to be the first one to write a bot that uses the sandbox module to evaluate user code
<wingo>an irc bot
<wingo>like racket's bot
<paroneayea>wingo: wowee
<paroneayea>wingo: well
<paroneayea>wingo: I have another use
<paroneayea>wingo: user-scriptable MUD content
<wingo>yass
<paroneayea>I feel like I should still run that in a VM or container until the sandbox code gets more testing ;)
<wingo>yes i feel the same way :)
<paroneayea>wingo: I haven't looked in detail; does the sandbox code restrict in space or time?
<paroneayea>space seems like the harder one
<wingo>both, but time is a good proxy for space
<wingo>yeah the space restrictions are less precise
<paroneayea>wingo: mind if I quote you out of context on "time is a good proxy for space"? ;)
<paroneayea>ACTION is amused by the quote
<[df]_>where can I read about this sandbox?
<wingo>lol sure as long as it doesn't impute wisdom of any kind :)
<wingo>[df]_: guile-devel from this month
<[df]_>ta
<paroneayea>wingo: https://identi.ca/cwebber/note/xOTnUpMLSZKbCGNZVYt4vA
<wingo>:)
<paroneayea>ACTION vaguely considers writing an emacs minor mode for geiser and other comint modes that stops printing out very long lines once they get to the very long stage
<paroneayea>I'm not sure it's possible though, might have to intercept something
<ArneBab>wingo: :)
<civodul>paroneayea: i'd second that!
<civodul>i've been hit too often by Emacs's regexp font locking thing locking up
<paroneayea>civodul: yeah, it's annoying, but really mostly annoying when doing something at the repl
<paroneayea>and without realizing it you've built up something that takes out your emacs
<daviid>I use trucated-print, which solve the problem for bug free code. the roblem is raised exception wants to print the all 'thing', kills emacs (would kill a normal terminal as well
<daviid>* truncated-print
<daviid>paroneayea: would that not solve your problem?
<paroneayea>daviid: looking up truncated-print
<paroneayea>daviid: oh you mean in guile?
<daviid>paroneayea: yes in guile
<paroneayea>daviid: doing truncated-print doesn't really help because usually I'm building up values at the repl and the times that I blow myself up are the times I don't *realize* that things are going to grow so large that they break my emacs
<paroneayea>and by the time I find out, it's too late
<paroneayea>so I'd rather the fix, even if kludgy, be in emacs
<daviid> I don't get it: if it is at the repl, it is precisely a guile problem
<daviid>I mean you ask guile to display a value (or the repl value disply mechanism does that ...) and the value is ... a hudge array, vector, string ... list
<daviid>so, using truncated-print will solve the problem
<paroneayea>daviid: I'm not going to think to wrap things in truncated-print all the time
<daviid>how will you ask emacs to 'talk' to guile to stop printing a value ...
<paroneayea>if geiser did that for me it might be different
<paroneayea>daviid: I just want it to halt the display of it
<daviid>paroneayea: I reallt don't undrstand
<paroneayea>I don't care if guile technically printed it out of the wire between emacs and guile
<paroneayea>daviid: ok, well if you don't understand, maybe it isn't biting you :)
<daviid>paroneayea: I'm being bit the all day
<daviid>images kills my emacs every time there is a bug, and this is going to be a user blocking ... I spoke to wingo about it, emailed already, and hope it is solved in 2.2.1
<paroneayea>daviid: ok, well I'm not going to spend more time explaining why I want this
<paroneayea>if your solution works for you, awesome
<paroneayea>great job
<daviid>paroneayea: it is ok, my problem is guile 'rised exception' still kills my emacs
<daviid>paroneayea: good luck of course, but I still think that it really is a guile 'problem', already solved for the repl (and that works in a normal terminal as well), though it could be easier to config imo, but at least it works fine, so now if the 'raised exception' display mechanism could also be configurable and use truncated-print 'on demand', then it is all solved, and not only for emacs users, but for everybody, voilà :)
<handsome_pirate>Hey, y'all
<handsome_pirate>RE bundled gnulib in guile 2.2
<handsome_pirate>What do y'all reckon the process would be to use the system gnulib in Fedora?
<amz3`>there is lisp game jam happening https://itch.io/jam/lisp-game-jam-2017-easy-mode
<OrangeShark>amz3`: going to enter? :)
<amz3`>maybe...
<amz3`>I changed plans again! "no plans" is my mantra!
<paroneayea>daviid: so do you always manually wrap each expression in truncated-print, or do you have something in your .guilerc do it?
<paroneayea>if the former, awesome, show me!
<paroneayea>if the latter, I think that's asking a bit too much from the user...
<daviid>the former of course :)
<paroneayea>daviid: ok, what do you do?
<daviid>paroneayea: let me point you to , just a sec
<paroneayea>thanks daviid
<daviid>paroneayea: here is what I wrote for guile-cv users: http://git.savannah.nongnu.org/cgit/guile-cv.git/tree/doc/using-guile-cv.texi look for @node Configuring Guile's repl-print procedure
<daviid>paroneayea: but lloda wrote something so you could do the same in your .guile
<daviid>let me find the email
<paroneayea>daviid: aaa! yeah I don't want to mutate my guile (system repl common)
<paroneayea>I'm barely okay with monkeypatching for things like this
<handsome_pirate>Also, is there any way we might could consider making the official guile 2.2 binary names have a 2.2 suffix
<paroneayea>but straight up clobbering a system file is no goo
<paroneayea>d
<handsome_pirate>Sort of along the lines of the way Python does it?
<handsome_pirate>That's what I'm working on doing in Fedora
<daviid>paroneayea: it should be possible to config in .guile, I wrote this before to exchange emails with lloda
<handsome_pirate>So, guile 2.2 would have /usr/bin/guile2.2 /usr/bin/guile-tools2.2 /usr/bin/guild2.2 etc.
<paroneayea>daviid: ah ok :)
<daviid> https://lists.gnu.org/archive/html/guile-devel/2017-03/msg00016.html
<paroneayea>daviid: is this a proposal for how things *should* work in guile?
<daviid>paroneayea: so, the firt part of the emal is how daniel says he config his repl to _not_ display long lines, but I did not try it. my answer is indeed a suggestion on how a user could possibly very easily config both the repl priter and the error printer
<paroneayea>daviid: *nods* having something the user can configure with minimum fuss in their .emacs sounds good to me
<daviid>paroneayea: I do alter (system repl common) and it really works fine, you should try it (so you'll see how it works)... now it is just for guile to offer a way to 'user' set this instead of changing the installed (system repl common) of course
<daviid>and then a way to have 'raised exceptions' to also use truncated-print and we are good!!
<daviid>I hope wingo comes with a solution for 2.2.1, because as I said, guile-cv is almost unusable because of this
<daviid>ACTION working on a web for guile-cv, simple but... then i shold release the first, early next week hopefully
<handsome_pirate>huh, so, it seems that merely removing the bundled gnulib and installing gnulib-devel lets it build