IRC channel logs

2016-10-08.log

back to list of logs

***Guest44612 is now known as micro`
<amz3`>héllo :)
<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`>heya nalaginrut
<amz3`>let's write some libgit2 bindings
<nalaginrut>amz3`: I think it's not so hard if you use FFI
<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>hmm
<nalaginrut>it's not so nice to wrap them in C then use 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
<nalaginrut>well, why savannah support so many CVS
<nalaginrut>oh, there's one http://user42.tuxfamily.org/guile-lint/
<nalaginrut>incompatible with guile-2.1
<nalaginrut>hope it's not so hard to fix
<amz3`>nalaginrut: did you start working on fiber integration in artanis?
<amz3`>I have a super dupper great idea for a project
<amz3`>what name I will use
<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`>a bit like https://cozy.io
<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?
<amz3`>to*
<OrangeShark>hello everyone
<jmd>OrangeShark: everyone has just left a few minutes ago.
<OrangeShark>oh well :(
<OrangeShark>amz3`: I think he was referring to the aggregation of web applications.
<amz3`>héllo OrangeShark
<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
<OrangeShark>I should work more on guile-git today
<amz3`>OrangeShark: which file do you want to work because I've started to bind things in abc order
<amz3`>I am using as reference this https://libgit2.github.com/libgit2/#HEAD
<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
<OrangeShark>amz3`: oh thanks
<OrangeShark>maybe I should start on the opposite end?
<amz3`>OrangeShark: yes
<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
<civodul>i haven't thought about it
<civodul>it's best if it's self-contained
<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
<amz3`>OrangeShark: ok
***tokage is now known as nicht
***nicht is now known as tokage
<void-pointer>Well, I fixed the autoconf problem
<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>amz3`: it works :)
<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>hmmm
<OrangeShark>I know there is a push to get more libraries to use GPL
<amz3`>let's use GPLv3+, ok?
<OrangeShark>sure
<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
<OrangeShark>I am moving them to git types now
<amz3`>ok
<amz3`>I did not split bindings.scm into multiple modules
<OrangeShark>we will eventually get there.
<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`>yes
<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`>ah
<amz3`>indeed
<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
<OrangeShark>bytevectors?
<amz3`> https://github.com/TaylanUB/scheme-bytestructures
<OrangeShark>oh hmm
<amz3`>basically bytestructures will declare the layout of bytevector corresponding to a struct
<amz3`>and provide getter and setter
<OrangeShark>ya, would make things easier
<void-pointer>Making a module like SRFI-64 (http://srfi.schemers.org/srfi-64/srfi-64.html) that is meant to output TAP style test output (some of the SRFI's functionality can't be achieved in this style due to limitations of TAP, but most of it can and I can keep most the API identical)
<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>oh, ok
<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
<taylan>oh
<amz3`>taylan: anyway, I'm putting a guix recipe together that doesn't need autotools
<taylan>ok, thanks :)
<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?