mfp changed the topic of #ocaml to: Discussions about the OCaml programming language | http://caml.inria.fr/ | OCaml 3.11.2 released | Inscription for OCaml Meeting 2010 is opened http://wiki.cocan.org/events/europe/ocamlmeetingparis2010
avsm has quit [Quit: Leaving.]
derdon has quit [Quit: derdon]
yakischloba has joined #ocaml
jake-is-a-virus has joined #ocaml
Drk-Sd has quit [Quit: {'EXIT', Drk-Sd, "bye"}]
_unK has quit [Remote host closed the connection]
infoe_ has joined #ocaml
infoe_ has left #ocaml []
fraggle_ has quit [Quit: -ENOBRAIN]
dark has quit [Read error: Operation timed out]
fraggle_ has joined #ocaml
maskd has quit [Quit: leaving]
hcarty has joined #ocaml
EliasAmaral has joined #ocaml
EliasAmaral is now known as dark
yakischloba has quit [Quit: Leaving.]
boscop has quit [Ping timeout: 272 seconds]
boscop_ has joined #ocaml
tmaedaZ is now known as tmaeda
tmaeda is now known as tmaedaZ
thrasibule has joined #ocaml
ikaros has joined #ocaml
bzzbzz has quit [Quit: leaving]
ski_ has joined #ocaml
yakischloba has joined #ocaml
jake-is-a-virus has quit [Quit: ChatZilla 0.9.86 [Firefox 3.5.7/20100106054534]]
matt__ has joined #ocaml
matt__ has quit [Quit: Konversation terminated!]
matt__ has joined #ocaml
matt__ has left #ocaml []
matt__ has joined #ocaml
matt__ has quit [Remote host closed the connection]
fomatt has joined #ocaml
<dark> Hello! I always use my own conventions while programming in ocaml: my own homegrown makefile, my own indent convention etc. I now want to try adhering the ocaml usual conventions. Apps are usually compiled with OMake + findlib, right?
<dark> would anyone recommend me omake for new projects?
<dark> some said it's unmaintained
seafood has quit [Quit: seafood]
tmaedaZ is now known as tmaeda
Amorphous has quit [Ping timeout: 256 seconds]
seafood has joined #ocaml
Amorphous has joined #ocaml
fomatt has left #ocaml []
fomatt has joined #ocaml
tmaeda is now known as tmaedaZ
tmaedaZ is now known as tmaeda
travisbrady has quit [Quit: travisbrady]
<flux> dark, I've found the use of omake to be quite rare, but I guess it's a decent option. batteries uses it.
<dark> flux, yeah i am going to ask about batteries
<dark> there are ropes, and utf-8 strings in a separated module
<dark> I want to build a irc client / bot engine. should I use what?
<dark> I am worried about charset compatiblity and charset translation
<flux> the standard solution is to use ocamlbuild, which comes with the ocaml itself. but, it is not that easy to use, for example for findlib-integration you need put in a ready-made 70-line configuration.. (actually it's an .ml-file)
<dark> flux, but to use findlib the compiling host must have findlib installed right?
<flux> dark, sure
<dark> so give me a biased opinion (there is such a thing as a unbiased opinion?lol), what should I use?
<flux> I have no expeirence in omake, but it should be easy enough to make it work. if you'll use batteries anyway, the user likely has omake installed anyway.
<flux> and omake does have some nice features, like directory monitoring for recompilation etc, and familiar syntax
<flux> I suppose it handles the ocaml's cmo/cmi-situation decently, perhaps even out-of-the-box
<dark> ah the batteries guy is thelema not you
<flux> yes :)
<dark> flux, what do you use?
<flux> I use ocamlbuild
<dark> with standard makefiles?
<flux> before I switched to ocamlbuild I used OCamlMakefile
<flux> it's pretty nice as well
<dark> ocamlbuild is a build system in itself?
<dark> or it uses also makefiles?
<flux> it is a build system, doesn't use Makefiles
<dark> flux, that directory monitoring feature is nice
<dark> flux, i think that someone should continue the omake work =p
<flux> :)
<dark> because nowdays software tends to not work anymore if it not get updated :(
<flux> in any case if it's a smallish project such as an irc-bot, I don't think switching the build system later on would be that big of an issue
<flux> ocamlbuild is nice in that it doesn't need a separate 'make depend'-stage
<flux> but to implement that it apparently does quite a lot of work
<flux> I haven't used ocamlbuild yet for anything big, but apparently the previous incarnation of batteries did find that ocamlbuild could be slow
tmaeda is now known as tmaedaZ
thrasibule has quit [Ping timeout: 260 seconds]
avsm has joined #ocaml
<dark> flux, but i want something cool
<dark> not for easing the management but for being pleasurable
<dark> eg. i find git cool for versioning
<flux> :)
sfuentes has joined #ocaml
sfuentes has left #ocaml []
sfuentes has joined #ocaml
<sfuentes> Can anyone recommend a good book for getting up to speed with ocaml?
<flux> Introduction to Objective Caml. happily it's available online for free, in addition to that there are two variants of it available for purchase.
sysop_fb has left #ocaml []
<flux> avoid Practical O'Caml
<sfuentes> what about OCaml for Scientist?
<flux> it's good as well, I hear
<sfuentes> and what are the two variants you speak of?
<flux> well, there was some copyright dispute around the book IOC. the work originates from two authors and they have both published a book.
<sfuentes> i'm looking to purchase a print copy
<flux> I'm not sure what's the situation now.
<sfuentes> ok. well thank you for your feedback.
<flux> apparently jason hickey is yet to publish the book and I can't find the other variant, so perhaps OCaml for Scientists is the best option. it is not cheap, however..
<flux> good luck :)
<sfuentes> it is pretty pricey ... i would imagine there's a good reason for it though
<sfuentes> btw my understanding is that f# is very, very similar to ocaml .... thus i wonder if you happen to know whether there is much difference between the two besides the .net platform that comes with f#
<Associat0r> I know
<Associat0r> F# lacks polymorphic variants, camlp4
<Associat0r> also lacks structural subtyping because of .NET
<Associat0r> but you get some good things in return
<Associat0r> like unboxed floats, faster OO, active patterns, array slicing, op overloading, monad sugar
<Associat0r> and a concurrent GC
<Associat0r> also F# lacks functors
caligula_ has quit [Ping timeout: 240 seconds]
caligula_ has joined #ocaml
<Associat0r> F# also has a #light indent syntax by default, I think there are some extensions for OCaml too
<Associat0r> sfuentes
<Associat0r> I found this a good intro http://www.ocaml-tutorial.org/
<Associat0r> sfuentes: also because OCaml lacks op overloading and has does structural subtyping you have to annote types less than in F#
<Associat0r> there is a delimited overloading workaround though
<Associat0r> also Ocaml batteries added comprehension syntax like you see in Haskell and F#
<Associat0r> sfuentes: anyway if you are into F# there is #fsharp
<sfuentes> Associat0r: thank you for the info.
<sfuentes> I always wanted to learn ocaml so I think I'll start with that.
<sfuentes> Associat0r: how long have you been using ocaml if i may ask?
<Associat0r> I only dabbled in it, mostly to learn FP
<Associat0r> my main language is FP lang is F# now
<Associat0r> I started like 2 years ago
<sfuentes> and i presume you like f#, correct?
<Associat0r> sfuentes: I wish it had some Ocaml features
<Associat0r> sfuentes: but I'm on windows and already used to Visual Studio and I need good numerical performance
<Associat0r> sfuentes: so that were my main reasons
<sfuentes> i see. that's cool.
<sfuentes> i imagine it will be inevitable for me to learn f#.
<Associat0r> sfuentes: if you are on *nix and don't need much numerical work and a no compromise language than OCaml is a better choice
<sfuentes> what about haskell?
<Associat0r> I learned some of that as well
<Associat0r> that's an even more no compromise design
<Associat0r> since it's all pure but you have to workaround stuff a lot to make it do what you want
<Associat0r> and getting good performance out of it isn't easy
<sfuentes> well i'm mostly on *nix systems so i'm going to start with ocaml and go from there.
<sfuentes> thanks again
<Associat0r> np
<Associat0r> sfuentes: it's good to learn some haskell too
ttamttam has joined #ocaml
BigJ has joined #ocaml
slash_ has joined #ocaml
_unK has joined #ocaml
avsm has quit [Quit: Leaving.]
ikaros has quit [Quit: Leave the magic to Houdini]
ikaros has joined #ocaml
Drk-Sd has joined #ocaml
pimmhogeling has joined #ocaml
seafood has quit [Quit: seafood]
maskd has joined #ocaml
pimmhogeling has quit [Remote host closed the connection]
avsm has joined #ocaml
derdon has joined #ocaml
ikaros has quit [Quit: Leave the magic to Houdini]
Drk-Sd has quit [Quit: /]
tmaedaZ is now known as tmaeda
_zack has joined #ocaml
derdon has quit [Quit: derdon]
Associat0r has quit [Quit: Associat0r]
tmaeda is now known as tmaedaZ
_zack has quit [Ping timeout: 245 seconds]
ksson has joined #ocaml
avsm has quit [Quit: Leaving.]
<quelqun_dautre> (au fait, ya des francophones ici ?)
smimou has joined #ocaml
Yoric has joined #ocaml
<Camarade_Tux> quelqun_dautre: many, and you can actually /join #ocaml-fr ;-)
<quelqun_dautre> thx :D
Drk-Sd has joined #ocaml
ski_ has quit [Quit: Lost terminal]
_zack has joined #ocaml
Anarchos has joined #ocaml
Narrenschiff has joined #ocaml
Drk-Sd has quit [Quit: Lost terminal]
Drk-Sd has joined #ocaml
pimmhogeling has joined #ocaml
Anarchos has quit [Quit: Vision[0.9.7-H-090423]: i've been blurred!]
pimmhogeling has quit [Read error: Connection reset by peer]
penny has joined #ocaml
dark has quit [Remote host closed the connection]
penny has quit [Quit: ERC Version 5.2 (IRC client for Emacs)]
_zack has quit [Ping timeout: 265 seconds]
ksson has quit [Ping timeout: 260 seconds]
tmaedaZ is now known as tmaeda
Anarchos has joined #ocaml
Anarchos has quit [Ping timeout: 256 seconds]
rwmjones has quit [Ping timeout: 272 seconds]
Anarchos has joined #ocaml
Drk-Sd has quit [Read error: Operation timed out]
Drk-Sd has joined #ocaml
Anarchos has quit [Ping timeout: 256 seconds]
avsm has joined #ocaml
thrasibule has joined #ocaml
thrasibule has quit [Read error: Connection reset by peer]
thrasibule has joined #ocaml
_unK has quit [Remote host closed the connection]
Narrenschiff has quit [Quit: Narrenschiff]
travisbrady has joined #ocaml
sysop_fb has joined #ocaml
sysop_fb has left #ocaml []
Yoric has quit [Quit: Yoric]
Anarchos has joined #ocaml
det has joined #ocaml
Anarchos has quit [Ping timeout: 258 seconds]
solistic has joined #ocaml
derdon has joined #ocaml
_zack has joined #ocaml
_zack has quit [Client Quit]
cygwinports has joined #ocaml
<cygwinports> is it expected that ocaml libs built against 3.11.1 will be incompatible with 3.11.2?
<cygwinports> that's what I've seen, I'm getting inconsistent assumption errors in interface Obj and implementation String
Alpounet has quit [Ping timeout: 240 seconds]
pimmhogeling has joined #ocaml
<mfp> cygwinports: binary compatibility is broken whenever the interface changes
<cygwinports> and there is no guarantee when an interface will changed or not?
<thelema> cygwinports: none at all, that I know of.
<flux> cygwinports, it'd be quite limiting, because extending an interface is a change as well
<cygwinports> so that means that all ocaml libraries have to be rebuilt for each point release?
<flux> yes. well, binaries don't depend on the libraries, so upgrading doesn't break binaries, only the development environment.
<mfp> yes, the repackagers (Debian, Fedora, etc.) rebuild the libs on each release
<mfp> *all the...
<cygwinports> as a packager myself, it would be nice to have some consistency, at least in a given x.y series
<flux> if you don't use such a distribution, there's the alternative of Godi, which does that for you
<cygwinports> in a way I *am* a distribution :-)
<mfp> cygwinports: have you seen the paper about versioning by the Debian OCaml maintainers?
<flux> was it debian, I was thinking redhat?
<cygwinports> no, I knew they used to use /usr/lib/ocaml/$version, but it looks like they stopped
<cygwinports> actually, I see fedora: "Rationale: OCaml does not offer binary compatibility between releases of the compiler (even between bugfixes). "
<mfp> flux: I'm quite certain the Debian guys wrote a paper describing "interface approximations", along with the ocamldumpapprox tool
<mfp> "We discuss how to guarantee link-time compatibility using inter-package relationships; in doing so, we take into account real-life maintainability problems such as support for automatic package rebuild and manageability of ABI ... We present the dh_ocaml implementation of the proposed solution, which is currently in use in the Debian distribution to safely deploy more than 300 OCaml-related packages."
<cygwinports> so bottom line I should expect to rebuilt all ocaml libraries for each ocaml point release
<thelema> yes. They're not particularly frequent at this point.
<cygwinports> ok, one more question, flexdll-built code can't seem to survive a fork()
_unK has joined #ocaml
<thelema> can't help there.
avsm has quit [Quit: Leaving.]
pimmhogeling has quit [Ping timeout: 256 seconds]
<solistic> Hello what should I read to get a quick start with OCaml (I have some basic knowlege about lambda-calculus and Haskell)?
<flux> perhaps the official ocaml manual?
<solistic> flux: Ah, Part | - The core language looks like a good starting point
<flux> solistic, also www.ocaml-tutorial.org has good links
<flux> (and other material directly there of varying quality perhaps..)
<fomatt> Hello. Does someone know if there's a way to annotate a record whose type is defined in another module?
<flux> annotate how?
<fomatt> Say I have type point = { x : int; y : int; } defined in module M
ttamttam has quit [Quit: Leaving.]
<flux> and you have a value of type M.point and you want to refer to its field..
<flux> foo.M.x
<fomatt> If I want to create a point, do I need to open M or can I try something like let p = {x=1;y=2}:M.point .... ?
<flux> {M.x = 1; y = 2}
<fomatt> Perfect. Exactly what I was looking for! Thanks.
<flux> happy coding :)
Submarine has quit [Quit: Leaving]
pimmhogeling has joined #ocaml
<solistic> flux: thx
solistic has quit [Quit: leaving]
thilp has joined #ocaml
ulfdoz has joined #ocaml
cygwinports has left #ocaml []
Alpounet has joined #ocaml
Alpounet has quit [Quit: ``Do what you think you can't do.'']
thilp has quit [Ping timeout: 265 seconds]
thilp has joined #ocaml
Yoric has joined #ocaml
ski_ has joined #ocaml
johnnowak has joined #ocaml
valross has joined #ocaml
johnnowak has quit [Quit: Leaving.]
slash_ has quit [Read error: Operation timed out]
Yoric has quit [Quit: Yoric]
thilp has left #ocaml []
* thelema starts releasing batteries 1.1
* derdon will start learning LablGTK tomorrow
jake-is-a-virus has joined #ocaml
<Camarade_Tux> derdon: now you can start learning it ;p
<derdon> Camarade_Tux: I can, but it's time to sleep now. school starts today at 9:50
derdon has quit [Quit: derdon]
Yoric has joined #ocaml
_unK has quit [Remote host closed the connection]
slash_ has joined #ocaml
boscop_ has quit [Quit: Gxis revido!]
* thelema will finish releasing tonight.
ulfdoz has quit [Ping timeout: 256 seconds]
pimmhogeling has quit [Read error: Connection reset by peer]
Associat0r has joined #ocaml
Yoric has quit [Quit: Yoric]
pimmhogeling has joined #ocaml