<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]
<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...
<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]
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]