IRC channel logs

2016-08-30.log

back to list of logs

<paroneayea>amz3: looks like you changed your site theme!
<paroneayea>unfortunately now your ascii art in http://hyperdev.fr/notes/somewhat-relational-database-library-using-wiredtiger.html does not render!
<sapientech>wingo: alezost paroneayea thanks for the infos. yeah it would be nice to have something other than autotools.
<sapientech>paroneayea: nothing too much, just ported a boost graph library from chicken to guile: https://notabug.org/SapienTech/guile-graph
<civodul>Hello Guilers!
<civodul>did people see this: https://github.com/janestreet/ecaml
<civodul>anyone written a Guile plugin for Emacs 25? :-)
<artyom-poptsov>Hello civodul!
<civodul>hey artyom-poptsov
<amz3>héllo everybody
<amz3>paroneayea: the black theme is difficult to read IMO
<amz3>paroneayea: I'll fix that later
<amz3>paroneayea: thx :)
<amz3>sapientech: interesting
<OrangeShark>morning
<paroneayea>moin moin
<dsmith-work>Tuesday Greetings, Guilers
<paroneayea>wowee
<paroneayea>and=> combined with assoc-ref and cut is a great way to traverse down an alist of alists
<paroneayea>assuming you don't have any #f in there as values, that is :)
<paroneayea>yay
<paroneayea>signed sessions appear to be working finally.
<paroneayea>now to add tests.
<stis>heya guilers!
<OrangeShark>hi stis
<paroneayea>hi
<paroneayea>man
<paroneayea>I really would love an sexp based css writer
<paroneayea>doesn't need full on css reading and manipulation
<paroneayea>just writing would be ok.
<paroneayea> http://www.more-magic.net/posts/lispy-dsl-scss.html it's clear that doing a full-on, nice css system would be very hard
<paroneayea>but just writing seems feasible
<paroneayea>maybe scss does just that.
<civodul>reminds me of https://en.wikipedia.org/wiki/DSSSL
<zv>so srfi-26 says that it's not currying
<zv>what exactly makes `cut` different from currying?
<ijp>currying is representing a function that takes n arguments in terms of functions that only take one argument
<ijp>cut doesn't do that
<ijp>this is apparently very difficult to understand as everyone from joe php programmer up to scala doesn't understand it
<ijp>and odersky should know better
<zv>ok, i get the idea
<zv>but what exactly makes (cut fn 1 <>) any differerent than ((curry fn) 1)
<ijp>currying implies the ability to partially evaluate, but partial evaluation is not currying
<paroneayea>civodul: wow, I think I heard of DSSSL and how it was maybe a contender along with HTML, but CSS won
<paroneayea>but I never realized it was sexp and looked so much like scheme
<paroneayea> http://www.ibiblio.org/pub/sun-info/standards/dsssl/dssslo/do960816.htm it even has #t and #f
<paroneayea>wait...
<zv>ijp, ok, so then (cut fn <>) then
<paroneayea>it even has lambda
<paroneayea>uhoh :)
<zv>whoa, i hadn't heard of this dsssl think before
<ijp>take fn to be (lambda (a b c) c)
<ijp>(cut fn <>) = (lambda (x) (fn x))
<ijp>(curry fn) = (lambda (a) (lambda (b) (lambda (c) c)))
<ijp>the former will always give an arity error, the latter will return a function that returns a fucntion
<ijp>assuming someone implemented curry currently, which they inevitably didn't
<zv>ok
<zv>it sounds to me like its pretty safe to garbage collect the concept of currying and overwrite it with partial application
<paroneayea>ijp: so whereas you can do
<ijp>the two are completely different concepts
<paroneayea>(cut + 1 <> (begin (display "oh yes") 3))
<paroneayea>and it won't display anything
<paroneayea>until you apply that
<paroneayea>currying would?
<paroneayea>is that one way to look at it?
<ijp>not orthogonal, since currying implies partial evaluation, but you can certainly have partial evaluation without currying
<zv>if one is a subset of the other, i think there is a widely held logical principle that suggests that they are not "completely different concepts"
<zv>but i jest, you are a good teacher ijp
<ijp>I wouldn't worry too much, give it forty years and everyone who cares about the difference will die off
<ijp>or become logicians
<civodul>paroneayea: it's essentially Scheme
<civodul>all that could have been ;-)
<zv>ok ijp
<paroneayea>civodul: I'm still not sure having lambdas in something css-like would have been a good idea though!
<paroneayea>though I guess we effectively have people doing styling via js now
<paroneayea>so what's the difference I guess
<dsmith-work> paroneayea dsssl predates xml and xslt
<paroneayea>dsmith-work: ah
<wingo>moo
<paroneayea>hi wingo
<wingo>heya paroneayea :)
<dsmith-work>dsssl is actually a purely functional dialect of scheme, iirc
<paroneayea>ACTION just got signed cookie based sessions working in pubstrate \\o/
<paroneayea>powered by libgcrypt
<paroneayea>today is a good day
<wingo>so i had a thought re: read and such
<wingo>you are sending signed cookies to the client, right?
<wingo>so you'll never `read' an s-expression that wasn't sent by you at some time in the past
<wingo>so if you never send a #. or similar expression, you'll never see one
<wingo>and so it's safe to just (call-with-input-string str read)
<wingo>provided you have verified the signature of course
<paroneayea>wingo: yeah it's fine, because they're signed
<paroneayea>wingo: so in this case, a-ok
<paroneayea>but! there have been other cases where I've wondered
<ijp>signing a cookie is a perfectly silly idea, you either eat the signature, or can't eat the cookie at all
<wingo>yeah
<paroneayea>"hell, why not send sexps across the wire"
<wingo>and we certainly need to fix the (((( issue :P
<paroneayea>and the http REST api case is one where you don't have that samecase
<paroneayea>*same case
<paroneayea>heh :)
<paroneayea>I thought about implementing a safe-read
<paroneayea>like (safe-read port #:max-traverse 100)
<wingo>civodul: we found this last night: (call-with-input-string (make-string 200000 #\\() read) -> segfault
<wingo>doh!
<ijp>I'll never get used to #\\()
<wingo>heh indeex....
<wingo>*indeed
<civodul>ouch
<civodul>stack overflow?
<wingo>yep
<wingo>so we just need to insert the right stack checks
<civodul>yes
<wingo>simple fix, nasty bug :)
<civodul>or transform it into a heap exhaustion ;-)
<wingo>heh to do that, we should rewrite to scheme :)
<civodul>that'd automize the transformation indeed :-)
<wingo>surely there is a way to write in scheme, generate c from the scheme for the boot, and otherwise use the scheme
<wingo>one day.
<civodul>yeah
<paroneayea>civodul: https://gnunet.org/bot/log/guile/2016-08-29#T1118607 whole fun convo if you're interested
<paroneayea>basically "how many ways can we make (read) unsafe to arbitrary input?"
<wingo>hey i'm so excited you're speaking at the scheme workshop! that sounds like fun especially with cufp & icfp
<wingo>that's great
<zv>ijp i feel a bit bad asking you since you already answer so many dumb questions, so dont feel obligated to look this over but i've asked tons of other people this question without any sign of success: phillip wadler says here in like the first 10 minutes: https://www.youtube.com/watch?v=IOiZatlZtGU that you can get the steps of a 'proof' builder out of a normal 'modens ponens' deductive system. sicp asks you
<zv>to build one of these and I was wondering if anyone knew how I would go about keeping track of the rules applied *AND* their unification the the EXACT order in which they are needed? (and if that would satisfy any meaningful definition of 'proof synthesis')
<davexunit>guix is big in japan!
<zv>davexunit: is it really?
<paroneayea>#e10e1000 maybe most fun :)
<davexunit>zv: it's a joke about civodul giving two talks at conferences in japan soon
<davexunit>would be cool to go to japan for that...
<davexunit>it's the country I most want to visit.
<wingo>civodul: wdyt about fdes finalizers in (ice-9 fdes-finalizers) ? i don't know where else to put them
<zv>i hear its not that cool
<ijp>used to be that everything was smaller in japan, how things have changed
<zv>ijp are they now bigger?
<ijp>no, they are the same size as everywhere else
<ijp>I don't really understand your question
<OrangeShark>isn't there some pretty well-known lispers in Japan?
<OrangeShark>I know there is this one guy who wrote a bunch of Common Lisp libraries and software
<ijp>I'm not sure if it's simple or not, I feel like it should be
<ijp>I mean, stuff like the SICP logic language / prolog / etc. are really just doing backtracking, and your rules would just correspond to constructors in the datatype of proofs
<ijp>hmm, no, that's too simple
<ijp>or rather, it would duplicate work
<ijp>or would it? dunno, I'd need to think about it
<ijp>incidentally he gives another talk "category theory for the working hacker" which is just a worse version of the same talk by Erik Meijer
<civodul>wingo: why not
<paroneayea>hm
<sapientech>well its a little frustrating getting autoconf to work, getting an error where im copying the same twice, not sure if any of yall ran into that problem
<sapientech>anyway, based on the above messages, people dont seem to hot on having autotools as the default way to package pure guile projects, so i thought this could be an opportunity figure out an alternative
<sapientech>id probably be free to work on something small!
<random-nick>why not make a build system for guild? :p
<sapientech>random-nick: know if any other scheme implementations have one? i believe chicken does
<sapientech>or at least some canonical way to declare packages
<wingo>there is room for a solution but finding a good one takes taste and luck :)
<wingo>looking at other scheme systems is a good idea tho!
<daviid>sapientech: do you have a repo somewhere we could look and try to help? the first attempt to 'autotoolchain' is always difficult, but then things get easier ...
<sapientech>daviid: https://notabug.org/SapienTech/guile-graph
<sapientech>it always fails when i do: ./bootstrap && ./configure && make && make install
<sapientech>but works when i do ./bootstrap && ./configure && make install
<daviid>sapientech: ok, i'll try to look at it later today, i'll have to go afk soon
<sapientech>the issue, however, is that i am having issues making it work with guix
<sapientech>daviid: thanks i appreciate it!
<sapientech>its a small proj, so shouldn't take too long
<sapientech>when i try to build through guix, i get the same error as above, even when i remove make, and just call make install
<daviid>sapientech: but wait, it is normal you have to run ./bootstrap
<sapientech>sorry what do you mean?
<sapientech>daviid: ^
<daviid>sapientech: hum, sorry i did miss read, i'll look into it later
<sapientech>thanks thanks
<OrangeShark>sapientech: I am noticing some mistakes
<sapientech>OrangeShark: :(
<sapientech>what you got?
<OrangeShark>okay, so in configure.ac
<daviid>sapientech: you should use guile.m4 macros in your configure.ac file instead of 'guilemoduledir="${datarootdir}/guile/site/2.0"'
<daviid>sapientech: but here, jyust did ./bootstrap;./configure --prefix=...;make and i see scheme warnings, but no autool bugs
<OrangeShark>hold on, let me find the documentation to show you
<sapientech>daviid: btw used that line from guix's configure.ac
<sapientech>daviid: but then make install causes problems
<sapientech>i can do make fine as well
<OrangeShark> https://www.gnu.org/software/guile/manual/html_node/Autoconf-Macros.html
<OrangeShark>so you want to have GUILE_PKG([2.0])
<OrangeShark>this will get you stuff like GUILE_EFFECTIVE_VERSION
<OrangeShark>then GUILE_PROGS gets you the tools to build
<sapientech>kj
<OrangeShark>that should be what is only needed for configure.ac
<sapientech>OrangeShark: cool, thanks i was using GUILE_PKG earlier but was causing parse issues (was using the configure.ac in haunt)
<OrangeShark>now for the Makefile.am
<OrangeShark>what kind of parsing issues?
<sapientech>syntax error around line GUILE_PKG([2.0 2.2])
<sapientech>also GUILE_PROGS wasn't found
<OrangeShark>do you have the development files for guile?
<sapientech>ah, that might be why