Do you use Core (or other Jane Street libs)? Tell us how!

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

1 Like

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.

2 Likes

Yes! We’ve kicked out everything from Core that was not js-of-ocaml compatible.

y

6 Likes

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.

5 Likes