avsm changed the topic of #mirage to: Good news everyone! Mirage 3.0 released!
yegods has joined #mirage
yegods has quit [Remote host closed the connection]
ubeatlenine has quit [Quit: WeeChat 1.8]
ubeatlenine has joined #mirage
brson has quit [Ping timeout: 260 seconds]
yegods has joined #mirage
ubeatlenine has quit [Ping timeout: 240 seconds]
yegods has quit [Remote host closed the connection]
_whitelogger has joined #mirage
mort___ has joined #mirage
mort___ has quit [Quit: Leaving.]
mort___ has joined #mirage
mort___ has quit [Client Quit]
djs55 has quit [Quit: Leaving.]
<mato>
kensan: Do I need the Ada/SPARK packages from the AdaCore site even if I want to build Muen on Debian stretch (testing)?
<mato>
Hm, it seems that I do, at least SPARK is some version from 2012?
<mato>
kensan: The libre.adacore.com download site doesn't work for me in Chrome or Firefox, nothing happens when I click on "Download Selected Files".
<mato>
(The site also seems to be pulling in JS from a non-https source, but I told Chrome to allow that)
<mato>
Oh, I see now, the site just has really bad UI, it's not obvious that you're supposed to click on the "list of packages" and select things to download.
mort___ has joined #mirage
<mato>
kensan: Ok, still can't build... ping me when you're around...
<kensan>
mato: pong
<kensan>
mato: Yeah, GNAT in Debian is currently too old. We only test with the GPL release from AdaCore...
<kensan>
mato: For building you will not need the SPARK tools "only" GNAT.
<yomimono>
while you're doing that, I'll start us off - there's now a 4.04.0+afl compiler available from the default opam repository
<yomimono>
drup: ooh, that's a good one
<avsm>
oh stedolan helped me with afl, and i got test cases i am going to submit for ocdaml-hex (which was the simplest repo i could come up with try learning it)
* mato
waves, distractedly (setting up dad with a new phone, 1st time he's seen android, blah...)
<yomimono>
I would really recommend that folks try out crowbar (https://github.com/stedolan/crowbar) on stuff, the reward to effort ratio is amazing
<Drup>
I have one question with this kind of stuff: how do you do this kind of autogenerated testing thingy when you have two input that should coincide ?
<hannes>
I fixed my cycle bug in my DNS resolver last night... will writeup soon
<Drup>
Like, let's say, a regular expression library
mort___ has joined #mirage
<avsm>
hannes: dns would an amazing target for afl i think -- crowbar has an examples/ directory with some similar ones
<Drup>
you want to generated regular expression, and also positive and negative inputs
<avsm>
im going to submit ocaml-hex first (sadly no bugs found) and then expand out to cstruct
<Drup>
and I'm just not sure how that would work
<yomimono>
drup: by positive and negative inputs you mean should-match, should-not-match ?
<Drup>
yes
<yomimono>
yeah, I'm having trouble imagining how you'd do that without another regex implementation to check your work against
<Drup>
Yeah, you sort of need an oracle
<hannes>
avsm: yes, I already used hours of afl-persistent for my udns library. crowbar is still on my todo
mort___ has quit [Client Quit]
<yomimono>
hannes: will be cool to see the writeup on that :)
<hannes>
there won't be many good words on ocaml-dns, unfortunately... sorry
<yomimono>
I think you can just link to a recent issue in that repository ;)
<yomimono>
which lays out some good ideas for improvement IIRC
<Drup>
every time I get interested into testing things, I bump into this kind of situations where I have two inputs and I'm not sure how generate test cases
<avsm>
hannes: very cool
<hannes>
avsm: btw, it would be really nice if you could spend 10 minutes on https://github.com/mirage/ns.mirage.io/issues/1 ... the zone can't be that big that to copy + paste the important bits ;)
<avsm>
Drup: it's worth creating an issue to ask this on crowbar
<yomimono>
+1
<avsm>
stedolan has some examples
<avsm>
hannes: sorry, i never have my tfa device with me when it comes up... its at home right now by mistake ;-)
<hannes>
that's why two-factor auth is useless ;P
<yomimono>
the crowbar-y way to do this is use one set of random input to generate both the regex and the input, based on some rule that should generate a positive or negative case, but in this example that basically ends up being another regex engine embedded in your test code
<yomimono>
stedolan probably has better ideas than I do :P
<hannes>
and off to the wheeler lecture...
* yomimono
waves
<avsm>
i am planning to try to build in google clusterfuzz support as well
<avsm>
it appears to be a single C callback
talex5 has joined #mirage
<avsm>
and stedolan reckons it should work pretty well
mort___ has joined #mirage
<avsm>
google clusterfuzz is a hosted service, so it would run on an ongoing basis for finding the really hard to reach places (and it supports AFL from first glance)
<avsm>
anyone interested in that, do get in touch
<yomimono>
that would be great to have working, please update the issue on mirage/mirage with your progress :)
<avsm>
yep will do
<yomimono>
:D
<avsm>
(it's a background item for me, so no guarantees about time :P
<yomimono>
anything else on that topic?
<yomimono>
oh! actually I do -
<yomimono>
I made some PRs in mirage-canopy-data including a new project for tcpip testing
<yomimono>
I would really appreciate review on those
<yomimono>
I merge a lot of my own PRs and I would like to stop doing that :)
<avsm>
need to figure out some scheme to automate the afl-fuzz invocations
<avsm>
so some work in that direction as we get more tests is probably useful too
<avsm>
it doesnt quite fit in with `build-test` in OPAM -- perhaps we need a `build-fuzz` in opam2 that uses the right afl compiler dependency and so on
<avsm>
not thought about it entirely yet
<yomimono>
generally speaking, shims from stdin to various device module types will probably be useful for mirage too
<yomimono>
this is a PR that rewrites lwt.ml and improves readability drastically
<yomimono>
having bounced off the old lwt.ml a few times, I'm pretty excited about this
<Drup>
Me too, But I really don't have time :(
<avsm>
Likewise, I am psyched to see this but havent had time for a proper review
<avsm>
perhaps we should just pin it locally and see what explodes (spoiler: nothing will!)
<yomimono>
having an understandable lwt.ml will help new contributors to mirage too, so if nothing else give a thumbs-up for the work :)
<Drup>
Just reading the new file is already quite helpful
<smondet[m]>
At the Compose unconference/hackaton, Anton went through the lwt.ml resulting of this PR in front me and other old-ocamlers, I can say I was definitely convinced this is a good thing.
<avsm>
awesome!
<avsm>
i have made a comment on the tiny little diff in _tags instead of lwt.ml. starting easy
<yomimono>
anything more on that?
<Drup>
while we are on lwt, and to transition with the next topic
<avsm>
with sufficient jbuild integration, i can come up with an opam variant that calls 'jbuilder' just ones
<avsm>
but i think this goes a long way to streamlining mirage's growing repository problem
<avsm>
we should never have to have a repeat of the difficulties of the mirage-3 api evolution, hopefully
<avsm>
since once we finish porting, we can test revdeps with a single jbuilder invocation
<avsm>
and fix breakage as we go along
<avsm>
this is very exciting!
<djs55>
a script (or opam subcommand) which could check out the right versions of the sources of the dependencies for a project would be very helpful (like Go's "vendoring")
<avsm>
yes, I'll work on that
<avsm>
in the meanwhile, we need to port the remaining libraries on http://docs.mirage.io to jbuilder
<avsm>
it also has the benefit of respecting the odig version convention
<avsm>
although i think a 'jbuilder subst' is needed to add the version information djs55 -- that might be missing from your instructions
<avsm>
(or i might have been lazy and not followed them, unsure which)
<Drup>
djs55: isn't that pretty much "for f in {...}; opam source $f;" ?
<avsm>
we are hitting some of the more complex packages now, and so i am also trying the Configurator config system
<avsm>
it works pretty well -- the configure test is only run as a dependency of the build, so its not built unless necessary (which is nice)
<djs55>
Drup: I guess if I had a record of the package versions (the output of the solver?) and could check those out and untar/unzip them in the right place I'd be very happy. Maybe opam does this already… I'm not an advanced user :)
<Drup>
ah, right
<avsm>
i suspect some combination of `opam install --show-actions` and `opam source` is sufficient to get this
<Drup>
I think this was the original goal of opam bundle, sort of
<avsm>
it would be nice to share jbuilder porting tips (and other stuff ,like opam and opam-ed) on there
<yomimono>
you want to talk about cstruct first?
<avsm>
its a new experiment in the community, and so i wanted to check if that was a good place for us to start swapping mirage library management methods
<avsm>
sure -- cstruct is very boring though. I just wanted to say that https://github.com/ocaml/opam-repository/pull/9154 is progressing and touches a zillion packages. if you spot breakage please let me know
<Drup>
yomimono: in the case of discuss, mailing list mode works fairly well
<avsm>
that's all i had to say on that really -- encourage people to use the forum to see if we can make it a more central place for the ocaml-related parts of mirage
<avsm>
ill mail the devel list as well
<avsm>
i think it also solves a lot of problems with newcomers to mirage -- the email list can be a little intimidating due to the difficulty of browsing archives
<yomimono>
yeah, and we've had people report that their messages go missing :(
<avsm>
thats all from me on that
<djs55>
I've also forgotten the moderator password after the last change :(
<avsm>
haha
<yomimono>
that... seems bad, are you the only person who had a moderator account?
<avsm>
i think a gentle retirement of the mailing list, and/or a migration towards a @mirage.io for it makes sense anyway
<Drup>
yomimono: in general, my strategy is the following: "Does it has RSS ? Yes, use RSS. No: Do I care enough to be polluted by email ? Yes => Maybe register to a mailing list. No => That website lost a user"
<djs55>
I don't think I'm the only guilty one, but I don't know who the others are :)
<avsm>
sounds sensible drup
<avsm>
i think djs55 me and amir
<avsm>
i have no idea where my password is
<avsm>
this answers the mystery of the missing emails
<yomimono>
so possibly amir is our only hope
<avsm>
or lars
<avsm>
lets take this discussion offline :P
<yomimono>
good call
<avsm>
(but not the mailing list, as it'll get lost)
<yomimono>
talex5 wanted to tell us about the amazing progress he's making with capnp
<yomimono>
(if I'm reading this right)
<talex5>
Hmm, not really. It's quite a way for being ready for use.