***Guest44612 is now known as micro`
<nalaginrut>I believe it's necessary to write a scheme linter, fortunately we have pretty-print <jmd>nalaginrut: It's not exactly the same thing. <amz3`>let's write some libgit2 bindings <amz3`>nalaginrut: it is not hard, but it is big! <amz3`>there is something like 200 functions to bind <jmd>Not all libraries lend themselves to FFI <nalaginrut>but we do need to write a middle-ware to handle all the popular CVS, if we want to implement a modern savannah with Artanis <amz3`>nalaginrut: did you start working on fiber integration in artanis? <amz3`>I have a super dupper great idea for a project <amz3`>basically the project is to create an aggregation of apps <amz3`>search, feed reader, bookmark, calculator etc... something like GNOME but for the web <amz3`>also it will have project hosting and issue tracking software <amz3`>basically all the things the web has ;) <amz3`>it goes against UNIX philosophy but... <amz3`>what would be the name of such a project? <amz3`>actually it's a (crazy) idea I have for quite some time <amz3`>Did I say something inapropriate? <ijp>amz3': so you want to port emacs to js? <ijp>or you want to write another browser? <jmd>Is there a guile equivalent of scanf ? <ijp>jmd: I don't believe so <ijp>if I'm wanting something for quick hacky reading, I try and make it a sexp <jmd>ijp: Ok. Thanks. I think I can do what I want with string-tokenize <amz3`>ijp: what are you refering ot? <jmd>OrangeShark: everyone has just left a few minutes ago. <OrangeShark>amz3`: I think he was referring to the aggregation of web applications. <amz3`>I did not think about emacs in the browser <amz3`>I think about applications that are good to have online <amz3`>anyway you can compile emacs with emcsripten or something like that :p <amz3`>and once with both have javascript backend and guile-emacs it will be easy to do <amz3`>OrangeShark: which file do you want to work because I've started to bind things in abc order <amz3`>I should probly pick the correct version... anyway <amz3`>I am at filter but I've left maybe FIXME in the code <amz3`>OrangeShark: you have commit access to the repo <amz3`>my plan is to start binding the easy stuff and then move on binding the more difficult stuff <amz3`>that's why I left a lot of FIXME <amz3`>in particular I did not bind function that requires structs that are not opaque <amz3`>except git-buf because the bindings were already done <amz3`>also I moved things, like type definitions are all at the top <amz3`>then bindings comes in abc order like in the reference page <civodul>amz3`: if you can get clone and pull in addition to what's already there, i'll be happy <civodul>plus a test suite and releases if possible :-) <amz3`>civodul: regarding the test suite, how do you think it would be best to do it? <amz3`>I was thinking about calling the git cli to do the checks <amz3`>I will look at how other are doing it <OrangeShark>amz3`: should we move the bindings to their own modules based on the type? Seems like it will get pretty big quickly ***tokage is now known as nicht
***nicht is now known as tokage
<void-pointer>Just took a few small changes to the 2.1.4 GUILE_PROGS macro <void-pointer>Made it so that it will first look for guile-X.Y and then fall back to looking for guile if that is not found, and whatever suffix is required (either -X.Y or nothing) is then used when looking for guild, guile-tools, and guile-config. <void-pointer>That way, guile with no suffix on a system doesn't thwart finding the right guile version if one wants a different one when using GUILE_PROGS <void-pointer>Is this fix useful enough that I should submit a patch? It would be a small patch that only changes 11 lines total including two documentation lines. <OrangeShark>amz3`: it says master is a protected branch and I can't push to it <amz3`>OrangeShark: I'm looking into it <amz3`>OrangeShark: it should be ok <OrangeShark>I moved the git.scm to git/bindings.scm and I think we should now create new modules for groups of functions <amz3`>OrangeShark: ok I'll do that <amz3`>OrangeShark: what do you think the license should be right now there is one vote for GPLv3+ and one vote for LGPLv3+ <OrangeShark>I know there is a push to get more libraries to use GPL <amz3`>also, there's is quiet a few public structs to bind <amz3`>I am wondering whether guile own struct machinery can handle them <OrangeShark>I am thinking we should also move all the types to a types module because some are shared between function groups <amz3`>I did not split bindings.scm into multiple modules <OrangeShark>have you looked into how to test it? I briefly looked at how the other libgit2 bindings test and they actually work on real git repos <amz3`>python bindings don't use a git cli to do the tests <amz3`>they do everything with the bindings <OrangeShark>I saw one where they just include tarballs with git repos <amz3`>otherwise said, if one function fails, probably several test fail <amz3`>I'm wondering whether we should use guile-bytestructures or not <amz3`>it seems much easier to declare struct using it but there is not autotools <amz3`>basically bytestructures will declare the layout of bytevector corresponding to a struct <amz3`>and provide getter and setter <amz3`>taylan: we are working on guile bindings for libgit2, there is a lot of public struct in libgit2 <amz3`>I think it's not realistic or funny to let user of the bindings to play with make-c-struct <amz3`>now since the bindings should be used in guix, I am wondering whether you have any idea on how to make scheme bytestructures autotools friendly ***holomorp1 is now known as holomorph
<civodul>amz3`: i think all you need is opaque types, since that's what libgit2 provides anyway <amz3`>civodul: configuration happens through struct and it's required to do proper pull <civodul>so you need a disjoint Scheme type that gets converted either to a make-c-struct-style list, or to a bytevector <amz3`>what is a disjoint Scheme type? <amz3`>I could create a record type for each struct convert that to a make-c-struct-style list or to a bytevector <civodul>amz3`: yes a record type, that's what i meant ***CustosLimen is now known as CustosLim3n
***CustosLim3n is now known as CustosL1m3n
***CustosL1m3n is now known as Cu5tosLim3n
***Cu5tosLim3n is now known as CustosLimen
<taylan>amz3`: how do you mean autotools friendly? like using different types based on platform? <amz3`>taylan: no, I mean use autotools to build and install scheme-bytestructures <amz3`>taylan: anyway, I'm putting a guix recipe together that doesn't need autotools <civodul>artyom-poptsov1: hi! what's the latest support libssh version for guile-ssh? <civodul>i'm seeing 2 test failures with libssh 0.7.3 <amz3`>taylan: isn't possible to have something like `my-struct-field-set!` ? <amz3`>it would be nicer if bytestructures were defined like record types with named accessor <amz3`>I guess I can build that macro myself <amz3`>taylan: how do you define a pointer to a char?