<companion_cube>
is there a way, with Format, to have some prefix printed at the beginning of lines?
<companion_cube>
for instance, when pretty-printing a value with a comment token at the beginning
<flux>
I think you can make a custom Format function with (maybe, just guessing from experience with Printf) with Format.ksprintf
<pippijn>
formatting is such a hack in ocaml :(
<pippijn>
I like cyclone's approach with automatic boxing into an ADT
<orbitz>
cyclone, the C derivative?
<pippijn>
yes
adotbrown has quit [Ping timeout: 246 seconds]
<orbitz>
they extended it wtih ADTs? I always just associated it with safer pointers
<pippijn>
it has ADTs, pattern matching (really good one), local type inference, various pointer types (non-null/nullable/arithmeticable/...), compile time checking of static assertions using control and data flow, preconditions, postconditions, type invariants, ...
<pippijn>
it has a *lot*
<pippijn>
it's a pretty awesome language
mika1 has quit [Quit: Leaving.]
mika1 has joined #ocaml
<pippijn>
orbitz: just making pointers more cumbersome would never get any acceptance
<pippijn>
orbitz: sadly, cyclone didn't get much acceptance, at all :(
<pippijn>
I actually forked it and made it work on modern systems, about a year and a bit ago
<pippijn>
but the compiler code is quite bad
<pippijn>
very high module interdependency
<flux>
should rewrite it in ocaml ;-)
<pippijn>
it's written in cyclone
<pippijn>
which is much cooler
<pippijn>
being self-hosting is great
<flux>
sure
<pippijn>
rewriting that thing to do what it can do now is a lot of work
leoncamel has quit [Quit: WeeChat 0.3.9.2]
<flux>
but, it would be a more believeable language if it had two implementations!
<flux>
ocaml only has one :(
<pippijn>
I've considered it
<pippijn>
actually I'm still considering it
<pippijn>
it's always in the back of my head
<pippijn>
I'd have a more global form of type inference, though
<pippijn>
the one cyclone currently implements is "let foo = blah;" and "let foo; func(foo);"
<orbitz>
pippijn: We can hope for a brave future with Clay maybe
<orbitz>
bah i hate calling that type inference
<pippijn>
it is type inference
<pippijn>
let foo = blah; is trivial
ontologiae has quit [Ping timeout: 264 seconds]
thomasga has joined #ocaml
leoncamel has joined #ocaml
ontologiae has joined #ocaml
fantasticsid has joined #ocaml
cago1 has joined #ocaml
cago has quit [Read error: Connection reset by peer]
mcclurmc has joined #ocaml
beckerb has quit [Quit: Konversation terminated!]
beckerb has joined #ocaml
fasta_ is now known as fasta
cago1 has quit [Ping timeout: 276 seconds]
cago has joined #ocaml
lusory has quit [Quit: leaving]
lusory has joined #ocaml
chambart has joined #ocaml
osa1_ has joined #ocaml
osa1 has quit [Read error: Connection reset by peer]
fantasticsid has quit [Quit: ERC Version 5.3 (IRC client for Emacs)]
yacks has quit [Quit: Leaving]
travisbrady has joined #ocaml
Fullma has joined #ocaml
nicoo has quit [Ping timeout: 248 seconds]
nicoo has joined #ocaml
nicoo_ has joined #ocaml
q66 has joined #ocaml
ttamttam has joined #ocaml
nicoo_ has quit [Quit: Read error: Connection reset by Hadopi]
darkf has quit [Quit: Leaving]
ttamttam has left #ocaml []
djcoin has joined #ocaml
hkBst has quit [Quit: Konversation terminated!]
mattrepl has joined #ocaml
gnuvince has quit [Quit: brb]
gnuvince has joined #ocaml
cago has quit [Quit: Leaving.]
Kakadu has quit []
cago has joined #ocaml
tac has joined #ocaml
mye has quit [Quit: mye]
tianon has quit [Quit: "I'm a very important man. I've got a tower!"]
tianon has joined #ocaml
cago has left #ocaml []
mika1 has quit [Quit: Leaving.]
smondet has joined #ocaml
UncleVasya has quit [Quit: UncleVasya]
beckerb has quit [Quit: Konversation terminated!]
Kakadu has joined #ocaml
tianon is now known as AdmWiggin
AdmWiggin is now known as tianon
weie_ has quit [Read error: Connection reset by peer]
weie has joined #ocaml
cods has quit [Changing host]
cods has joined #ocaml
Yoric has quit [Ping timeout: 240 seconds]
Cyanure has joined #ocaml
travisbrady has quit [Quit: travisbrady]
yacks has joined #ocaml
thomasga has quit [Quit: Leaving.]
ollehar has joined #ocaml
<ollehar>
any vim users here?
<rks_>
yes, me
<rks_>
why?
<ollehar>
I have a problem. when typing $make project in bash, it compiles. when mapping from vim <Esc>:!make project<Enter>, it sais no rule to make project.
<rks_>
are you sure you started vim in the same directory which you run make from?
<ollehar>
yes
<rks_>
well then, I can't help you :'
<ollehar>
ok, thanks anyway
<rks_>
one question though
<rks_>
why use « :!make » and not just « :make » ?
<ollehar>
hm I don't know
<ollehar>
is it the same?
<rks_>
kinda
<ollehar>
woa, when I write ":make" only it compiles fine...
<rks_>
it runs make, but vim gets a list of errors
<rks_>
(possibly empty)
<rks_>
and allows you to jump to them quickly
<rks_>
":h make" for more information :p
<ollehar>
cool, even for ocaml?
<rks_>
I think so
<rks_>
(but I can't promise anything, maybe someone else will confirm)
<ollehar>
ok, thanks for your help!
<rks_>
well, I didn't help much, but you're welcome :p
mcclurmc has quit [Ping timeout: 264 seconds]
mattrepl has quit [Quit: mattrepl]
ontologiae has quit [Ping timeout: 248 seconds]
travisbrady has joined #ocaml
yacks has quit [Quit: Leaving]
ulfdoz has joined #ocaml
mye has joined #ocaml
ahokaomaeha has joined #ocaml
mcclurmc has joined #ocaml
_andre has quit [Read error: No route to host]
_andre has joined #ocaml
Yoric has joined #ocaml
toolslive has joined #ocaml
pkrnj has joined #ocaml
<toolslive>
hi, I just reinstalled opam and I'm fighting my way through the collateral...
<toolslive>
the installation of one of my packages started failing with:
<toolslive>
"E: Malformed log file"
<toolslive>
googling pointed me towards oasis but my package does not use oasis to get built at all.
mattrepl has joined #ocaml
<thelema>
yes, that's an oasis error
<thelema>
what's the command that's being run that results in this error?
<toolslive>
ah wait. I'm looking at the opam description, but that just points to the github repo
<toolslive>
and the package there does use oasis.
<toolslive>
so I guess I have to pursuade the maintainer to regenerate his _oasis file then?
<thelema>
or tweak the opam description to add 'oasis setup' to the install commands
oriba has joined #ocaml
<thelema>
and install oasis
mattrepl has quit [Read error: Connection reset by peer]
mattrepl_ has joined #ocaml
mattrepl_ has quit [Write error: Connection reset by peer]
mattrepl has joined #ocaml
mattrepl has quit [Remote host closed the connection]
mattrepl has joined #ocaml
ulfdoz has quit [Ping timeout: 255 seconds]
<toolslive>
ow. I don't need the package in my dev repo anymore since someone cloned my fork and put it in the official repo as well.
<toolslive>
being able to throw away your workarounds gives a good feeling. anyway, thx for the input
<toolslive>
clarification: your OWN workarounds ;)
ottbot has quit [Ping timeout: 276 seconds]
<toolslive>
Since I'm here now, I have another question as well.
<toolslive>
I made a monad functor to be able to not only run my code with Lwt, but also synchronized. ( with identity >>= and return)
<toolslive>
I have seen others (in mirage for example) have done the same. The question is. has anybody been able to fidle in async as well?
<toolslive>
the purpose is of course to be able to switch easily ;)
answer_42 has quit [Ping timeout: 276 seconds]
<thelema>
toolslive: there's some important semantic differences between lwt and async; people have done what you're suggesting, but I don't think it turned out as well as hoped
<thelema>
iirc, there's some of avsm's code that has this
<toolslive>
iirc baarskeerder had it first and anil copied that approach the (sync & lwt) but I don't think he managed to fit in async
<toolslive>
indeed they are way different.
<toolslive>
can anyone clarify as the reasons they are so different, interface wise, as they both merely want to be a concurrency monad.
stevej has joined #ocaml
tac has left #ocaml []
ulfdoz has joined #ocaml
maufred has joined #ocaml
maufred has quit [Client Quit]
djcoin has quit [Quit: WeeChat 0.3.9.2]
<gnuvince>
How much space does a bool array take up? Is it 1 bit per element + overhead of the array headers, or 1 pointer per element?
<zorun>
afaik, bool are not boxed
<zorun>
so they are stored directly in the array
<zorun>
they probably use 8 bits of memory, though
<thelema>
yes, bool are primitive values.
<thelema>
all values take one word (32 or 64 bits)
<zorun>
do they?
<thelema>
yes
<thelema>
well, there's a special case for float arrays
<thelema>
but no special case for booleans
<zorun>
okay
<thelema>
gnuvince: if you need a packed bool array, try BatBitSet
<thelema>
companion_cube: maybe a better test is summing 1..n
<thelema>
making a very large int list in memory will have severe cache effects
<thelema>
Enum will probably lose this as well, because of the overhead of mutation
<companion_cube>
I have both tests :)
<companion_cube>
it's in bench.ml in the master branch of Sequence
<companion_cube>
(on github)
<thelema>
I mean without the list
<companion_cube>
but the gap between Enum and Sequence is smaller for the sum
<companion_cube>
oh
<thelema>
maybe you're just comparing your unrolled list to enum's non-unrolled list
<thelema>
Of course we'd appreciate improvements to Enum
<companion_cube>
no, I create a big list, and compare Enum.fold and Sequence.fold on List.enum l and Sequence.of_list l
<thelema>
(for the force test)
<companion_cube>
you think I can adapt the unrolled list to Enum?
<companion_cube>
(in Batteries or in ExtLib?)
osa1_ has quit [Ping timeout: 246 seconds]
<thelema>
yes, I'd accept it in Batteries
<thelema>
assuming force performance goes up and it passes tests
<thelema>
grr, need more tests for enum
mye has joined #ocaml
<hcarty>
def-lkb: I'm having an odd issue with merlin on a CentOS 6 installation. The system Python version is 2.6 which doesn't include one of the classes used by merlin.py.
<thelema>
it would replace BatEnum.MicroLazyList
<thelema>
hcarty: wrong channel, I think
<thelema>
err, merlin - the new editor plugin?
<hcarty>
thelema: Nope! :-) Well, maybe. But this is for the merlin vim/emacs helper.
osa1_ has joined #ocaml
<hcarty>
thelema: Yes
<thelema>
I didn't realize python was involved.
<thelema>
shame
<companion_cube>
python is involved for the vim plugin, I think :)
<hcarty>
def-lkb: To work around this I tried to build a new Python version (using pythonbrew) and a new vim binary pointing to the updated Python.
<companion_cube>
thelema: good! let me write this in Batteries then :)
<hcarty>
companion_cube: Indeed :-)
<hcarty>
def-lkb: merlin now half-works. I can see types (\t, \n, \p), :Use packages and .merlin project files.
<hcarty>
def-lkb: But omnicomplete always says 'Pattern not found'
mattrepl has quit [Quit: mattrepl]
<hcarty>
def-lkb: Finally, this same vim configuration works on an Ubuntu 12.04 machine with (native) vim 7.3 and Python 2.7. Any suggestions for where to start troubleshooting?
<companion_cube>
there should be an opam bot here...
<hcarty>
def-lkb: Finally finally - thanks for merlin! On my Ubuntu box where it works, it's amazing.
<hcarty>
thelema: The python code is for the vim <-> OCaml interactions as companion_cube guessed. I'm will to put up with a bit of python for a better OCaml world :-)
<hcarty>
s/will/willing/
<thelema>
hcarty: I'm putting up with elisp for the same goal, so I guess it's all good
<companion_cube>
thelema: ok, I'm going to try to rewrite MicroLazyList with unrolled lists
<invariant>
thelema, elisp has an extremely interactive debugger.
<invariant>
thelema, how can you possibly not like elisp?
<thelema>
invariant: need more type safety
<invariant>
thelema, for what purpose?
<invariant>
thelema, it's not like you are going to land an airbus with it.
<thelema>
to keep me from making as many mistakes
<invariant>
You learn from your mistakes and there isn't much safety in doing things with text.
<invariant>
If you have an off by one error, you would have also gotten it in OCaml.
ottbot has quit [Ping timeout: 252 seconds]
mattrepl has joined #ocaml
<thizanne>
invariant: so safe and working programs are only to be used when there are lives in danger ?
<invariant>
thizanne, I keep forgetting that there are programmers who make mistakes.
<invariant>
thizanne, sorry, *all of you* need to use those type systems ;)
<thizanne>
I personnally meet human programmers all day, so I don't forget it
osa1_ has quit [Ping timeout: 276 seconds]
weie has quit [Quit: Leaving...]
mye has quit [Quit: mye]
gustav_ has joined #ocaml
tac has joined #ocaml
mcsquiggedy has joined #ocaml
ulfdoz has quit [Ping timeout: 255 seconds]
travisbrady has quit [Quit: travisbrady]
travisbrady has joined #ocaml
tcpc has joined #ocaml
Kakadu has quit []
<companion_cube>
thelema: I don't understand why BatEnum.take is implemented this way
<companion_cube>
shouldn't it just be a wrapper around the enum, that counts how many elements have been consumed so far?
<thelema>
as opposed to without the rev?
<thelema>
I think it's supposed to be eager
<companion_cube>
oh
<thelema>
so that you can take 10, and then take another 10
<thelema>
and not get the same 10, or an intermixed 10 depending on consumption
<companion_cube>
so, if I do the unrolled list thing, I can also rewrite this to use it, I assume
<companion_cube>
oh, I see!
<thelema>
yes
<tcpc>
hi
<thelema>
tcpc: hi
<companion_cube>
maybe I can also add an Enum.rev the,
<companion_cube>
then*
<thelema>
definitely need tests for that one
<companion_cube>
sure
<companion_cube>
I'll do it afterwards, if modifying what is already implemented works well
<thelema>
if you have time, tests for other functions would be great
mcsquiggedy has quit [Ping timeout: 255 seconds]
<invariant>
Are any of the Jane Street employees also in this channel ever?
<thelema>
invariant: afaik, no
<invariant>
thelema, are they too awesome for that?
<invariant>
Or just busy raping counter parties, of cours.e
<invariant>
I think they call it "providing service":)
_so has joined #ocaml
LukeSun has joined #ocaml
<invariant>
What shell does merlin's ./configure expect? It seems to be wanting to print some colors, but they do not function.
<rks_>
hmm invariant, good question
<rks_>
I think we (merlin devs) are all using zsh
<invariant>
rks_, I also use zsh, yet it doesn't work.
<rks_>
but it should work with other shells (i.e. bash) as well
<invariant>
rks_, it calls /bin/sh
<invariant>
rks_, which is certainly not zsh on most systems.
<invariant>
rks_, Comment vous disez ceci en Francais?
<rks_>
invariant: I am wondering actually
<invariant>
rks_, C'est evident? ;)
<invariant>
rks_, nah, that's not what I mean.
<rks_>
?
<vpm>
The closest equivalent I can think of is "ça n'appellait pas de réponse".
<rks_>
yes vpm but, there's no name for such a statement, right?
<rks_>
(that's what I am wondering)
tac has left #ocaml []
<invariant>
vpm, that's way too nice.
<invariant>
The nice thing about the English variant is that it encodes a kind of smartassness.
emmanuelux has joined #ocaml
<invariant>
rks_, I am starting to wonder whether there is any common shell in which this works.
ottbot has joined #ocaml
<rks_>
well, it seems to work with bash
<vpm>
invariant: oh OK, thanks :-)
<rks_>
since that's what my sh points to
<invariant>
rks_, are you saying that it displays colors?
<invariant>
rks_, which terminal emulator?
<rks_>
yes it does
<rks_>
it works with both urxvt and xfce-terminal
adotbrown has joined #ocaml
<invariant>
rks_, it doesn't for me in those environments.
<invariant>
Anyway, if you want to use color, you can better setup the environment really, really well before doing so.
<rks_>
well invariant
<invariant>
Or just steal the cmake code.
<rks_>
it's open source
<rks_>
contribute :)
<invariant>
rks_, tput setaf 2 creates green which works in a lot more environments.
<invariant>
Meaning that I don't know of any environment in which it doesn't work.
<thizanne>
merlin works with me, and I didn't configure anything special
<invariant>
thizanne, it likely also works for me.
<invariant>
thizanne, this is just talking about the configure scripts.
<invariant>
script
<thizanne>
yes I can read
<thizanne>
maybe I should have said "the configure script works and prints correctly stuff"
<invariant>
I have no doubt that it works in some environments.
<invariant>
thizanne, do echo $TERM.
<thizanne>
rxvt-unicode-256color
<invariant>
Well, I don't know what it is then, but I am going to go with that it is simply wrong/non-standard.
<invariant>
Because other stuff does work.
<invariant>
(which is deployed more widely than merlin)
<thizanne>
"I can't get merlin to work, other people can, so they are wrong"
<thizanne>
I like this way of thinking
<invariant>
thizanne, the logic is that it doesn't work until it works for everyone.
<invariant>
thizanne, you must now the forall symbol, right?
<invariant>
know*
<invariant>
If you think it is correct, please point at some standard which says that it should work everywhere?
<thizanne>
I'm pretty sure there is not a single project working then
<invariant>
I would be more than happy to report the problem to whoever developed it.
anderse has quit [Quit: anderse]
<invariant>
thizanne, Emacs counts as something which works everywhere, imho.
<rks_>
invariant: that's your opinion
<thizanne>
I'm sure I can misconfigure my environment to make it not compiling
<rks_>
some could say it doesn't work, everywhere
<invariant>
rks_, I am not seeing anyone saying that with arguments.
<rks_>
(or anywhere* rather)
<invariant>
rks_, anyway, the burden of proof is on the author of that configure.
<invariant>
(as you cannot prove a negative)
<invariant>
Or well, I suppose you could, but the proof would be too long.
<rks_>
invariant: I never said it did work
<thizanne>
invariant: so far the only one complaining is you
<rks_>
i said it worked *for me*
<rks_>
and THEN
<rks_>
i said « contribute »
<invariant>
thizanne, I am not complaining.
<invariant>
rks_, I did, when I said how to properly solve the problem.
<rks_>
invariant: I meant, « send a patch :) »
<rks_>
anyway, invariant
<rks_>
let us know if you experience any other discomfort :)
<invariant>
rks_, otherwise nothing but praises sofar, since it built in 11 seconds without an error.
<rks_>
ok :)
<invariant>
rks_, well, I do hate the generic OCaml part where prefix doesn't mean the same thing as in all other configure scripts.
<invariant>
rks_, when I say that the prefix is foo, I don't want it to go anywhere near /usr/local/bin.
<invariant>
I don't understand how anyone designing a configure scripts can possibly think it is a good idea to break tradition.
<rks_>
what ?
<invariant>
It seems rather malicious to me or extremely incompentent.
<invariant>
incompetent
Yoric has quit [Ping timeout: 240 seconds]
<toolslive>
never assume malice where incompetence suffices (Napoleon)
<invariant>
rks_, ah, I see the problem already.
smondet has quit [Ping timeout: 255 seconds]
<rks_>
invariant: are you saying the configure script ignored your prefix?
<invariant>
rks_, it's just that the script contains no error conditions when there is unexpected input (like I provided foolishly).
<invariant>
rks_, I am saying that I made a mistake, which I now corrected, and which the script could have caught.
<invariant>
rks_, but it was entirely my fault otherwise.
<rks_>
got it
<def-lkb>
Hi
<def-lkb>
hcarty: Sorry I wasn't there
<def-lkb>
The python code indeed makes use of the Counter class only available on python2.7+… This is a problem on some systems, I will try to find an alternative.
chambart has quit [Ping timeout: 248 seconds]
<def-lkb>
invariant: what is your TERMinal ?
<invariant>
def-lkb, currently set to screen-256color
<def-lkb>
ok thx, strange that colors don't work as expected
<def-lkb>
but you're right, we should use tput…
<invariant>
def-lkb, c'est evident ;)
<rks_>
:D
<invariant>
Touche
<invariant>
I don't do accents, sorry.
<invariant>
Well, I can do é
<invariant>
Next to restaurant, touche must be my favorite word.
thomasga has joined #ocaml
asmanur has joined #ocaml
fraggle_ has quit [Remote host closed the connection]
Cyanure has quit [Remote host closed the connection]
toolslive has left #ocaml []
thomasga has quit [Quit: Leaving.]
tane has quit [Quit: Verlassend]
ottbot has quit [Ping timeout: 272 seconds]
mcsquiggedy has joined #ocaml
<companion_cube>
thelema: would you help me writing the benchmarks for the new implementation?
mcsquiggedy has left #ocaml []
<companion_cube>
I'm going to do a pull request
ontologiae has joined #ocaml
<companion_cube>
thelema: am I supposed to keep the old implementation, for comparison purpose?
ontologiae has quit [Ping timeout: 255 seconds]
chambart has joined #ocaml
travisbrady has quit [Quit: travisbrady]
mattrepl has quit [Quit: mattrepl]
<invariant>
def-lkb, I found a bug in merlin: (< start merlin-lock-point) merlin-lock-point can be nil, resulting in a a comparison between 1 and nil which is illegal.
<invariant>
def-lkb, line 411
<def-lkb>
I don't know much about emacs… Can you open a bug report?
<invariant>
def-lkb, no, you can just copy-paste that yourself into github. GNU Emacs 24.3.50.1, FYI.
<invariant>
It seems epidemic that people cannot write working Emacs Lisp modes, but well, let's blame the lack of a type system.
<invariant>
First there was typerex which had hundreds of issues, and nor merlin, which seemed to be more promising, but well...
<invariant>
now
<invariant>
(defvar merlin-lock-point nil ; this is already just waiting for a failure to happen.
<def-lkb>
you are welcome to write mode that works
<invariant>
Why not just use 0?
<def-lkb>
an emacs mode*
<invariant>
Position up to which merlin knows about"
<invariant>
Well, 0 is trivially true and would probably work.
Ptival has quit [Ping timeout: 248 seconds]
<invariant>
Introducing nil is just as wrong in Emacs Lisp as it would be in OCaml to represent this.
Ptival has joined #ocaml
vbmithr has quit [Read error: Operation timed out]
vbmithr has joined #ocaml
<invariant>
Fixing that problem points at yet another issue...