gildor changed the topic of #ocaml to: Discussions about the OCaml programming language | http://caml.inria.fr/ | OCaml Meeting 2011 http://bit.ly/eaZi1C | OCaml 3.12.0 http://bit.ly/aNZBUp
ymasory_ has joined #ocaml
avsm has joined #ocaml
arubin has joined #ocaml
alexyk has joined #ocaml
alexyk has quit [Read error: Connection reset by peer]
alexyk has joined #ocaml
alexyk has quit [Read error: Connection reset by peer]
rien has joined #ocaml
philtor has quit [Ping timeout: 240 seconds]
avsm has quit [Quit: Leaving.]
avsm has joined #ocaml
philtor has joined #ocaml
alexyk has joined #ocaml
alexyk has quit [Read error: Connection reset by peer]
alexyk has joined #ocaml
dnolen has joined #ocaml
enthymeme has quit [Ping timeout: 260 seconds]
alexyk has quit [Quit: alexyk]
alexyk has joined #ocaml
philtor has quit [Ping timeout: 258 seconds]
bohanlon_ has joined #ocaml
bohanlon_ has quit [Read error: Connection reset by peer]
alexyk has quit [Read error: Connection reset by peer]
sepp2k has quit [Quit: Leaving.]
alexyk has joined #ocaml
alexyk has quit [Read error: Connection reset by peer]
alexyk has joined #ocaml
alexyk has quit [Client Quit]
enthymeme has joined #ocaml
lopex has quit []
arubin has quit [Quit: arubin]
SoftTimur has quit [Remote host closed the connection]
boscop_ has quit [Ping timeout: 246 seconds]
boscop has joined #ocaml
Quant has joined #ocaml
rien has quit [Ping timeout: 252 seconds]
rien has joined #ocaml
Quant has quit [Changing host]
Quant has joined #ocaml
__marius__ has joined #ocaml
ulfdoz has joined #ocaml
vivanov has quit [Ping timeout: 240 seconds]
vivanov has joined #ocaml
Associat0r has quit [Quit: Associat0r]
ymasory has quit [Quit: Leaving]
vivanov has quit [Ping timeout: 264 seconds]
Jake__ is now known as mekajfire
vivanov has joined #ocaml
philtor has joined #ocaml
rien has quit [Ping timeout: 276 seconds]
rien has joined #ocaml
avsm has quit [Ping timeout: 250 seconds]
Yoric has joined #ocaml
dnolen has quit [Quit: dnolen]
tnguyen has joined #ocaml
ulfdoz has quit [Ping timeout: 260 seconds]
kurtosis has joined #ocaml
<kurtosis> does anyone have a good suggestion for a book for ocaml, perhaps particularly if I already have a lot of experience with nonfunctional programming languages?
enthymeme has quit [Quit: rcirc on GNU Emacs 23.1.1]
larhat has joined #ocaml
Modius has quit [Ping timeout: 258 seconds]
enthymeme has joined #ocaml
rien has quit [Ping timeout: 240 seconds]
Yoric has quit [Quit: Yoric]
rien has joined #ocaml
philtor has quit [Ping timeout: 260 seconds]
Snark has joined #ocaml
rien has quit [Ping timeout: 252 seconds]
rien has joined #ocaml
yezariaely has joined #ocaml
ikaros has joined #ocaml
ftrvxmtrx has quit [Quit: Leaving]
rien has quit [Ping timeout: 250 seconds]
rien has joined #ocaml
vivanov has quit [Ping timeout: 246 seconds]
yezariaely has left #ocaml []
tnguyen has quit [Remote host closed the connection]
vivanov has joined #ocaml
<adrien> in a makefile for godi, I'm trying to start a shell command, anyone knows how to do it? (the usual $(shell ...) won't work)
ftrvxmtrx has joined #ocaml
rien has quit [Ping timeout: 252 seconds]
rien has joined #ocaml
<adrien> simple solution: xargs
<adrien> instead of "ocamlfind install yacfe-light META $(shell find ...)", I do "find ... | xargs ocamlfind install yacfe-light META"
Yoric has joined #ocaml
Quant has quit []
kaustuv has joined #ocaml
edwin has joined #ocaml
<f[x]> which is ofcourse wrong because it doesn't guarantee how many times ocamlfind will be called
eikke has joined #ocaml
<kaustuv> Anyone know if (and how) js_of_ocaml deals with tail calls?
<kaustuv> never mind, was just answered
<mrvn> adrien: find -print0 | xargs -0 or find -exec ocamlfind install yacfe-light META +
ygrek has joined #ocaml
<mrvn> or $(shell ocamlfind install yacfe-light META $$(find ...) )
<f[x]> (and why not use $(wildcard ...) instead of shell utilities?
<adrien> f[x]: it should be well under the limit, even with low limits, but you're right
<f[x]> kaustuv, share the answer?
<mrvn> also an option
<f[x]> primary option I would say
<f[x]> most times software written in ocaml doesn't compile/run out of the box is because of build system portability holes
<adrien> f[x]: it's for godi, and godi's make doesn't have that (it's the makefile for godi itself, not the source that will be built)
<adrien> f[x]: iirc, yacfe's configure is a perl script
<f[x]> ah ok
<kaustuv> f[x]: the answer in the ocaml meeting was that it doesn't deal with them, but Javascript apparently will get tail calls soon
* f[x] runs away crying
<f[x]> kaustuv, thx
<adrien> and that's only inside godi, not the first issue I guess
<adrien> can someone on a 32bit system run "xargs --show-limits"?
<adrien> I'm interested in "POSIX upper limit on argument length (this system)"
<adrien> mrvn: you're right about -0, I'll change it (not required but it should be a habit)
<mrvn> adrien: Unix usualy has 128k for args+env.
<f[x]> > POSIX upper limit on argument length (this system): 2093314
<mrvn> +at least
<adrien> xargs says it's at least 4096 for posix
<mrvn> adrien: I believe that is the absolut lower limit in the standard
<adrien> yeah, I should try to find an old bsd system to see how low it can be
<adrien> I don't think ocamlfind can read the file list from something else than argv[]
milosn_ has joined #ocaml
milosn has quit [Read error: Connection reset by peer]
<mrvn> When compacting how does ocaml fix the pointer? Does a compaction freeze the world and do it all in one go or does it create some forwarding pointers while it moves things?
<kaustuv> compaction is atomic
<mrvn> I've been thinking of how one would do this in multicore mode. You can run mark&sweep on each core (assuming you have only a few, say <=64) but compacting objects that are alive on multiple cores would be problematic. I guess you would have to freeze all cores and do compaction on a single core.
enthymeme has quit [Quit: rcirc on GNU Emacs 23.1.1]
<kaustuv> You have much bigger problems than compaction on a multicore system. Basically, what is your strategy for handling pointers from one core's nursery to another's? If you prevent it by fiat, you have too many major cycles which reduces concurrency
avsm has joined #ocaml
Yoric has quit [Quit: Yoric]
Yoric has joined #ocaml
<mrvn> kaustuv: each block would have an array of collors, one entry per core. The mark&sweep would mark all data visible on that core. Any data that is unreachable on all cores can be freed.
<mrvn> each core would have a root set and IPC between cores has to take care that data gets greyed for the core thedata is send to.
<mrvn> This would be designed for starting multiple threads at startup and run them for long times. Not for creating mini threads all the time.
ygrek has quit [Ping timeout: 246 seconds]
ygrek has joined #ocaml
avsm has quit [Quit: Leaving.]
sepp2k has joined #ocaml
boscop has quit [Ping timeout: 246 seconds]
boscop has joined #ocaml
boscop has quit [Read error: Connection reset by peer]
boscop has joined #ocaml
Znudzon has joined #ocaml
vivanov has quit [Ping timeout: 260 seconds]
boscop has quit [Ping timeout: 246 seconds]
boscop_ has joined #ocaml
joelr has joined #ocaml
<joelr> How do you exit from a signal handler? Can you actually?
<flux> joelr, I think ocaml signal handlers are abstracted from the real signal handlers so that you can just do anything in them..
<flux> so you can exit, or you can throw an exception
<joelr> ok
<joelr> thanks
boscop_ has quit [Ping timeout: 246 seconds]
gio has joined #ocaml
<gio> hi
<gio> good morning
<gio> :)
cthuluh has quit [Quit: .]
<kerneis> kaustuv f[x] js_of_ocaml deals with tail calls (using trampolines IIRC)
<kerneis> what it does not handle is mutually recursive tail calls
<kerneis> (then again, you should check by yourself, I might be wrong)
<mrvn> you can always lift one of the functions.
cthuluh has joined #ocaml
mcclurmc_home has joined #ocaml
_andre has joined #ocaml
vivanov has joined #ocaml
myu2 has joined #ocaml
kaustuv has quit [Read error: Operation timed out]
myu2 has quit [Remote host closed the connection]
vivanov has quit [Ping timeout: 240 seconds]
eaburns has joined #ocaml
Jake_ has joined #ocaml
mekajfire has quit [Ping timeout: 240 seconds]
vivanov has joined #ocaml
Znudzon has quit [Ping timeout: 240 seconds]
ttamttam has joined #ocaml
oriba has joined #ocaml
oriba has quit [Quit: Verlassend]
Cyanure has joined #ocaml
stephanewustner_ has joined #ocaml
boscop has joined #ocaml
boscop has quit [Read error: Connection reset by peer]
myu2 has joined #ocaml
boscop_ has joined #ocaml
boscop_ has quit [Read error: Connection reset by peer]
boscop_ has joined #ocaml
ttamttam has quit [Remote host closed the connection]
boscop_ has quit [Read error: Connection reset by peer]
boscop has joined #ocaml
boscop has quit [Read error: Connection reset by peer]
boscop has joined #ocaml
avsm has joined #ocaml
boscop_ has joined #ocaml
boscop has quit [Read error: Connection reset by peer]
boscop_ has quit [Read error: Connection reset by peer]
avsm has quit [Ping timeout: 264 seconds]
oriba has joined #ocaml
boscop has joined #ocaml
<eaburns> Hi
<eaburns> does anyone know if there is a way to get OCaml to allocate records straight from the major heap instead of the minor heap?
<mrvn> eaburns: make them big enough :)
<eaburns> I thought of that but it won't work well here
<mrvn> that wasn't ment serious.
<eaburns> I have a program that is allocating a lot (millions) of records that are going to live for the entire duration of the program. I am worried that I am spending a lot of time copying these records from the minor heap to the major heap
boscop_ has joined #ocaml
avsm has joined #ocaml
boscop has quit [Ping timeout: 250 seconds]
<eaburns> mrvn: I figured :)
avsm has quit [Client Quit]
oriba has quit [Quit: Verlassend]
boscop_ has quit [Read error: Connection reset by peer]
myu2 has quit [Remote host closed the connection]
boscop has joined #ocaml
boscop has quit [Read error: Connection reset by peer]
boscop has joined #ocaml
boscop has quit [Ping timeout: 250 seconds]
boscop has joined #ocaml
dnolen has joined #ocaml
avsm has joined #ocaml
boscop has quit [Read error: Connection reset by peer]
boscop has joined #ocaml
rien has quit [Ping timeout: 240 seconds]
rien has joined #ocaml
boscop has quit [Read error: Connection reset by peer]
boscop has joined #ocaml
boscop_ has joined #ocaml
boscop has quit [Read error: Connection reset by peer]
boscop_ has quit [Read error: Connection reset by peer]
boscop has joined #ocaml
joelr has quit [Quit: joelr]
dnolen has quit [Quit: dnolen]
dnolen has joined #ocaml
boscop_ has joined #ocaml
kaustuv has joined #ocaml
boscop has quit [Ping timeout: 246 seconds]
boscop__ has joined #ocaml
avsm has quit [Quit: Leaving.]
boscop_ has quit [Ping timeout: 250 seconds]
boscop has joined #ocaml
boscop__ has quit [Ping timeout: 246 seconds]
lopex has joined #ocaml
boscop_ has joined #ocaml
boscop has quit [Ping timeout: 250 seconds]
boscop_ has quit [Ping timeout: 246 seconds]
kaustuv has quit [Ping timeout: 258 seconds]
ftrvxmtrx has quit [Quit: Leaving]
ftrvxmtrx has joined #ocaml
robinnn has joined #ocaml
robinnnsdasdasda has joined #ocaml
robinnnsdasdasda has quit [Client Quit]
robinnn has quit [Client Quit]
robinnnsdasdasda has joined #ocaml
robinnnsdasdasda has quit [Quit: Leaving]
dnolen has quit [Quit: dnolen]
smerz has joined #ocaml
kaustuv has joined #ocaml
ymasory has joined #ocaml
ymasory_ has quit [Remote host closed the connection]
gio has quit [Quit: gio]
Yoric has quit [Quit: Yoric]
Associat0r has joined #ocaml
Cyanure has quit [Remote host closed the connection]
kaustuv has quit [Ping timeout: 250 seconds]
philtor has joined #ocaml
boscop has joined #ocaml
boscop has quit [Ping timeout: 246 seconds]
Yoric has joined #ocaml
ymasory_ has joined #ocaml
ftrvxmtrx has quit [Quit: Leaving]
eikke has quit [Read error: Operation timed out]
larhat has quit [Quit: Leaving.]
vivanov has quit [Ping timeout: 260 seconds]
boscop has joined #ocaml
eikke has joined #ocaml
Yoric has quit [Quit: Yoric]
milosn_ is now known as milosn
pdhborges has joined #ocaml
thieusoai has joined #ocaml
enthymeme has joined #ocaml
vivanov has joined #ocaml
edwin has quit [Remote host closed the connection]
joelr has joined #ocaml
<joelr> has anyone used pg'ocaml lately?
<joelr> it fails to build for me
<joelr> rwmjones_afk: ping
ymasory_ has quit [Ping timeout: 246 seconds]
Braud has joined #ocaml
<Braud> hey! Does someone know how to use correctly ocamlc command line compilation ?!
<kerneis> Braud: what do you mean?
<kerneis> ocamlc -o output.file input.ml
<Braud> i mean that i'm trying to use a .cmo file and i get " is not a bytecode object file.
<Braud> "
<Braud> wich is weird because...it's a bytecode file
<kerneis> what does ocamlobjinfo says about it?
<Braud> (i made it like that: ocamlc -c file.ml)
<pdhborges> Braud: that creates an object file
<Braud> ocamljobinfo?!
<Braud> (an object file? and it's not what it's expected to be ?)
<pdhborges> yes
<Braud> so how could i fixe it..?
<pdhborges> Braud: ocamlc -c file.ml
<kerneis> so, you do: ocamlc -c test.ml && ocamlc test.cmo and it does NOT yield a.out?
<pdhborges> then ocaml file.cmo
<pdhborges> then test it
<Braud> in fact i want in a file2.ml use a function of a file1.ml
<Braud> so i compile file1.ml with ocamlc
<Braud> so i got a .cmo
<Braud> and in file2.ml i do load "file1.cmo"
<kerneis> and you call File.some_function from file2.ml
<Braud> yes
<pdhborges> load is for the top level only
<Braud> (i mean, i'd like to)
<kerneis> you cannot use #load when compiling (IIRC)
<kerneis> you must use "open File1;;"
thelema_ has joined #ocaml
<kerneis> or explicit module name: File1.some_function
<Braud> mmmh
<kerneis> then compile your various .ml files to .cmo, and then link them all
joelr has quit [Quit: joelr]
<kerneis> (or just try: "ocamlbuild file2.byte" which will do all the dependency work and compilation for you)
<Braud> and it'll make a .exe file ?
thelema has quit [Ping timeout: 252 seconds]
* thelema_ recalls ocamlbuild having problems on windows
thelema_ is now known as thelema
<Braud> (ocamlbuild hasn't worked for me)
<thelema> braud: try just "ocamlc file1.ml file2.ml -o file.exe"
<thelema> and in file2, you can do File1.foo to refer to things in file1.ml
pdhborges has quit [Quit: WeeChat 0.3.4]
<Braud> and in file2.ml i write # load "file1.cmo";;
<Braud> ?
<thelema> no
<thelema> #load is only for the toplevel
<thelema> you can add "open File1" if you want to omit the "File1." when referring to things from file1
<Braud> ok, i got a syntax error...
kaustuv has joined #ocaml
<Braud> i do this ;)
<thelema> remove the #
<thelema> and "addition" <> "add"
<Braud> ok
<kaustuv> ocaml meeting post mortem: the Mirage OS talk and project was *amazing*
<Braud> now i got the exe file
<thelema> kaustuv: nice
<kaustuv> thelema: xleroy claimed that batteries was up to its 1.0 release. I didn't want to interrupt to correct him.
* thelema looks forward to seeing the video
<Braud> and how can i launch a function now that i've my exe file ?
<Braud> (and in the case i've many functions in my file, how can i launch function5 for example ?)
<kaustuv> thelema: also, you were name dropped in, I think, five talks
thelema_ has joined #ocaml
<thelema_> wow. I didn't realize I was that infamous.
<thelema_> Braud: what do you mean by "launch function5"? you want to call function5 from the command line?
<Braud> ya!
edwin has joined #ocaml
<Braud> ('cause i've many functions in all my files)
<thelema_> I assume you want to pass arguments to function5?
<Braud> so if i want to test the function "draw" i'd like to call it
thelema has quit [Ping timeout: 240 seconds]
<Braud> yes
<mrvn> Braud: draw arg1 arg2 arg3 ...
<thelema_> Braud: sounds like you want to use your files in the toplevel, not compile them
<Braud> yes but it's for a school project and i've now many function
<Braud> and i'd like to have separate files!
<Braud> (or it's gonna be the mess)
<Braud> that's why i wanted to compile it...
<thelema_> you just need to load all the .cmo files into the toplevel in the right order
<mrvn> Braud: if you use addition instead of add in File2.ml then you have what you want, or not?
<thelema_> compiling it won't help - the executable you create doesn't automatically provide a command line to call your functions
<kaustuv> Braud: I would suggest reading chapter 11 of this: http://www.cs.caltech.edu/courses/cs134/cs134b/book.pdf
<Braud> but when i do # load "D:\\File1.cmo";; in the toplevel i get "File D:\File1.cmo is not a bytecode object file."
<thelema_> Braud: you generated File1.cmo with ocamlc -c file1.ml -o file1.cmo?
<Braud> yes
<Braud> and when i press enter in winCaml i get this error ;)
<kaustuv> #load "D:/file1.cmo";; (* might work, not sure *)
<kaustuv> In any case you would need "\\\\" to get two backslashes inside a string
<Braud> D:/File D:\\\\File D:\\File and D://File
<Braud> nothing works
<thelema_> Braud: can you do the same thing without the "d:\\" part?
<thelema_> chdir "d:\\";;
<kaustuv> is it File1.cmo or file1.cmo (is Windows case-sensitive?)
<Braud> well, what's the default path?
<thelema_> kaustuv: windows is not case sensitive
<kaustuv> Ah, I guess it's not a file not found error, but a file not bytecode error
<thelema_> ocamlc -c file1.ml -o d:\\file1.cmo
<thelema_> maybe it's an old .cmo file?
<kaustuv> I guess the obvious question is, is ocamlc and the toplevel part of the same ocaml distribution? IIRC you cannot mix and match cygwin/mingw32/win32 tools
<Braud> good question
<Braud> because i didn't find the WinCaml application with ocamlc
<Braud> and i use the toplevel with WinCaml
<Braud> and i compile with the ocamlc (downloaded with "Objectiv Caml")
sepp2k has quit [Ping timeout: 252 seconds]
enthymeme has quit [Quit: rcirc on GNU Emacs 23.1.1]
Braud has quit [Quit: Quitte]
ftrvxmtrx has joined #ocaml
sepp2k has joined #ocaml
Yoric has joined #ocaml
edwin has quit [Remote host closed the connection]
eaburns has left #ocaml []
edwin has joined #ocaml
pdhborges has joined #ocaml
joewilliams is now known as joewilliams_away
joewilliams_away is now known as joewilliams
Snark has quit [Quit: Ex-Chat]
joewilliams is now known as joewilliams_away
joewilliams_away is now known as joewilliams
jamii has joined #ocaml
kaustuv has quit [Remote host closed the connection]
ygrek has quit [Ping timeout: 246 seconds]
joewilliams is now known as joewilliams_away
pdhborges has quit [Ping timeout: 240 seconds]
pdhborges has joined #ocaml
_andre has quit [Quit: leaving]
jamii has quit [Read error: Connection timed out]
jamii has joined #ocaml
joewilliams_away is now known as joewilliams
joewilliams is now known as joewilliams_away
jamii has quit [Remote host closed the connection]
joewilliams_away is now known as joewilliams
sepp2k has quit [Quit: Leaving.]
joewilliams is now known as joewilliams_away
ymasory has quit [Quit: Leaving]
joewilliams_away is now known as joewilliams
ftrvxmtrx has quit [Remote host closed the connection]
edwin has quit [Remote host closed the connection]
ftrvxmtrx has joined #ocaml
ftrvxmtrx has quit [Ping timeout: 276 seconds]
ftrvxmtrx has joined #ocaml
Yoric has quit [Quit: Yoric]
dnolen has joined #ocaml
ftrvxmtrx has quit [Remote host closed the connection]
ulfdoz has joined #ocaml
enthymeme has joined #ocaml
Amorphous has quit [Ping timeout: 260 seconds]
ikaros has quit [Quit: Leave the magic to Houdini]
Amorphous has joined #ocaml
ftrvxmtrx has joined #ocaml
ymasory has joined #ocaml
Jake_ has quit [Ping timeout: 240 seconds]
Jake_ has joined #ocaml
pdhborges has quit [Quit: WeeChat 0.3.4]
philtor has quit [Ping timeout: 276 seconds]
smerz has quit [Quit: Ex-Chat]
joewilliams is now known as joewilliams_away
joewilliams_away is now known as joewilliams
cvp_ has joined #ocaml
<cvp_> Hey, dudes.
<cvp_> Tryin' to learn me some OCaml. Got a question.
<cvp_> Let's say I have a...
<cvp_> # type point = { x : int; y : int } ;;
<cvp_> and I have a bunch of functions that operate on it.
<cvp_> Then I make a...
<cvp_> # type pair = { x : int; y : int } ;;
<cvp_> and I have a bunch of functions for that, too.
<cvp_> How do I make a {x = 1; y = 1} (or whatever) and specify that it is a point, and not a pair?
<cvp_> Doing ({x=1; y=1} : point) gives an error saying the first thing is a pair.
<cvp_> Or, y'know, if there's another OCaml newbie channel, then point me there instead, please.
<cvp_> s/another //
philtor has joined #ocaml