<hongboz>
to learn camlp4, another useful thing is to be familiar with ocamlbuild, I have a very powerful myocamlbuild.ml, the building process is extremely simple.
<dsheets>
oh, i see your elisp does not translate, you use camlp4of and camlp4rf of course
<dsheets>
what do you add to myocamlbuild.ml? i have been using _tags and it seems to handle syntax exts well
<hongboz>
dsheets: there's still some complexity as you will see
hongboz has quit [Ping timeout: 244 seconds]
ankit9_ has quit [Ping timeout: 246 seconds]
ankit9_ has joined #ocaml
leoncamel has quit [Ping timeout: 246 seconds]
leoncamel has joined #ocaml
bzzbzz has quit [Quit: leaving]
eni has joined #ocaml
eni has quit [Ping timeout: 264 seconds]
eni has joined #ocaml
pango_ has joined #ocaml
pango has quit [Ping timeout: 252 seconds]
<adrien>
morning
<madroach>
morning!
<madroach>
I'm at the moment trying to update ocaml ports on OpenBSD to ocaml 4.00.
<madroach>
Now while updating the postgresql library I'm wondering how should I compile libraries using threads? Wouldn't using -threads or -vmthreads force programs using this library to use the same?
<adrien>
in doubt, don't change anything to what is currently done
ankit9_ has quit [Quit: Leaving]
eni has quit [Ping timeout: 244 seconds]
avsm has joined #ocaml
hongboz has joined #ocaml
avsm has quit [Quit: Leaving.]
avsm has joined #ocaml
xcombelle has joined #ocaml
xcombelle has quit [Remote host closed the connection]
sepp2k has joined #ocaml
pango_ is now known as pangoafk
hongboz has quit [Ping timeout: 246 seconds]
edwin has joined #ocaml
avsm has quit [Quit: Leaving.]
avsm has joined #ocaml
xcombelle has joined #ocaml
UncleVasya has joined #ocaml
avsm has quit [Quit: Leaving.]
<UncleVasya>
Hi. I'm using OCaml 3.12 under Windows. While running my program in top level I use #load "str.cma";; #load "unix.cma";; in my source file. To compile program I do ocamlopt Unix.cmxa Str.cmxa myprog.ml -o myprog.exe. Before running ocamlopt I have to delete those #load lines from source. Is there a simple solution to make my prog work with both ocamlopt and top level without editing source?
edwin has left #ocaml []
milosn has quit [Read error: No route to host]
milosn has joined #ocaml
<flux>
unclevasya, well, I believe the only option is to have a script that generates either version from the other
<UncleVasya>
thanks
avsm has joined #ocaml
pangoafk is now known as pango
avsm has quit [Quit: Leaving.]
Guest11736 has quit [Ping timeout: 245 seconds]
avsm has joined #ocaml
Guest11736 has joined #ocaml
Anarchos has joined #ocaml
mk___ has joined #ocaml
mk___ is now known as mk270
mk270 has left #ocaml []
mk270 has joined #ocaml
<mk270>
what version of ocaml should i be using to compile opam? 4.00?
Anarchos has quit [Quit: Vision[0.9.7-H-090423]: i've been blurred!]
<fasta>
How do I write multi-line strings in OCaml?
<fasta>
"a\nb\nd" sucks
<flux>
"hello
<flux>
world"
<fasta>
flux: does that get me the new lines?
<flux>
yes
<fasta>
Great
<flux>
"hello\
<flux>
world"
<flux>
wont
<fasta>
Even better
<orbitz>
spaces infront after line break are also ignored, right?
<flux>
they are with \
<flux>
(they are ignored with \)
<orbitz>
Ah, i thought \ was how you brought them back, since it seems common to want to have indentation there that isn't part of the output
<fasta>
It's kind of odd that there isn't a GUI yet which simply admits that search engines are the way to go.
<fasta>
Because in reality there are so many GUIs which are too complex to find certain commands, such that in the end users end up asking a search engine anyway.
<fasta>
For example in Eclipse, to install uninstall something you need to 'Install new software...'.
<fasta>
I suppose everyone who can make GUIs must work for some company off-planet.
<orbitz>
mmmm pickled beets
<fasta>
Eclipse also shows a window when creating the window takes longer than the compilation.
<fasta>
It's like a total new level of fail.
<fasta>
Perhaps I should write a book about it and call it 'A New Kind Of Fail'.
<orbitz>
I have only used Eclipse breifly, I didn't find it very compelling except for exploring large java projects
<orbitz>
Is there anyway to 'prototype' a function in Ocaml so I can have all my API functions at top of .ml and my utility functions at bottom?
<flux>
well, put utility functions at the top, or in their own module :)
<fasta>
I installed the pgocaml package in Ubuntu. Now, how can I actually start using it?
<fasta>
For example utop doesn't show PG in its completions.
<fasta>
It would be fine if PGOCaml.connect () would work.
<flux>
there's a pdf describing how to use it
<flux>
PgOCaml is pretty nice if its limitations don't affect you
<fasta>
In the OCaml top-level, I can use it via #require "pgocaml";;
<fasta>
But how do I write that in some persistent place?
<flux>
you mean, when you want to compile a program?
<fasta>
flux: I basically just want to have a Python like script experience.
hongboz has quit [Ping timeout: 272 seconds]
<fasta>
flux: so, ocaml <some flags> foo.ml and have it working.
<fasta>
flux: and in particular, I would like the completion in this IDE working too.
<flux>
well, I have a few scripts that start like
<flux>
#!/usr/bin/ocaml
<flux>
#use "topfind";;
<flux>
#require "batteries";;
<flux>
(* ocaml code follows *)
<fasta>
flux: for example when I press Pervasives.<contol space>, it completes.
<fasta>
flux: but when I do PGOcaml. it doesn't.
<fasta>
flux: so, it appears that PGOCaml doesn't exist in any form.
<flux>
maybe its modules are built in a way that confuses the system that's providing the completions
<fasta>
flux: no, I don't think that's it, because for all native ones it works.
<flux>
I don't have such a completion system in Emacs, I use only completion that's based on the contents of current and other files open
<flux>
you mean utop's completion? I haven't used it
<flux>
maybe you need to tell utop that you're using some additional module
<flux>
although it would make sense that "#require" did that automatically..
<fasta>
flux: utop works now
<fasta>
Now I would like Eclipse to also work.
<orbitz>
Isn't pgocaml a bunnch of macros?
<fasta>
I cannot put require in .ml files, right?
<fasta>
I.e. those that don't start with a she bang
<orbitz>
Hrm?
<fasta>
#!
<thelema>
fasta: you can put #foo into scripts to be executed by the ocaml toplevel, you can't put them into compiled scripts.
avsm^away is now known as avsm
<fasta>
What do you need to do if you want to have one source file usable on the top level and in a compiled script?
<fasta>
I got it to complete now, but it seems that it doesn't work.
<fasta>
(I.e. only shows one entry, where for example 'connect' should also be listed)
<fasta>
I don't get how Common Lisp can have a development environment which does work, but at the same time none of the parametric polymorphism languages have working tools.
eni has joined #ocaml
<thelema>
fasta: don't.
<thelema>
OCaml isn't designed for the same file to be used both as a script and as a compiled program
<thelema>
common lisp's development environment is part of the runtime (just how the language works, AFAIK)
<thelema>
so the two get to evolve together, whereas ml better separates compiletime and runtime
avsm is now known as avsm^away
Anarchos has quit [Quit: Vision[0.9.7-H-090423]: i've been blurred!]
avsm^away has quit [Quit: Leaving.]
avsm has joined #ocaml
jamii has joined #ocaml
hongboz has joined #ocaml
hongboz has quit [Ping timeout: 264 seconds]
avsm is now known as avsm^away
wtetzner has joined #ocaml
wtetzner has quit [Client Quit]
wtetzner has joined #ocaml
avsm^away has quit [Quit: Leaving.]
jamii has quit [Ping timeout: 264 seconds]
oriba has joined #ocaml
xcombelle has quit [Quit: I am a manual virus, please copy me to your quit message.]
emmanuelux has joined #ocaml
emmanuelux has quit [Read error: Connection reset by peer]
emmanuelux has joined #ocaml
UncleVasya has quit [Read error: Connection reset by peer]
xcombelle has joined #ocaml
eni has quit [Ping timeout: 240 seconds]
xcombelle has quit [Quit: I am a manual virus, please copy me to your quit message.]
UncleVasya has joined #ocaml
Mnabil has quit [Ping timeout: 244 seconds]
eni has joined #ocaml
cdidd has quit [Quit: Leaving]
* rwmjones
wonders if there's a way to pay less than $200 to go to OUD ..
<thelema>
rwmjones: from the US? good luck.
<fasta>
OUD is Ocaml User ..... ????
<rwmjones>
the conference in sept
<fasta>
and Developers
<fasta>
How many people go there?
<rwmjones>
100s usually, but not at $US 200 a piece
<fasta>
Intro to Haskell 1000$. Haha
<fasta>
I have seen those before.
<fasta>
It's a waste of money.
<fasta>
The only way to learn any given subject is to make some effort.
<fasta>
Listening to some guy explaining things is a waste of time.
<fasta>
It's a good thing books have been invented.
<fasta>
Interactive books would even be better, though.
<rwmjones>
is there a way to killfile a user on irc?
<fasta>
rwmjones: you mean me?
<fasta>
rwmjones: yes
<olasd>
rwmjones: /ignore <user>
<fasta>
I could likely arrange an OCaml conference for 25$ per day per visitor.
<fasta>
I am not sure what the point of the 'ACM' is.
<fasta>
Their original goals seem to have nothing to do with what they are today.
<fasta>
My university was a member for probably since they started, but the digital copy of some article which was in the physical library was not available for me.
<fasta>
Yeah, that sounds totally like an organization who wants to advance computer science.
<fasta>
It sounds more like a corporation to me.
<olasd>
what's this drivel about, and how is it related to OCaml?
<fasta>
Just pointing out that it would be better to boycot anything related to the ACM>
<fasta>
olasd: the relevance should have been obvious, if you had read what I said.
<fasta>
olasd: do you call everything drivel which you don't understand?
<fasta>
It seems as if they weren't able to find enough interesting speakers, though.
<fasta>
A lot of those things have already been presented elsewhere.
<fasta>
And some of it is not state-of-the-art.
<fasta>
I don't really see the point in presenting something which isn't state-of-the-art. SIGGRAPH presentations don't have those flaws usually.
sepp2k has quit [Remote host closed the connection]
osa1 has joined #ocaml
mort___ has joined #ocaml
wtetzner has quit [Remote host closed the connection]
mort___ has quit [Quit: Leaving.]
oriba has quit [Quit: oriba]
Submarine has quit [Ping timeout: 246 seconds]
eni has quit [Ping timeout: 246 seconds]
wtetzner has joined #ocaml
<fasta>
I saw some reference to OCaml having some simple way to call C++ code. That was just a lie, right?
<fasta>
I.e. you still need to do extern C, etc. manualy?
<fasta>
manually*
<eikke>
fasta: sorry :-P
<fasta>
Steve Yegge wrote that in 2004.
<eikke>
(I'll be one of the OUD speakers, hope I'll be able to tell at least something interesting)
<fasta>
eikke: which talk?
<eikke>
Arakoon
<fasta>
eikke: ah, I liked your company blog post regarding distributed systems skill levels.
<eikke>
ah, thanks. was by my colleague (we're the only ones posting on that blog, and should write something new soon, been too long)
<fasta>
eikke: I'd hope everyone writing those is at level 4, myself :)
<fasta>
eikke: considering that those things are taught in undergraduate courses at good universities.
<eikke>
not exactly here in belgium afaik :-/
<fasta>
eikke: I will admit that only people with brains aced those courses.
<fasta>
eikke: or even took them to begin with.
<eikke>
afaik our system is less flexible w.r.t. available courses
<fasta>
Long live electives I suppose.
<eikke>
we have to choose some subjects, but not that many, and lots of them outside CS
<fasta>
eikke: how exactly is that system consistent? Against what kind of faults does it guard?
<eikke>
it's a fairly standard multi-paxos implementation
<eikke>
so it guarantees consistency across all nodes of a cluster as long as a majority of nodes is able to talk to each other during an update
<fasta>
eikke: and why is it worthy of presentation?
<eikke>
that's not up to me to decide :-D the whole thing was written using ocaml and lwt, we thought an experience report on using those for such application could be interesting, and appareantly others thought so as well
<eikke>
my colleague (the one from the 'levels' post) will present at CUFP as well
<fasta>
eikke: what kind of tools do you use? So far, it appears that all editors with some form of completion are broken.
<eikke>
I myself use plain vim without any completion or whatsoever, Romain uses Emacs with some REPL integration
<eikke>
we spend much more time thinking and at the drawing board than typing in an editor (except when playing around), so I don't really care about IDE-style "productivity helpers" :-P
avsm has joined #ocaml
<fasta>
eikke: if you bring new people on board, and you have a 1M lines code base, then it's going to be a huge waste of time for the new guy to get up to speed.
<fasta>
If he can just put his cursor on an identifier and see the documentation popup, that helps a lot.
<fasta>
(which incidentally some programming environments do have)
<eikke>
i guess. we dont have a 1M lines project (on its own) though ;)
eni has joined #ocaml
avsm has quit [Quit: Leaving.]
<fasta>
How are functors compiled in OCaml? Is it just a matter of duplicating the code for different invocations in the final assembly or is there some other more flexible solution chosen?
sivoais has quit [Ping timeout: 246 seconds]
eni has quit [Ping timeout: 250 seconds]
sivoais has joined #ocaml
<thelema>
no duplication of code - the types of the functor argument are used for typechecking, the values (including functions) are basically stored in a record that is used by the code inside the functor