gildor changed the topic of #ocaml to: Discussions about the OCaml programming language | http://caml.inria.fr/ | OCaml 3.12.1 http://bit.ly/nNVIVH
Xizor has quit []
jrslepak has joined #ocaml
avsm has quit [Quit: Leaving.]
<NihilistDandy> I'm in need of a knowledgeable OCaml user to proofread an email to my professor, if I may
<thelema> NihilistDandy: I can give it a shot
<NihilistDandy> Thanks in advance :)
<NihilistDandy> Pasted input incoming
<NihilistDandy> Context: I commented on OCaml's spec seeming to be a result of its implementation (rather than the other way around), and my professor responded by saying "Haskell doesn't even have a specification."
<NihilistDandy> It's a PL class, language in use is OCaml, he's an MLer, I'm a Haskeller
<NihilistDandy> It's enjoyable, though the syntax quirks are a bit jarring
<NihilistDandy> Just want to make sure it's appropriately sourced, not hostile nor kowtowing, and preferably not just flat wrong about things
<NihilistDandy> He's a great teacher when he's not evangelizing or putting on blinders, but commentary like that from a PL researcher seemed bizarre
<NihilistDandy> It's really the only FP class at my university, so I think he and I both reside in our own odd little bubbles :D
<thelema> chapter 6 of the ocaml manual is more of an annotated grammar than a spec.
<NihilistDandy> Right, hence my characterization as a hint of a spec
<NihilistDandy> Not quite there, but more than what's obviously available
<NihilistDandy> But I take your point
<NihilistDandy> If there is a more accurate way to word it, or if deletion is most appropriate, I'd be pleased to oblige
<thelema> "Formal Semantics"
<NihilistDandy> Good call.
<thelema> I assume the prof is talking about a spec as in the notion of formal semantics, something that SML has, but OCaml (and afaik, haskell) don't
<companion_cube> NihilistDandy: afaik haskell has a spec, and Ocaml doesn't
<NihilistDandy> companion_cube: Right
<companion_cube> well, a spec of the language, maybe not of the formalized semantic
<thelema> very few languages have this level of formality, so it's not a big deal that neither ocaml nor haskell have it.
<NihilistDandy> thelema: His contention, from our brief exchange, was that OCaml had a more developed spec than Haskell
<NihilistDandy> thelema: The H2010 report is quite formal, really
<thelema> I'd guess that this is based on outdated knowledge of haskell. Informing him of the 2010 standard should suffice
<NihilistDandy> The real deep magic comes in compiler specs, but for the language itself, it's pretty solid
<NihilistDandy> Quite so
<thelema> the spec doesn't have to say how to do something, only what to do.
<thelema> and the magic is usually in how to get something done.
<NihilistDandy> Exactly :)
<NihilistDandy> Would it be prudent to remove anything, or is this sufficient without overdoing it?
<companion_cube> especially in Haskell :)
<NihilistDandy> lol
<thelema> yes, some trimming would probably help, one sec
<NihilistDandy> Some small devilish part of me wants to convince him to take a look at Haskell, but I'm really just trying to correct some innacuracies.
<thelema> NihilistDandy: I wouldn't bother to mention OCaml's spec
<thelema> so drop the last few paragraphs, and conclude that Haskell has a quite good spec
<thelema> I'd recommend dropping paragraphs 5,6,7
<NihilistDandy> I see
<thelema> And don't be quite so agressive in paragraph 1
<thelema> just be informative and let him come to the implied conclusion
<NihilistDandy> Oh, I tried to avoid hostility so much :/
<NihilistDandy> Hard to see it from my end, I guess
<NihilistDandy> But duly noted. Thank so much for the input :)
Tobu has joined #ocaml
longh__ has joined #ocaml
fantasticsid has joined #ocaml
iago has quit [Quit: Leaving]
jrslepak has quit [Quit: This computer has gone to sleep]
willb has quit [Ping timeout: 245 seconds]
antegallya has quit [Quit: Leaving.]
oriba_ has quit [Quit: oriba_]
longh__ has quit [Ping timeout: 240 seconds]
jrslepak has joined #ocaml
zuymanto has quit [Quit: zuymanto]
NihilistDandy has quit []
cdidd has quit [Remote host closed the connection]
Drakken has quit [Ping timeout: 252 seconds]
Tobu has quit [Ping timeout: 272 seconds]
zarus has joined #ocaml
mdelaney has joined #ocaml
ftrvxmtrx has quit [Ping timeout: 244 seconds]
ftrvxmtrx has joined #ocaml
emmanuelux has quit [Ping timeout: 240 seconds]
ftrvxmtrx has quit [Ping timeout: 245 seconds]
ftrvxmtrx has joined #ocaml
mdelaney has quit [Quit: mdelaney]
fantasticsid has quit [Remote host closed the connection]
mdelaney has joined #ocaml
ulfdoz has joined #ocaml
twittard has quit [Quit: twittard]
ankit9 has joined #ocaml
ftrvxmtrx has quit [Ping timeout: 240 seconds]
freakazoid has joined #ocaml
ulfdoz has quit [Ping timeout: 248 seconds]
ftrvxmtrx has joined #ocaml
MaskRay has joined #ocaml
MaskRay has quit [Changing host]
MaskRay has joined #ocaml
MaskRay has quit [Ping timeout: 260 seconds]
Drakken has joined #ocaml
twittard has joined #ocaml
ftrvxmtrx has quit [Quit: Leaving]
pango is now known as pangoafk
Tobu has joined #ocaml
MaskRay has joined #ocaml
MaskRay has quit [Changing host]
MaskRay has joined #ocaml
ftrvxmtrx has joined #ocaml
edwin has joined #ocaml
cago has joined #ocaml
ocp has joined #ocaml
silver has joined #ocaml
edwin has quit [Quit: Leaving.]
djcoin has joined #ocaml
Submarine has joined #ocaml
ontologiae has joined #ocaml
<adrien> morning
<Ptival> morning
NihilistDandy has joined #ocaml
Tobu has quit [Ping timeout: 260 seconds]
eikke has joined #ocaml
wut has quit [Ping timeout: 240 seconds]
Tobu has joined #ocaml
zuymanto has joined #ocaml
_andre has joined #ocaml
NihilistDandy has quit []
ikaros has joined #ocaml
avsm has joined #ocaml
MaskRay has quit [Ping timeout: 272 seconds]
mort___ has joined #ocaml
The_third_man has quit [Disconnected by services]
The_third_bug has joined #ocaml
orbitz has joined #ocaml
<orbitz> With the stream parsers I'm trying to do: parser | [< ''='; ''='; stream >] -> [< 'Symbol "=="; lex stream >] | [< ''='; stream >] -> [< 'Symbol "="; lex stream >] ..
<orbitz> but it doesn't seem to like this (getting stream errors). Do I need a better testcase or is this obvious?
<adrien> gildor: great! thanks for oasis 3.0.0 rc1; I was going to ask you for it actually ;p
hnrgrgr_ has joined #ocaml
hnrgrgr_ has quit [Client Quit]
avsm has quit [Quit: Leaving.]
cdidd has joined #ocaml
ulfdoz has joined #ocaml
emmanuelux has joined #ocaml
longh__ has joined #ocaml
czro_ has joined #ocaml
czro_ has quit [Client Quit]
edwin has joined #ocaml
ulfdoz has quit [Quit: deprecated]
Xizor has joined #ocaml
Submarine has quit [Remote host closed the connection]
longh__ has quit [Read error: Connection reset by peer]
jamii has joined #ocaml
emmanuelux has quit [Remote host closed the connection]
emmanuelux has joined #ocaml
Drup has joined #ocaml
ocp has quit [Read error: Operation timed out]
mdelaney has quit [Quit: mdelaney]
jrslepak has quit [Quit: This computer has gone to sleep]
Submarine has joined #ocaml
zuymanto has quit [Quit: zuymanto]
letrec has joined #ocaml
avsm has joined #ocaml
jrslepak has joined #ocaml
avsm has quit [Client Quit]
bnwr has quit [Read error: Operation timed out]
bnwr has joined #ocaml
ocp has joined #ocaml
jrslepak has quit [Quit: This computer has gone to sleep]
jrslepak has joined #ocaml
Tobu has quit [Read error: Operation timed out]
mnabil has joined #ocaml
Tobu has joined #ocaml
eikke has quit [Ping timeout: 244 seconds]
MaskRay has joined #ocaml
MaskRay has quit [Quit: leaving]
smondet has joined #ocaml
<adrien> looks like ocaml stuff on windows 8 will require some updates
<adrien> (for the "new" mode at least)
<Ptival> ocaml stuff?
<adrien> windows 8 has two modes: "regular" and "zomg tablet"^W^Wsandboxed
<adrien> the sandboxed mode doesn't allow you to use the usual win32 API unless you can sign the binaries with some key which isn't going to be free
<Ptival> huh
<adrien> so anything relying on C function calls can be impacted
<zorun> what?
<ontologiae> incredible
<zorun> does it mean that Microsoft has eventually managed to impose his silly « trust computing » nonsense?
<thelema> we'll see if people always run in sandboxed mode
<thelema> it might be easy enough to break out of it, and thus noone will use it
<iZsh> next mac os is doing the same thing
<iZsh> (roughly)
<adrien> thelema: sandbox is really yes/no afaik and I think you can have both runing at the same time but only one focused
silver has quit [Remote host closed the connection]
patronus has quit [Read error: Connection reset by peer]
jrslepak has quit [Quit: This computer has gone to sleep]
patronus has joined #ocaml
ftrvxmtrx has quit [Quit: Leaving]
Tobu has quit [Remote host closed the connection]
Tobu has joined #ocaml
longh__ has joined #ocaml
<csmrfx> is that just an AppArmor replicate
cago has quit [Quit: Leaving.]
letrec has quit [Ping timeout: 252 seconds]
ikaros has quit [Quit: Ex-Chat]
particle_man has joined #ocaml
iago has joined #ocaml
particle_man has quit [Quit: Leaving.]
<hcarty> thelema: oasis now relies on Batteries
<hcarty> thelema: The pressure is on!
ontologiae has quit [Ping timeout: 272 seconds]
<thelema> hcarty: pressure?
<hcarty> thelema: On an unrelated note, I tried compiled some software against Batteries 2.0-whatever_is_in_odb without modifying it from Batteries 1.x form and there were no issues. So that's quite nice.
<thelema> also, I find it amusing that oasis is sponsored by jane street, but is using batteries instead of core.
<thelema> hcarty: yay. There's a number of small compatibility breaks, but there's not been any huge problems needing fixing.
<thelema> sliquister has been doing an amazing job tackling code coverage
<hcarty> thelema: Pressure in a joking sense... but it is pretty cool that Batteries is being used by something as potential core to the OCaml ecosystem as oasis.
<hcarty> thelema: I've noticed. The new coverage is impressive.
<thelema> :( batteries is supposed to be the potential core thing.
<thelema> not just the coverage measurements, but his work pushing batteries modules to 100% code coverage
<hcarty> thelema: Indeed, and I think it is becoming that.
<hcarty> But it doesn't hurt to have some high-profile software depending on Batteries
<thelema> well, oasis already has 2^n dependencies, so adding one more... :)
<hcarty> The next step is to have Batteries use a full-blown oasis build system. Then the cycle will be complete.
<thelema> hcarty: sure. This shouldn't be too hard, except for maybe the testsuite, and even that not too bad.
<hcarty> It's also nice to see that other people, even if only a few of them, are uploading packages to oasis-db
<thelema> actually, it's pretty much just christophe troestler, who's the one that added the batteries dependency to oasis
<iZsh> hcarty: everything relies on Batteries nowadays ;)
<hcarty> iZsh: Well that's good to hear :-)
<iZsh> without Batteries I would go nuts personnaly
<iZsh> there's a lot of stuff I still dont understand why it isn't part of the standard though
<thelema> iZsh: really? I was worrying that everyone was still eschewing it
<thelema> iZsh: thanks - do you have any comments on batteries?
<hcarty> iZsh: The core INRIA folks have made it pretty clear that they want to leave library development to the community
<iZsh> thelema: yeah, <| is weird with it's left-associativity :P
<thelema> hcarty: except they keep modifying the stdlib
<hcarty> thelema: But not adding... much :-)
<iZsh> I think the inria folks really underestimate the importance of a good set of library for a language adoption
<thelema> iZsh:granted about <| - I only use |>
<iZsh> thelema: well, I've tried to avoid |> till now, it seems weird to code like pipe stuff. maybe I should switch to it
<iZsh> but can't we find a good right-associative operator for <| ?
<thelema> iZsh: really? I find it a quite nice pattern - do this, do that
<iZsh> (to behave more like $ in haskell)
<hcarty> I use |> all the time - I find it makes the code more readable. And |- more rarely, but that's not as much of a readability aid.
<iZsh> thelema: well, I was afraid of confusing the "code reader" if I switch between |> and the normal way of doing it
<iZsh> because you have to either read from right to left or left to right, which could be confusing if I switch a lot
<thelema> iZsh: I'm not so convinced about $ in ocaml - eager evaluation makes |> more reasonable, as we read left to right
<iZsh> thelema: yeah maybe, I hadn't code in ocaml for like 10y, so I'm still not very clear about my own coding style :P
ulfdoz has joined #ocaml
particle_man has joined #ocaml
<iZsh> but at least, it's much more agreeable to code in ocaml with Batteries than before
<iZsh> I was spending more time re-writing simple functions all the time 10yo
<iZsh> (instead of doing the real work)
<thelema> yup, that's a lot of what batteries helps with
<thelema> every ocaml user/community had to reinvent alot of simple wheels (often incorrectly, and at least differently)
<iZsh> from my experience, successful language were successful because they were providing a very extensive set of standard libraries (and for most task you only have to glue std function together without much more)
<iZsh> if you look at ruby, python, php… they provide pretty much anything you could think of
<thelema> and there's less boilerplate to write
<ulfdoz> I wouldn't consider php a language.
<iZsh> thelema: 2.0 is out? (reading backlog)
<thelema> iZsh: no, it's been in a "nearly there" state for too long.
<ulfdoz> But from my experience, which is quite Java dominated, there is still a lot of boilerplate.
<iZsh> thelema: what changed?
<thelema> one problem is that once we release 2.0, we've got to keep backwards compatibility for a while.
<hcarty> Where does type-conv live now? I would like to fix it on oasis-db so that it builds against development versions of OCaml.
<hcarty> ulfdoz: My understanding is that Java is nothing but boilerplate :-D
<thelema> iZsh: it's the first time we've dropped backwards compatibility, so the biggest user-facing change is that you always "open Batteries" instead of the funny "Batteries_uni" hack
<thelema> there's some interfaces that have changed slightly, Maps and Sets are now polymorphic-compare-only by default
<ulfdoz> hcarty: Depends, there are some very old APIs, which really give that feeling (e.g. JDBC).
<iZsh> I've been using BatList etc. for a long time before realizing recently I could just open Batteries :P
<thelema> iZsh: ok, I guess we have a documentation problem
<ulfdoz> hcarty: But it got better since java 5.
<iZsh> thelema: yeah, that and the wrong "function X raises Y" when in fact it was raising Z (I've filled a bug for it, you might remember ^^ )
<thelema> yup, lots of documentation problems
eikke has joined #ocaml
<thelema> iZsh: keep reporting any problems you find
<iZsh> will do :)
<iZsh> I'd like an unified documentation (which includes the batteries functions and the standard ones)
<iZsh> (so I dont need to jump back and forth)
<thelema> we're working on that - some modules are converted already, we'll probably wait until we're done to release 2.0
iago has quit [Quit: Leaving]
<iZsh> thelema: btw, is there any current real solution to having a native multiplatform GUI?
<iZsh> like a working QT port, or WxWidgets?
<thelema> best we have for ocaml is lablgtk2
<iZsh> yeah but it's not a native look :/
<thelema> There's some binding to win32 in ocaml, I dunno if that includes the whole gui toolkit...
<thelema> :( and it's 404 now
<thelema> but no cross platform there
<iZsh> i really need (and ocaml too…) a good port for wxwidgets or QT. i need my gui to look nice and linux, mac and windows
<hcarty> iZsh: C++ is likely part of the blocker there
<iZsh> it's crazy that this problem has not been addressed yet
<iZsh> even haskell seems to have a QT binding
<thelema> there's some people working on ocaml QT
<hcarty> iZsh: I think OCaml has a few partial Qt bindings
<hcarty> But there has apparently not been enough demand to get over the challenge of mapping C++/Qt to OCaml.
<iZsh> thelema: I've read the guy blog or something like that. but it was scary because I didnt get the feeling he really knew what he was doing
<thelema> even F# can't make guis.
<iZsh> hcarty: ppl has been asking for a qt binding for years. as much as a better std library ;)
<hcarty> iZsh: Asking for it, but not making it :-)
<hcarty> The stdlib was made (Batteries)
<hcarty> iZsh: Until someone wants the binding enough to make and support it themselves it's not likely to happen.
<iZsh> the problem is that being a QT user and a QT coder/hacker is really not the same thing
<hcarty> It also doesn't help that Qt is not pure C++ which is not C
<flux> hcarty, well, it might actually even help, there is more information there to be extracted from the header files :)
<flux> the problem likely is that Qt is a Huge library
<iZsh> we dont need it all really
<iZsh> qt was written initially when the STL was not even mature
<iZsh> or even templates
Tobu has quit [Ping timeout: 272 seconds]
Tobu has joined #ocaml
avsm has joined #ocaml
mort___ has quit [Ping timeout: 244 seconds]
The_third_bug is now known as The_third_man
eikke has quit [Ping timeout: 252 seconds]
mcclurmc has quit [Excess Flood]
ftrvxmtrx has joined #ocaml
djcoin has quit [Quit: WeeChat 0.3.2]
pangoafk is now known as pango
asdfhjkl has joined #ocaml
Cyanure has joined #ocaml
particle_man has quit [Quit: Leaving.]
_andre has quit [Quit: Lost terminal]
zuymanto has joined #ocaml
zuymanto has quit [Ping timeout: 252 seconds]
antegallya has joined #ocaml
zorun has quit [Ping timeout: 252 seconds]
cdidd has quit [Remote host closed the connection]
zorun has joined #ocaml
eikke has joined #ocaml
foocraft has quit [Quit: leaving]
jamii has quit [Remote host closed the connection]
zuymanto has joined #ocaml
twittard has quit [Quit: twittard]
<adrien> woot, ocamlfind ocamlmklib \o/
<thelema> yup, ocamlfind continues to push forward
<adrien> I guess that's an answer to Romain's issue for cross-compilation which he mentionned only a few days ago =)
zuymanto has quit [Quit: zuymanto]
zuymanto has joined #ocaml
ocp has quit [Ping timeout: 265 seconds]
mcclurmc has joined #ocaml
oriba has joined #ocaml
cdidd has joined #ocaml
twittard has joined #ocaml
eikke has quit [Ping timeout: 240 seconds]
twittard has quit [Remote host closed the connection]
twittard has joined #ocaml
<_habnabit> so, maybe I don't get how _tags in ocamlbuild works, but is there a way to say "link this C library if the ultimate target in some way depends on this .ml file" ?
<_habnabit> I tried doing `<x/y.ml>: some_tag`, with `dep ["some_tag"] ["x/liby.a"]` in the myocamlbuild
<_habnabit> but that dependency doesn't seem to propagate
djcoin has joined #ocaml
decaf has joined #ocaml
avsm has quit [Quit: Leaving.]
<thelema> _habnabit: I think you'll have to walk the dep tree yourself in your myocamlbuild file (somehow)
<_habnabit> ah.
<hcarty> _habnabit: Do you need to refer to more than just y.ml?
<_habnabit> well, it would be nice if this stuff propagated itself. we have three different executables we build which have some shared code, and right now all three get all of the C and ocaml libraries used into all of them.
<hcarty> Maybe y.*
<_habnabit> linked into ^
<_habnabit> i.e. only two of them use xmlm, but all three get xmlm linked in because it's easier that way
<hcarty> _habnabit: If the third doesn't use xmlm then I think OCaml will skip linking it in.
<_habnabit> oh, will it? okay.
<_habnabit> right now I just have `true: pkg_xmlm`
<_habnabit> <true>: even
<thelema> err, <true> isn't what you want, unless your file is called true
<_habnabit> er, yeah
<_habnabit> I overcorrected
<_habnabit> I meant true:
<hcarty> gildor: I'm unable to get oasis 0.3.0~rc1 to build on my system. It insists on looking under /usr for OCaml's tools and libraries, but there is no OCaml installation there.
<thelema> hcarty: you'll get better response by email
<hcarty> thelema: Ok thanks. I'll take the conversation there.
mnabil has quit [Ping timeout: 240 seconds]
<hcarty> thelema: I uploaded the 0.3.0~rc1 release to oasis-db/odb unstable, but it sadly does not work on my system.
<thelema> hcarty: I'll test it on mine
<thelema> similar error on mine - it fails trying to use /usr/bin/ocamlbuild
jrslepak has joined #ocaml
<thelema> I have /usr/bin/ocamlrun, but no /usr/bin/ocamlbuild
<hcarty> thelema: Thanks for testing. I'll respond to the announcement email on oasis-devel.
<thelema> hmm, I should be subscribed to that...
longh__ has quit [Ping timeout: 240 seconds]
ontologiae has joined #ocaml
eikke has joined #ocaml
Submarine has quit [Quit: Leaving]
ikaros has joined #ocaml
edwin has quit [Remote host closed the connection]
EmmanuelOga has joined #ocaml
ontologiae has quit [Ping timeout: 248 seconds]
avsm has joined #ocaml
EmmanuelOga has quit [Ping timeout: 244 seconds]
avsm has quit [Quit: Leaving.]
<adrien> http://notk.org/~adrien/t12.png ; I don't know how I could get a better visualization of my types =/
<adrien> there's quite a lot of constraints
oriba has quit [Read error: Connection reset by peer]
oriba has joined #ocaml
eikke has quit [Ping timeout: 248 seconds]
goncalo has joined #ocaml
decaf has quit [Ping timeout: 252 seconds]
<adrien> http://notk.org/~adrien/t13.png is better I think but still not great; but I think it is starting to show some things about how I could change the types and make them simpler
<adrien> feels like I've lost several days for nothing
ikaros has quit [Quit: Ex-Chat]
zuymanto has quit [Quit: zuymanto]
foocraft has joined #ocaml
Cyanure has quit [Remote host closed the connection]