<adrien>
as for installing on 4.0[34], I'm not sure but maybe you have used specific configuration: it doesn't make a lot of sense for the default config to get the latest git version
<octachron>
freedrul1, it looks like your camlp4 package is pinned to the camlp4's dev repo, you could try unpin it: "opam pin remove camlp4 && opam install camlp4"
<companion_cube>
o/ people
fraggle_ has quit [Remote host closed the connection]
<freedrul1>
$ opam pin remove camlp4
<freedrul1>
[NOTE] camlp4 is not pinned.
<freedrul1>
octachron:
freyr has joined #ocaml
maattdd_ has joined #ocaml
maattdd has quit [Ping timeout: 258 seconds]
lostman has quit [Quit: Connection closed for inactivity]
<octachron>
freedrul1, does camlp4 appears with "opam repo" ?
<freedrul1>
finally got 4.04 to install ! thanks octachron
<octachron>
freedrul1, this corresponds to the number of package that are: *: newly installed, ↗: upgraded, ↻: rebuild, ⊘: deleted
maarhart has quit [Client Quit]
<freedrul1>
thanks ! octachron
AlexDenisov has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
f[x] has quit [Ping timeout: 256 seconds]
AlexDenisov has joined #ocaml
malc_ has joined #ocaml
AlexDenisov has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
trapz has joined #ocaml
AlexDenisov has joined #ocaml
silver has joined #ocaml
al-damiri has joined #ocaml
ygrek has joined #ocaml
ygrek has quit [Ping timeout: 268 seconds]
_andre has joined #ocaml
trapz has quit [Quit: trapz]
nomicflux has joined #ocaml
ygrek has joined #ocaml
Ayey_ has joined #ocaml
sepp2k has joined #ocaml
nomicflux has quit [Quit: nomicflux]
trapz has joined #ocaml
BitPuffin|osx has joined #ocaml
frefity has quit [Ping timeout: 240 seconds]
FreeBirdLjj has joined #ocaml
ygrek has quit [Remote host closed the connection]
ygrek has joined #ocaml
frefity has joined #ocaml
larhat has joined #ocaml
gtristan has quit [Ping timeout: 258 seconds]
frefity has quit [Ping timeout: 246 seconds]
ygrek has quit [Ping timeout: 260 seconds]
jabroney has joined #ocaml
osa1 has left #ocaml [#ocaml]
frefity has joined #ocaml
AlexDenisov has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
AlexDenisov has joined #ocaml
sh0t has joined #ocaml
<reynir>
Does opam keep some kind of log of installed packages?
spew has joined #ocaml
<mami>
companion_cube: is there an explanation somewhere why in your implementation (or similar ones) of seq, you are using the mutually recursive type with the (unit -> 'a node)?
<mami>
not critizing, just curious
<companion_cube>
you mean in `type 'a seq = unit -> 'a node and 'a node = Nil | Cons of 'a * 'a t` ?
<mami>
yep
<companion_cube>
well it's more convenient this way
<companion_cube>
I could define 'a node alone
<companion_cube>
but then I'd still have `type 'a t = unit -> 'a node`, which is repetitive
<mami>
ah, no i dont mean why you use mutual recursion, but why you use the (unit -> 'a node) thing
<mami>
Gen e.g. just does this
<mami>
type 'a t = Gen of (('a * 'a t) option) Lazy.t
<mami>
is this not possible if you do not want to do it Lazy?
<mami>
companion_cube: ^
<Drup>
the lazy version is slower in general
<companion_cube>
^
<companion_cube>
in practice, the version with `unit -> …` is relatively fast
<mami>
Drup: yeah, thats what i mean. could one do: type 'a t = Seq of ('a * 'a t) option?
<Drup>
mami: but that's strict, we precisely don't want that
<mami>
Drup: Ah, now i see.
<Drup>
strict sequences have bad assymptotic complexity
sh0t has quit [Ping timeout: 246 seconds]
<Drup>
(in particular, concatenation with lazy sequences is O(1))
<mami>
so by using unit -> foo we get pseudo laziness w/o memoization.
<Drup>
yes
<mami>
Drup: companion_cube: thank you very much
<mrvn>
mami: without some form of lazy the whole sequence would have to be constructed in memory even if you only need the first element.
snowcrshd has joined #ocaml
sh0t has joined #ocaml
MercurialAlchemi has quit [Ping timeout: 264 seconds]
FreeBirdLjj has quit [Ping timeout: 240 seconds]
tane has joined #ocaml
spew has quit [Quit: foobar]
shinnya has joined #ocaml
spew has joined #ocaml
FreeBirdLjj has joined #ocaml
xvw_ has joined #ocaml
Ayey_ has quit [Ping timeout: 240 seconds]
govg has quit [Ping timeout: 264 seconds]
rossberg has quit [Remote host closed the connection]
nicoo has quit [Ping timeout: 260 seconds]
nicoo has joined #ocaml
alexelcu has quit [Quit: Leaving.]
Ayey_ has joined #ocaml
rossberg has joined #ocaml
marsam has joined #ocaml
Ayey_ has quit [Ping timeout: 258 seconds]
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
FreeBirdLjj has quit [Ping timeout: 260 seconds]
zpe has quit [Remote host closed the connection]
Ayey_ has joined #ocaml
FreeBirdLjj has joined #ocaml
dtornabene has quit [Quit: Leaving]
FreeBirdLjj has quit [Client Quit]
Ayey_ has quit [Ping timeout: 268 seconds]
freyr has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
alexelcu has joined #ocaml
MercurialAlchemi has joined #ocaml
xvw_ has quit [Quit: xvw_]
Fistine has quit [Ping timeout: 240 seconds]
_y has quit [Remote host closed the connection]
tobiasBora has quit [Ping timeout: 268 seconds]
_y has joined #ocaml
snowcrshd has quit [Ping timeout: 260 seconds]
AlexDenisov has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
jao has joined #ocaml
govg has joined #ocaml
vtomole has joined #ocaml
tobiasBora has joined #ocaml
Fistine has joined #ocaml
AlexDenisov has joined #ocaml
shinnya has quit [Ping timeout: 246 seconds]
trapz has quit [Quit: trapz]
copy` has joined #ocaml
sz0 has joined #ocaml
jnavila has quit [Ping timeout: 240 seconds]
ygrek has joined #ocaml
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
AlexDenisov has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
FreeBirdLjj has quit [Read error: Connection reset by peer]
trapz has joined #ocaml
ygrek has quit [Ping timeout: 240 seconds]
vtomole has quit [Ping timeout: 260 seconds]
Anarchos has joined #ocaml
spew has quit [Ping timeout: 260 seconds]
marsam has quit [Remote host closed the connection]
ygrek has joined #ocaml
marsam has joined #ocaml
gtristan has joined #ocaml
snowcrshd has joined #ocaml
Ayey_ has joined #ocaml
troydm has quit [Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset]
snowcrshd has quit [Remote host closed the connection]
troydm has joined #ocaml
Ayey_ has quit [Ping timeout: 264 seconds]
Ayey_ has joined #ocaml
marsam has quit [Remote host closed the connection]
troydm has quit [Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset]
troydm has joined #ocaml
Ayey_ has quit [Ping timeout: 256 seconds]
average has quit [Remote host closed the connection]
average has joined #ocaml
moei has quit [Quit: Leaving...]
troydm has quit [Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset]
troydm has joined #ocaml
apache3 has quit [Remote host closed the connection]
apache3 has joined #ocaml
john51_ has joined #ocaml
john51 has quit [Write error: Broken pipe]
Algebr has joined #ocaml
jabroney has quit [Read error: Connection reset by peer]
jabroney has joined #ocaml
TheLemonMan has joined #ocaml
AlexDenisov has joined #ocaml
AlexDeni_ has joined #ocaml
ygrek has quit [Ping timeout: 240 seconds]
AlexDenisov has quit [Ping timeout: 264 seconds]
Ayey_ has joined #ocaml
marsam has joined #ocaml
Ayey_ has quit [Ping timeout: 256 seconds]
freusque has quit [Quit: WeeChat 1.7]
govg has quit [Ping timeout: 260 seconds]
asdf0987 has joined #ocaml
moei has joined #ocaml
octachron has quit [Quit: Leaving]
nicoo has quit [Remote host closed the connection]
<orbitz>
Drup: any reason furl is not in opam?
spew has joined #ocaml
govg has joined #ocaml
<Drup>
I'm not satisfied by the API and can't find a way to make it better
<Drup>
I could clean it up to a reasonable level and release it, but I never took the time
<orbitz>
Sounds reasonable
<orbitz>
I'm not sure what to make of it yet
<Drup>
you are welcome to pin it and try it :)
<orbitz>
hehe
<orbitz>
I've been looking at Servant a bit, hwich is a bit insane but the idea is kind of nice. I don't think it's possible in Ocaml.
<Drup>
well, furl is probably the closest you can get :p
<orbitz>
yeah
<orbitz>
I do like that you support client and server
<orbitz>
One thing servant has is supporting post data as well
<orbitz>
as part of the routing type
nicoo has joined #ocaml
<Drup>
yes, unfortunately, the routing method I have currently doesn't allow that
<Drup>
another thing is that ocplib-resto goes most of the way, and I can't really motivate myself to reimplement what they already did :)
malc_ has quit [Remote host closed the connection]
Ayey_ has joined #ocaml
mengu has joined #ocaml
<orbitz>
is resto just for json APIs?
<Drup>
I don't think so ?
kolko has joined #ocaml
Ayey_ has quit [Ping timeout: 240 seconds]
<orbitz>
Ok, the github puts a heavy focus on json
average has quit [Quit: leaving]
<Drup>
yeah
Ayey_ has joined #ocaml
MercurialAlchemi has quit [Ping timeout: 240 seconds]
TheLemonMan has quit [Quit: "It's now safe to turn off your computer."]
Ayey_ has joined #ocaml
AlexDeni_ has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
jabroney has quit [Quit: Leaving.]
argent_smith has quit [Quit: Leaving.]
infinity0-bos has quit [Quit: Page closed]
jabroney has joined #ocaml
Ayey_ has quit [Ping timeout: 264 seconds]
camelxcore has joined #ocaml
<camelxcore>
hello good people of ocaml, would anyone be willing to help me understand why an infinite lazy structure doesn't type check?
<companion_cube>
depends, which structure is it?
<camelxcore>
it's an infinite, recursive tree. its type def is 'a treeval = Node 'a * 'a tree list and 'a tree = 'a treeval Lazy.t
Algebr has joined #ocaml
<camelxcore>
so each "node" has a value of type 'a and then a list of children
<camelxcore>
but i am trying to build one and it is not working out, because i don't understand something about the lazy structure
<companion_cube>
looks fine
trapz has quit [Quit: trapz]
<companion_cube>
you can build, e.g. `Node (1, [lazy (Node (2,[])])
<companion_cube>
`
<camelxcore>
when i try to pass my tree to a function, i get this error: This expression has type int treeval but an expression was expected of type unit -> 'a
<camelxcore>
but those are the same thing, because it is defined recursively
<camelxcore>
i know this is pretty basic but i don't understand
<companion_cube>
there is no `unit -> …` in the type you wrote above
<companion_cube>
what do you use to build the lazy part
<companion_cube>
?
<camelxcore>
so i made a tree like this
<camelxcore>
# let rec tree1 = Node (5, [lazy(tree1)]);;
<camelxcore>
val tree1 : int treeval = Node (5, [lazy <cycle>])
<companion_cube>
so this works
<camelxcore>
and my function is trying to recursively go through and print out all the values of nodes and children using List.iter on the children
<companion_cube>
you put the lazy.force at the wrong place
<companion_cube>
it's only useful in the List.iter function
<companion_cube>
ah wait, no, ok
<companion_cube>
well that looks fine…
<companion_cube>
it types…
<camelxcore>
if i try to just directly pass it a tree that i made, that's when i get the error: Error: This expression has type int treeval but an expression was expected of type int tree = int treeval lazy_t
<camelxcore>
which makes me think i just don't get this tree structure
<camelxcore>
those should more or less be the same thing (int treeval and int tree = int treeval lazy_t) or no?
<companion_cube>
you just need to wrap the value in `lazy`
<companion_cube>
the difference is that one is in a `lazy` and the other is not :)
<camelxcore>
let me try!
<companion_cube>
lazyness is explicit: to make a `'a lazy_t` you must put a `'a`-typed expression in `lazy`
<camelxcore>
okay, great, it worked this time - giving me a stack overflow - but at least it did something, lol
<gasche>
please consider sending proposals, and attending the workshop!
<gasche>
(going to Oxford for just one day may be difficult to justify depending on where you are, but there will be ICFP, the ML workshop, and FSCD on the same week, so it becomes an excellent move)
<companion_cube>
o/ gasche
<Drup>
I'm still not sure what I should submit :p
<companion_cube>
I have nothing to submit
Simn has quit [Quit: Leaving]
<gasche>
companion_cube: I'm quite sure that is not correct :]
<companion_cube>
heh, I'm writing very little clever OCaml these days :)
<gasche>
for example, I seem to remember that you wrote an interesting modular SAT solver in OCaml recently with zozozo
<companion_cube>
only pretty imperative code for logic
<companion_cube>
zozozo did it! not me!
<gasche>
ah
<companion_cube>
:p
<companion_cube>
(well, for the most part)
<gasche>
so zozozo, consider submitting :-)
<gasche>
hm
<companion_cube>
what about you then?
<zozozo>
gasche: you really think it's interesting enough ?
<gasche>
( Drup: I don't remember whether I should not try to answer your part of the question because of possible ICFP double-blind issue, so I'll stay silent, but I hope you'll find interesting things to talk about or come in any case )
<gasche>
zozozo: well yeah
<zozozo>
companion_cube: well you did participate a lot (there would probably still be a lot of bug if it weren't for you)
<companion_cube>
huhu
<companion_cube>
I'm the mighty fuzzer
<zozozo>
^^
<companion_cube>
maybe if I get the new version of maki to work well…
<gasche>
companion_cube: another thing that might be fun is to recognize a fragment of OCaml to feed SMBC
<Drup>
gasche: there is that, but what I meant was that there are several things I could talk about, and I'm not sure which one would be the most interesting
<companion_cube>
gasche: that would be a lot of work, sadly :/
<companion_cube>
and I have other things to research in ATP
<gasche>
for the year after that :-'
<companion_cube>
who knows? :D
<gasche>
but hm, "supporting OCaml" would be a lot of work, but couldn't you pick a suitable "weird balanced tree" library and try to find bugs in it?
<gasche>
(your favorite "ADTs and reasonably recursive functions", without higher-order or what not, from the stdlib, containers or one of Filliâtre's libraries)
<gasche>
(you may not even need to map OCaml's integers to solver arithmetic, if the data structure doesn't use them)
<companion_cube>
it's no fun if there's no bug :)
<gasche>
you could always change a function to make a bug appear, it's a serious idea called "mutation testing" isn't it?
<Drup>
like, I could talk about tyre/furl, or eliom (either design or implem). The stuff on research by type is not done just yet, so that's a bit early
<gasche>
Drup: some of those may also be good fit for the ML workshops
<Drup>
anyway, got a bit of time to pick one
<gasche>
of course we want excellent OCaml-based talks in both :]
<Drup>
gasche: I'm aware, yes :p
<gasche>
zozozo: companion_cube: note that having a presentation at a workshop makes you eligible for funding from SIGPLAN to attend the conference (which may matter more for people that are not as much ICFP-centered, and could thus find the cost harder to justify with their employer)
alexelcu has quit [Quit: Leaving.]
<companion_cube>
you're quite pushy tonight :)
<Drup>
btw, gasche, do you know of an ical calendar with the various dates of proglang conferences ?
<companion_cube>
gasche: will you be submitting sth about program equivalence?
nomicflux has joined #ocaml
<gasche>
the work on my poster has been presented already, and I haven't been working more on that lately
<gasche>
also, I wouldn't submit to the OCaml or ML workshop, because I'll be one of the people judging the proposals
jabroney has left #ocaml [#ocaml]
<companion_cube>
any news on what you'll do next, btw?
<gasche>
I'm hoping for a post-doc at Parsifal
<companion_cube>
hum, if the team still exists…
<companion_cube>
(at least with the same name)
<companion_cube>
working with Stéphane Lengrand?
<gasche>
I don't have a specific plan of what to work on yet
<gasche>
(but they're all doing cool stuff)
sh0t has quit [Remote host closed the connection]
<companion_cube>
yes, enter automated theorem proving, yes!
camelxcore has quit [Ping timeout: 246 seconds]
gasche has left #ocaml ["ERC (IRC client for Emacs 24.5.1)"]
nomicflux has quit [Quit: nomicflux]
Ayey_ has joined #ocaml
Ayey_ has quit [Ping timeout: 268 seconds]
Algebr has joined #ocaml
larhat has quit [Quit: Leaving.]
camelxcore has joined #ocaml
sz0 has quit [Quit: Connection closed for inactivity]
sh0t has joined #ocaml
gregoire has quit [Ping timeout: 240 seconds]
trapz has joined #ocaml
gregoire has joined #ocaml
lucasem has joined #ocaml
<lucasem>
Is there a way I can figure out what the compiler thinks the type of a certain variable is? I'm trying to debug an "unbound record field" error. I'm using corebuild, and adding verbosity 3 doesn't give helpful info
<Drup>
lucasem: install merlin
nomicflux has joined #ocaml
sh0t has quit [Remote host closed the connection]
Algebr has quit [Ping timeout: 246 seconds]
al-damiri has quit [Quit: Connection closed for inactivity]
<lucasem>
Drup: thanks!
Ayey_ has joined #ocaml
nomicflux has quit [Quit: nomicflux]
<lucasem>
How can I give the compiler a type annotation? I have something like `let f x y = ...` and it seems to be unable to infer types as I intend. I want something like `let f x y:Mod.t`
Ayey_ has quit [Ping timeout: 268 seconds]
marsam has quit [Remote host closed the connection]
<lucasem>
(Merlin tells me that y is just of type 'a, but it should be a particular type)