__marius__ has quit [Remote host closed the connection]
__marius__ has joined #ocaml
Edward_ has quit []
travisbrady has quit [Quit: travisbrady]
ecc has joined #ocaml
joewilliams_away is now known as joewilliams
__marius__ has quit [Remote host closed the connection]
__marius__ has joined #ocaml
krankkat1e has left #ocaml []
__marius__ has quit [Remote host closed the connection]
__marius__ has joined #ocaml
__marius__ has quit [Remote host closed the connection]
__marius__ has joined #ocaml
thrasibule has joined #ocaml
emmanuelux has quit [Remote host closed the connection]
thrasibule has quit [Ping timeout: 265 seconds]
alexyk has joined #ocaml
<alexyk>
how do I time program execution from the beginning to certain points?
<elehack>
alexyk, if you want CPU time use Sys.time
<alexyk>
ok
<elehack>
if you want wall time, grab the time with Unix.time at the beginning and again at each measurement point.
<alexyk>
CPU is good
<elehack>
then Sys.time is what you want. Use Unix.times (note plural) if you want to distinguish between user-space, kernel, and child-process time.
<elehack>
(yep, there are many options)
elehack has quit [Quit: not a typewriter]
derdon has quit [Ping timeout: 245 seconds]
__marius__ has quit [Ping timeout: 248 seconds]
jeddhaberstro has quit [Quit: jeddhaberstro]
_unK has quit [Remote host closed the connection]
__marius__ has joined #ocaml
travisbrady has joined #ocaml
joewilliams is now known as joewilliams_away
joewilliams_away has quit [Excess Flood]
ulfdoz has joined #ocaml
thelema has quit [Remote host closed the connection]
thelema has joined #ocaml
alexyk has quit [Quit: alexyk]
ulfdoz_ has joined #ocaml
ulfdoz has quit [Ping timeout: 245 seconds]
ulfdoz_ has quit [Quit: Reconnecting]
ulfdoz has joined #ocaml
aja has joined #ocaml
travisbrady has quit [Quit: travisbrady]
ttamttam has joined #ocaml
ulfdoz has quit [Ping timeout: 265 seconds]
jakedouglas has quit [Quit: Leaving.]
animist_ has quit [Ping timeout: 240 seconds]
Amorphous has quit [Ping timeout: 248 seconds]
joewilliams_away has joined #ocaml
joewilliams_away is now known as joewilliams
joewilliams is now known as joewilliams_away
joewilliams_away is now known as joewilliams
Amorphous has joined #ocaml
ftrvxmtrx has quit [Quit: Leaving]
Yoric has joined #ocaml
__marius__ has quit [Remote host closed the connection]
joewilliams is now known as joewilliams_away
aja has quit [Read error: Connection reset by peer]
ftrvxmtrx has joined #ocaml
Stoneage has joined #ocaml
ikaros has joined #ocaml
patronus has quit [Remote host closed the connection]
patronus has joined #ocaml
Edward_ has joined #ocaml
robthebob has quit [Remote host closed the connection]
ikaros has quit [Quit: Leave the magic to Houdini]
thelema has quit [Remote host closed the connection]
thelema has joined #ocaml
verte has joined #ocaml
avsm has joined #ocaml
Yoric has quit [Quit: Yoric]
Stoneage has quit [Ping timeout: 264 seconds]
emmanuelux has joined #ocaml
Edward__ has joined #ocaml
Edward_ has quit [Ping timeout: 245 seconds]
Associat0r has quit [Ping timeout: 265 seconds]
romildo has joined #ocaml
<romildo>
Is there any tool to help generating a file.mli interface file from a file.ml implementation file?
Associat0r has joined #ocaml
ikaros has joined #ocaml
<flux>
infact there is!
<flux>
ocamlc -i
<flux>
of course this will only help build the initial mli-file, afterwards it needs to be maintained manually
<romildo>
flux, thanks
<sgnb>
and you might want to restrict the interface, too...
munga has joined #ocaml
Stoneage has joined #ocaml
ikaros has quit [Quit: Leave the magic to Houdini]
RyanRN has quit [Ping timeout: 245 seconds]
Yoric has joined #ocaml
avsm has quit [Quit: Leaving.]
fraggle_laptop has quit [Read error: Connection reset by peer]
fraggle_laptop has joined #ocaml
fraggle_laptop has quit [Ping timeout: 240 seconds]
Edward__ has quit []
fraggle_laptop has joined #ocaml
derdon has joined #ocaml
elehack has joined #ocaml
ikaros has joined #ocaml
verte has quit [Quit: ~~~ Crash in JIT!]
ztfw` has quit [Quit: ERC Version 5.3 (IRC client for Emacs)]
ztfw` has joined #ocaml
ztfw` has left #ocaml []
ikaros has quit [Quit: Leave the magic to Houdini]
romildo has quit [Quit: Leaving]
ttamttam has quit [Quit: Leaving.]
oriba has joined #ocaml
munga has quit [Quit: Ex-Chat]
<hcarty>
Is there a comparison between PMap and Map.Make (PMap from extlib or Batteries) available?
<elehack>
hcarty: look at the introduction to the documentation to Batteries.Set
<elehack>
the same analysis applies, I believe.
<elehack>
basically: PMap/PSet are slightly easier to use and have more features but are less safe.
<sgnb>
PMap can be very easily deduced from Map.Make in 3.12, btw
<elehack>
sgnb: that is good news.
<thelema>
hcarty: what do you want to know about the two?
<thelema>
sgnb: meaning we don't need two implementations? I can see within narrow contexts that the new features in 3.12 allow PMap-like functionality using Map.Make... I dunno about for wider uses...
<hcarty>
elehack: Thanks for the pointer
<hcarty>
thelema: Curious about performance (which I know really requires me to test in my particular use case) and what the safety differences are
<hcarty>
If 3.12 were out I would pass modules generated with Map.Make around. PMap looks like a decent compromise until then.
<thelema>
hcarty: performance is nearly identical, I think they use the same kind of balanced trees, except the compare function is held in the functorized module for Set.Make and it's in each PSet
<thelema>
as far as safety, since you can't verify that two PSets use the same comparison function, union/intersection type things can use fewer assumptions (and so have theoretically less performance)
__marius__ has joined #ocaml
* elehack
wonders whether creative application of first-class modules can mitigate that in 3.12 (possibly with slightly clumsier syntax)
<hcarty>
thelema: Thank you - that makes sense.
<thelema>
hcarty: other than that, the only safety issue is that maybe you'll use a PSet with one type and you think you're using it with a different one, but the compier won't warn you until the two worlds collide
<thelema>
as opposed to Set.Make where you're explicit about what type it is everywhere.
<thelema>
elehack: mitigate the safety issues of PSet?
joewilliams_away is now known as joewilliams
<elehack>
thelema: yeah. I don't know, it might not work, but they can be used for some pretty bizarre stuff (tying database cursors to connections at the type system level, for example).
<elehack>
but the result might not be any easier to use than the current functorized map and set.
<elehack>
thelema: on an unrelated note, batteries git currently contains some bugfixes for BatSubstring. I think it would be a good idea to do a 1.2.3 release in the near future to get those fixes out.
<elehack>
it also contains an addition of BatSubstring.length as an alias for size; strictly speaking, that probably violates 1.2.x api guarantees.
<elehack>
i'd be fine with rolling that addition back either in master or on a new 1.2.x branch.
alexyk has joined #ocaml
emmanuelux has quit [Remote host closed the connection]
<elehack>
derdon: I believe the source for that tutorial is in lablgtk2's CVS or Subversion repository. You might be able to generate a printable version from that if it's in DocBook or something.
<derdon>
elehack: good idea, I'll take a look
__marius__ has quit [Remote host closed the connection]
<derdon>
you can read in the README the instructions to compile and run the code
<derdon>
may someone explain the error message please?
prince__ has joined #ocaml
prince__ has quit [Client Quit]
ulfdoz has joined #ocaml
alexyk has joined #ocaml
theDroggl has quit [Changing host]
theDroggl has joined #ocaml
prince__ has joined #ocaml
prince__ has quit [Read error: Connection reset by peer]
prince__ has joined #ocaml
prince__ has quit [Read error: Connection reset by peer]
prince__ has joined #ocaml
<hcarty>
derdon: Your try .. with .. is leaking
<hcarty>
derdon: If you wrap the try block in let () = ... in then it should fix the problem
prince__ has quit [Quit: 전 이만 갑니다.]
<hcarty>
derdon: As it is, the code does not work as the indentation implies. "IO.close_in input" is considered as part of the Printf.eprintf function call on line 14.
Yoric has joined #ocaml
<derdon>
hcarty: ah, now I get it! thanks a lot!
ftrvxmtrx has quit [Quit: Leaving]
<hcarty>
derdon: You're welcome, glad it works :-)
__mariu__ has joined #ocaml
__marius__ has quit [Ping timeout: 240 seconds]
sepp2k1 has joined #ocaml
sepp2k has quit [Ping timeout: 248 seconds]
__mariu__ has quit [Remote host closed the connection]
__marius__ has joined #ocaml
ikaros has quit [Quit: Leave the magic to Houdini]
__marius__ has quit [Remote host closed the connection]
__marius__ has joined #ocaml
<hcarty>
thelema: PMap and Map are missing Exceptionless modules. I'm not able to submit a patch any time soon, but would you like a bug report on github?
alexyk has quit [Quit: alexyk]
<hcarty>
thelema: Map.Make and its derived modules do have Exceptionless modules, only containing the find function.
avsm has quit [Quit: Leaving.]
<derdon>
hcarty: what you mean with the try-block? only the single line which is "print_endline (...)"?
alexyk has joined #ocaml
<hcarty>
derdon: Sorry, I should have said the try expression
<hcarty>
Everything from line 9 through line 14
<hcarty>
So you could put a "let () =" after line 8 and a "in" before line 15
<derdon>
hcarty: and why should I wrap it in ``let () = ...``? I inserted a semicolon after it, and the code compiles but behaves strangely now
<hcarty>
derdon: I'm not sure how a ; would play with the precedence
<derdon>
it simply prints the content of the file Sys.arg.(1) now. I'll try ``let () = ...`` as you explained it
<hcarty>
derdon: let () = ... in has a clear precedence. The two could be the same, but I'm not certain.
<derdon>
ok
<derdon>
same behaviour :S
<hcarty>
The two could have the same result, that is.
<hcarty>
Then the ; does clear it up, though I think let () = ... in would be easier to read/interpret later on
<derdon>
no error messages now. but when I run my programm with ``./creoleConverters.native testfile``, the content of testfile will be displayed
<derdon>
which is not what I want
<hcarty>
That's a bug I can't help with right now :-) But I'm glad it compiles for you.
ccasin has joined #ocaml
<derdon>
hcarty: ok. but I thank you anyway cuz you could help me to compile the code succesfully :)
<hcarty>
derdon: I'm happy I could help
alexyk has quit [Quit: alexyk]
alexyk has joined #ocaml
avsm has joined #ocaml
<bitbckt>
Has anyone ever used Http_client from ocamlnet on an HTTP stream?
rn114 has joined #ocaml
robthebob has joined #ocaml
rn114 has quit [Client Quit]
<robthebob>
hi all
alexyk has quit [Client Quit]
<robthebob>
i'm trying to compile a custom toplevel with a syntax extension that i have written, but it is not working
<robthebob>
the normal -package switch doesnt seem to have any effect (Reference to undefined global `Pa_infix')
<robthebob>
this extension works fine interactively from the toplevel (that is, if I set it up and then #use "test.ml";;) but not if I run ocaml test.ml with a #load "dollar.cmo" at the top
<robthebob>
id be happy to paste the code/command lines im trying if that would help
_andre has joined #ocaml
theDroggl has quit [Remote host closed the connection]
ttamttam has joined #ocaml
rwmjones has joined #ocaml
<mfp>
robthebob: I'm not sure it's actually possible to build a toplevel with a built-in syntax extension
<mfp>
as opposed to shipping a normal toplevel + the .cmo and .cmi for the extension and a small script to load it
<robthebob>
mfp, right well based on past experience if you dont know i dont think i'll try!
<robthebob>
however, i think i should be able to run it through the toplevel noninteractively, with the same commands in the script file
<mfp>
yes
<mfp>
you can just have a dummy toplevel.sh that does toplevel -init load_my_syn_ext.ml
<mfp>
with the required #use "topfind" + #directory "..." + #camlp4o + #load "pa_mysyn.cmo";; directives
<robthebob>
hmm, i'm trying that but it doesn't behave the same the three different ways:
<robthebob>
1. run 'ocaml' and enter the commands manually
<robthebob>
2. 'ocaml -init test.ml'
<robthebob>
3. 'ocaml test.ml'
<robthebob>
only the first works
<robthebob>
the other two do not respect the extension
<robthebob>
so version 1 gives val t : int = 4, while the others give: File "test.ml", line 11, characters 15-19:
<robthebob>
Error: This expression has type int -> int
<robthebob>
but an expression was expected of type int
prince_ has quit [Ping timeout: 258 seconds]
prince_ has joined #ocaml
<robthebob>
ugly but interestingly this works: ocaml -I `ocamlfind query pa_do` -I +camlp4 dynlink.cma camlp4o.cma pa_infix.cmo pa_dollar.cmo test.ml
mbac has quit [Quit: fww]
_unK has joined #ocaml
ftrvxmtrx has joined #ocaml
ttamttam has quit [Quit: Leaving.]
itewsh has joined #ocaml
_andre has quit [Quit: *puff*]
Snark has quit [Quit: Ex-Chat]
avsm has quit [Quit: Leaving.]
Associat0r has quit [Quit: Associat0r]
oriba has joined #ocaml
oriba has quit [Client Quit]
<travisbrady>
How are values printed in the toplevel? I have a data type and I just want a quick way to show it ala 'deriving Show' in Haskell. How does one achieve this?
ulfdoz has quit [Ping timeout: 264 seconds]
<hcarty>
travisbrady: There is a library + syntax extension call Deriving. Also, Batteries + Extlib have dump which dumps the internal representation
synod has joined #ocaml
<hcarty>
travisbrady: sexplib is another option. You can write custom toplevel printers. And Batteries has a very nice Batteries.Print (or BatPrint) module which lets you define custom printers for any type and use them with a super-duper-printf-like syntax
<synod>
When I do "#use "topfind";" on os x 10.6 with macports, I get errors about findlib's cma's disagreeing with ocaml over interfaces. Help?
sramsay has joined #ocaml
sramsay has quit [Client Quit]
<hcarty>
synod: I'm not familiar with OCaml on osx or macports, but it sounds like findlib and OCaml are out of sync
<hcarty>
Perhaps OCaml was recompiled but findlib wasn't, for example
<travisbrady>
hcarty: thank you
<synod>
hcarty: that's my understanding but no updates have occurred
_unK has quit [Remote host closed the connection]
ftrvxmtrx has quit [Ping timeout: 248 seconds]
Yoric has quit [Quit: Yoric]
synod has quit [Quit: Page closed]
ccasin has quit [Ping timeout: 264 seconds]
jgrozave has joined #ocaml
<jgrozave>
I've got a fun question
<jgrozave>
Have any of you ever seen, when trying to compile ocaml on mingw, anything get converted from something like this "c:/mingw/bin/tk85.dll c:/mingw/bin/tcl85.dll -lws2_32" to something like this "c;C:\mingw\mingw\bin\tk85.dll c;C:\mingw\mingw\bin\tcl85.dll -lws2_32"
<jgrozave>
notice the extra c and semi-colon at the beginning
<jgrozave>
and an extra mingw
fraggle_ has quit [*.net *.split]
fabjan has quit [*.net *.split]
nejimban has quit [*.net *.split]
fraggle_ has joined #ocaml
fabjan has joined #ocaml
nejimban has joined #ocaml
fabjan has quit [Ping timeout: 244 seconds]
fabjan has joined #ocaml
fraggle_ has quit [Ping timeout: 244 seconds]
fraggle_ has joined #ocaml
<jgrozave>
okay apparently it's a problem with gcc
itewsh has quit [Quit: There are only 10 kinds of people: those who understand binary and those who don't]
<jgrozave>
this program when run with the single argument of "C:/ :" will output "arg1: c;C:\mingw"
<jgrozave>
how fantastic is that!
fremo__ has quit [Read error: No route to host]
<jgrozave>
it's apparently converting anything that looks like a unix path into a windows style path
julm has quit [Ping timeout: 240 seconds]
<jgrozave>
"/bin:/usr/bin:/usr/local/bin" turns into "C:\mingw\bin;C:\mingw\bin;C:\mingw\local\bin"
<jgrozave>
how fantastic
julm has joined #ocaml
fremo__ has joined #ocaml
__mariu__ has joined #ocaml
__mari___ has joined #ocaml
__mariu__ has quit [Read error: Connection reset by peer]
__marius__ has quit [Ping timeout: 240 seconds]
julm has quit [Ping timeout: 260 seconds]
fremo__ has quit [Read error: No route to host]
emmanuelux has joined #ocaml
robthebob has quit [Remote host closed the connection]
elehack|afk is now known as elehack
fraggle_laptop has quit [Ping timeout: 248 seconds]
jonrafkind has joined #ocaml
theDroggl has joined #ocaml
<jonrafkind>
if I have (List.map f stuff) where f can either return something of type t or throw an exception but I just want to ignore exceptions whats a reasonable thing for `f' to return?
<jonrafkind>
since i have to return something of type t I cant just return false or some other 'nil' value
<jgrozave>
i think you just answered your own question
<jgrozave>
have f return option t
<jonrafkind>
ohh right options, i forgot about those
<jgrozave>
so it returns Some val or None
<jgrozave>
no problem
<jgrozave>
jonrafkind: you wouldn't happen to know anything about MSYS would you?
<jonrafkind>
I know to stay away from it :)
<jgrozave>
yeah it sucks
<jonrafkind>
yea, big time
<jonrafkind>
are you dealing with autotools?
<jgrozave>
trying to compile ocaml eventually leads to some sort of argument like so "c:/mingw/bin/tk85.dll c:/mingw/bin/tcl85.dll -lws2_32"
<jonrafkind>
for my own windows development I just use cmd + mingw + scons
<jonrafkind>
in C at least
<jgrozave>
which it then turns into "c;C:\mingw\mingw\bin\tk85.dll c;C:\mingw\mingw\bin\tcl85.dll -lws2_32"
Asmadeus has quit [Read error: Operation timed out]
<jgrozave>
hmm I guess that would work as well...
<jonrafkind>
as long as you dont need configure
Asmadeus has joined #ocaml
<jgrozave>
oh i suppose you do need either msys or cygwin to get configure
<jonrafkind>
cygwin is almost as bad as msys, but its tolerable for some things
<jgrozave>
i was using cygwin but then realized that everything was requiring cygwin.dll
<jgrozave>
so i changed over and now msys path conversion is biting me in the ass
__mari___ has quit [Remote host closed the connection]
fraggle_laptop has joined #ocaml
ftrvxmtrx has joined #ocaml
Arthur_Rainbow has joined #ocaml
<Arthur_Rainbow>
Hello
<Arthur_Rainbow>
Does someone know if there is a good way to put oCaml code in LaTeX ?
<Arthur_Rainbow>
I have trouble using code/algorithm package because of the match with ->. And with verbatim because I would also like to be able to use mathematical symbols
<jgrozave>
what you want is commandchars
<jgrozave>
it's an argument to verbatim: \begin{Verbatim}[commandchars=\\\{\}]
<jgrozave>
then you can go ahead and us "\" to indicate a command in the verbatim
<jgrozave>
if you did \begin{Verbatim}[commandchars=\\\{%}]
<jgrozave>
then % would become the command and you'd do something like "int i = %sqrt{4}" or something like that
<jgrozave>
i'd suggest sticking with \ to make it all seem like LaTeX unless \ is one of the characters you want to use in your verbatim code
<Arthur_Rainbow>
Is $ supposed to be a comment ? If I want to insert a greek letter, I would do \$\phi\$ ?
<Arthur_Rainbow>
jgrozave: thank you for your help
<jgrozave>
hmm i'm not sure about $ but there must be a command for doing math
<Arthur_Rainbow>
I will try to have a look then, thank you
__marius__ has joined #ocaml
<jgrozave>
Arthur_Rainbow: what i would do is use the \[ and \] commands
jonrafkind has left #ocaml []
__marius__ has quit [Remote host closed the connection]
<Arthur_Rainbow>
what does those commands do ?
__marius__ has joined #ocaml
<jgrozave>
actually i'm not quite sure if that would work either...
<jgrozave>
they are equivalent to $ $
<Arthur_Rainbow>
(sorry for asking so much question, but \[\] would be pretty hard to google :s
<jgrozave>
technically $$ shouldn't be used
<jgrozave>
why don't you just try it out first?
<jgrozave>
see if that works
<jgrozave>
one way that would probably work is to define your own command to print whatever math you want
<jgrozave>
and then call that function in the verbatim
<jgrozave>
because i'm not sure if the $$ or \[\] or even a \begin{equation}...\end{equation} type commands would work in a verbatim
<jgrozave>
but you can play around i suppose
<jgrozave>
well good luck
jgrozave has quit [Quit: Page closed]
<Arthur_Rainbow>
I'm trying, but it seems latex doesn't know Verbatim, and with verbatim, it prints the [commandchar=\\\{\}]