Readit News logoReadit News
xvilka · 6 years ago
Hopefully RISC-V support will land in the mainstream soon.
nojb · 6 years ago
It is planned, but requires availability of actual hardware for testing.
abhinai · 6 years ago
OCaml is a beautiful language but I haven't seen any big non language projects written in OCaml. Does any one know why? OR do such projects exist and it is only that I am not aware of them?
progman · 6 years ago
Companies using OCaml: https://ocaml.org/learn/companies.html

What is OCaml used for? https://www.quora.com/What-is-OCaml-used-for?share=1

Further infos:

awesome-ocaml - A curated collection of awesome OCaml tools, frameworks, libraries and articles: https://github.com/ocaml-community/awesome-ocaml

OCamlPro Research and Development: https://www.ocamlpro.com/research-and-development/

OCaml Weekly News (RSS): http://alan.petitepomme.net/cwn/cwn.rss

cosmic_quanta · 6 years ago
The Fastest Fourier Transform in the West (FFTW) library is an example of a ubiquitous software product using OCaml. The FFTW library is a C library, but it is in large parts generated by an OCaml program, genfft (from the FAQ http://www.fftw.org/faq/section2.html#languages)
thinkpad20 · 6 years ago
ReasonReact is a fantastic project that is written in OCaml (with Reason syntax). In addition to being a wonderful frontend framework, it's also a great introduction to the language.
msvan · 6 years ago
This is OCaml's problem: it's a great language with no users. ReasonML is trying to solve this by making it more approachable, and they're making steady progress.
bryanphe · 6 years ago
There are some really cool projects popping up with ReasonML - here are a few:

- A package manager like NPM, but for native code: https://github.com/esy/esy

- A fast Node version manager: https://github.com/Schniz/fnm

- A fast replacement for dotenv-cli: https://github.com/ulrikstrid/reenv

- A fast JS bundler: https://github.com/fastpack/fastpack

- A native language server: https://github.com/jaredly/reason-language-server

The OCaml language and toolchain is very powerful... and I do believe ReasonML makes it more approachable, at least for a wider audience of developers comfortable with JavaScript-style syntax.

progman · 6 years ago
> This is OCaml's problem: it's a great language with no users.

My other post in this thread proves the opposite.

swingthesickle · 6 years ago
There's a (unofficial) FUSE file system for Google Drive written in OCaml: https://github.com/astrada/google-drive-ocamlfuse
sanxiyn · 6 years ago
Unison File Synchronizer is written in OCaml.
rixed · 6 years ago
OCaml is very good at symbolic computations, and not so good at floating point computations. Therefore it's a very good language for writing compilers etc.

Further than that, there are no more programs written in it for the same reason than there are no more programs written in any interesting languages, I guess; ie largely accidental.

oconnor0 · 6 years ago
> and not so good at floating point computations

What does this mean? I was under the impression the OCaml compiler did a decent number of floating point specific optimizations, like unboxed arrays and what not.

parley · 6 years ago
I’ll add to all the examples in this thread that the Rust (also partly of ML descent) compiler was written in OCaml until it became self hosting.

I’ll also +1 the comments about ReasonML which is very promising.

Though I suppose these are both ”language” related — just not strictly the OCaml language.

z3phyr · 6 years ago
zukzuk · 6 years ago
The Tezos blockchain / dapp platform is based on OCaml. This to me makes it really appealing, if I were to find some actual use case for a blockchain application :)
isaachier · 6 years ago
When you say non-language, do you mean unrelated to OCaml specifically or any language? Facebook implemented its infer linter for C, C++, Java, and Objective-C in OCaml: https://github.com/facebook/infer. When I worked at Bloomberg, they released BuckleScript for JS development. Not sure if that caught on though.
richeyryan · 6 years ago
Bucklescript has caught on to some extent. Its sister syntax ReasonML is getting a little traction which means that Bucklescript is getting a little traction as they share the same build chain.

Facebook Messenger is built using Reason. A few other smaller companies are using it too: https://reasonml.github.io/en/users-of-reason

Wow Air were using it though one probably can't blame that for their collapse.

I guess that list doesn't include straight Bucklescript users either. There are definitely companies out there who use it outside of Reason so the OCaml, in general, is getting some use in industry which is nice.

amelius · 6 years ago
I'd love to use it, but there seems to be no multicore support.
kcsrk · 6 years ago
nickpeterson · 6 years ago
I obviously don't t know your use case, but the more I look into multi-core code, the less impressed with it I am. I think you're almost always better with a tight loop and a good persistence strategy. If the thing you're doing really benefits trivially from easy paralellism, I'd lean on gpus anyways...
oneplane · 6 years ago
A lot of Xen is built in OCaml
lelf · 6 years ago
> any big non language projects written in OCaml

Coq proof assistant (https://coq.inria.fr). Well, you can say it is language-related, but it’s a lot more than that.

the_why_of_y · 6 years ago
The tooling around libguestfs, a library for manipulating disk images that is typically used with KVM/Qemu based virtualization, is implemented in OCaml; the library itself is implemented in C.

https://rwmj.wordpress.com/2017/06/04/new-in-libguestfs-rewr...

http://libguestfs.org/

snaky · 6 years ago
> MetaOCaml has been successfully used for the most optimal stream fusion, specializing numeric and dynamic programming algorithms, building FFT kernels, compilers for an image processing and database query DSLs, OCaml server pages, generating families of specialized basic linear algebra and Gaussian Elimination routines, and high-performance stencil computations.

http://okmij.org/ftp/ML/MetaOCaml.html

thosakwe · 6 years ago
I’m a huge OCaml fan, but really it lacks a lot of things that you get out of the box with the runtimes of other languages. Multi core support is the most obvious one.

It’s definitely great for things like compilers, though. But I wouldn’t necessarily use it for a Web server.

kcsrk · 6 years ago
We're working on it. You can install and play around with Multicore compiler today though the wider library ecosystem is yet to catch up. https://github.com/ocamllabs/ocaml-multicore
yawaramin · 6 years ago
Multicore support is imho nowhere near OCaml's top problem :-) that would probably be a toolchain that lends itself to easy reproducible package management. But we're getting there.
cedricbonhomme · 6 years ago
It's even great to draw nice fractals: https://github.com/cedricbonhomme/iterated-function-systems ;-)
pjmlp · 6 years ago
Not everything needs to be usable for a Web server. I also wouldn't use C or C++ for anything directly plugged into the network. Morris worm proved what happens 30 years ago.

Besides, there are also multiple processes as possible solution.

floatboth · 6 years ago
Frama-C and Why3. Okay, maybe they're somewhat "language" projects since one is parsing C and another has its own language :)
baby · 6 years ago
As someone who tried to get into it :

- the syntax is not great. I've heard it's one of the reasons why F# was born

- not many people use Ocaml, which makes it hard to find help

- not many good resources. The official documentation is really hard to parse and there isn't much besides it and the reference book (which reads more like a book than a reference).

- no good ways to debug, print objects, test, etc.

- no one seems to agree on what is the standard library or the correct packages to import (for example there are several Option package)

monocasa · 6 years ago
A lot of thereom proving is done in Isabelle/HOL, a DSL in OCaml.
fspeech · 6 years ago
Hol is in sml. HolLight is OCaml.
Abishek_Muthian · 6 years ago
I like the direction Shakti team is taking with the project, skilled personnel teasing practicality; Although I believe that the secure application project is intended for defence purposes.
kcsrk · 6 years ago
Secure applications are pervasive. Think point of sale terminals, IoT devices and wearables handling personal information, all fly by wire systems, etc. Shakti is a whole family of processors from tiny microcontrollers to server class processors.
drudru11 · 6 years ago
Where can we get this RISC-V hardware?
hellooooooo · 6 years ago
drudru11 · 6 years ago
The shakti in particular...

Not available on that site.

philonoist · 6 years ago
There is always a mention of F# whenever discussion on Ocaml arises. This time I wonder it is not discussed as much here because may be F# is clearly at disadvantage in RISC-V domain.
oneplane · 6 years ago
Ironically, the bootloader is still assembly with C++. Then again, maybe that is not the interesting thing to do in OCaml.
sl33k- · 6 years ago
Malte here, I developed the bootcode. While I agree with you, it's about the minimum you can do in C/ASM land before starting up OCaml. The bootcode just initializes the registers to zero, setups a trap handler and the stack and heap. This is impossible to do from OCaml as it does not allow direct register/memory access as a language feature.
wtetzner · 6 years ago
I'm not sure that's ironic. I believe the OCaml runtime is written in C as well.
pjmlp · 6 years ago
Many times that is a matter of convenience, other than trying to prove a point doing a full bootstrap.
xyproto · 6 years ago
Both spike and qemu-system-riscv are now available in Arch Linux.
wickedsmile · 6 years ago
Shakti will be used in next iPhone I guess.
thechao · 6 years ago
Why? I’m honestly interested in you’re theory.