It looks like I missed this thread but cucumber.ml uses Base for most things. Let me know if you need any other information.
I think that function exists, it’s called “value_or_thunk”. See line 89 of base/option.mli at master · janestreet/base · GitHub
I personally use Core/Async/ppx_jane (my favorite is ppx_expect) with everything I do. A few others I’ve used include:
- rpc_parallel
- shexp
- delimited
- iron (very useful resource for seeing examples of a real world stateful app (I’m a little saddened that it’s no longer being released))
- sexp_pretty (I was so happy when I found this)
- textutils
I still haven’t prioritized time to dig into incremental and some of the other web libraries based on it, but I’m really itching to try them in some personal project at some point, hopefully soon.
Yeah, this was added somewhat recently, so it isn’t in the stable release yet.
Hi Yaron,
I have used quite a large subset of the libraries in the last few years. For example, bin_prot is used in my B-tree and filesystem code.
link: here
And I often look at Base.Map etc. to see if they have functions I need that the stdlib doesn’t. Sexplib is very useful. And Core.Time_stamp_counter was very useful for profiling. This is all for academic/personal projects. I also try to take style guidance from the J St libraries when thinking about the best way to do things.
Thanks to you and everyone else for making all this code open source!
Tom
After the merger of Core and Core_kernel, will projects that rely on that library be able to compile with js_of_ocaml? Until now, you had to restrict your code to Core_kernel to allow such compilation.
Yes! We’ve kicked out everything from Core that was not js-of-ocaml compatible.
y
Will the likes of Core.Command
and Core.Filename
be moved to separate libraries, or disappear, or? I would particularly like for Command
to live on somehow.
Core.Command
and Core.Filename
will rename in Core, but the parts that depend on Unix have been moved into new libraries, command_unix
and filename_unix
respectively.
For Command
that mostly means you now have to use Command_unix.run
instead of Command.run
.
For Filename
, that means things like realpath
and open_temp_file
now live in Filename_unix
, but things that are essentially string manipulation get to stay in Core.