<amz3>regarding dynamic ffi, is it possible to call "C" function that has ellipsis in its definition? <amz3>I pretty sure it does, I'll try <daviid>with th following http://paste.lisp.org/+3ALN/1 grip-1.0.pc.in [ignore the one above], I get the following error when an app tries to check: PKG_CHECK_MODULES(grip-1.0, Grip >= 0.1.0) -> configure.ac:61: error: AC_SUBST: `grip-1.0_CFLAGS' is not a valid shell variable name <daviid>anyone knows a bit about these .pc files maybe? <daviid>I got the answer: PKG_CHECK_MODULES([GRIP], [grip-1.0 >= 0.1.0]) <daviid>I deserve a beer :), both grip [toolbox] and Kisê [guile-gnome app] are now autool chained, fully compliant and with great checks! <daviid>davexunit: tx, a hude work because i started from zero gnu toolchain knowledge, nice to see all the checks and make dist, make distcheck ... cool! <daviid>paroneayea: how about a guile-gnome guix package ? :) <paroneayea>daviid: that would be great! I don't have time at the moment, but I think it could be done without much difficulty at all! <daviid>davexunit: also because now I can ask a non gnu savannah project for grip and a I will ask a GNU Kisê savannah page for Kisê, and have to be parient, it takes up to 3 weeks to get an answer <daviid>paroneayea: I think so too, I also don't have tine, I want to release guile-clutter, the grip, then kisê, then update grip to have a guile-clutter-grip module, so another month or 2 , and I don't know guix [will learn but I don't know when <daviid>and both grip and kise install go files, so for the user it really is cool as well! <daviid>i think I have zero users now but they surely will feel happier haha <amz3>ACTION looking at json implementation <paroneayea>davexunit: the only thing I'd say is cofusing is this <paroneayea>it's an alist, so it's really ("actor" (@ (...))) <paroneayea>it might be true that there's just no way around that though <paroneayea>unless things were to be done sxml style, where it's not an list but a plist <paroneayea>anyway, (@ (key1 val1) (key2 val2)) as opposed to (@ (key1 . val1) (key2 . val2)) <paroneayea>the advantage of the present I guess is that there are easy alist tools <amz3>what's the purpose of this library? except moving to port <paroneayea>amz3: more sxml-like, also not using hash tables <davexunit>yeah there shouldn't be parens surrouding the pairs after the @ <davexunit>replace (list key value) with (cons key value) in read-object <davexunit>I have a test.json file that I've been messing with <davexunit>I'd like to allow symbols as well as strings to be used for the keys of objects, but that doesn't play nicely with (equal? original (read-json (write-json original))) <amz3>paroneayea: amazing (sic) <amz3>I am discussing with the guys at concepnet5 I try to make them move to guile :p <amz3>for the name of activitystuff <paroneayea>amz3: oh, well it has nothing to do with gnome... <amz3>what about amazing, isn't amazing ? <amz3>Man the font of rekatdo blog is awesome <paroneayea>davexunit: use (throw 'json-error "message") instead <amz3>artyom-poptsov1: it's nice !! defintly <artyom-poptsov1>paroneayea: I'm afraid I didn't understand your comment. Do you mean that the shared image is loading very slowly, or what? <amz3>maybe there is problem of conx <amz3>I think it will be better to (throw 'json foo everywhere) ***michel_mno_afk is now known as michel_mno
***michel_mno is now known as michel_mno_afk
<amz3>I've written two times to same import script in CPython 2.7 and guile 2.2 <amz3>CPython code use "native" bindings instead of dynamic bindings but has no JIT <amz3>(I remove my statment, i'm not a in good position to tell actually, I'm disapointed that there is no multithread support in CPython) <wleslie>most python people (myself included) don't want the GIL removed, for it to be useful, we'd need to adopt a less friendly memory model. <wleslie>without something like the java memory model, the current semantics of multithreaded python would make it slow. <amz3>I think pypy is trying STM <wleslie>well yes, there are less easy ways out of this hole (: <wleslie>Armin is trying the optimistic way, I'm trying the pessimistic way <amz3>you work on guile memory model? <wleslie>no, I work on pypy. I just happen to really like guile. <wleslie>I've been working on a set of analyses that isolate (and can sometimes remove) unnecessary synchronisation. <wleslie>pssi? it's basically a cfa2 may-alias analysis with a extra features <amz3>ACTION check the features of PSSI <amz3>it's way to implement serialisable transactions in databases <amz3>implement/improve not sure <amz3>I don't know how optimistic/pessimistic. <wleslie>the problem within a general-purpose imperitive language is supremely more sophisticated. I've seen attempts with k-cfa that don't seem to do very well, and there's a lot of other disambiguation that needs to be done <wleslie>the intention is to make the imperitive program look like a functional one to the optimiser, removing control-flow dependencies that should really be data dependencies. <wleslie>my first attempt at a system like this was a 'sea of nodes' interpreter, about seven years ago. <amz3>I bookmarked the search about cfa2 I'll read later maybe, it sound intersting <wleslie>the sort of problems I had getting good alias information included the fact that sometimes you can clearly see that `x is not y` implies `x.foo is not y.foo`, but that information wasn't present in the region graph, so I'm working on the ability to collect that information. <amz3>wleslie: where can I find the datalog implementation you use <wleslie>that's a good question, I deleted that repo from bitbucket iirc <wleslie>I'll see if I can grab the old repo on monday. <amz3>thx i'd like to study it <davexunit>paroneayea: I have made a bunch of changes since <paroneayea>davexunit: I love how simple the (read-value) is btw <davexunit>yeah, you can just dispatch based on the next character which is convenient <paroneayea>davexunit: I notice that your json parser doesn't really care if there are commas or not ;) <paroneayea>davexunit: it still works! I guess they aren't really needed for it to function, a-la sexps <davexunit>reading just a number doesn't work quite right <davexunit>mark_weaver: would the ice-9 namespace be appropriate for my json module? <davexunit>it would inflate the size of the generated output <paroneayea>davexunit: likewise, a (write-json #:pretty #t) would be nice <paroneayea>since having pretty-printed json is often useful <paroneayea>davexunit: hm, I think json is kind of in-between being something human readable and not :) <paroneayea>the spaces do inflate it, but I think there's a good reason most json libraries add them <davexunit>I just have an emacs mode or my browser do the pretty printing <paroneayea>davexunit: well, maybe (write-json-pretty) or equiv keyword version are the only ones that need it (plus newlines with indentation!) <paroneayea>davexunit: (it's useful for me to verify the data structures I'm building in activitystuff to have the pretty print version anyway) <davexunit>if you want to write a pretty printer, feel free. it's a lot more complicated that a simple single line printer so I don't feel like tackling it right now. <davexunit>and just FYI, ruby's to_json method also doesn't add any whitespace <davexunit>I think I'm going to allow symbol keys for objects, with the caveat that using symbol keys would not satisfy (equal? json (read (write json))) <paroneayea>(I suppose I can also still use ,pp at the repl to do this for now) <davexunit>I can never remember, how do I run a single test file in guile's test suite? <amz3>I find it difficult to keep lines under 80 chars :/ <amz3>right I hope some at a lot size 110-120 <amz3>a lot of them go beyond 90 <amz3>btw binding c function with ellipsis is possible, it super neat <amz3>I have problem, wiredtiger use char ** with NULL a terminating character as return value, is there procedure to convert the pointer to a string? <amz3>I don't know the size of the string <amz3>this won't work, I don't have the bytevector <amz3>I have only the pointer and no size <amz3>the function signature is something like `int func(void *)` void * is the return value, int is the error code <amz3>it returns a string but not as return value <davexunit>ACTION mails (ice-9 json) patch to guile-devel <davexunit>oops, found a procedue that I was no longer using, and the (srfi srfi-1) import is no longer needed.