On Sat, Apr 22, 2017 at 8:06 PM, Hongbo Zhang (BLOOMBERG/ 731 LEX) <hzhang295@bloomberg.net> wrote:
Exactly, for companies like janestreet, they may not feel its pain since they didn't depend on external ppx, release software only works on latest compilers, and have a very good orientation section about those conventions, it makes perfect sense under such internal organizations.

Jane Street has no special immunity. We use external PPXs, and we in fact had a bunch of pain around versioning of PPXs, which is precisely why we've spent real effort on making versioning easier.

Syntactic abstraction is amazingly useful for many different kinds of programming, open source and industrial alike. Again, I the emphasis should be on identifying and fixing the problems with PPX, not pushing to avoid it.
 
But for external open source communities, it's too bad that PPX is so widely used, migrate-parsetree maybe useful, but it adds yet another layer of complexity, the real solution is checking in generated code which will cut the dependency completely or just don't use ppx.

Did you read Jeremie's post? That solution was considered, but it turns out to have a lot of issues.
 
Anyway , I don't want to make anyone unhappy, but I believe acknowledging what the awesome OCaml language offers and keeping build high quality software instead of writing ppx is the right way to benefit our community . People built amazing software in less expressive languages like GoLang, I am sure we can do much better!

But as OCaml users know, more expressive languages really do help. I'm not in favor of adding expressiveness at all costs, but the upside of PPX is massive, and the problems are eminently manageable, as the emergence of tools like migrate-parsetree has demonstrated.

y
 
----- Original Message -----
From: Robert Muller <robert.muller2@gmail.com>
To: HONGBO ZHANG
CC: caml-list@inria.fr, ssp.mryau@gmail.com
At: 22-Apr-2017 15:47:47

The VAX Fortran compiler was a state-of-the-art compiler in its day. The compiler was implemented in BLISS, a systems programming language with a powerful macro system. Each compiler developer invariably authored their own macros to suit their styles. So when one wandered into foreign bits of the compiler they appeared to be written in different dialects of BLISS. We had the dialects of the present developers as well as legacy dialects from years of earlier developers. It was not for nothing that our development machine was called "Babel". 
New hires faced a steeper slope in mastering the compiler than they would have had there been no macros. I concluded that macros, at least managed in that style, were injurious to the engineering process.
- Bob Muller


On Sat, Apr 22, 2017 at 10:47 AM, Hongbo Zhang (BLOOMBERG/ 731 LEX) <hzhang295@bloomberg.net> wrote:
Yes, I agree it's useful , and that's why I wrote hundreds of thousands of lines of code in syntactic meta-programming (camlp4, fan, ppx)
But in the end of day, the conclusion is the cost is just so huge that it should not be widely used, at least , it should not be *leaked* to end users. ( I remember I had a conversation with the original maintainer of camlp4, Nicolas, about 5 years ago, he had similar ideas with me)


----- Original Message -----
From: Serge Sivkov <ssp.mryau@gmail.com>
To: caml-list@inria.fr
At: 22-Apr-2017 08:49:40

Hence, my two cents: PPX has problems in cross-compilation use cases, but I suppose something like new tag in META can reslove this issue.
As for me, just ppx_deriving* by whitequark is yet one example of usefullness of PPX.

WBR, ssp

2017-04-22 5:10 GMT+06:00 Emilio Jesús Gallego Arias <e@x80.org>:
"Hongbo Zhang (BLOOMBERG/ 731 LEX)" <hzhang295@bloomberg.net> writes:

> Yes, that's exactly what I suggested in the beginning!

Maybe I interpret the word "harmful" differently, but IMVHO I have to
strongly disagree with your choice of subject in the original mail.

Not only PPX has not been harmful for me, but it has been a life-saver
tool that has enabled significant progress towards more productive
research.

"Hongbo Zhang (BLOOMBERG/ 731 LEX)" <hzhang295@bloomberg.net> writes:

> calling it 'madness' is disrespectful

Personally, I fully subscribe Yaron's message and I see nothing
disrespectful in suggesting that abandoning syntactic abstractions is a
very bad idea.

You wrote:

 "the OCaml library developer should avoid PPX as much as you can",

but if you meant:

 "PPX seems quite unstable these days, I wonder how could we improve
  long-term stability?"

I'd have to admit that message didn't reach to me.

Best regards!
Emilio

--
Caml-list mailing list.  Subscription management and archives:
https://sympa.inria.fr/sympa/arc/caml-list
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
Bug reports: http://caml.inria.fr/bin/caml-bugs