<adrien>
you need to show the command-line used to build
<elfring>
For which software component would you like to determine build parameters?
<adrien>
everything?
nikki93 has joined #ocaml
ulfdoz has joined #ocaml
<elfring>
Have you got any experiences around the symbol "camlLazy"?
<adrien>
won't tell :)
<adrien>
you haven't told what you were doing and how
<adrien>
you've given 0 context
<elfring>
Are you interested to get the OCaml batteries (current software version provided by OPAM) working with the evolving application "Coccinelle"?
<adrien>
can you detail the issue
<elfring>
I would appreciate your advices for a topic like "Cooperation with OCaml batteries?".
ygrek has quit [Remote host closed the connection]
angerman has joined #ocaml
ygrek_ has quit [Ping timeout: 246 seconds]
<adrien>
might be an issue in batteries
<adrien>
would need to see a strace and/or ld.so's debug output
ygrek has joined #ocaml
ulfdoz has quit [Ping timeout: 246 seconds]
<adrien>
ah
<adrien>
would need to check "-linkall"
<adrien>
I need to leave now unfortunately
<adrien>
be back a bit later
<elfring>
The OCaml batteries can be loaded in other application contexts as expected also with my OPAM configuration.
<elfring>
I assume that my run time environment will need a few more tweaks just for the software "Coccinelle".
<adrien>
the main executable has to be linked with -linkall
<adrien>
-linkall
<adrien>
Force all modules contained in libraries to be linked in. If
<adrien>
this flag is not given, unreferenced modules are not linked in.
<adrien>
so if the cmxs needs lazy but the main executable doesn't and hasn't been created with -linkall then it won't be provided it
<adrien>
I really need to go now though my other lazy french people should be up soon
<adrien>
(I think I broke a small foot bone)
xianxu has quit [Ping timeout: 255 seconds]
<elfring>
Which of the two software parts would need the addition of the build parameter "linkall" eventually?
elfring_ has joined #ocaml
cyanure__ has joined #ocaml
elfring_ has quit [Client Quit]
elfring has quit [Ping timeout: 252 seconds]
maattdd has joined #ocaml
ikaros has joined #ocaml
elfring_ has joined #ocaml
elfring_ has quit [Client Quit]
elfring has joined #ocaml
Moataz-E has quit [Quit: Leaving]
cyanure__ has quit [Remote host closed the connection]
Kakadu has joined #ocaml
zpe has joined #ocaml
michel_mno_afk is now known as michel_mno
zpe has quit [Remote host closed the connection]
maattdd has quit [Ping timeout: 264 seconds]
zpe has joined #ocaml
zpe has quit [Ping timeout: 264 seconds]
csakatoku has quit [Remote host closed the connection]
xianxu has joined #ocaml
rand000 has joined #ocaml
nikki93 has quit [Remote host closed the connection]
xianxu has quit [Ping timeout: 264 seconds]
nikki93 has joined #ocaml
zpe has joined #ocaml
csakatoku has joined #ocaml
mika1 has joined #ocaml
ddosia has joined #ocaml
yacks has quit [Ping timeout: 264 seconds]
zpe has quit [Remote host closed the connection]
zpe has joined #ocaml
zpe has quit [Ping timeout: 252 seconds]
avsm has joined #ocaml
xianxu has joined #ocaml
AltGr has joined #ocaml
<adrien_oww>
elfring: the main executable
xianxu has quit [Ping timeout: 240 seconds]
yacks has joined #ocaml
<freling>
hi, I was wondering if it is possible for ocaml compilers to show detailled error messages with the source line like clang (http://clang.llvm.org/diagnostics.html)
<freling>
I'm using the version 4.01.0 but I don't know very well all options to pass to the compiler
<rom1504>
freling: by default, the ocaml compiler give a lot of detailled messages, a lot of things about type for example
<freling>
yes, but I would like the compiler to print the source line
<freling>
I often have to check with the column number
<rom1504>
oh ok, I don't know if it can do that, I don't think it can
<rom1504>
even gcc doesn't do that
ontologiae has joined #ocaml
<freling>
it does since 4.8 (and with color starting with 4.9)
<freling>
it's not a killer feature per se, but I find it more comfortable to read
claudiuc has joined #ocaml
<ygrek>
that makes sense only if one is literally reading compiler output, like in stone age
<ygrek>
most people who do not leave in the cave use editors that can jump to error location
<ygrek>
though that of course doesn't exclude cases of being trapped in stone age cave with only compiler and clay tablets at hand
<freling>
argh, I guess you have a point, so are you supposed to use merlin to compile?
* freling
feels like a stone age man
<ygrek>
when developing, of course, don't do the machine job
<ygrek>
stealing machine's job is a criminal offense under great robotic act of 2050
<Drup>
freling: you don't even need merlin for that
<freling>
Drup: you mean, calling ocamlbuild through a shell command?
<Drup>
freling: in emacs for example, without any mode, just use M-x compile and if there is some error in the output, emacs will parse the position and make you able to jump to it
nikki93 has quit [Remote host closed the connection]
<rom1504>
ygrek: haha, then I guess, doing a job will be illegal for a human in 2050 :p
<freling>
Drup: usually it jumps to the line, not the proper column
<Drup>
it does for me.
<freling>
alright, maybe I need to look a bit further about how to do it properly then
<Drup>
and for ocaml, since the error messages are properly formatted, it even highlight the faulty expression :3
<Drup>
freling: which editor are you using ?
<freling>
vim
<ygrek>
vim works out of the box if you build with :make
<ygrek>
rom1504, there will still be plenty opportunity of changing machine oil and polishing those shiny boxes with silicon
csakatoku has quit [Remote host closed the connection]
<freling>
will it call ocamlbuild? or should I create a Makefile
<ygrek>
create Makefile
<freling>
I find it a bit useless to create a Makefile , all the relevant information is in ocamlbuild _tags
csakatoku has joined #ocaml
<Drup>
ygrek: don't you have a command ":build" or ":compile" that except an arbitrary shell command ?
<Drup>
expect*
<ygrek>
then do :set makeprg='ocamlbuild xxx.native' every time you open a file
<freling>
ok
<ygrek>
Makefile is a common expected thing to have even if it contains only build and clean target
<freling>
even in OCaml projects?
<ygrek>
yes
<ygrek>
look at all the projects out there
<freling>
there is a bit of everything with oasis, ocamlbuild, makefiles, etc
<Drup>
usually, the Makefile is just a proxy
<Kakadu>
Drup: can emacs jump automatically to error location after compilation?
<freling>
I wasn't sure what was the barebone configuration for a simple project
<Drup>
Kakadu: not automatically, you have to clic/use a shortcut
<Drup>
freling: well, it's more a question of conveniency
<freling>
I can understand that
<Drup>
"ocamlbuild -some-option fooo.native"
<Drup>
"make fooo"
<Drup>
less typing
<elfring>
Do I get benefits if I would use the module "BatIMap" (instead of "BatMap" with integers)?
<elfring>
Are there any specific implementation details I should care for?
<freling>
Drup: shouldn't you put your options in _tags?
<Drup>
freling: some options can't be put in _tags, unfortunatly
csakatoku has quit [Ping timeout: 264 seconds]
<Kakadu>
Drup: where should I look for this shortcut? compilation-mode?
<freling>
I alias ob=ocamlbuild -use-ocamlfind
<Drup>
Kakadu: probaly, yes
<freling>
Drup: ah, didn't know that, my project is still quite simple
<Drup>
elfring: It's quite well explained in the doc, BatMap is just AVL, BatIMap is something more specialized for ints, using ranges
sw1nn` has joined #ocaml
sw1nn` is now known as sw1nn_
<elfring>
I noticed a difference in my OCaml experiments. I did not get a small example to work if I would like to use "module My_map = BatIMap".
sw1nn_ is now known as Guest82065
Guest82065 is now known as sw1nn_`
sw1nn_` is now known as sw1nn_
csakatoku has joined #ocaml
tane has joined #ocaml
xianxu has joined #ocaml
maattdd has joined #ocaml
avsm has quit [Quit: Leaving.]
zpe has joined #ocaml
xianxu has quit [Ping timeout: 252 seconds]
ygrek has quit [Ping timeout: 240 seconds]
<nicoo>
adrien_oww: Shouldn't it rather be -linkpkg ?
<adrien_oww>
you need -linkall if you expect to dynlink something
<nicoo>
adrien_oww: Ah, yes
<nicoo>
Drup, Kakadu : It is possible to auto-jump to the first error after compiling by using a post-compile hook (just add the right lambda to 'compilation-finish-functions)
maattdd has quit [Ping timeout: 240 seconds]
sw1nn_ has quit [Quit: ERC Version 5.3 (IRC client for Emacs)]
finnrobi has joined #ocaml
<Armael>
oh well, i have a patch that should work to fix the camlimages giflib problems
<Armael>
but as adrien said, to build on arch i think libexif's .pc file also need to be patched
<Armael>
(samae, adrien ↑)
ygrek has joined #ocaml
ddosia has quit [Quit: Leaving.]
dsheets has joined #ocaml
<Armael>
hmm, the last commit (revision 160) changes the OMakefile so its requires a giflib < 5; however, as indicated in the commit message, giflib isn't with pkg-config
<Armael>
so on my system the check doesn't occurs
<Armael>
I guess the OMakefile should be fixed accordingly, if giflib 5 is supported, but i don't know a thing about OMakefile
<Armael>
so well, I don't know why camlimages guy (recently) decided to remove the libexif/ in the #include (rev 159)
Guest46035 has quit [Quit: leaving]
<Armael>
i'll fill some issues on the camlimages bugtracker this afternoon.
<oriba>
btw. camlimages ... I can't compile it on Arch.
avsm has joined #ocaml
_andre has quit [Quit: leaving]
_andre has joined #ocaml
avsm has quit [Quit: Leaving.]
ontologiae has quit [Ping timeout: 252 seconds]
<elfring>
How do you work with the difference that the function "BatIMap.empty" needs one parameter (while "BatMap.empty" works without it?)
ggherdov has quit [Ping timeout: 245 seconds]
rgrinberg has quit [Read error: Operation timed out]
rgrinberg has joined #ocaml
jave_ has quit [Ping timeout: 255 seconds]
<companion_cube>
elfring: by providing the parameter to BatIMap.empty?
<companion_cube>
oriba: "and don#t know how to handle it" you sure like objects ^^
<oriba>
companion_cube, I don't really like objects, even though the typo would indicate it ;-)
<companion_cube>
it's a subconscious act
<companion_cube>
you can't deny it
<oriba>
companion_cube, I found an example for the ocamlnet stuff... with pipelines. It runs. But how to do it without pipelines? I don#t know how to use that stuff
<oriba>
Regarding the objects, well, I looked at them over the last days
<oriba>
The subconscious act: a missing Shift-key.
<oriba>
(That happens in other contexts too... I would rather like functional style.... but, well, I need to use the OOP stuff, just top use ocamlnet... so if you want to refer to Freud, I have no problem with that ;-))
<oriba>
companion_cube, you want to hear me praise OOP? ;-) (at least within OCaml)?
<companion_cube>
what do you mean by "pipeline" in this context?
<oriba>
there is Pipelining stuff in ocamlnet
<oriba>
fopr asynchronus http.
jave has joined #ocaml
<oriba>
Nice if it works, but I want to know the basics, and how to use just a simple http-request
<oriba>
I can't figure out how to make that happen
<oriba>
Some more examples would be nice
<companion_cube>
I think there are tutorials in the ocamlnet documentation
Nuki has joined #ocaml
<oriba>
The API does not look easy to understand to me
<oriba>
not matching my http-client problem, it seems
<companion_cube>
hmmm
<elfring>
I expected that I could use the module "BatIMap" without passing configuration parameters. Would a default comparison function be suitable there?
<flux>
probably yes
<flux>
is there no functorized version of BatIMap?
<oriba>
companion_cube, but maybe it helps me decrypting ocamlnet's API ;-) ( you know; the OOP-annoyance...)
<flux>
apparently BatIMap is so slightly different from regular maps that it needs a comparison function
ggherdov_ has joined #ocaml
ddosia has quit [Quit: Leaving.]
xianxu has quit [Ping timeout: 255 seconds]
<def-lkb>
elfring: since you want mutability, you can't have a pure valye for the empty structure
<elfring>
How are the chances to specify a default comparison function for "BatIMap.empty"?
<def-lkb>
highly likely?
<flux>
elfring, your purpose is to have interchangeability between Map.Make(Int) and BatIMap?
<elfring>
Yes!
<flux>
if so, then it's a bit work, you would need to define a new module that implements the Map.S signature
<flux>
mostly the work is in the form let domain = domain let union = union etc
<def-lkb>
oh, I understand the problem know, got it wrong sorry
<flux>
but then there's the matter of the equality comparison function that apparently is a parameter for functions in in BatIMap but doesn't exist in Map.S
zxqdms has joined #ocaml
<def-lkb>
indeed, the semantics are not same
<flux>
so you would write something like this: module type EQ = sig type t val eq : t -> t -> bool end module Make(Eq : EQ) : Map.S with type key = int = struct type 'a t = 'a BatIMap.t let mapi = BatIMap.mapi let empty = BatIMap.empty Eq.eq ... end
<flux>
(maybe this module should exist in batteries)
<elfring>
That would be great!
rand000 has quit [Ping timeout: 240 seconds]
<companion_cube>
oriba: the OOP is there because you can have many different, but overlapping, channel/stateful objects
tnguyen has quit [Ping timeout: 252 seconds]
lunaryorn has joined #ocaml
hyperboreean has quit [Ping timeout: 265 seconds]
tnguyen has joined #ocaml
ontologiae has joined #ocaml
yacks has quit [Ping timeout: 255 seconds]
travisbrady has joined #ocaml
xianxu has joined #ocaml
siddharthv is now known as siddharthv_away
ygrek has quit [Ping timeout: 246 seconds]
zpe_ has joined #ocaml
xianxu has quit [Ping timeout: 255 seconds]
zpe has quit [Ping timeout: 264 seconds]
travisbrady has quit [Quit: travisbrady]
ddosia has joined #ocaml
travisbrady has joined #ocaml
mort___ has joined #ocaml
yacks has joined #ocaml
darkf has quit [Quit: Leaving]
Khady has quit [Ping timeout: 252 seconds]
AltGr has joined #ocaml
engil has quit [Ping timeout: 240 seconds]
Armael has quit [Ping timeout: 264 seconds]
dinosaure1 has quit [Ping timeout: 245 seconds]
<def-lkb>
4
michel_mno has quit [Read error: Connection reset by peer]
dinosaure1 has joined #ocaml
engil has joined #ocaml
maattdd has joined #ocaml
travisbrady has quit [Quit: travisbrady]
divyanshu has joined #ocaml
engil has quit [Ping timeout: 252 seconds]
dinosaure1 has quit [Ping timeout: 252 seconds]
michel_mno has joined #ocaml
Armael has joined #ocaml
dinosaure1 has joined #ocaml
Khady has joined #ocaml
engil has joined #ocaml
<adrien_oww>
3
<freling>
2
tane has quit [Quit: Verlassend]
<rks`_>
1
<johnelse>
boom?
dinosaure1 has quit [Ping timeout: 246 seconds]
Khady has quit [Ping timeout: 264 seconds]
engil has quit [Ping timeout: 246 seconds]
Armael has quit [Ping timeout: 264 seconds]
Nuki has quit [Ping timeout: 252 seconds]
ggole has joined #ocaml
<companion_cube>
johnelse: look at what you did
<johnelse>
companion_cube: whoops :(
lunaryorn has quit []
* johnelse
fetches a broom
xianxu has joined #ocaml
lostcuaz has joined #ocaml
lostcuaz has quit [Read error: Connection reset by peer]
lostcuaz has joined #ocaml
lostcuaz has quit [Read error: Connection reset by peer]
xianxu has quit [Ping timeout: 246 seconds]
lostcuaz has joined #ocaml
avsm has joined #ocaml
RMacy has joined #ocaml
ollehar has quit [Ping timeout: 252 seconds]
ollehar has joined #ocaml
travisbrady has joined #ocaml
venk has quit [Ping timeout: 264 seconds]
* companion_cube
wishes iterators were a more common pattern in OCaml
csakatoku has joined #ocaml
nlucaroni has joined #ocaml
lunaryorn has joined #ocaml
oriba has quit [Quit: oriba]
ygrek has joined #ocaml
avsm has quit [Quit: Leaving.]
csakatoku has quit [Remote host closed the connection]
talzeus has quit [Remote host closed the connection]
talzeus has joined #ocaml
talzeus has quit [Remote host closed the connection]
csakatoku has joined #ocaml
csakatoku has quit [Remote host closed the connection]
rz has quit [Quit: Ex-Chat]
tlockney_away is now known as tlockney
travisbrady has quit [Quit: travisbrady]
shinnya has joined #ocaml
jwatzman|work has joined #ocaml
michel_mno has quit [Ping timeout: 240 seconds]
michel_mno has joined #ocaml
zzing has joined #ocaml
<mfp>
Is it possible to change an OPAM pin without removing + reinstalling the pkg (plus those depending on it)?
hyperboreean has joined #ocaml
<mfp>
more specifically, can I do opam pin pkg -f <newpin> && opam reinstall pkg or will the -f break my install?
paolooo has joined #ocaml
talzeus has joined #ocaml
talzeus has quit [Remote host closed the connection]
mika1 has quit [Quit: Leaving.]
talzeus has joined #ocaml
angerman_ has joined #ocaml
<Kakadu>
I think that I have did this today and everything was OK
angerman has quit [Ping timeout: 246 seconds]
amirmc has joined #ocaml
tane has joined #ocaml
<mfp>
Kakadu: have you tried installing lwt from the github repos lately? OPAM is chocking on that
<mfp>
looking into it to see if I have to report a broken build
cdidd has joined #ocaml
<mfp>
hmm looks like it's using a newer version of some preprocessor which has a new "windows" predicate
<Kakadu>
no idea, sorry
<mfp>
thx for trying anyway :)
ollehar has quit [Ping timeout: 240 seconds]
travisbrady has joined #ocaml
<ygrek>
opam pin pkg -f <newpin> && opam reinstall pkg <- sounds like a valid use case for me, did that several times
<Drup>
mfp: I'm doing that all the time, I even reported several issues about this and all of them got fixed. With a recent opam install, it should run perfectly smoothly.
<mfp>
got lwt to install, now rebuilding rev-deps. In case it helps someone: I had to run the dist.sh script in lwt's repos to tag + prepare the release
<mfp>
ygrek: was in fact rebuilding because I'd run into the deadlock you fixed last month (involving Lwt notifications)
<ygrek>
mfp, :)
<mfp>
Drup: indeed, it really feels like a legitimate use case, but the manpage makes it sound somewhat scary ("Disable consistency checks.")
elfring_ has joined #ocaml
elfring_ has quit [Client Quit]
<mfp>
ygrek: btw. I have a trivial patch to
<mfp>
oops ... to fix the backtraces reported by Lwt_log.* if you happen to also use libs like ocamlnet that register exn printers that raise exns (usually Not_found) themselves
<ygrek>
exn printer raising exn is nice, pretty nice
travisbrady has quit [Ping timeout: 255 seconds]
<Drup>
mfp: that's probably because it was quite broken in the first version of opam :3
jonludlam has quit [Remote host closed the connection]
avsm has quit [Quit: Leaving.]
claudiuc_ has joined #ocaml
angerman has joined #ocaml
yacks has quit [Quit: Leaving]
claudiuc has quit [Ping timeout: 255 seconds]
ddosia has quit [Quit: Leaving.]
nikki93 has joined #ocaml
ggole has quit []
xianxu has quit [Ping timeout: 240 seconds]
dsheets has quit [Ping timeout: 264 seconds]
<companion_cube>
elfring: I don't see how a reference to a Map is good where a hashtable isn't
Dongyancai has joined #ocaml
RMacy has joined #ocaml
cyanure__ has joined #ocaml
<flux>
well, you can efficiently make copies of such Maps
arjunguha has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
demonimin has quit [Remote host closed the connection]
claudiuc_ has quit [Remote host closed the connection]
arjunguha has joined #ocaml
demonimin has joined #ocaml
demonimin has quit [Changing host]
demonimin has joined #ocaml
RMacy is now known as RMacy|Away
RMacy|Away has quit []
dsheets has joined #ocaml
lostcuaz has quit [Ping timeout: 252 seconds]
lostcuaz has joined #ocaml
lostcuaz_ has joined #ocaml
Malkio has joined #ocaml
Malkio has left #ocaml []
lostcuaz has quit [Ping timeout: 264 seconds]
ontologiae has quit [Ping timeout: 252 seconds]
arjunguha has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
rz has quit [Quit: Ex-Chat]
divyanshu has quit [Quit: Computer has gone to sleep.]
xianxu has joined #ocaml
RMacy has joined #ocaml
amirmc has joined #ocaml
xianxu has quit [Ping timeout: 240 seconds]
claudiuc_ has joined #ocaml
dinosaure has joined #ocaml
shinnya has quit [Ping timeout: 264 seconds]
RMacy is now known as RMacy|Away
RMacy|Away is now known as RMacy
amirmc has quit [Quit: Leaving.]
travisbrady has joined #ocaml
lostcuaz_ has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
arjunguha has joined #ocaml
lostcuaz has joined #ocaml
venk has joined #ocaml
_andre has quit [Quit: leaving]
ontologiae has joined #ocaml
arjunguha has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
cyanure__ has quit [Remote host closed the connection]
rz has joined #ocaml
nikki93 has quit [Remote host closed the connection]
ontologiae has quit [Ping timeout: 240 seconds]
rz has quit [Quit: Ex-Chat]
lostcuaz has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<elfring>
companion_cube: Does a hash table change its stored keys "eventually"?
<companion_cube>
what do you mean by changing its keys?
xianxu has joined #ocaml
<companion_cube>
you put (k,v) in it, it remains there
<companion_cube>
unless you remove it
nop0x07bc has joined #ocaml
<elfring>
flux: Is it more efficient to avoid a data copy completely (before copying because of the well-known immutable processing style)?
<elfring>
Will a key be adjusted for a hash table after the function "replace" was called?
<companion_cube>
well, it will change the binding for the key
<elfring>
Does your wording for a key mean that its value changes?
<companion_cube>
well, a key is a value. What changes is the hashtable mapping key->value
<elfring>
I try to clarify it once more: Is it a "key functionality" that a hashing function is applied to "the key" for the data general structure "hash table"?
<companion_cube>
of course hashing is required
<companion_cube>
but there's a default hash function that fits most uses
<companion_cube>
(if you use the polymorphic tables)
<elfring>
It is "required" for such a kind of data structure. But I do *not*need that specific functionality for counting tasks that I am preparing here with small source code examples.
arjunguha has joined #ocaml
<elfring>
The key values should be stored unchanged for my specific use cases.
<companion_cube>
but Maps require comparing keys
<companion_cube>
the keys are stored 'as is'
<companion_cube>
i never said the table only stored hashes
ikaros has quit [Quit: Ex-Chat]
<companion_cube>
a hashtable is basically an array of (key, value) list, where each key is in the list whose index corresponds to hash(key)
angerman has quit [Quit: Gone]
<elfring>
I want that keys are just stored "as is"! Is "a map" a recommened data structure for this purpose?
arjunguha has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
lostcuaz has joined #ocaml
nikki93 has joined #ocaml
<companion_cube>
elfring: both Map and Hashtbl are perfectly fine "key->value" storage
<companion_cube>
you don't have to worry, your keys will be safe
<companion_cube>
I don't understand your concern
<elfring>
May I mail you my source code examples so that you can compare differences from the use of the discussed data structures?
<companion_cube>
just use a pastebin, it will be simpler
lostcuaz has quit [Ping timeout: 252 seconds]
nikki93 has quit [Remote host closed the connection]
travisbrady has quit [Ping timeout: 264 seconds]
<elfring>
I do not like "pastebin" ...
<companion_cube>
or an equivalent
lostcuaz has joined #ocaml
lostcuaz_ has joined #ocaml
lostcuaz_ has quit [Read error: Connection reset by peer]