IRC channel logs

2016-08-28.log

back to list of logs

<davexunit>pretty ignorant reddit thread about guile-emacs g
<davexunit> https://www.reddit.com/r/emacs/comments/4zttlt/guileemacs_status/
<davexunit>seems like some people *really* don't want guile-emacs to happen
<paroneayea>davexunit: this has always been the case with the topic
<davexunit>didn't realize how strong the opposition was. guessing just a very vocal minority but hoo boy do they not like it
<paroneayea>davexunit: you should see the emacs-devel thread from 2015.
<davexunit>hmm maybe I've seen that but forgotten. sounds familiar now that you bring it up.
<paroneayea>a bunch of people wanted emacs to be written on top of common lisp instead :P
<davexunit>I guess that makes sense in a way
<davexunit>but also doesn't make sense because it's not like emacs would be written in Scheme
<paroneayea>it also doesn't make sense to simulataneously say "this guile-emacs thing will never happen" about a project that does run, and then say "let's do it in common lisp instead", a suggestion which lacks 0 code
<paroneayea>ignoring the double negative :)
<davexunit>yeah, I find that pretty funny, too.
<davexunit>seems like a lot of people don't know that guile-emacs actually works
<davexunit>and those that do, but hate it, just cite the performance problems as if they were insurmountable
<paroneayea>yeah
<paroneayea>or yell "LISP-1! I only like lisp-2"
<paroneayea>nevermind that elisp itself wil remain lisp-2
<random-nick>the last year's thread was way more optimistic for guile-emacs https://www.reddit.com/r/emacs/comments/3gpb7u/guile_emacs_status/
<random-nick>also that guy said elisp is better than scheme lol
<random-nick>also "Guile is a dead-project with one quasi-active developer that has serious stability problems"
<random-nick>what?
<paroneayea>guile-emacs needs a champion is the main thing.
<paroneayea>who wants to step up? :)
<davexunit>judging by a bug report, looks like robin is hacking on it again
<paroneayea>oh yay
<davexunit>but that's just a hunch
<paroneayea>davexunit: https://www.reddit.com/r/emacs/comments/4zttlt/guileemacs_status/d6zb6ny
<paroneayea>replied
<davexunit>paroneayea: good reply. hopefully that will clear some things up.
<wingo>hoo, my old code sins with cdaddring
<stis>Match Match Match, the people yell.
<wingo>:)
<wingo>ACTION builds a new guile 2.2 on his server
<wingo>i wonder, maybe i should upload some pre-built .go files tho...
<wleslie>hard work is what makes a fresh guile
<amz3`>héllo :)
<stis>coolio
<wleslie>darn seal
<stis>Non tested Delimeted Predicates in minikanren and microkanren --> http://c-lambda.se/continuations-in-minikanren.html
<amz3`>o/
<stis>I must say that the design of these minikanren microkanren is the diamonds of scheme
<stis>got to go, have fun!
<amz3`>TBH I don't know what I should be doing
<amz3`>héllo, OrangeShark, when I try to compile commonmark I get this error http://hastebin.com/daxukawebo.vhdl
<wingo>ACTION running master guile on wingolog.org now, whee
<wingo>last guile pull there was in 2014 or so :P
<amz3`>:)
<amz3`>meh
<amz3`>ACTION doing benchmarks
<amz3`>that's very strange, it seems like inserting assoc with a random identifier as string is slower than requesting a sequence number and inserting the assoc with that
<amz3`>basically I'am insert 10 000 assoc and reading them after
<amz3`>with a sequence number of uid it's faster
<amz3`>with a sequence number *as* uid it's faster
<amz3`>I am wondering how it behaves in the multithread setting
<amz3`>I'll try with 1M
***Amynka_ is now known as Amynka
<random-nick>well, getting a random string is a slower operation than adding 1 to a number?
<amz3`>no, actually I made a mistake
<amz3`>random identifier is faster than sequence integers
<amz3`>in single thread
<amz3`>random-nick: yes, but an atomic +1 in a database is complicated
<amz3`>whereas generating a random string and checking whether it's already in the database or not is fast
<amz3`>at least I got the design ok before the benchmarks :)
<amz3`>I'll ask on wiredtiger mailling list anyway
<amz3`>...
<amz3`>I have an difficult time figuring how to use conceptnet for my project
<amz3`>OrangeShark: did you see my message from earlier
<amz3`>already 12 talks proposed to FOSDEM 2017
<amz3`> https://libreplanet.org/wiki/Group:Guix/TalkProposals
<civodul>woohoo!
<stis>evening guilers!
<amz3`>evening!
<zacts>hi guilers
<stis>heya zacts:
<zacts>helloooo
<wingo>hoo.
<wingo>i really want to provide safe interfaces so that unless people are using the ffi in weird ways, things can't fail catastrophically
<wingo>but then guile provides close-fdes, and close, and close-port.
<wingo>there's not much you can do safety-wise when third-party code can close your file descriptors out from under you :P
<stis>what about http://man7.org/linux/man-pages/man7/inotify.7.html
<wingo>and when the interface is confusing enough that close and close-port do the same thing on ports :P
<wingo>also close-input-port and close-output-port :P
<wingo>inotify is async, whereas module A closing an fd used by module B in different threads opens a race condition in which the fd can be reused for something else, possibly with different privileges
<wingo>my concern is with ethreads, where i need to keep a side table of fd -> thing in sync with an epoll set
<wingo>epoll already does the right thing if an fd is closed (it silently removes the fd from the pollable set)
<wingo>but i need to remove the fd -> thing mapping from my side table
<amz3`>wingo: did you add anything to fiber btw?
<civodul>hey wingo
<wingo>certainly in the case of an explicit close-port
<wingo>and also in the case of close-port via finalization
<civodul>wingo: i think close-fdes is necessary, despite the risks associated with it
<wingo>yeah i am not proposing removing close-fdes :)
<civodul>:-)
<wingo>it's just strange sometimes, i don't know what safety guarantees we are going for :)
<civodul>very little since Guile provides POSIX bindings :-)
<wingo>luajit is interesting in this regard, they consciously say "use the ffi, you are on your own" -- i guess operations on raw fds are similar
<wingo>yeah but there is a line somewhere
<wingo>i had never considered fds to be on the "unsafe" side of the line, but there you go :)
<wingo>amz3`: haha i forgot that i called them fibers ;-) good point
<wingo>i have lots of sketches but there are some problems to solve first i think in giule
<wingo>*guile
<wingo>like this one where we need to allow user code to get a callback if an fd is closed, at least under some circumstances
<civodul>fd finalizers
<wingo>something like that yeah
<wingo>and we probably need to do something about nonblocking fd-backed ports when they are closed via finalization -- probably not async flushing of any queued data
<wingo>probably emitting a warning in that case, dunno
<wingo>but that's all ports-related. on the channels side i was told that i need to look into concurrent ml but i haven't had the chance yet :P
<civodul>heh :-)
<wingo>i think you can build something with just channels with recv and send operators, but to go more complicated it does look like a concurrent ml-like "event" abstraction is the next thing -- i need to figure out whether building the simple thing gets me any closer to the complicated thing
<wingo>or whether it gets in the way, and what primitives guile might need (atomics and compare-and-swap? as a separate data type or what? etc)
<wingo>dunno if i will make much progress this month tho, lots of stuff to do...
<wingo>civodul: fd finalizers is a great idea, thank you!
<wingo>civodul: if you are up for reviewing i can send a patch for that, if you want to give feedback
<civodul>wingo: i'm not ready yet, just came back from holidays and i'm drowning in a sea of messages :-)
<civodul>i'd be happy to take a look later this week if everything goes well
<wingo>yeah i understand :)
<wingo>i spent most of friday mucking out my inbox too...
<wingo>SCM_INTERNAL SCM scm_add_fd_finalizer_x (SCM fd, SCM finalizer);
<wingo>SCM_INTERNAL SCM scm_remove_fd_finalizer_x (SCM fd, SCM finalizer);
<wingo>SCM_INTERNAL void scm_run_fd_finalizers (int fd);
<wingo>is what i am looking at from the C level
<wingo>and then exposing add-fd-finalizer! / remove-fd-finalizer! probably via (ice-9 ports-internal) or so
<wingo>and annotating places that close fds that could have finalizers with a call to scm_run_fd_finalizers(fd)
<wingo>anyway, seems like it can work
<wingo>i guess fdes is the right term in the context of the guile api
<wingo>surely we should remove all comparative mentions of scsh from the guile manual
<daviid>wingo: hello! i found and posted this bug while you were on holid, bug#24286 if you could look at it, I still can't use 2.2 :(
<OrangeShark>hey amz3` what version of guile are you using?
<civodul>wingo: there's always the problem that there are non-libguile ways to obtain file descriptors
<wingo>civodul: yeah but i'm happy to disclaim those cases i think; or do you think that we should export scm_run_fdes_finalizers to C?
<wingo>i.e. to libguile users
<civodul>wingo: dunno, i'm wondering if people could be disappointed if some file descriptor escapes libguile's control for some reason
<amz3`>OrangeShark: guile 2.1.3
<stis>Proper logic programming verisons of delimeted continuation is a breeze in guile for minikanre.
***katratxo_ is now known as katratxo
<stis>If you like logic programming it's a nice topic to read about.
<OrangeShark>amz3`: are you using 0.1 of guile-commonmark?
<amz3`>OrangeShark: I tried both
<OrangeShark>so even latest?
<amz3`>I'll retry
<OrangeShark>0.1 doesn't have support for guile-2.2, though I imagine the configure would just give an error
<amz3`>my guile version is guile 2.1.3
<amz3`>it doesn't give an error
<OrangeShark>when you do ./configure for guile-commonmark 0.1?
<amz3`>I just tried master of guile-commonmark against guile-2.1.3 it fails with the same error
<amz3`>ah ok!
<amz3`>I get it!
<amz3`>wait a minute
<OrangeShark>hmm, I don't get any error when I am using guile-2.1.3 from guix
<amz3`>I had left overs from a previous install of guile in /usr/bin
<amz3`>I deleted everything related to guile and re-installed guile-2.1.3
<amz3`>now it compiles
<OrangeShark>ah okay
<amz3`>sorry for the trouble
<amz3`>I let you now tomorrow how the port of my doc software goes
<amz3`>for the time being, I'll sleep
<amz3`>thx again :)
<OrangeShark>if you find any more issues be sure to report them :)
<amz3`>(all tests pass)
<amz3`>ok for sure
<amz3`>(doc software is recursive md->html program)
<amz3`>(nothing fancy)
<amz3`>(but it powers my blog too)
<OrangeShark>nice :)
<amz3`>(anyway... /me goes to zzZzzz)
<OrangeShark>good night amz3`!
<wingo>ACTION zzz, night