<palomer__>
and print_hoo = print_endline <--why is this disallowed?
<Smerdyakov>
Recursion has to go through anonymous function expressions or particular data type constructors.
<Smerdyakov>
I'm sure you can find the exact rule in the manual.
<palomer__>
why?!
<Smerdyakov>
I invite you to ponder how you'd compile OCaml programs otherwise.
<palomer__>
ah, I see, value a needs value b and value b needs value a
<palomer__>
so that's why ocaml doesn't have recursion by default like haskell!
yminsky has quit [Connection reset by peer]
yminsky has joined #ocaml
Amorphous has quit [Read error: 110 (Connection timed out)]
Amorphous has joined #ocaml
LordMetroid has quit ["Leaving"]
jlouis has quit [Remote closed the connection]
yminsky has quit [Read error: 110 (Connection timed out)]
yminsky has joined #ocaml
rodge has left #ocaml []
yminsky has quit [Read error: 110 (Connection timed out)]
yminsky has joined #ocaml
jdrake has quit [Read error: 110 (Connection timed out)]
AxleLonghorn has joined #ocaml
AxleLonghorn has left #ocaml []
yminsky_ has joined #ocaml
yminsky has quit [Read error: 104 (Connection reset by peer)]
Snark has joined #ocaml
yminsky_ has quit [Read error: 110 (Connection timed out)]
fatalerrorx has joined #ocaml
<fatalerrorx>
no offence to anyone but ocaml really seems to be getting stale
<fatalerrorx>
any reason for that?
<fatalerrorx>
i guess the community is stale too :)
<Ugarte>
In what way
<Ugarte>
?
<fatalerrorx>
they don't want to add parallel gc because its too hard.....that just shows a lazy bunch of devs
<fatalerrorx>
also the type system could be improved greatly but thats also to hard for them
<fatalerrorx>
thus the shortcoming of ocaml sit there and never get improved
fatalerrorx has quit []
<Ugarte>
...
<flux>
perhaps he had great examples of parallel gc with high allocation rates, but now we can never learn about them
netx has joined #ocaml
mlasson_ has joined #ocaml
ygrek has joined #ocaml
yminsky has joined #ocaml
mlasson_ is now known as marque
ygrek has quit [Remote closed the connection]
ygrek has joined #ocaml
filp has joined #ocaml
<Proteus>
I thought there was a Google Summer project for developing a concurrent GC?
al-maisan has joined #ocaml
al-maisan has quit [Remote closed the connection]
<Proteus>
Does anyone have access to Jon Harrop's damn Ocaml Journal? the article titles and summaries sound intriguing but based on his postings on the ML I have to wonder about the value of the content.
Linktim has joined #ocaml
<flux>
it remains to be seen how performant it will be
al-maisan has joined #ocaml
al-maisan has quit [Remote closed the connection]
al-maisan has joined #ocaml
al-maisan has quit ["Leaving."]
al-maisan has joined #ocaml
comglz has joined #ocaml
Associat0r has joined #ocaml
al-maisan has quit ["Leaving."]
al-maisan has joined #ocaml
Linktim has quit [Remote closed the connection]
Demitar has quit [Read error: 110 (Connection timed out)]
al-maisan has quit ["Leaving."]
marmottine has joined #ocaml
<ertai>
gildor_: pong
Linktim has joined #ocaml
<gildor_>
ertai: hello
Poulet has joined #ocaml
Poulet has quit [Client Quit]
Poulet has joined #ocaml
al-maisan has joined #ocaml
<Snark>
hmmm... I didn't remember ocaml's error messages where that bad... where am I supposed to find an error at "Characters 490-495:" !?
<flux>
use emacs and enter M-x goto-char 490
<flux>
so it doesn't tell you the line then?
OChameau has joined #ocaml
<gildor_>
ertai: hello (again;-)
<Snark>
flux, good!
<Snark>
cumbersome, but good
al-maisan has quit ["Leaving."]
yziquel has joined #ocaml
Poulet has quit []
mqtt has joined #ocaml
middayc has joined #ocaml
<flux>
snark, what produces that kind of error messages?
<flux>
camlp4?
middayc has quit []
tsuyoshi has quit ["Lost terminal"]
yminsky has quit [Read error: 110 (Connection timed out)]
mqtt has quit [Read error: 113 (No route to host)]
<Snark>
flux, ocaml's interpreter
<thelema>
Snark: how do you want the interpreter to tell you where the error is?
<thelema>
s/interpreter/toplevel/
al-maisan has joined #ocaml
Poulet has joined #ocaml
al-maisan has quit ["Leaving."]
structured has quit [Read error: 110 (Connection timed out)]
<flux>
snark, right, I rarely give long inputs to it; at times I do, though, exactly with (x)emacs
<flux>
it could give the input line relative to some separator
<flux>
perhaps relative to the previous ;;
<flux>
off you go, the source is there ;)
<flux>
how big a performance difference is there between for i = 1 to n do .. done and iter (fun i -> ..) (5 -- 10)?
<thelema>
flux: Enum.iter?
<flux>
yeah
<flux>
perhaps I could download and try it :)
<thelema>
well, for 5--10, I'd imagine almost none.
<flux>
:)
<thelema>
because it's only 6 loops.
<flux>
good point. unless you do it a million times!
<flux>
the relative performance difference should be the same
<thelema>
for i=1 to n do print_int i; vs. Enum.iter print_int (5--n)
* thelema
tries
<flux>
I suppose the bulk of work is done in print_int..
* thelema
is still working on integrating the new Enum into the compiler
<thelema>
grr, stupid dependencies.
postalchris has joined #ocaml
<thelema>
grr, why does Obj depend on Marshal...
<thelema>
stupid obj.marshal and obj.unmarshal
* thelema
wishes he could put obj at the head of the dependency list, but can't because of Marshal
<flux>
hm?
<flux>
why is it important to you?
<thelema>
just de-circularizing the dependency tree...
<thelema>
all the extlib code assumes it'll get compiled after all the stdlib, but if it gets integrated into the stdlib, that assumption doesn't hold.
<thelema>
so I have to take the dependency tree and cut the circles somewhere
postalchris has quit [Read error: 110 (Connection timed out)]
<Snark>
thelema, well, if the error is in a method in a class, then it could tell me which method in which class...
<thelema>
Snark: that's one big downside of syntax errors - there's no methods or classes when such an error occurs
<flux>
but there is surrounding text..
<flux>
it could be helpful
<flux>
but useful error messages are hard, or so I've heard :)
<thelema>
they are. I've considered rewriting the parser to give more helpful error messages, but that'd definitely break something.
LordMetroid has joined #ocaml
Linktim has quit [Remote closed the connection]
<thelema>
it might be possible to have a "path" that gets built during parsing...
Linktim has joined #ocaml
<thelema>
when it enters a let phrase or object/method definition, it pushes the identifier on the path
<thelema>
so you could follow the path to the general area of the error.
<Snark>
if it could count lines, that could help too
<Snark>
and it may be simpler
<thelema>
the toplevel doesn't count lines, but the compilers do - why not use them?
<Snark>
because emacs allows me to evaluate the buffer in a toplevel ?
<thelema>
then fix emacs to count characters for you.
<structured>
thelema: awesome! I hope some of the projects turn out great this year
<hsuh>
thelema: there is a parser with ocamlnet?
ygrek has joined #ocaml
<thelema>
hsuh: yes
carm has joined #ocaml
Linktim has joined #ocaml
<tty56>
does anyone know whether there is an imap client lib for ocaml?
<thelema>
pretty sure there's not.
carm_ has joined #ocaml
<tty56>
thelema: ok, thats what I found, too, just wanted to be sure I am right...
hsuh has quit [Read error: 104 (Connection reset by peer)]
hsuh has joined #ocaml
carm__ has joined #ocaml
structured has quit [Read error: 110 (Connection timed out)]
carm has quit [Read error: 110 (Connection timed out)]
carm has joined #ocaml
carm is now known as structured
carm_ has quit [Read error: 110 (Connection timed out)]
carm__ has quit [Read error: 110 (Connection timed out)]
mamie_cracra has joined #ocaml
marmottine has quit [Read error: 113 (No route to host)]
LordMetroid has quit ["Leaving"]
AxleLonghorn has joined #ocaml
AxleLonghorn has left #ocaml []
pango has quit [Remote closed the connection]
pango has joined #ocaml
sporkmonger has quit [Read error: 110 (Connection timed out)]
hsuh has quit [Read error: 104 (Connection reset by peer)]
hsuh has joined #ocaml
ygrek has quit [Remote closed the connection]
Yoric[DT] has joined #ocaml
Snark has quit ["Ex-Chat"]
<tty56>
I am tinkering a bit with ocaml to implement some basic imap functionality. For that I need a good string lib. Any hints on a string lib that does some more advanced things like split etc.?
<Smerdyakov>
Oh, you've just not used your helper function the way you meant to.
<palomer__>
ahhh!
<Yoric[DT]>
This expression has type [ `Foo of 'a ] list * [ `Bar of 'b ] list
<Yoric[DT]>
but is here used with type [ `Bar of 'b ] list * [ `Bar of 'b ] list
<Smerdyakov>
It would have helped to follow the usual procedure of fully type-annotating everything until the problem is clear.
<Yoric[DT]>
(when replacing the end with an assert false)
Poulet has left #ocaml []
<tty56>
mpf, I do not get the object system of ocaml. In "Practical Ocaml" I read that one can use Constructors with objects (called initializer). But could not find some further information on how to use them...