<bernardofpc>
or even "simpler", consider g(a,b) = g(a,b-1) + g(a-1,b) or something like that
ollehar has quit [Ping timeout: 256 seconds]
RWan has quit [Quit: ChatZilla 0.9.90-rdmsoft [XULRunner 1.9.0.17/2009122204]]
<thizanne>
Leonidas: I don't know, but I think people use more and more things like opam and less and less AUR
<thizanne>
personnally I still prefer to use my distribution package manager so I try to make packages when I need something
<Leonidas>
thizanne: hmm, I can understand that. I thought about packaging ocp-indent but it has a rat-tail of dependencies and I don't feel like maintaining 5 PKGBUILDs for one package that I use :-/
darkf has joined #ocaml
<thizanne>
bernardofpc: what do you call "tree-tail recursion" ?
<thizanne>
Leonidas: doesnt it need only ocp-build ?
<bernardofpc>
a recursive function whose last *two* actions is to call itself on the left and right branches of the underlying tree
<bernardofpc>
and therefore needs only a stack of size <largest left branch>
<Leonidas>
thizanne: and ocp-build depends on typerex
<Leonidas>
plus ocp-build is not really a project, it is part of something else.
<Leonidas>
at that point I stopped caring
Neros__ has quit [Ping timeout: 258 seconds]
<Leonidas>
maybe if I have a boring afternoon sometime.
<thizanne>
but typerex is already in AUR
<thizanne>
iirc
<Leonidas>
oh, indeed it is. twice.
<thizanne>
:D
<thizanne>
bernardofpc: then ocaml will do it like you describe
<Leonidas>
one of them orphaned. maybe I can adopt it as well, doesn't make a difference anymore at this point, after I adopted 7 packages one day
<thizanne>
but you have indeed to write it explicitly tail-recursively
<bernardofpc>
thizanne: the point is that the compiler recognizes tree recursion as tail recursion and compile it that way
<thizanne>
it's only partly tail recursion
<bernardofpc>
without me having to explicitly write in tail-recursive form
<thizanne>
the first call is non terminal, the second one is, and it will be compiler that way
<bernardofpc>
(I'm thinking of GCC here)
<bernardofpc>
i can write return g(a,b-1) + g(a-1,b) ; and it compiles in a tree recursive form
<bernardofpc>
in OCaml, I have to explicitly write my accumulator
<bernardofpc>
that's one compiler otpimization that I find most useful from GCC
<thizanne>
I'm not sure you always want your compiler to make your functions tail-recursive when they are not
<bernardofpc>
why so ?
<thizanne>
iirc it will slow down your functions when tail-rec is not needed (on « small » entries)
<bernardofpc>
how ?
<thizanne>
I never read the assembly code to see how
<bernardofpc>
but do you have an example in mind ?
<bernardofpc>
of some function that is faster in non-tail-rec form
<thizanne>
no :)
<bernardofpc>
:(
<bernardofpc>
I can't even imagine what initialization cost a loop would incurr that is not contained in the procedure call overhead anyway
<bernardofpc>
and after the second call it should be a plain win
<thizanne>
in fact I might have mistaken with functions like map or things like that which need to rev to preserve the order
testcocoon has quit [Ping timeout: 240 seconds]
<bernardofpc>
ah
<bernardofpc>
that's a "feature" of List.map, I guess that Batteries.List.map uses %identity to make a tail-rec version that don't do rev
testcocoon has quit [Read error: Connection reset by peer]
madroach has quit [Ping timeout: 248 seconds]
madroach has joined #ocaml
testcocoon has joined #ocaml
gnuvince has joined #ocaml
testcocoon has quit [Quit: Coyote finally caught me]
Neros_ has quit [Ping timeout: 264 seconds]
pango_ has joined #ocaml
pango has quit [Ping timeout: 264 seconds]
groovy2shoes has quit [Quit: Computer has gone to sleep]
pyacks has joined #ocaml
cdidd has joined #ocaml
cdidd has quit [Ping timeout: 264 seconds]
cdidd has joined #ocaml
gnuvince has quit [Ping timeout: 255 seconds]
breakds has joined #ocaml
zip has quit [Read error: Connection reset by peer]
zip has joined #ocaml
gustav__ has joined #ocaml
gustav_ has quit [Ping timeout: 240 seconds]
derek_c has joined #ocaml
zip has left #ocaml []
derek_c has quit [Quit: Lost terminal]
answer_42 has joined #ocaml
answer_42 has quit [Quit: WeeChat 0.4.0]
leoncamel2 has quit [Ping timeout: 258 seconds]
leoncamel2 has joined #ocaml
Kakadu has joined #ocaml
testcocoon has joined #ocaml
ocp has joined #ocaml
breakds has quit [Quit: Konversation terminated!]
osa1_ has joined #ocaml
ocp has quit [Ping timeout: 252 seconds]
osa1__ has joined #ocaml
osa1_ has quit [Ping timeout: 264 seconds]
tane has joined #ocaml
wwilly has joined #ocaml
<Kakadu>
OMG, this opam....
<Kakadu>
there is a function git_of_string : 'a -> 'b
<Kakadu>
But! 'a <> string !!!
* Kakadu
shocked
<wwilly>
o/
Snark has joined #ocaml
nimred has quit [Quit: leaving]
nimred has joined #ocaml
ulfdoz has joined #ocaml
nimred has quit [Client Quit]
tootooroo has quit [Read error: Connection reset by peer]
tootooroo has joined #ocaml
UncleVasya has joined #ocaml
anderse has joined #ocaml
pango_ is now known as pango
<orbitz>
having to work with side-effecty code reminds you how terrible it is! (in this case I need to avoid unnecesary allocations so using strings in a very impure fashion)
<pippijn>
wmeyer: I'm going to write my masters thesis about it (re2ml)
<pippijn>
wmeyer: I will release it after
ollehar has joined #ocaml
eikke has joined #ocaml
hto has quit [Read error: Connection reset by peer]
q66 has joined #ocaml
eikke has quit [Read error: Operation timed out]
Neros_ has joined #ocaml
ttamttam has joined #ocaml
ulfdoz has quit [Read error: Operation timed out]
emmanuelux has joined #ocaml
ollehar has quit [Ping timeout: 245 seconds]
ollehar has joined #ocaml
wwilly has quit [Quit: Leaving]
smerz has joined #ocaml
awm22 has quit [Ping timeout: 240 seconds]
<ousado>
when using a some branch from the inria ocaml svn repo, is there a standard place to look for tests/usage examples for that branch? like, in experimental/AUTHOR, maybe?
<ousado>
s/a//
UncleVasya has quit [Ping timeout: 276 seconds]
weie_ has quit [Ping timeout: 256 seconds]
weie has joined #ocaml
leoncamel2 has quit [Ping timeout: 256 seconds]
groovy2shoes has joined #ocaml
<fasta>
Is there an ocaml mail server which only supports the basics that is easy to setup?
<fasta>
It should run on port 25, but otherwise I only care about sending e-mail.
<rks_>
(but you can build your server pretty easily with that)
<fasta>
rks_: yeah, well, no thanks :)
<rks_>
:D
<ousado>
you can take a look at haraka + js_of_ocaml
ulfdoz has joined #ocaml
<orbitz>
fasta: i've been considering making an SMTPd in ocaml this last week, not sure the big pay off thouhg
<fasta>
orbitz: I think I will just go with something that will forward to my ISP now as it is only for development.
<fasta>
orbitz: the only thing I don't like about e-mail servers is the complexity in setting up one.
<orbitz>
postfix is n't so bad IIRC
<fasta>
Once it is running it seems that it keeps on running with the exception of DOS attacks.
<bernardofpc>
+1 for postfix
<fasta>
orbitz: you still need to setup DNS for that to work.
<fasta>
In short, "e-mail" is complex.
<orbitz>
fasta: No you don't?
<bernardofpc>
/etc/hosts may be enough for you
<orbitz>
just set MX record in godaddy or wahtever
<bernardofpc>
if you want just to forward mail, you don't need much
<fasta>
orbitz: oh, well, I had to, because of $complexReason.
<fasta>
orbitz: but yes, usually you don't.
<ousado>
nicely configurable, easy to setup SMTP servers written in a language one might actually want to touch are quite rare
<ousado>
let alone extendible
<fasta>
ousado: what is that secret ATS project you are working on?
<orbitz>
To be fair, writing an smtpd in ocaml wouldn't help with much wit hthe last point :)
<orbitz>
there is also lamson
<ousado>
orbitz: extendible?
<ousado>
orbitz: how so?
<orbitz>
ousado: I know of few people that want to touch ocaml
<ousado>
errm.. well not as in popular, more as in "sane"
<orbitz>
I don't think many programmers think ocaml is sane
<ousado>
most programmers don't know it exists
<ousado>
orbitz: I'd rather take a look at *which* programmers use ocaml for what kind of stuff
sandybatman has joined #ocaml
<ousado>
fasta: what do you mean?
groovy2shoes has quit [Quit: Computer has gone to sleep]
leoncamel2 has joined #ocaml
sandybatman has left #ocaml []
pyacks has quit [Ping timeout: 276 seconds]
<fasta>
What virtualization solution do you use, if any?
<fasta>
I seem to find myself with the need to run multiple operating systems at the same time with networking in between.
<orbitz>
I use virtual box
<ousado>
I found vbox to be easiest to setup and test stuff
<fasta>
orbitz: and how do you 'deploy' e.g. a Linux VM?
<fasta>
orbitz: do you click, click, click or do you have some nice script to setup everything?
<ousado>
virtualbox has nice commandline tools
<orbitz>
fasta: I only really run one VM for most of my stuff
<orbitz>
if I needed a more complex setup i'd probably use charon
cthuluh has quit [Ping timeout: 245 seconds]
cthuluh has joined #ocaml
Yoric has joined #ocaml
pyacks has joined #ocaml
osa1__ has quit [Quit: Konversation terminated!]
UncleVasya has joined #ocaml
darkf has quit [Quit: Leaving]
RagingDave has joined #ocaml
smerz has quit [Ping timeout: 246 seconds]
groovy2shoes has joined #ocaml
Nahra has quit [Remote host closed the connection]
Nahra has joined #ocaml
<wmeyer>
ousado: I am thinking about just setting VM on my machine and I'd prefer relatively lightweight solution, I am only concerned about how much time I'll spend on configuring. The rest is not important. What do you use? This would be a windows vm.
mattrepl has joined #ocaml
<orbitz>
wmeyer: what host OS?
gnuvince has joined #ocaml
<orbitz>
hi gnuvince
<wmeyer>
orbitz: ubuntu
<orbitz>
wmeyer: virtualbxo works pretty well IME
<wmeyer>
orbitz: Ok, going to try
<wmeyer>
is there any wiki i can use to quickly look up?
<gnuvince>
orbitz: hi
<wmeyer>
gnuvince: hi
<orbitz>
wmeyer: top gogole htis should cover it
<wmeyer>
orbitz: are you sitting on ubuntu too?
<orbitz>
No, I run OS X and NixOS
eikke has joined #ocaml
UncleVasya has quit [Read error: Connection reset by peer]
zpe has joined #ocaml
mort___ has joined #ocaml
tane has quit [Quit: Verlassend]
anderse has quit [Quit: anderse]
zpe has quit [Remote host closed the connection]
hto has joined #ocaml
tootooroo has quit [Ping timeout: 240 seconds]
smerz has joined #ocaml
tootooroo has joined #ocaml
zpe has joined #ocaml
sgnb has quit [Read error: Connection reset by peer]
sgnb has joined #ocaml
awm22 has joined #ocaml
tootooroo has quit [Quit: Brain.sys has encountered a problem and needs to close. We are sorry for the inconvenience.]
zpe has quit [Remote host closed the connection]
zpe has joined #ocaml
tootooroo has joined #ocaml
breakds has joined #ocaml
zpe has quit [Remote host closed the connection]
wmeyer has left #ocaml []
cdidd has quit [Remote host closed the connection]
zpe has joined #ocaml
ttamttam has quit [Remote host closed the connection]