<davexunit>pretty ignorant reddit thread about guile-emacs g <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>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 <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 <random-nick>also "Guile is a dead-project with one quasi-active developer that has serious stability problems" <davexunit>judging by a bug report, looks like robin is hacking on it again <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>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 <stis>I must say that the design of these minikanren microkanren is the diamonds of scheme <amz3`>TBH I don't know what I should be doing <wingo>ACTION running master guile on wingolog.org now, whee <wingo>last guile pull there was in 2014 or so :P <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 ***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`>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`>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 <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 <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? <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 :) <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>like this one where we need to allow user code to get a callback if an fd is closed, at least under some circumstances <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 <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>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 :( <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? <civodul>wingo: dunno, i'm wondering if people could be disappointed if some file descriptor escapes libguile's control for some reason <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>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`>I just tried master of guile-commonmark against guile-2.1.3 it fails with the same error <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`>I let you now tomorrow how the port of my doc software goes <amz3`>for the time being, I'll sleep <OrangeShark>if you find any more issues be sure to report them :) <amz3`>(doc software is recursive md->html program) <amz3`>(anyway... /me goes to zzZzzz)