gaja has quit [Read error: 110 (Connection timed out)]
smimram has quit ["bli"]
pants2 has quit [Read error: 110 (Connection timed out)]
pants6 has quit [Connection timed out]
gaja has joined #ocaml
pants7 has quit [Read error: 110 (Connection timed out)]
pants1 has joined #ocaml
jlouis has joined #ocaml
gaja_ has joined #ocaml
gaja__ has quit [Read error: 110 (Connection timed out)]
jlouis_ has quit [Read error: 110 (Connection timed out)]
pants1 has quit [Read error: 110 (Connection timed out)]
pants1 has joined #ocaml
brooksbp has joined #ocaml
pants2 has joined #ocaml
brooksbp has left #ocaml []
pants3 has joined #ocaml
pants4 has joined #ocaml
gaja has quit [Read error: 110 (Connection timed out)]
pants5 has joined #ocaml
hkBst has quit [Client Quit]
gaja has joined #ocaml
proteus has joined #ocaml
pants1 has quit [Read error: 110 (Connection timed out)]
pants2 has quit [Read error: 110 (Connection timed out)]
pants3 has quit [Read error: 110 (Connection timed out)]
gaja_ has quit [Read error: 110 (Connection timed out)]
pants4 has quit [Read error: 110 (Connection timed out)]
pants5 has quit [Read error: 110 (Connection timed out)]
gaja_ has joined #ocaml
pants1 has joined #ocaml
ikaros has joined #ocaml
pants2 has joined #ocaml
pants3 has joined #ocaml
pants4 has joined #ocaml
pants5 has joined #ocaml
ikaros has quit [Remote closed the connection]
JohnnyL has quit [Read error: 110 (Connection timed out)]
gaja__ has joined #ocaml
gaja has quit [Read error: 110 (Connection timed out)]
pants2 has quit [Read error: 104 (Connection reset by peer)]
eroyf has quit [Connection timed out]
seafood_ has joined #ocaml
pants1 has quit [Read error: 110 (Connection timed out)]
pants3 has quit [Read error: 110 (Connection timed out)]
pants4 has quit [Read error: 110 (Connection timed out)]
gaja_ has quit [Read error: 110 (Connection timed out)]
pants5 has quit [Read error: 110 (Connection timed out)]
gaja has joined #ocaml
gaja__ has quit [Read error: 110 (Connection timed out)]
gaja_ has joined #ocaml
seafood_ has quit []
gaja has quit [Read error: 110 (Connection timed out)]
JohnnyL has joined #ocaml
seafood_ has joined #ocaml
gaja has joined #ocaml
gaja__ has joined #ocaml
ita has quit [Remote closed the connection]
gaja_ has quit [Read error: 110 (Connection timed out)]
gaja has quit [Read error: 110 (Connection timed out)]
gaja has joined #ocaml
gaja_ has joined #ocaml
gaja__ has quit [Read error: 110 (Connection timed out)]
Le-Chuck_ITA has joined #ocaml
<Le-Chuck_ITA>
Hi there, anyone awake=
<Le-Chuck_ITA>
?
<Le-Chuck_ITA>
I am using camlidl to pass a memory area back and forth from c
<Le-Chuck_ITA>
I use a declaration such as void f( [bigarray] int * vect)
<Le-Chuck_ITA>
but I would really like to get a bigarray of int32 elements
<Le-Chuck_ITA>
something like
<Le-Chuck_ITA>
void f( [bigarray] ([int32] int *) vect )
<Le-Chuck_ITA>
which clearly does not compile
gaja has quit [Read error: 110 (Connection timed out)]
gaja has joined #ocaml
buluca has joined #ocaml
jlouis_ has joined #ocaml
Le-Chuck_ITA has left #ocaml []
gaja_ has quit [Read error: 110 (Connection timed out)]
jlouis has quit [Read error: 110 (Connection timed out)]
gaja_ has joined #ocaml
gaja has quit [Read error: 110 (Connection timed out)]
Mr_Awesome has quit [Read error: 110 (Connection timed out)]
gaja has joined #ocaml
buluca has quit [Read error: 113 (No route to host)]
gaja__ has joined #ocaml
gaja_ has quit [Read error: 110 (Connection timed out)]
JohnnyL has quit [Read error: 110 (Connection timed out)]
gaja has quit [Read error: 110 (Connection timed out)]
gaja has joined #ocaml
ygrek has quit [Remote closed the connection]
gaja__ has quit [Read error: 110 (Connection timed out)]
gaja_ has joined #ocaml
JohnnyL has joined #ocaml
gaja__ has joined #ocaml
gaja has quit [Read error: 110 (Connection timed out)]
bzzbzz has quit ["leaving"]
gaja_ has quit [Read error: 110 (Connection timed out)]
gaja has joined #ocaml
<proteus>
Hi everyone. I've been reading about ocaml and it sounds like an interesting language. I'd like to learn it and use if for some scientific apps. Could anyone lead me to some good books/material on learning the ocaml language?
<proteus>
There's a book on amazon - Practical Ocaml - but it gets terrible reviews. Is it worth checking out anyway?
gaja_ has quit [Read error: 110 (Connection timed out)]
<proteus>
well, my main interests here are evolutionary computation, neural nets, and bioinformatics - all of which benefit from parallelization. ocaml seems like a fast and elegant language with links to anything else I might need, so I'd like to make it work.
<Jeff_123>
Have you looked at erlang?
<Jeff_123>
or Stackless Python?
<proteus>
I've looked at erlang. really interesting. Fantastic for concurrency but a bit slow for number crunching. I've never heard of stackless python though. I'll look it up now.
authentic has quit [Read error: 110 (Connection timed out)]
^authentic is now known as authentic
gaja has quit [Read error: 110 (Connection timed out)]
gaja has joined #ocaml
<proteus>
have you done much work with either of them?
<Associat0r>
: proteus
<Associat0r>
check PM
<proteus>
?
<Associat0r>
private message
<Jeff_123>
no I haven't.
<proteus>
Associat0r, I didn't get
<proteus>
I'm using xchat, if it matters
<Associat0r>
strange
<Jeff_123>
tell us all the juicy details :)
<Associat0r>
proteus : can you PM me
<proteus>
I'll try
<proteus>
did you get that?
<Associat0r>
no
<proteus>
you could try AIM, if you like. ParanoidCritical
lbc has joined #ocaml
gaja__ has quit [Read error: 110 (Connection timed out)]
<proteus>
Associat0r, please say you want to pm me because you have a secret digital copy of ocaml for scientists you could send me ;-)
<proteus>
I've checked the xchat settings, private messages should work, but whatever
gaja_ has joined #ocaml
<tsuyoshi>
aaaaaa
tsuyoshi has quit ["Lost terminal"]
<proteus>
Associat0r, I figured it out. Freenode blocks pms from/to unregistered users
<Associat0r>
check AIM
<proteus>
I didn't get a message
<proteus>
you sent it to ParanoidCritical?
gaja__ has joined #ocaml
mordaunt has quit [Read error: 104 (Connection reset by peer)]
gaja has quit [Read error: 110 (Connection timed out)]
gaja_ has quit [Read error: 110 (Connection timed out)]
gaja has joined #ocaml
gaja__ has quit [Read error: 110 (Connection timed out)]
gaja_ has joined #ocaml
Mr_Awesome has joined #ocaml
tsuyoshi has joined #ocaml
gaja has quit [Read error: 110 (Connection timed out)]
gaja has joined #ocaml
gaja_ has quit [Read error: 110 (Connection timed out)]
gaja_ has joined #ocaml
<proteus>
I just dug deeper into the flying frog page and god damn I want to get access to the ocaml journal.
<proteus>
but with the price in british pounds, the going exchange rate makes it impossible
<flux>
I don't quite like how their article teasers (not the meat) at times appears on planet ocaml
<proteus>
ugh, yes.
<flux>
but I suppose they have some actual articles out there? (do they?)
<proteus>
and then a list of other topics that just make me drool
<proteus>
but maybe they're all terrible, I don't know. I can't know because they don't have any of them available to view.
<flux>
that's right :)
<proteus>
Here's to hoping some good soul pirates it
<flux>
the only freely available article is of intrudiction level
<flux>
difficult to make judgements on the content based on that
<proteus>
exactly
<proteus>
I think I'll write a letter threatening to fake sue them and demand they prove the journal is worth it's cost by showing me some of the meatier articles
<proteus>
sue them for hostile titillation
gaja__ has joined #ocaml
gaja has quit [Read error: 110 (Connection timed out)]
<proteus>
So there really isn't any good book on learning the current version of ocaml. Just tutorials and the manual?
<flux>
I don't think the online ocaml book is quite obsolete yet
<proteus>
Ok, I'll just work from that then
<proteus>
Also, thanks for all the help everyone. Really.
gaja has joined #ocaml
gaja_ has quit [Read error: 110 (Connection timed out)]
gaja__ has quit [Read error: 110 (Connection timed out)]
gaja_ has joined #ocaml
ttamttam has joined #ocaml
gaja has quit [Read error: 110 (Connection timed out)]
gaja has joined #ocaml
Jeff_123 has quit ["Leaving."]
gaja_ has quit [Read error: 110 (Connection timed out)]
gaja_ has joined #ocaml
elq has joined #ocaml
gaja has quit [Read error: 110 (Connection timed out)]
elq has left #ocaml []
gaja has joined #ocaml
elq has joined #ocaml
gaja_ has quit [Read error: 110 (Connection timed out)]
gaja_ has joined #ocaml
Snark has joined #ocaml
gaja has quit [Read error: 110 (Connection timed out)]
filp has joined #ocaml
gaja has joined #ocaml
gaja__ has joined #ocaml
smimou has joined #ocaml
gaja_ has quit [Read error: 110 (Connection timed out)]
seafood_ has quit []
gaja has quit [Read error: 110 (Connection timed out)]
gaja has joined #ocaml
gaja__ has quit [Read error: 110 (Connection timed out)]
mrsolo has quit ["This computer has gone to sleep"]
gaja_ has joined #ocaml
ygrek has joined #ocaml
smimou has quit ["bli"]
gaja has quit [Read error: 110 (Connection timed out)]
proteus has quit [Read error: 104 (Connection reset by peer)]
gaja has joined #ocaml
love-pingoo has joined #ocaml
ygrek_ has joined #ocaml
ygrek has quit [Remote closed the connection]
gaja_ has quit [Read error: 110 (Connection timed out)]
gaja_ has joined #ocaml
gaja has quit [Read error: 110 (Connection timed out)]
hkBst has joined #ocaml
gaja has joined #ocaml
Snark has quit ["Quitte"]
gaja_ has quit [Read error: 110 (Connection timed out)]
Yoric[DT] has joined #ocaml
<Yoric[DT]>
hi
<Yoric[DT]>
hcarty: Work is progressing well on stream comprehension.
<Yoric[DT]>
Now, I have a for loop for streams, and syntactic sugar for stream maps, stream filters and stream integer ranges.
<Yoric[DT]>
I'm looking for ideas for a nice syntax to allow building other stuff from streams and for other kinds of ranges.
gaja_ has joined #ocaml
asmanur has joined #ocaml
gaja has quit [Read error: 110 (Connection timed out)]
buluca has joined #ocaml
<hkBst>
Yoric[DT]: Scheme SRFI's and Haskell are always good ways to get some ideas.
gaja has joined #ocaml
<Yoric[DT]>
I've taken a look at Haskell's syntax but I haven't seen a way to build, say, an array from a list with a filter.
<Yoric[DT]>
Or at least, not with syntactic sugar.
gaja_ has quit [Read error: 110 (Connection timed out)]
seafood_ has joined #ocaml
gaja_ has joined #ocaml
gaja has quit [Read error: 110 (Connection timed out)]
gaja has joined #ocaml
Yoric[DT] has quit [Read error: 110 (Connection timed out)]
gaja_ has quit [Read error: 110 (Connection timed out)]
gaja_ has joined #ocaml
gaja__ has joined #ocaml
Associat0r has quit []
gaja has quit [Read error: 110 (Connection timed out)]
gaja_ has quit [Read error: 110 (Connection timed out)]
gaja has joined #ocaml
gaja_ has joined #ocaml
gaja__ has quit [Read error: 110 (Connection timed out)]
gaja has quit [Read error: 110 (Connection timed out)]
gaja_ has quit ["leaving"]
gaja has joined #ocaml
gaja has quit [Client Quit]
jlouis has joined #ocaml
gaja has joined #ocaml
dbueno has joined #ocaml
jlouis_ has quit [Read error: 110 (Connection timed out)]
bongy has joined #ocaml
mrsolo has joined #ocaml
mrsolo has quit [Remote closed the connection]
eroyf has joined #ocaml
Tetsuo has joined #ocaml
<pippijn>
why do you use ocaml? what do you think is good about it?
<pippijn>
what is it good for?
<flux>
I think it is good for writing programs.
<pippijn>
any kind?
<pippijn>
is there an area where ocaml is very good?
<flux>
I guess compilers is one traditionally strong area of the ML-family
<pippijn>
writing compilers?
<flux>
yes
<pippijn>
interesting
<pippijn>
why is that?
<flux>
powerful type system, pattern matching, powerful module system
<pippijn>
hmm
<pippijn>
what do you use it for?
<flux>
nowadays I use it almost for all programming tasks. at work I write server-side software with it.
<pippijn>
is there a framework for server-side software for ocaml?
<pippijn>
a game
<pippijn>
nice
Yoric[DT] has joined #ocaml
<pippijn>
I'll look at that when I get home
<flux>
ocamlnet is a package that has some modules that are related to server-side programming
<Yoric[DT]>
hi again
<pippijn>
I'm interested in server-side programming
<flux>
but it's not a framework per se
<pippijn>
I wrote this: hska.xinutec.org in perl
<pippijn>
very simple
<pippijn>
but it's broken
<flux>
I don't understand that. or do you mean the web site?
<pippijn>
I'd rather make it more sophisticated
<pippijn>
yes, the website
<pippijn>
more sophisticated, more dynamic
<pippijn>
less code, cleaner code
<pippijn>
I don't know ocaml
<pippijn>
but I've heard it was clean
<Yoric[DT]>
OCaml is nice.
<Yoric[DT]>
OCaml can be very clean.
<flux>
that goba isn't very ;-)
<flux>
(I suppose it has its good parts too)
<pippijn>
I don't care for speed that much but I want clean code
<pippijn>
Yoric[DT]: what do you use ocaml for?
<Yoric[DT]>
At the moment, I'm working on analysis of JavaScript.
<flux>
yoric[dt], how's it going, btw?
<Yoric[DT]>
I've taken a one-week break of that.
<Yoric[DT]>
Too much immediate work.
<flux>
yoric[dt], resolved the parser problems?
<Yoric[DT]>
At the moment, my parser handles about 2/3 of the standard library.
<Yoric[DT]>
The problem being that the standard library respects neither the specifications nor the reference implementation.
<Yoric[DT]>
So, patching the parser gets a bit tricky when you have to guess at the implied syntax.
<flux>
something I read without further investigating: packrat-parsers are nice, when you don't need to care about memory, but don't want to have a separate lexer
<flux>
(read an announcement of aurochs a few days back)
<Yoric[DT]>
Especially when keywords such as "public", "private", etc. (as defined in the lexer) turn out not to be language keywords but some kind of non-specified pre-processing stuff.
<Yoric[DT]>
Interesting.
<Yoric[DT]>
I'll take a look at some point.
<flux>
"If your language is not CFG, maybe packrat parsing can do the job." ;-)
<Yoric[DT]>
:)
<flux>
of course changing to that would be a big task, and it has its drawbacks
<flux>
but perhaps something to try out anyway at some point
<flux>
could you just ignore those keywords for the time being?
<flux>
I didn't even know javascript had those concepts..
<Yoric[DT]>
JavaScript 2 has.
<flux>
oh
<Yoric[DT]>
JavaScript 2 is much richer than JS 1.x.
<Yoric[DT]>
I like the type system very much.
<Yoric[DT]>
Not for my everyday work, but for teaching, I believe it's a great idea.
<Yoric[DT]>
In a few words : you can have either an almost static strong type system, a dynamic strong type system or a dynamic weak type system.
<Yoric[DT]>
So you can start learning to program without types.
<Yoric[DT]>
When you've started understanding the mistakes, you can add the dynamic strong type system.
<Yoric[DT]>
(with operators for nominal typing and for duck typing)
<Yoric[DT]>
And if you want a robust library, you can activate the static type system.
<Yoric[DT]>
Another nice thing (although awful for static checking) is dynamic downloading of libraries.
<flux>
do functional streams perform so terribly, or why aren't they used in place of those destructive streams?
<hcarty>
flux: I don't know what performance is like... I've only used streams (via Sdflow) to iterate over relatively computationally intensive code
<hcarty>
The stream performance is lost in the noise
<flux>
but at times one might like to iterate twice over the same stream
<flux>
and for that, you need to explicitly split the stream, and it becomes difficult
<flux>
you can't just hold on two the point where you used to be at
<hcarty>
Sdflow.dup looks like it may provide a workaround for that
bringert has joined #ocaml
Snark has joined #ocaml
<Yoric[DT]>
hcarty: I actually haven't.
<Yoric[DT]>
But then, I only wanted to play a little with Camlp4.
<hcarty>
Yoric[DT]: Would you be willing to make the code available? Another set of examples on the Campl4 wiki would be handy.
buluca has joined #ocaml
bringert_ has joined #ocaml
<Jeff_123>
I'd appreciate ANY help with camlp4.
ikaros has joined #ocaml
ikaros has quit [Read error: 104 (Connection reset by peer)]
<Yoric[DT]>
hcarty: I'm actually planning to make it available.
ikaros has joined #ocaml
ikaros has quit [Read error: 104 (Connection reset by peer)]
<Yoric[DT]>
Unfortunately, it's a bit big for the Camlp4 wiki.
ikaros has joined #ocaml
<Yoric[DT]>
Plus I need to check the licence, as I had to copy and paste bits of Camlp4's source code and bits of ocaml-tutorial.org inside my code, due to some rules being private.
bringert has quit [Read error: 104 (Connection reset by peer)]
<hcarty>
That makes sense. Thank you for putting the effort, however it works out
<hcarty>
putting in the effort, that is
<Yoric[DT]>
Well, it was fun.
<Yoric[DT]>
I'm not fully done yet, anyway.
bringert_ has quit []
<hcarty>
The license issue may be worth bringing up on the mailing list. I'm sure it will affect other extensions in the future as well.
centrinia has joined #ocaml
<context>
ewe, i can see why a lot of ocaml code doesn't use objects
<hcarty>
Actually - Is there a list of reasons why the OO parts of OCaml are so looked down on?
<context>
hcarty: its the # obviously :p
<context>
hahaha
<hcarty>
I don't particularly like the use of #, but the implementation seems interesting
<hcarty>
context: Definitely, no doubt
<context>
maybe im learning caml for the wrong reasons :/
<bluestorm_>
i find the OO parts of Ocaml highly interesting
<bluestorm_>
(although i know them less than the other ones)
<context>
and all the tutorials im finding on ocaml are kind of crap
<context>
example after example without actually explaining how specific crap works
dbueno has quit ["This computer has gone to sleep"]
ygrek_ has quit [Remote closed the connection]
<unfo->
you gotta love books that are created with TeX :)
<unfo->
hcarty, thanks for link
asmanur has quit [Remote closed the connection]
<Yoric[DT]>
hcarty: actually, I guess I'm going to make use of SdFlow.
<Yoric[DT]>
That might solve some of my problems, just because some of the functions I had to rewrite will appear in a "more standard" module.
fbvortex has joined #ocaml
<fbvortex>
I'm using OCaml to write a scientific / engineering code, and it would be of great value and clarity if I could begin some variable names with capital letters, in accordance with the nomenclature used in the field. Is there any way to get OCaml to recognize variables beginning with capital letters as variables and not as type constructors?
<pango>
nope, the point is to be able to visually tell apart the ones from the others while using pattern matching
<cygnus_>
edit the ocaml source :p
<Yoric[DT]>
Possibly with Camlp4 :)
<bluestorm_>
fbvortex: i don't think a convention like "all first letters are uncapitalized" would hurt clarity
<Yoric[DT]>
More seriously, that convention is used all over the source code of OCaml.
<bluestorm_>
or you could use _Foo, but you need a convention anyway
<Yoric[DT]>
I mean that everythinig depends on it.
<Yoric[DT]>
So, yeah, as bluestorm_, if you really need capital letters, prefix them with underscore.
<pango>
_ as first character is a bit special (doesn't raise a warning if the variable is unused)
<bluestorm_>
hm
<bluestorm_>
strange :D
<fbvortex>
bluestorm_: it improves clarity with respect to the problem domain, but I admit from a source code perspective it might hurt clarity; the point is there *is* a convention in the field, it just conflicts with the convention in the programming language
<fbvortex>
bluestorm_: where the "it" in the first part of what i wrote refers to using capitals to begin variable names
<fbvortex>
I understand the rationale for all of this, but I have to admit it is annoying in my application; I can't use what would be the "natural" name for my value
<pango>
you can use a short, lowercase, prefix
<fbvortex>
pango: yes I will have to do something like this, but it is visibly artificial
<Jeff_123>
use a different language then :\
<fbvortex>
Jeff_123: there's a difference between running into an annoyance and being so frustrated it's time to give up. It's hardly the latter.
<Jeff_123>
well that's good
<fbvortex>
esp since I'm enjoying all the other benefits of doing things in OCaml vs. say C++ or something
Tetsuo has quit ["Leaving"]
ttamttam has left #ocaml []
marmottine has quit ["Quitte"]
bluestorm_ has quit ["Konversation terminated!"]
<pango>
as Yoric[DT] suggested, it must be possible to use any case using preprocessing, as long as something else can be used to tell apart vars from constructors... it will make your code less readable to other OCaml programmers, though ;)
<Jeff_123>
#Varname -> varname
<Jeff_123>
er, that wouldn't work if you were using OO features of caml
<Jeff_123>
The rewriter'd have to be aware of caml's lexing rules though.
Snark has quit ["Quitte"]
bringert has joined #ocaml
madroach has joined #ocaml
<Yoric[DT]>
Does anyone know how to instruct ocamlbuild to link my code with an external .cmo ?
<Yoric[DT]>
I can get it to work with .cma but not .cmo .
<madroach>
Hi! I'm trying to link c++ and ocaml. But ocamlc fails complaining about "undefined reference to 'caml_invalid_argument'.... Any ideas?
madroach has left #ocaml []
madroach has joined #ocaml
madroach has quit [Client Quit]
madroach has joined #ocaml
<madroach>
blub
<Yoric[DT]>
Sorry, no idea.
<Yoric[DT]>
Perhaps you should try on the mailing-list ?
<madroach>
hmm, thanks
<pango>
ocamlc -custom ?
<hcarty>
madroach: I've found using OCamlMakefile with C library bindings very helpful
<hcarty>
It takes care of many of the details
<smimou>
madroach: did you use extern "C" ?
filp has quit ["Bye"]
Associat0r has joined #ocaml
seafood_ has joined #ocaml
seafood_ has quit [Client Quit]
<madroach>
yes, of course I used extern "C".
<madroach>
it links well if I leave the exceptions away. But when I try to call invalid_argument, the I get the undefined reference