adrien changed the topic of #ocaml to: Discussions about the OCaml programming language | http://www.ocaml.org and http://caml.inria.fr | http://ocaml.org/releases/4.02.0.html | Public channel logs at http://irclog.whitequark.org/ocaml
darkf has joined #ocaml
ollehar has quit [Ping timeout: 260 seconds]
WraithM has quit [Ping timeout: 240 seconds]
WraithM has joined #ocaml
appd has joined #ocaml
eikke has quit [Ping timeout: 250 seconds]
bjorkintosh has quit [Ping timeout: 260 seconds]
badon_ has joined #ocaml
shinnya has joined #ocaml
bytbox has joined #ocaml
badon has quit [Disconnected by services]
badon_ is now known as badon
badkins has joined #ocaml
lordkryss has quit [Quit: Connection closed for inactivity]
bjorkintosh has joined #ocaml
mcclurmc has quit [Remote host closed the connection]
mcclurmc has joined #ocaml
gperetin has quit [Ping timeout: 260 seconds]
mcclurmc_ has joined #ocaml
gperetin has joined #ocaml
mcclurmc has quit [Ping timeout: 240 seconds]
parcs has joined #ocaml
claudiuc_ has joined #ocaml
claudiuc has quit [Ping timeout: 265 seconds]
ollehar has joined #ocaml
bjorkintosh has quit [Ping timeout: 250 seconds]
meiji11 has joined #ocaml
badon has quit [Quit: Leaving]
bjorkintosh has joined #ocaml
WraithM has quit [Quit: leaving]
marynate has joined #ocaml
mrpantoufle has quit [Ping timeout: 260 seconds]
mrpantoufle has joined #ocaml
bjorkintosh has quit [Quit: Leaving]
bjorkintosh has joined #ocaml
ollehar has quit [Ping timeout: 260 seconds]
waneck has quit [Ping timeout: 240 seconds]
bjorkintosh has quit [Ping timeout: 246 seconds]
badkins has quit []
q66 has quit [Remote host closed the connection]
path[l] has quit [Quit: path[l]]
marynate has quit [Quit: Leaving]
shinnya has quit [Ping timeout: 240 seconds]
cody__ has quit [Quit: Leaving]
struktured has joined #ocaml
bjorkintosh has joined #ocaml
ontologiae has joined #ocaml
yomimono has joined #ocaml
path[l] has joined #ocaml
path[l] has quit [Client Quit]
mrpantoufle has quit [Ping timeout: 265 seconds]
mrpantoufle has joined #ocaml
struktured has quit [Ping timeout: 260 seconds]
meiji11 has left #ocaml ["ERC Version 5.3 (IRC client for Emacs)"]
tac has joined #ocaml
araujo has quit [Quit: Leaving]
ontologiae has quit [Ping timeout: 255 seconds]
darkf_ has joined #ocaml
darkf has quit [Disconnected by services]
darkf_ is now known as darkf
taion809 has quit [Remote host closed the connection]
appd_ has joined #ocaml
path[l] has joined #ocaml
iorivur has quit [Ping timeout: 265 seconds]
appd has quit [Ping timeout: 272 seconds]
appd_ has quit [Client Quit]
iorivur has joined #ocaml
tac has quit [Quit: Leaving]
iorivur has quit [Read error: Connection reset by peer]
Submarine has joined #ocaml
mcclurmc has joined #ocaml
<whitequark> fucking OASIS, what is the point of ocamlfind integration if you can't properly extract ocamlc path from ocamlfind configuration?
<whitequark> I'm now entirely convinced that the sole purpose of existence of OASIS is to make my life miserable
zz_adgtl is now known as adgtl
<whitequark> you couldn't possibly make a worse designed system with an express \intent
mcclurmc_ has quit [Ping timeout: 272 seconds]
<whitequark> why does it try to detect ocamlfind or bytecc on its own *at all*?!
<whitequark> also, why the fuck does it not accept --prefix= and at the SAME TIME break the non-spaced argument *somehow* when invoked via ./configure?
<whitequark> why does it attempt to invoke configure via a single make target rather than just doing make setup.exe and then passing the arguments to setup.exe directly? would that, you know, *work*, and thus violate some unwritten rule of OASIS development?
<whitequark> I'm going to claim from now on that packages compile *despite* the existence of OASIS, rather than owing to it
ygrek_ has joined #ocaml
<whitequark> I mean it seriously, every single thing that ./configure detected is plain wrong, and yet ocaml-re (on which I do my testing) cross-compiles to Android just fine
yomimono has quit [Ping timeout: 245 seconds]
tac has joined #ocaml
shinnya has joined #ocaml
darkf_ has joined #ocaml
darkf has quit [Ping timeout: 272 seconds]
gustav__1 has quit [Ping timeout: 258 seconds]
gustav___ has joined #ocaml
axiles has joined #ocaml
_weykent has joined #ocaml
samrat has joined #ocaml
ygrek_ has quit [Ping timeout: 260 seconds]
samrat has quit [Quit: Computer has gone to sleep.]
samrat has joined #ocaml
<def`> whitequark: nice :-)
samrat has quit [Quit: Computer has gone to sleep.]
darkf_ is now known as darkf
NoNNaN has joined #ocaml
adgtl is now known as zz_adgtl
ygrek_ has joined #ocaml
tane has joined #ocaml
ggole has joined #ocaml
shinnya has quit [Ping timeout: 258 seconds]
MercurialAlchemi has joined #ocaml
samrat has joined #ocaml
tac has quit [Quit: Leaving]
Submarine has quit [Quit: Leaving]
kakadu has joined #ocaml
samrat has quit [Quit: Computer has gone to sleep.]
Hannibal_Smith has joined #ocaml
oscar_toro has joined #ocaml
thomasga has joined #ocaml
oscar_toro has quit [Remote host closed the connection]
<adrien> whitequark: oasis has never been an issue for me for cross-compilation
oscar_toro has joined #ocaml
<adrien> whitequark: it does try to detect the compiler but it doesn't use it
<adrien> I provide an ocamlfind.conf file and everything's good
<whitequark> adrien: well, yes, I figured that as well
<whitequark> but why does it even try to?
<adrien> get a time machine, head back to 2010 and you'll probably find the answer obvious
<adrien> maybe for deps without ocamlfind support
<adrien> could be anything
<adrien> also, the patch I have been applying on top of the header-name-clash patches:
<adrien> sed -i 's;\\\.\\\.\\/;\0\0;g' tools/cleanup-header
<adrien> iirc it's needed for building C stubs
ollehar has joined #ocaml
Arsenik has joined #ocaml
morphles has joined #ocaml
<whitequark> -_-'
ygrek_ has quit [Ping timeout: 272 seconds]
keen______ has joined #ocaml
keen_____ has quit [Ping timeout: 250 seconds]
zpe has joined #ocaml
ollehar has quit [Ping timeout: 265 seconds]
ygrek_ has joined #ocaml
zpe_ has joined #ocaml
zpe has quit [Read error: Connection reset by peer]
Hannibal_Smith has quit [Quit: Sto andando via]
<gasche> < whitequark> you couldn't possibly make a worse designed system with an express \intent
<gasche> that's not a very respectful way to talk about a tool that was developped in good faith by a developper with the express intent of helping the community
ysz has joined #ocaml
<gasche> Sylvain has been mostly alone working on oasis (with some appreciated help here and there, eg. by jpdeplaix), and I'm sure he would welcome bugreports and contributions to help with your use-case
<gasche> I understand the personal use of venting (and surely you personally do a lot for the OCaml ecosystem), but I don't think #ocaml is the right place for being unconstructive about other's work; I wouldn't want this place to become a ranting echo chamber (which it sometimes looks like)
<whitequark> noted
<gasche> thanks :)
<adrien> yup, I think the case of the discovery of the compiler that is then unused is a good example of the development of oasis : it's quite young in terms of development mainly because there haven't been that many contributions so things sometimes look as if they were stopped in the middle of the dev
<whitequark> it is very hard to contribute code to OASIS
<whitequark> I did try to contribute something useful to it
<whitequark> there really are pervasive design issues in it which make the code much more complex than it should be
<adrien> like which one?
<adrien> (genious question, I'm wondering how much they are caused by original goals)
<whitequark> everything is very modular
<whitequark> but 1) when you try to figure out how something works, you have to trace through many, many layers
<whitequark> which are, of course, undocumented
<adrien> also, yeah, iirc Sylvain has a child now (been one or two years I think) so time must be scarce
<whitequark> 2) and when you need to get something from another layer, you have to update everything in middle
<adrien> but it means it needs new people to co-maintain and not a single upstream
<adrien> I see
<adrien> so probably cause by the wish to be able to target several build systems
<adrien> which never really materialized
<adrien> I think omake was a candidate backend then
<adrien> well, omake, make, ocamlbuild, and everything else that could ever exist
<whitequark> I feel like it was in general made too modular
<adrien> obviously that's a good way to get something complex
<whitequark> not just build systems, though that's a major factor
tani has joined #ocaml
<whitequark> then, if you need to extend it somehow, you've really bad luck
<whitequark> for example extending setup.ml to discover something else
<whitequark> Lwt does this, I would have to spend probably hours digging around and still my solution would be inelegant and probably fail at some point
ysz has quit [Quit: This computer has gone to sleep]
<whitequark> hell, just figuring out how to make some myocamlbuild.ml rules that coexist with OASIS took me a day of work back then
<whitequark> (granted I did not know much OCaml, but still.)
darkf_ has joined #ocaml
<adrien> I still don't know well how to do ocamlbuild rules and I've had to look around many times :P
<whitequark> oh, sure, what I mean is that now you *also* have to deal with OASIS
tane has quit [Ping timeout: 240 seconds]
darkf has quit [Ping timeout: 272 seconds]
<adrien> I understand the concern; I've found it to work well enough in most cases
<whitequark> or take Lwt, we have two problems with Drup that are purely OASIS-borne. 1) we need to generate documentation for syntax extension *somehow*, but OASIS doesn't want to generate docs from an executable .ml file
<adrien> especially it's way way way better than what was there before
<whitequark> 2) we need to add a META library without building an empty .cmxa, as that fails on OS X
<whitequark> and generally, there is no reason to build an empty cma or cmxa, it was there *solely* because of OASIS
<adrien> you mean, instead of having a cmx/cmo only?
<whitequark> I don't need anything at all, it's a META library that only contains a ppx field
<adrien> ah, ok
<adrien> was dbunzli's example in mind
<whitequark> but OASIS doesn't allow to add XMETAExtraLines: to executables
<whitequark> and in fact the hack that Drup made to make it install executables to lib/, I would have never figured it out in my life
ggole has quit []
<gasche> I don't know much about oasis myself, mostly treat it as a black box
<gasche> (I think trying to get a reasonable understanding of ocamlbuild is enough work for a part-time contributor to the ecosystem :p)
<whitequark> better keep it at that, really
<adrien> after having looked inside ocamlbuild, I'm not sure I want to look a lot more at it
Simn has joined #ocaml
<gasche> the coding style is peculiar, but I found it workable
<whitequark> I have relatively few issues wrangling ocamlbuild to do what I want, as well
<whitequark> gasche: last week I extensively looked at the ocaml buildsystem wrt cross-compilation
<whitequark> the thing that horrified me most was ocamlmklib
darkf_ is now known as darkf
<gasche> (I still don't understand why ocamlpro felt the need to silently shun ocamlbuild of their ocaml-win distribution, but well)
morphles has quit [Ping timeout: 240 seconds]
<whitequark> ./configure puts several lines starting with #ml into config/Makefile, and then ocamlmklib buildscript extracts those lines and puts them inside a ocamlmklibconfig.ml (!)
<gasche> doesn't ocamlbuild do the same? or maybe adrien cleaned that part already
<whitequark> bonus points, it could in fact do a mere substitution, as the ML parts of those lines are always constant
<whitequark> I mean, ocamlmklib buildscript does a substitution anyway
samrat has joined #ocaml
<whitequark> I think the code was added when ocamlmklib was extracted from ocamlbuild, so probably a remnant from that time
<whitequark> ocamlbuild doesn't seem to do that anymore
<adrien> whitequark: no, extracting data from config/Makefile isn't trivial
<adrien> some annoying corner-cases
<adrien> and you haven't seen the code before a dozen sed expressions
<whitequark> adrien: yes, it can be sometimes problematic, but I think this case is just overseen
morphles has joined #ocaml
<companion_cube> http://samoht.github.io/assemblage/Assemblage.html ← a build system with documentation? surely I must have dreamt
<adrien> windows is the reason of some of the complexity here
<adrien> nah, assemblage isn't released yet so there's plenty of time for the documentation to get out of sync
<companion_cube> rght
<whitequark> hah
<companion_cube> still, it looks less crazy than myocamlbuild.ml
<whitequark> I eagerly wait for assemblage to start working
<companion_cube> it looks like it would actually make sense to describe the build in ocaml, honestly
<adrien> gasche: about splitting ocamlbuild from the compiler, what about not building it along the compiler instead?
path[l] has quit [Quit: path[l]]
<adrien> and build it afterwards
<adrien> afterwards the compile ris installed
<adrien> compiler is*
<companion_cube> as afterwards as possible, even
<adrien> more work, not many more benefits
<adrien> my concern is that if assemblage is to take over the world soon, it would be a bit stupid to have split ocamlbuild from the compiler, hosted a new project, done work in such and such field needlessly
<companion_cube> if assemblage is to take over the world, ocamlbuild can rot in its corner of the compiler, sure
<adrien> I don't know how things will work out but if ocamlbuild were handled like the tool it is instead of being handled like a compiler bit, my issues would vanish
<adrien> and probably others' too
<whitequark> I would rather say that ocamlbuild should be split even more eagerly in that case
<whitequark> like camlp4 was
lordkryss has joined #ocaml
<companion_cube> if assemblage works well, I'm even willing to big farewell to oasis
<adrien> I'm not sure it's worth it if it can be made to be built later on
<adrien> anyway, I think I'll start on that road
<adrien> I don't see a significant drawback (maybe gasche would be able to point one out) and I see nice gains for little work
<adrien> plus that work would be needed if it ended up being completely split
<whitequark> imo there needs to be much more pruning of ocamlc.
<adrien> ?
<companion_cube> prune the bytecode compiler!!
<whitequark> I mean, the ocaml/ocaml repo
<whitequark> Alain does really nice work on the front-end and middle-end parts, but the tools are in terrible disarray
nicoo has quit [Remote host closed the connection]
<whitequark> and the buildsystem ...
<whitequark> ... well
kakadu has quit [Quit: Konversation terminated!]
nicoo has joined #ocaml
<adrien> front-end and middle-end changes are "easy"
<adrien> tools, you need to handle many OSes and configurations and they require much more testing
* adrien going to slack a bit and move outside to write his documentation
<gasche> adrien: I have nothing against your suggestion, but I'm not motivated to implement it -- patches welcome!
<adrien> ok
<gasche> I worked on ocamlbuild a bit before the release
<adrien> and can you think of any possible issue with it?
<gasche> but these days are past and I need to get back on my thesis
<adrien> I mean, I can't see a reason not to do it but maybe someone would
<gasche> on my personal ocamlbuild todo-list, there would be the .install feature that Daniel requested
<adrien> DESTDIR now works well, right?
<gasche> and maybe some slightly more exciting things like parallelization improvements
<gasche> adrien: I implemented DESTDIR but only tested it cursorily, so I don't know about "well"
<gasche> the issue I can see is the one that separated-camlp4 has: some people using Nix do not want to go write in the official-compiler directory at camlp4 install time
<gasche> that should not be an issue as long as ocamlbuild remains in the "make install" target, though
<adrien> hmmm, I se
<gasche> (and I don't think people rely on ocamlbuild's installation dir as much as they do on camlp4's)
<whitequark> -use-ocamlfind Use the 'ocamlfind' wrapper instead of using Findlib directly to determine command-line arguments. Use -no-ocamlfind to disable.
<whitequark> how come ocamlbuild can use Findlib directly?
<adrien> I was thinking some people would want to build and test ocamlbuild without installing the compiler first and that can be done fairly well with good DESTDIR support
<gasche> whitequark: iirc. it communicates through the ocamlfind command-line tool
<adrien> ah, right, something that could be in ocamlfind if its build is separated from the compiler: use findlib's cmxs
<adrien> well, I'm going to slack and then play a bit on mantis
<whitequark> I don't think you can use .cmxs like that
zpe_ has quit [Ping timeout: 272 seconds]
<gasche> we could consider doing that even if ocamlfind remains distributed with the compiler
<whitequark> there's no equivalent of dlsym
<gasche> I think the compiler maintainers would frown at the idea of having some parts of the distribution relying on external tools, but then, they're open to using menhir, and we rely on flexlink on windows anyway
<whitequark> either findlib or ocamlfind gotta have a hard dependency on the another one
<whitequark> er, ocamlbuild
<companion_cube> findlib is more important than ocamlbuild
<companion_cube> it should be the one shipped with the compiler
<whitequark> pls no
<gasche> I think the "issues" with having ocamlbuild inside the distribution are mostly imaginary
<whitequark> it's problematic enough to get an update into findlib as it is
<gasche> but then, imaginary issues are real as long as they affect people
<companion_cube> whitequark: hmmm, right
<companion_cube> maybe the distribution should only contain ocam{c,opt}
<companion_cube> +l
samrat has quit [Quit: Computer has gone to sleep.]
<whitequark> you need toplevel at least, packages use it for configuring themselves
<companion_cube> ... really?
<whitequark> ... yes? like every OASIS package in opam-repository ever
<whitequark> and topkg
<companion_cube> well, ocamlrun, of course
<whitequark> they use ocaml, not ocamlrun (though you do need ocamlrun obviously)
<whitequark> (you don't ship bytecode)
<companion_cube> yes
<companion_cube> but it's more an interpreter than a toplevel in this case. I see your point
<gasche> there are mild legal issues related to the fact that OCaml Consortium members really want the permissive license over what's in the distribution
<whitequark> there isn't terribly more in the distribution than you say. I mean, there's ocamldoc and ocamldebug and ocamlbuild
<gasche> moving stuff out of the distribution annoys them a bit because they have to separately make sure the legalese works as well
<whitequark> ocamlmklib and ocamlmktop and profiling wrappers are too insignificant
<gasche> I think the statu quo (plus or minus ocamlbuild, ocamldebug or what not) are reasonable enough; common sense, a tiny bit of patience, and sending patches solve most issues
<whitequark> yup
<companion_cube> whitequark: some libraries could disappear, too, like Str
samrat has joined #ocaml
<whitequark> and Num
<gasche> any minute spent thinking about Str is better spent helping with ocaml-re's documentation
<gasche> (just write small examples and send pull requests; that worked well enough with Set and Map in the stdlib)
samrat has quit [Client Quit]
<gasche> Num is pure-ocaml, which trumps Zarith in some use-cases (eg. js_of_ocaml); but it certainly could be provided separately
<whitequark> oh, it is? then it's not as bad
<gasche> ... in fact it isn't, there's some C code in it
<companion_cube> Num can be useful, but its API is terrible
<companion_cube> aww.
<companion_cube> stiller lesser of a depdendency than GMP
<gasche> it's only in nat.ml
<gasche> I only ever use Big_int
<whitequark> oh right, I remember js_of_ocaml breaking because of that
<whitequark> :D
samrat has joined #ocaml
<gasche> it would be amusing to try to re-implement Nat in OCaml, measure the performance difference, and propose this upstream
<gasche> sometimes I wish for a magic "get a motivated intern" button
bezirg has joined #ocaml
<companion_cube> rigt, Re lacks documentation
<companion_cube> gasche: indeed, I never understood the point of the num type, big_int and big_rat are the interesting parts
<gasche> it's hard to guess in advance what people will care about
<gasche> same thing for Bigarray multi-dimensional support
fdsf has joined #ocaml
<fdsf> Can ocp-indent be used with Sublime Text ?
<gasche> (today I learned "Hindsight is 20/20" exists as a sentence in the Urban Dictionary)
fraggle_ has joined #ocaml
kakadu has joined #ocaml
cago has joined #ocaml
thomasga has quit [Quit: Leaving.]
zpe has joined #ocaml
<adrien> gasche, whitequark : if there is a timeframe between the build of the compiler and ocamlbuild, libs could be built in between and ocamlbuild could discover additional _optional_ dependencies
thomasga has joined #ocaml
zpe has quit [Ping timeout: 240 seconds]
panini has joined #ocaml
<companion_cube> whitequark: you're right, parsing IRC logs is trivial
<companion_cube> I just found strange that Re doesn't provide anything to parse a file
SomeDamnBody has joined #ocaml
thomasga has quit [Quit: Leaving.]
fdsf has quit [Quit: Page closed]
AlexRussia has quit [Ping timeout: 246 seconds]
q66 has joined #ocaml
samrat has quit [Ping timeout: 260 seconds]
<companion_cube> http://vrac.cedeela.fr/irc_parse.ml now I'm happy I wrote Sequence.IO :>
zpe has joined #ocaml
<whitequark> gasche: what about Bigarray?
panini has quit [Ping timeout: 246 seconds]
zpe has quit [Ping timeout: 240 seconds]
octachron has joined #ocaml
panini has joined #ocaml
morphles has quit [Ping timeout: 246 seconds]
panini has quit [Ping timeout: 240 seconds]
shinnya has joined #ocaml
panini has joined #ocaml
panini has quit [Quit: Leaving]
thomasga has joined #ocaml
ollehar has joined #ocaml
Hannibal_Smith has joined #ocaml
ollehar has quit [Ping timeout: 250 seconds]
thomasga has quit [Quit: Leaving.]
ygrek_ has quit [Ping timeout: 265 seconds]
ollehar has joined #ocaml
q66[lap] has quit [Quit: Textual IRC Client: www.textualapp.com]
q66[lap] has joined #ocaml
q66[lap] has quit [Client Quit]
zpe has joined #ocaml
rand000 has joined #ocaml
zpe has quit [Ping timeout: 240 seconds]
taion809 has joined #ocaml
ggole has joined #ocaml
<jpdeplaix> whitequark: the main feature of OASIS which makes it overcomplicated is the fact that it writes itself in the setup.ml (the normal setup), I think.
<jpdeplaix> 2014-10-15 17:46:56 jpdeplaix gasche: is ocamlbuild supposed to stop target compilation after the first error ? Like if I do « ocamlbuild a.cmo b.cmo », if a.cmo fails, b.cmo will not be compiled.
struktured has joined #ocaml
ggole has quit [Ping timeout: 258 seconds]
pii4 has quit [Quit: [-.-]...]
pii4 has joined #ocaml
parcs has quit [Remote host closed the connection]
struktured has quit [Ping timeout: 260 seconds]
q66 has quit [Quit: Leaving]
zpe has joined #ocaml
ollehar has quit [Remote host closed the connection]
ollehar has joined #ocaml
Thooms has joined #ocaml
Hannibal_Smith has quit [Quit: Sto andando via]
zpe_ has joined #ocaml
zpe has quit [Read error: Connection reset by peer]
WraithM has joined #ocaml
zpe_ has quit [Ping timeout: 260 seconds]
parcs has joined #ocaml
zpe has joined #ocaml
bezirg has quit [Remote host closed the connection]
bezirg has joined #ocaml
bezirg has quit [Remote host closed the connection]
bezirg has joined #ocaml
bezirg has quit [Remote host closed the connection]
zpe_ has joined #ocaml
zpe has quit [Read error: Connection reset by peer]
darkf has quit [Quit: Leaving]
bezirg has joined #ocaml
bezirg has quit [Remote host closed the connection]
struktured has joined #ocaml
AlexRussia has joined #ocaml
badkins has joined #ocaml
ollehar has quit [Ping timeout: 260 seconds]
ysz has joined #ocaml
avsm has joined #ocaml
zpe_ has quit [Remote host closed the connection]
zpe has joined #ocaml
samrat has joined #ocaml
zpe has quit [Ping timeout: 260 seconds]
Thooms has quit [Quit: WeeChat 1.0.1]
struktured has quit [Ping timeout: 245 seconds]
AlexRussia_ has joined #ocaml
ysz has quit [Quit: This computer has gone to sleep]
* whitequark sighs
<whitequark> so I'm patching utop to not require camlp4
<whitequark> even if I do that, it still depends on OASIS
<whitequark> and OASIS depends on ocaml-data-notation, also, I don't even know why, and that depends on type_conv
ysz has joined #ocaml
ollehar has joined #ocaml
ysz has quit [Quit: This computer has gone to sleep]
morphles has joined #ocaml
<whitequark> wow, you can do this in ocamlbuild: let prod1 = "%(name: <*> and not <*.cppo>).ml" in
<whitequark> i.e. embed lhs tag syntax inside rules
<whitequark> ~crazy~
WraithM has quit [Ping timeout: 240 seconds]
* whitequark looks at Drup with disapproval.
AlexRussia_ has quit [Ping timeout: 240 seconds]
slash^ has joined #ocaml
AlexRussia has quit [Remote host closed the connection]
omqal has joined #ocaml
AlexRussia has joined #ocaml
AlexRussia_ has joined #ocaml
ollehar has quit [Ping timeout: 255 seconds]
oriba has joined #ocaml
octachron has quit [Quit: Leaving]
WraithM has joined #ocaml
samrat has quit [Quit: Computer has gone to sleep.]
ollehar has joined #ocaml
WraithM has quit [Ping timeout: 250 seconds]
dav has joined #ocaml
<kakadu> whitequark: Is it teoretically possible to pass another (non-android,OE one) toolchain for OCaml compilation?
<whitequark> Kakadu: yes, take a look at android.conf in opam-android
<whitequark> and config/Makefile
WraithM has joined #ocaml
<whitequark> generally there is nothing android-specific, your toolchain just has to support --sysroot
<kakadu> android.conf in opam-android ?
<kakadu> It seems yo meant .conf.in
Thooms has joined #ocaml
cdidd has quit [Quit: Leaving]
zpe has joined #ocaml
zpe has quit [Ping timeout: 258 seconds]
<whitequark> yes
<whitequark> actually it's not really relevant, the file you need is config/Makefile.in
<whitequark> there is some magic to embed the paths to the compilers, so that you won't need to have them in PATH and such
<whitequark> it's very convenient
yomimono has joined #ocaml
ontologiae has joined #ocaml
shinnya has quit [Ping timeout: 265 seconds]
ysz has joined #ocaml
yomimono has quit [Ping timeout: 255 seconds]
Alx08-ru has joined #ocaml
AlexRussia_ has quit [Ping timeout: 244 seconds]
rossberg has joined #ocaml
omqal has quit [Quit: omqal]
ggole has joined #ocaml
<Drup> whitequark: oh fu*
<whitequark> Drup: wha
<Drup> whitequark: the cppo typo
<Drup> yes, I saw
<Drup> oh, no, I saw the other one, right
<Drup> gasche: stop being so politically correct, productive ranting is a fine, that's how you make most things move forward and completely unproductive is not as common as you make it sound.
<Drup> </rant>
Hannibal_Smith has joined #ocaml
<whitequark> gasche: he's right, that remark was off limits and unfair
<whitequark> errr I mean Drup
<whitequark> gah I made it even more confusing
<whitequark> I'll just kill some more camlp4 instead
<whitequark> burrrrrn
<rks`> did I /ignore gasche by accident? I don't understand what you guys are talking about
<whitequark> rks`: I said a rude thing about OASIS's author and gasche asked me to not do this. I agreed. end of story basically
<rks`> alright but... where was that?
<rks`> oh ok, a while ago
<rks`> thank you
<whitequark> ... I removed lwt.syntax from BuildDepends: and utop still builds
<whitequark> what
<Drup> whitequark: my remark is more general about gasche's attitude. Sure, we should avoid being rude and all that, but not to the point of not pointing out things that are deeply wrong, just because "the guy poured a lot of hours into his work".
<whitequark> oh, it *also* requires camlp4 in _tags
<whitequark> brb crying
morphles has quit [Ping timeout: 255 seconds]
<whitequark> why is there camlp5 support in utop
<whitequark> it's not even in _oasis, you can't possibly use it
yomimono has joined #ocaml
yomimono has quit [Ping timeout: 240 seconds]
waneck has joined #ocaml
<MercurialAlchemi> Drup: I agree, but it's the difference between "you're a moron" and "you'd better do this instead" (I've been guilty of the former a lot)
<Drup> yes
thomasga has joined #ocaml
<MercurialAlchemi> You just end up in a pointless fight and don't achieve anything this way
<MercurialAlchemi> That's why I avoid the "You're a moron" option in Crucible when doing a code review :D
<Drup> btw whitequark, in cppo, you can do "#if OCAML_MAJOR >= 3 && OCAML_MINOR >= 10"
<whitequark> Drup: yes, fuck that
<Drup> and they're built in, no need to pass a flag
<Drup> hum, ok =')
<whitequark> see, write out a full equivalent for ocaml_version >= (4, 02, 1)
<Drup> ok, ok =')
<whitequark> it's something along the lines of #if OCAML_MAJOR > 4 || (OCAML_MAJOR == 4 && (OCAML_MINOR > 2 || OCAML_MINOR == 2 && OCAML_PATCHLEVEL >= 1))
<whitequark> not only this looks horrible, it is also error-prone
ontologiae has quit [Ping timeout: 265 seconds]
SomeDamnBody has quit [Ping timeout: 260 seconds]
<whitequark> Drup: hm, why is there no Lwt.raise?
<whitequark> oh, it's Lwt.fail
<Drup> Lwt.fail
<Drup> whitequark: I was going to open a ticket to request tuple support
struktured has joined #ocaml
<whitequark> it's a lot of complexity
<whitequark> I don't really care if it's tuples or ints
ysz has quit [Quit: This computer has gone to sleep]
matthewhill has joined #ocaml
<whitequark> yay, --disable-camlp4 build works
q66[lap] has joined #ocaml
q66[lap] has quit [Client Quit]
q66[lap] has joined #ocaml
<Drup> I think we should add Lwt.Infix
<Drup> that people can open for >>= and >|=
<Drup> gonna do that
<whitequark> I agree
thomasga has quit [Quit: Leaving.]
<whitequark> +176 −1,038
<whitequark> burrrrrn
<whitequark> now let's set some lwt on fire
<whitequark> oh, lambda-term uses lwt.syntax too :<
<whitequark> LET'S SET MORE THINGS ON FIRE YAY
<whitequark> IMMOLATION FOR THE PPX GOD
ollehar has quit [Ping timeout: 272 seconds]
<Drup> (I think camlp4 broke him)
<Drup> Lwt.poll : 'a t -> 'a option
<Drup> this is the thing o_o
<whitequark> huh?
<Drup> a thing*
<Drup> whitequark: I didn't know it existed.
<whitequark> I see no problem
<whitequark> oh.
<Drup> It's hidden in the documentation
<whitequark> I sort of always assumed it should exist and found it intuitively
matthewhill has quit [Quit: Lingo: www.lingoirc.com]
<whitequark> >XMETADescription: Corss-platform library for terminal manipulation
<whitequark> brb crying
<whitequark> Drup: I got rid of open Lwt in utop
q66[lap] has quit [Quit: Textual IRC Client: www.textualapp.com]
<whitequark> should I do the same in lambda-term?
<whitequark> could do it while I'm at it anyway
<whitequark> could also not bother changing the examples at all
<whitequark> yeah, examples should probably stay as they are
kakadu has quit [Quit: Page closed]
<whitequark> such indent, so ladder
ygrek_ has joined #ocaml
_robbins has quit [Ping timeout: 240 seconds]
thomasga has joined #ocaml
thomasga has quit [Client Quit]
<jpdeplaix> Drup: I agree Lwt.Infix would be nice. Even if we have already Eliom_lib.Lwt_ops, it's would be nice to have it in Lwt directly
ygrek_ has quit [Ping timeout: 272 seconds]
zz_adgtl is now known as anildigital
oriba has quit [Quit: oriba]
_robbins has joined #ocaml
ollehar has joined #ocaml
_robbins has quit [Ping timeout: 245 seconds]
<reynir> is it correct you need ppx_tools to get lwt.ppx?
<Drup> yes
<Drup> it should be automatically installed if your ocaml support ppx, though
<reynir> Ah
samrat has joined #ocaml
anildigital is now known as zz_anildigital
ontologiae has joined #ocaml
_robbins has joined #ocaml
zz_anildigital is now known as anildigital
kakadu has joined #ocaml
_robbins has quit [Ping timeout: 272 seconds]
morphles has joined #ocaml
<Drup> whitequark: any idea to generate fresh names for js_of_ocaml without relying on fixed seed prng ?
<gasche> why do you need to generate fresh names?
<Drup> ppx
<gasche> I'm curious about more specific use-case details
<gasche> my experience with camlp4 is that you rarely need it
<Drup> let me show you what foo##bar desugarize too
<gasche> (and in those rare case I wrote a function to compute the set of free variables, and another to freshen a name from this)
<gasche> (it's the clean solution but you have to be careful performance-wise to not make your processing quadratic)
morphles has quit [Ping timeout: 255 seconds]
Hannibal_Smith has quit [Quit: Sto andando via]
WraithM has quit [Ping timeout: 246 seconds]
WraithM has joined #ocaml
_robbins has joined #ocaml
tani has quit [Quit: Verlassend]
<adrien> "meth"
<adrien> describes well
ToTheInternet has joined #ocaml
<Drup> I'm actually surprised we use "'B" and not some horrible generated name
tane has joined #ocaml
anildigital is now known as zz_anildigital
<ToTheInternet> Hello. I installed libocamlnet-ocaml-dev on debian, now i have ftp_client.cmi and ftp_client.mli in /usr/lib/ocaml/netclient. But in interactive mode, when i do: open Ftp_client;; i get an error saying Unbound module Ftp_client
<ToTheInternet> 'ocamlfind list' outputs a list of installed packages, but ocamlnet is not in that list
<ToTheInternet> so i'm wondering, if installing modules from the distribution repository is not a good idea, or if my way of open the module is simply wrong
ggole has quit []
<Drup> ToTheInternet: what is the result of "where `ocamlfind`" ?
<Drup> meh, without backquotes, obviously
<ToTheInternet> Drup: i assume you mean 'which ocamlfind' ? The result of that is: /home/totheinternet/.opam/system/bin/ocamlfind
<Drup> ok, so you're using opam, so you should install everything through opam
<ToTheInternet> i see. i set this stuff up more than a year ago and haven't used it since, so i don't remember
zz_anildigital is now known as anildigital
<Drup> ToTheInternet: "opam install ocamlnet" and go take a coffee :)
<ToTheInternet> Drup: yeah, its installing already. at first it failed compiling a dependency but when i ran it as root it compiled just fine
<Drup> You shouldn't run it as room
<Drup> root*
<ToTheInternet> after running it again as user the compilation of the dependency (ssl.0.4.6) doesn't fail anymore. weird.
_robbins has quit [Ping timeout: 260 seconds]
<ToTheInternet> ok, so it installed fine, couldn't even finish my coffee. but 'ocamlfind list' still doesn't list it
ysz has joined #ocaml
anildigital is now known as zz_anildigital
<tane> ToTheInternet, what about "netstring"?
<ToTheInternet> tane: yes, netstring is listed. i installed ocamlnet version 3.7.3, and 'ocamlfind list | grep 3.7.3' lists a bunch of modules. netstring, netclient, rpc, and like 15 more
<tane> yes
<tane> ocamlnet is a bundle of packages
<ToTheInternet> tane: so i guess it was installed? but still: open Ftp_client;; gives an error saying Unbound module Ftp_client
<tane> so it is installed
<tane> did opam update your .ocamlinit?
<Drup> ToTheInternet: #require "some_module" ;;
<Drup> (I don't know which one, sorry, you need to fine the one implementing ftp)
<Drup> find*
<ToTheInternet> tane: ~/.ocamlinit was last modified in april
zz_anildigital is now known as anildigital
<tane> ToTheInternet, #require "netclient";;
<ToTheInternet> tane: Unknown directive `require'
<Drup> #use "topfind" ;; before then
<ToTheInternet> yes. thats it. now it works
<ToTheInternet> i assume i only need this stuff in interactive mode though?
<Drup> yes
<nicoo> ToTheInternet: Yes, but you need to tell your buildsystem about the packages you require, instead
<ToTheInternet> thanks. so now i can try if ocaml suites my need. i want to write a fuzzer for an FTP server. i just read that ocaml doesn't support UTF8 or Unicode, i guess that's something i would need for a fuzzer lol
<Drup> ToTheInternet: There are several libraries for utf8, don't worry
robink has quit [Ping timeout: 258 seconds]
robink has joined #ocaml
slash^ has quit [Read error: Connection reset by peer]
<gasche> Drup: why is there a local module?
<Drup> to ensure generalization. jerome's trick, I'm not responsible :D
<whitequark> Drup: I would just increase them
<whitequark> __ppx_lwt_%d where %d is 1,2,3,...
<Drup> yeah, It's a not-worse solution
WraithM has quit [Quit: leaving]
WraithM has joined #ocaml
<gasche> Drup: without more details I would try
<gasche> no need for name generation here
<gasche> I'm quite sure the typing aspects are orthogonal to the need for names
<Drup> except your version doesn't work, since you removed half of it :)
<gasche> (they could probably be resolved with (type a) but I suppose you want to generate code that works before 3.12?)
<whitequark> wat? ppx doesn't exist in 3.12 :)
<Drup> maybe that could solve it, yeah
<gasche> not sure which half you're talking about
<Drup> but you are avoiding the issue
<gasche> but if it's the local module, yeah, but it's orthogonal I think
<Drup> we do need fresh names quite often
<gasche> what is the fresh name issue hree?
<gasche> as far as I can tell the only code imported from the user's scope is <obj>, and it is bound in an empty environment
<Drup> ok, more interesting example: https://bpaste.net/show/cf1ca78d3e43
<Drup> no, the env is not empty in the general case.
<gasche> (fun (type a) (obj : < <meth> : a; .. > Js.t) -> (Js.Unsafe.meth_call obj "<meth>" [||] : a)) <obj>
<Drup> (well, I could technically solve this one with a let and, maybe)
<gasche> (the reformulation with (type a) instead of a local module)
waneck has quit [Ping timeout: 240 seconds]
<gasche> Drup: well indeed
<gasche> let obj = <obj> and arg1 = <arg> and arg2 = <arg'> in ...
<gasche> still no need for fresh names
<gasche> as I said, in my experience you rarely need fresh names
<Drup> except for the type variables, if you don't use the "type a" feature
<gasche> it doesn't need to be fresh if it's inside "let module ... in"
<Drup> (which I need to check it completely solves the problem)
<gasche> local modules have their local type-variable scope
<gasche> (which was the reason for introducing (type a) in the first place)
samrat has quit [Ping timeout: 260 seconds]
ysz has quit [Quit: This computer has gone to sleep]
cago has left #ocaml [#ocaml]
samrat has joined #ocaml
samrat has quit [Client Quit]
ysz has joined #ocaml
ysz has quit [Client Quit]
ysz has joined #ocaml
<gasche> I didn't know that (Lwt_log.error "foo") had a preprocessing-specific semantics; that's ugly
_robbins has joined #ocaml
ysz has quit [Quit: This computer has gone to sleep]
Submarine has joined #ocaml
<adrien> work-around the lack of ikfprintf in some versions?
<adrien> plus line/file infos?
_robbins has quit [Ping timeout: 258 seconds]
milanst has joined #ocaml
milanst has quit [Client Quit]
milanst has joined #ocaml
psy_ has joined #ocaml
cdidd has joined #ocaml
q66[lap] has joined #ocaml
SomeDamnBody has joined #ocaml
Thooms has quit [Quit: WeeChat 1.0.1]
morphles has joined #ocaml
axiles has quit [Remote host closed the connection]
<gasche> adrien: the need is reasonable, re-using valid syntax is not
<adrien> :)
morphles has quit [Ping timeout: 240 seconds]
_robbins has joined #ocaml
oscar_toro has quit [Ping timeout: 258 seconds]
omqal has joined #ocaml
_robbins has quit [Ping timeout: 246 seconds]
milanst has quit [Quit: Page closed]
_weykent is now known as weykent
tane has quit [Quit: Verlassend]
yomimono has joined #ocaml
meiji11 has joined #ocaml
MercurialAlchemi has quit [Ping timeout: 272 seconds]
rom1504_ is now known as rom1504
Arsenik has quit [Remote host closed the connection]
parcs has quit [Remote host closed the connection]
WraithM has quit [Ping timeout: 265 seconds]
Submarine has quit [Remote host closed the connection]
_robbins has joined #ocaml
yomimono has quit [Ping timeout: 258 seconds]
rand000 has quit [Quit: leaving]
parcs has joined #ocaml
WraithM has joined #ocaml
shinnya has joined #ocaml
anildigital is now known as zz_anildigital
ollehar has quit [Ping timeout: 250 seconds]
ollehar has joined #ocaml
WraithM has quit [Ping timeout: 246 seconds]
weykent has quit [Changing host]
weykent has joined #ocaml
madroach has quit [Ping timeout: 250 seconds]
jasiek has quit [Remote host closed the connection]
madroach has joined #ocaml
kakadu has quit [Quit: Konversation terminated!]
Alx08-ru has quit [Ping timeout: 260 seconds]
AlexRussia has quit [Ping timeout: 250 seconds]
NoNNaN has quit [Remote host closed the connection]
omqal has quit [Quit: omqal]
NoNNaN has joined #ocaml
Alx08-ru has joined #ocaml
AlexRussia has joined #ocaml
AlexRussia has quit [Ping timeout: 272 seconds]
Alx08-ru has quit [Ping timeout: 260 seconds]