<johnf>
Hi, I'm having an issue getting the functorial interface for camlp4 working. I get this error
2014-08-25
<Zemeio>
Guys can anyone help me? I'm trying to use frenetic, but it stopped working after i installed utop, anyone knows what might have happened? The error: Camlp4: Uncaught exception: DynLoader.Error ("/home/frenetic/.opam/system/lib/netkat/syntax.cma", "error while linking /home/frenetic/.opam/system/lib/netkat/syntax.cma.\nReference to undefined global `Ulexing'")
2014-08-23
<pyon>
I am not using camlp4 anyway. :-)
2014-08-22
<ggole>
I imagine the fix is to fiddle with your build system to get it to use camlp4
<ggole>
That's a camlp4 extension iirc
2014-08-20
<elspru>
says it can't find camlp4-extra
<elspru>
i install camlp4 so not sure what i'm missing.
2014-08-18
<bernardo1pc>
(but if so, why then did it install correctly other packages, like camlp5 and camlp4 ?)
2014-08-17
<nojb>
Is the current (camlp4) stream syntax documented anywhere ? It seems to be strictly less capable than the (older?) syntax that one can find online. For example, the "inline" alternative [let f = parser [< '' ' | ''\t'; s >] -> ...] is not allowed ...
2014-08-15
<Drup>
well, camlp4 has a feature that would be called sourcemap, where the output file is annotated in a way the compiler understand, to redirect the error location
<whitequark>
... I don't think camlp4 can do that
<Drup>
so yes, camlp4.
<whitequark>
camlp4?
2014-08-14
<asmanur>
is camlp4 supposed to compile in opam (ocaml 4.02)? I have a weird "Is a directory" exception not caught by ocamlbuild when trying to compile
2014-08-13
<whitequark>
the signature for Camlp4 is about 18,000 lines long
<Anarchos>
whitequark well i don't like macros preprocessor in general, but is it somehting specific with camlp4 ?
<whitequark>
I need to vent somewhere about how much I hate camlp4, but none of you deserve this
<Drup>
(in fact, I really dislike the parser technique used by camlp4)
<Drup>
whitequark: I'm not a camlp4 expert at all
<whitequark>
Drup: what does TRY do in camlp4 grammars?
<whitequark>
camlp4 doesn't have half of ppx-related AST changes
<Drup>
I don't know how ppx + camlp4 cooperates
<whitequark>
Drup: I was going to fix deriving's camlp4 thing
2014-08-08
<Kakadu>
you need to apply camlp4 plugin. 'pr_o.cmo' IIRC
<nojb>
What is the simplest way to see the plain ocaml code output by a camlp4 extension ?
2014-08-06
<wieczorek>
The dependency maker does not run camlp4 to check dependencies on generated code.
<wieczorek>
One time I found a bad thing related to camlp4
<ggole>
Is this some camlp4 nonsense?
<whitequark>
no, it's the replacement for camlp4
<wieczorek>
ppx = camlp4?
2014-08-03
<Drup>
s_kilk: either install camlp4-extra or (if that doesn't work) do "opam switch 4.01.0"
2014-07-31
<whitequark>
it's enough to say "camlp4", you know ;D
<Drup>
except pa_include is an horrible half-assed monstruosity using camlp4
<Drup>
this is screaming camlp4 error
<Drup>
whitequark: I think so, yes, because of camlp4
2014-07-30
<avsm>
this is in the camlp4 extension
<avsm>
it has a heuristic that adds foo.syntax to the camlp4 lines
<arjunguha>
anyone with camlp4 experience? i'm building a camlp4 extension that depends on ulex (for the lexer). the extension builds OK, but i get link errors when i try to use it.
2014-07-28
<troydm>
now I'm not expert on camlp4
<troydm>
nor am I an expert on camlp4
<Drup>
no, it's included directly with camlp4
<troydm>
should I specify some additional configurations for camlp4?
<troydm>
I'm not too familiar with camlp4
<troydm>
I have a file that should be processed with camlp4 prior to compiling
<troydm>
how can I use camlp4 with obuild?
2014-07-27
<miko>
Is it true pa_Num.cmx and pa_extensions.cmx are depending on outdated camlp4 ?
<mrvn>
Leonidas: you don't even need camlp4 with Obj.magic
<mrvn>
you would need camlp4 for that
<Drup>
nobody ever used it, except to write camlp4 extensions
<whitequark>
hopefully camlp4 will die and camlp5 will remain only used by coq and the like
<Drup>
writing a ppx is *much* easier than writing a camlp4 extension
<Drup>
well, it's easier to improve on ppx than on camlp4
<flux>
and I doubt for example coq is ever going to transfer from camlp4 to ppx..
<whitequark>
there are quite a few big codebases using camlp4 extensively
<tautologico>
is camlp4 working with 4.02?
2014-07-26
<Drup>
I think there is a camlp4 syntax extension for that
<whitequark>
it's not that bad, sans camlp4 and Stream
<whitequark>
you can't just... un-implement camlp4
<tautologico>
many of the important uses of camlp4 will shift to ppx soon
<Algebr>
camlp4
<Drup>
Algebr: well, why are you looking at camlp4 if you just want to do stuff ? X_x
<Algebr>
and camlp4
<Algebr>
I can desugar camlp4, and I'm doing with it camlp4o foo.ml. That dumps it to the screen, but then I'm doing camlp40 foo.ml > foo_desugar.ml and I get nonsense. Some kind of encoding issue?
<whitequark>
any interface that camlp4 contains or uses
<whitequark>
are you sure you want to use camlp4? it's being deprecated
<Algebr>
I don't understand this camlp4 syntax, [< 'Foo; x = some_parser >]. What is the x = some_func doing? Is it saying if I don't match on the item after 'Foo, then I'll try another parser named some_parser and whatever that matches, I'll bind it to x?
<Algebr>
So is Stream a module that is provided by camlp4?
<Drup>
(and finally, camlp4 is a undocumented mess and I would understand if def` wanted to say the hell away from it :D)
<Drup>
and I'm not sure how responsive merlin would be with a camlp4 overlay, since camlp4 is slow as fuck >_>
<Drup>
also, another reason, is that camlp4 is going to be far less used with the arrival of ppx
<Drup>
camlp4 works on complete file, it's not incremental
<Algebr>
Why doesn't merlin plan to support camlp4?
<Algebr>
So stuff that looks like, [< foo = bar >] , that's just a syntax extension via camlp4?
<Drup>
also, until the next version, camlp4 is part of the official distribution
2014-07-25
<Drup>
technically, camlp4 is just a parser engine with some facilities to emit ocaml code
<Drup>
well, camlp4 is a way to extend the language with *anything*
<Algebr>
so camlp4 is not formally part of the ocaml language spec?
<Drup>
usually, with camlp4, it's more the former
<Algebr>
What's the purpose of camlp4? what problem does it solve
<companion_cube>
well it was even more complicated to build with camlp4 than without
<Drup>
camlp4's issues were not related to building
2014-07-23
<whitequark>
additionally, it has an extension for using the derived types, Show<t> or something, that can't be reproduced without camlp4
2014-07-22
<Drup>
in camlp4, it would have been << (&&) >>, no ?
<whitequark>
compared to camlp4 at least
<Drup>
and there is the parser in camlp4
<agarwal1975>
oh.. so I need to *not* have camlp4. let me try.
<def`>
it's rejected by camlp4, not by the native parser
<agarwal1975>
I just did #require “camlp4”, and get the same error.
<def`>
agarwal1975: with camlp4 or not?
2014-07-21
<Drup>
garth: what does "ocamlfind list | grep -i camlp4" return ?
<garth>
I did camlp4 and camlp4-extra
<Drup>
so, you probably installed the binnary camlp4 only, and not the libraries
<Drup>
camlp4 is an "empty" package in opam for now
<garth>
OK, I did, but when I try to install lwt, it says it wants to install camlp4 as a dependency. Should I do it or is there a way to ignore?
<Drup>
whitequark: is the name "camlp4" for all debian-based systems ?
<whitequark>
apt-get install camlp4
<Drup>
install camlp4 in your system's package manager
<garth>
Can anyone tell me why I'm getting "ocamlfind: Package `camlp4' not found" when trying to install lwt when "opam install camlp4" returns "[NOTE] Package camlp4 is already installed (current version is 4.01.0)."?
2014-07-20
<rks`>
(I get the same error when using camlp4, otherwise I can get the signature)
<rks`>
Algebr`: you're using camlp4
2014-07-18
<nirvdrum>
Ahh. I need to install the system ocaml-findlib package. But installing core also install ocamlfind. The system one knows about the system camlp4, the one installed from opam does not. Looks like I just need to get creative with my PATH.
<nirvdrum>
Well, once I started hitting stuff like: W: Field 'pkg_camlp4_extend' is not set: Command ''/home/nirvdrum/.opam/system/bin/ocamlfind' query -format %d camlp4.extend > '/tmp/oasis-835ffa.txt'' terminated with error code 2
<Drup>
probably in a package called "camlp4" or something
<Drup>
camlp4 is packaged separately on debian-based systems.
<nirvdrum>
Hi. I'm on Ubuntu 14.04 and seem to be having a lot of trouble getting camlp4 to install anything useful. It looks like for 4.01.0 the package doesn't install anything, but other packages rely on the camlp4o binary. Am I just going about this wrong?
<whitequark>
it's really not, it already has that for camlp4
2014-07-16
<tobiasBora>
Ok I found how to use camlp4 listcomprehension. But do you know why Batteries stop developping it ?
<Drup>
for list comprehension, there is something in camlp4 directly
2014-07-15
<mfp>
rizo: camlp4 would certainly allow you to do such a thing, but it's being phased out (to be replaced by extension points)
<xavierbot>
Camlp4 Parsing version 4.02.0+dev10-2014-05-20
<xavierbot>
Camlp4 Parsing version 4.02.0+dev10-2014-05-20
<xavierbot>
Camlp4 Parsing version 4.02.0+dev10-2014-05-20
<xavierbot>
Camlp4 Parsing version 4.02.0+dev10-2014-05-20
<xavierbot>
Camlp4 Parsing version 4.02.0+dev10-2014-05-20
<xavierbot>
Camlp4 Parsing version 4.02.0+dev10-2014-05-20
2014-07-12
<rwmjones>
I was just wondering if ounit needs camlp4, but it seems it does not
2014-07-10
<nox>
Or a Camlp4 DSL for LLVM IR.
2014-07-09
<adrien_oww>
like ocaml-camlp4 or something like that
<numeo>
it suggests that i am missing tools like 'ocamldoc' and 'camlp4'
2014-07-07
<_habnabit>
'Merlin doesn't support (nor plan to support) Camlp4.' oh :(
<Drup>
the camlp4 native syntax for that is <:sql< .. >>
<Drup>
so yeah, camlp4 is a bit more powerful
<Drup>
(camlp4 also provide easy definition of quotations)
<Drup>
camlp4 is just raw AST extension/modification
<pjdelport>
rks`: Cool. Is Camlp4 basically analogous to Template Haskell, or more general than that?
<rks`>
but I wouldn't advise people to start using camlp4
<companion_cube>
there may be something from janestreet, based on camlp4
2014-07-06
<kaustuv>
what happened to the old wiki for ocamlbuild and camlp4 on brion.inria.fr?
<ssbr>
athan: my favorite feature of ocaml is camlp4
2014-07-03
<Drup>
the camlp4 package is a void package until next release, camlp4 is included in ocaml for <= 4.01
<mcsquiggedy>
Which is apparently not provided by opam's camlp4 package. Which is a dummy, I'm led to believe?
<mcsquiggedy>
I initially tried ulex, but ran into similar preprocessor trouble with camlp4.
2014-07-01
<Drup>
simple, you pipe through camlp4, get proper ocaml and then apply ppx
<flux>
reminds me how there's a camlp4 syntax extension for that. I wonder how it would work with the new extension point system?
<johnf>
another questions (sorry iterating through the build env trying to figure out how it works) how do I get sexplib.syntax to work with ocamlbuild with ocamlfind ocamlc I use -package sexplib.syntax -syntax camp4o but with _tags I add use_sexplib.syntax, use_camlp4, pp(camlp4o) and that doesn't seem to work I get a syntax error on sexp_opaque.
<rwmjones>
ok so camlp4 & labltk have gone .. where is labltk?
2014-06-18
<engil>
jpdeplaix: it seems that there is something in camlp4, though, but I didn't knew before today
<BitPuffin>
I should look into camlp4
<Armael>
there are list comprehension in camlp4
2014-06-17
<avsm>
it's the sunset years of camlp4, but cow shall live forever
2014-06-12
<rgrinberg>
Drup: if I don't use camlp4 even ocamlbuild is fast enough
<Drup>
yeah but it's also faster on no-camlp4 sources
<def`>
Also because it caches camlp4
<rgrinberg>
something to do with camlp4 caching
<flux>
so at the end of 'parse' you call parse_list stream, but then parse_list is parse_list lst = parser .. didn't 'parser' introduce an additional argument? I haven't used camlp4 parser for a long while
2014-06-10
<Drup>
does ocp-build support camlp4 ? I remember it didn't
2014-06-09
<whitequark>
it allows to implement a subset of camlp4
<rgrinberg>
i'm trying to renovate shcaml's build system and toss out all the camlp4 if i can
2014-06-05
<johnf>
hi I'm experimenting with camlp4 and I was able to extend a the grammer but when I try to create a quotation for a record I get an error from ocamltop "Error: Unbound record field label a" the type is defined in the grammer.ml file along with the 'module Make ...' if I define the type from top it then works. Any ideas?
2014-06-04
<Kakadu>
I don't think that camlp4 will be deprecated immediately
<Kakadu>
maybe we should add tips about using camlp4 syntax extensions into link above
2014-06-01
<Drup>
so, you are talking about the camlp4 syntax extension for streams ?
<Drup>
the camlp4 parser ?
<ThatTreeOverTher>
can anyone explain to me how to use the camlp4 parser? it doesn't seem to be working for me
<ThatTreeOverTher>
companion_cube, isn't that what the "<*.{byte,native}>: use_camlp4, pp(camlp4of)" line in _tags (line 4) is supposed to do?
<companion_cube>
ThatTreeOverTher: did you enable the camlp4 extension for streams?
2014-05-30
<companion_cube>
camlp4 is for extending syntax, so you may want to use it; metaOCaml is for specializing some code during execution, mostly for performance
<huza>
original i tried extended the syntax Ocaml,but I don'k like camlp4 syntax, so change to Meta Ocaml.
<companion_cube>
camlp4 is a syntactic preprocessor
<huza>
or camlp4 vs meta ocaml
<companion_cube>
it's camlp4 which is going to be split off
<companion_cube>
metap5 ? you mean camlp4 ?
2014-05-27
<Drup>
flux: are you testing with or without camlp4 ?
<labichn>
And I think that camlp4 bug from last week will exist for a while, no one seems enthused to take it on
<tobiasBora>
That's pretty interesting... But I'm a bit affraid of using camlp4 (which is going to diseapear) or even ppx. But if it's the only choice I'll make further researches, thank you !
<tobiasBora>
Won't it be a great replacement to avoid Camlp4 extensions in simple cases ?
<tobiasBora>
I would like to know if a kind of "super functor" exists (without using complicated Camlp4 extensions)
2014-05-25
* ggole
looks at camlp4
2014-05-22
<Drup>
(not sure where you should send the bug report though, since camlp4 has split)
<Drup>
(there is still a bug in camlp4)
<smondet>
labichn: why are you using camlp4 at all?
<labichn>
Gotcha. I've just recompiled master, is there a reason the camlp4o that is sitting in the local build dir (using prefix) would point to the camlp4 in /usr/local?
<Drup>
(and it was showing up only with camlp4 3.12)
<Drup>
which camlp4 did you use ?
<Drup>
camlp4 is not provided in ocaml 4.02
<flux>
well, I mean the only other possibility would be a camlp4 language extension
<avsm>
see camlp4
<avsm>
i put in camlp4 only after the blessed fork was available
<whitequark>
camlp4? conf-whatever?
2014-05-21
<adrien_oww>
nah, that was fine since I built without camlp4 anyway :P
<gasche>
last time this was discussed (at the time of the camlp4 split), I mentioned that splitting right in the middle of your cross-compilation was not very nice for you
<flux>
well, the deprecation of camlp4 for one?
2014-05-19
<gasche>
(I had a pa_cond camlp4 extension back in the days)
<avsm1>
i've got native code camlp4 building at least (fast!)
2014-05-18
<Anarchos>
adrien no idea : i use the lastet dev version of ocaml, and camlp4.
2014-05-17
<whitequark>
Anarchos: github.com/ocaml/camlp4, but if you just need to install it, opam install camlp4
<Anarchos>
where to download camlp4 ?
2014-05-15
<Drup>
whitequark: imho, post an email in the mailing list wg-camlp4 (and copy to gerd, I'm not sure he's following this one)
<whitequark>
and works the same way as for camlp4 exts
<Drup>
we should just reuse the same idioms that we use for camlp4 extensions.
<Drup>
well, with camlp4 packages, you just called the packages, you didn't need extra arguments
2014-05-14
<whitequark>
camlp4 is before Parsetree, ppx is at Parsetre
<flux>
or are they purely syntactic as camlp4
<whitequark>
flux: camlp4 doesn't?
<whitequark>
flux: camlp4 is bad enough, how horrible would a superset be, I can hardly imagine
<flux>
sadly extension points isn't really a superset of camlp4, rather a side-step
<whitequark>
camlp4 is essentially dead at this point
<BitPuffin>
camlp4 looks interesting..
<flux>
OCaml probably has the best meta-programming capabilities, historically in the form of camlp4 and in the future in the form of extension points
2014-05-12
<whitequark>
uses camlp4
<companion_cube>
opam install camlp4 ocamlfind oasis ← don't see no utop :p
<companion_cube>
hm btw whitequark, why do I need to install camlp4 for your introduction to ppx?
<whitequark>
aren't camlp4 exts order dependent as well?
<_obad_>
List.(1;2) -> works with the built-in parser, gives Error: Failure: "expr; expr: not allowed here, use do {...} or [|...|] to surround them" with camlp4
<_obad_>
goddamnit! camlp4 doesn't support sequences inside Module.(expr) constructs
2014-04-22
<Drup>
camlp4 has not yet been adapted to trunk
<philtor>
So now that camlp4 is in a separate lib does this have to be specified differently?
<smondet>
ThatTreeOverTher: with ocaml up to 4.01.0 camlp4 should be there by default
<ThatTreeOverTher>
Drup, how do I install camlp4? I've tried everything. I'm on Arch Linux
<Drup>
ThatTreeOverTher: it's part of camlp4
2014-04-20
<mfp>
it's the lwt.syntax camlp4 syntax extension; you can get it runnning in the toplevel with #camlp4o;; #require "lwt.syntax";;
2014-04-19
<Kakadu>
If I'm using trunk version of compiler where should I get camlp4?
2014-04-16
<whitequark>
gasche: actually, camlp4 is mostly upgraded wrt/ trunk. it only misses annotations on one or two nodes, I believe.
<gasche>
only it should be OCaml and/or Camlp4's maintainers doing the checking work, not an almost-innocent end-user
<gasche>
but one should still check that camlp4, without support for new constructs, at least compiles and work as expected, because that allows to spot regressions in the compiler
<gasche>
I think Jérémie plans to upgrade camlp4 to be correct wrt. trunk only after the feature freeze for 4.02
<Drup>
oh, right, you want to compile stuff that use camlp4
<whitequark>
Drup: ppx works only in trunk. everything else uses camlp4
<Drup>
whitequark: remind me, why do you want to compile camlp4 against trunk ?
<whitequark>
and now I have fourth, camlp4 isn't quite updated enough
<jpdeplaix>
well, ok. I didn't tried to compile camlp4 with trunk recently
<whitequark>
I mean, I'd eventually have bumped into lack of camlp4 META, but not yet
<jpdeplaix>
01:24:45 whitequark | I mean, it doesn't even start to build stuff. it just dies somewhere inside ocamlbuild // that's why I said that it's better with pr20 (but you can trick this by: install ocamlfind; install camlp4; reinstall ocamlfind)
<whitequark>
jpdeplaix: were you ever able to build camlp4 successfully with your overlay?
<whitequark>
oddly, transplanting it into camlp4 tree produces a circular build dependency
<whitequark>
hmm, apparently ocaml tree used to include camlp4/boot/camlp4boot.ml, but camlp4 tree does not
<whitequark>
the reason camlp4 build failed was that I had a directory called camlp4 in cdpath, and camlp4's build script does 'cd camlp4'
<whitequark>
but this is the price we pay for getting rid of camlp4, and I'd happily pay it twice
<Drup>
"That camlp4 can handle OCaml syntax (two OCaml syntaxes, in fact, the original one and a revised one introduced specifically for camlp4) is just a special case."
2014-04-15
<whitequark>
well, I'll just need to also patch camlp4, findlib and oasis
<whitequark>
Drup: oooooh, I just realized that all the extension points changes will mean that camlp4 won't build, since it manipulates OCaml's ASTs internally
<Drup>
you don't, but camlp4 does to compile :)
<Drup>
whitequark: camlp4 is broken against trunk because it's not updated with the new gramar
<whitequark>
and I have no damn clue what is broken in camlp4 build
<whitequark>
I guess the only option is to install camlp4 manually.
<ggole>
It was 195xx, or something like that: a different version of camlp4, I guess.
<ggole>
I remember bouncing off camlp4 a few times: the first time I loaded it up in the repl and did module C = Camlp4 to see what was in it
<rgrinberg>
i also hope that ocamlbuild will get the same treatment as camlp4
<pippijn>
so camlp4 is going away entirely?
<whitequark>
as it doesn't have camlp4 anymore
<whitequark>
in retrospect I even fail to understand why someone merged camlp4
<whitequark>
I will absolutely blog about it, because the concept is very simple and natural and *so much better* than camlp4
2014-04-09
<mrvn>
write a left-to-right camlp4 module that rewrites undefined orderings