Live data from Hacker News

A better build system for OCaml

blog.janestreet.com

151–160 of 219 posts

Re: A better build system for OCaml

#151
post #12

I wonder if anyone has used Jane Street's open source OCaml libraries and tools for somewhat serious projects. I took a brief look at these things, and my impression is that their stuff isn't "ready" for anyone outside Jane Street, even though they put a lot of effort in building the ecosystem and open source their code.

I do! Their standard lib replacement was used on the project where I originally learned ocaml, so I have just always used it. You have to be fairly sophisticated at reading fn signatures to find things sometimes but otherwise no complaints with it. It has some very nice features too for example convert functions to/from sexps for all base types can save you a ton of time if you know it's there and plan for it. I've u…

Thanks! The "depends on an undocumented thing" happens quite often for such projects from companies, and is enough to hold people back -- in a company where a third party library requires approval, such issues mean that a fix could take a while before it is available internally, which could delay your own work etc. A lot of this probably comes down to the ecosystem -- not enough people are using these things to discover them early.

Re: A better build system for OCaml

#152

Earlier quoted context omitted.

Very interesting footnote system. Is it just for fun and aesthetic or have a deeper origin or purpose?

the Chicago Manual of Style suggests this order: ⃰ (asterisk) † (dagger) ‡ (double dagger) § (section mark) ‖ (parallels) # (hash) (Hard to present glyphs that would actually be used in print - I've chosen what I think is close - but they are not that close because wrong font)

Compose key shenanigans can make such typesetting significantly easier. That's built-in on Linux/X, but there are also easy solutions for Windows systems.

Re: A better build system for OCaml

#153
post #87

Earlier quoted context omitted.

That’s such an obnoxious tactic. It’s basically saying “Your point is invalid unless you can cut this Gordian Knot on the spur of the moment in an internet comment!”

It's less bad than the ill informed Dunning-Kruger opinion it rebuts.

Don’t worry Phillip, ignoring the bit where it isn’t a rebuttal at all, I know I’m not a smart person. That’s why I like simple builds!

Re: A better build system for OCaml

#154
post #121

Earlier quoted context omitted.

It's funny because the thing that always turned me off from Haskell was that it feels like a stream of whitespace and identifies without good visual cues as to structure. I'm sure once you get the zen of it, it's fine. Like Lisp, I guess, you learn to think in its structure. But looking at a screenful of Haskell to me is intimidating. Of the bunch I found SML/NJ to be the most readable.

The whitespace is the visual cue. But in any case, you can use curly braces and semicolons in Haskell just fine. You can also write your Haskell like Lisp, and add lots of parens everywhere, and use all operators in prefix-form.

Well there's apparently a not insignificant amount of Haskell at the new job I'm starting in a week, so I guess I'll see how I fare with it.

Re: A better build system for OCaml

#155
post #70

Earlier quoted context omitted.

> CMake is an abomination. “Hey go learn this new language to compile this other language!” "go learn this awful new language"

Xmake uses lua if you want to give it a try.

He did write ‘awful,’ which is a fair description of the experience of writing Lua.

I don’t mean that as an insult to Lua’s creators. They seem like really smart fellows. It’s just that the language is (to my eyes, with my background) viciously ugly. And 1-based arrays, of course, are evil.

It has some neat ideas, though, and it is supposed to be very easy to integrate into a project. But man, that syntax …

Re: A better build system for OCaml

#156
post #4

I have to respect Jane Street for proving that HM-typed functional programming can be production-ready and extremely fast when given enough love. I still occasionally hear things about how the more academic-styled functional languages can't work in production, but Ocaml shows that it absolutely can work, even with high performance requirements.

I dunno if anyone really doubted HM, functional programming could work. I've written a bit of OCaml and apart from the bad syntax (code very easily becomes a word soup) it's not especially different to other programming languages, just more convenient sometimes.

I think it's purity that actually is a big difference, but OCaml isn't pure.

Re: A better build system for OCaml

#157
post #134
post #116

Earlier quoted context omitted.

Actually, not. These market makers are often prop shops. That means they use their own fund (prop = proprietary) to do the trading. They can do that because they don't need much capital to run. So the story here is that over the last twenty years they stole the lunch from the traditional market makers like eg banks. Of course, they got rich in the process. But they started from relatively modest means, compared to th…

Perhaps some start this way. But in terms of the general trend of talented engineers and mathematicians being sucked into this quant vortex, it is a matter of making wealthy people wealthier.

Automation in trading makes all investors wealthier via lower fees. Trading costs basically nothing nowadays, and that is because far fewer people are employed to do it.

Obviously, the people who own the automation will want a cut of the rewards, like any other business.

Re: A better build system for OCaml

#158

Earlier quoted context omitted.

They likely mean 'generally used with other languages'. make is an example.

Make is primarily used with C and C++. It is not commonly used in Java, Rust, Go, NodeJS, or hardly anything besides C and C++. Make is not "generally used with other languages".

Make is the common denominator in most projects I come across regardless of language. I see lots of frontend projects and certainly Go and Rust projects using Make quite often.

Ironically many modern C/C++ projects use Cmake to generate Makefiles. If anything the inverse of your observation is mine.

Re: A better build system for OCaml

#159

Earlier quoted context omitted.

Make is primarily used with C and C++. It is not commonly used in Java, Rust, Go, NodeJS, or hardly anything besides C and C++. Make is not "generally used with other languages".

Make is the common denominator in most projects I come across regardless of language. I see lots of frontend projects and certainly Go and Rust projects using Make quite often. Ironically many modern C/C++ projects use Cmake to generate Makefiles. If anything the inverse of your observation is mine.

Are those Makefiles doing anything more than calling "go build" and "cargo build"?

Because if they're still using the language-specific build tools and dependency management systems, then I think you would find that the Fedora maintainer higher in this thread would not be any happier that there is a sugar coating of Make. That's not what they're asking for, based on other rants I've seen from Linux distro maintainers.

Re: A better build system for OCaml

#160

Earlier quoted context omitted.

They likely mean 'generally used with other languages'. make is an example.

Make is primarily used with C and C++. It is not commonly used in Java, Rust, Go, NodeJS, or hardly anything besides C and C++. Make is not "generally used with other languages".

Java https://github.com/openjdk/jdk/blob/master/Makefile

Rust https://github.com/rust-lang/rust/blob/master/tests/run-make...

Go https://github.com/golang/go/blob/master/src/runtime/Makefil...

NodeJS https://github.com/nodejs/node/blob/main/Makefile

OCaml https://github.com/ocaml/ocaml/blob/trunk/Makefile

Python https://github.com/python/cpython/blob/main/Makefile.pre.in

Haskell https://github.com/ghc/ghc/blob/master/ghc/Makefile

R https://github.com/wch/r-source/blob/trunk/Makefile.in

CLR https://github.com/mono/mono/blob/main/Makefile.am

Ruby https://github.com/ruby/ruby/blob/master/enc/Makefile.in

Post reply on HN