ANN: Release of Fmlib 0.6.0

I have the pleasure to annouce the release of version 0.6.0 of `fmlib`. The main components of `fmlib` are

  1. Web Applications in the Elm style
  2. Pretty Printing
  3. Combinator Parsing

Documentation see https://hbr.github.io/fmlib/odoc/index.html.

This release is mainly focussed on pretty printing and web applications. The new release has some breaking changes because some function names or function arguments have changed. The breaking changes can be easily fixed by looking into the documentation which contains all functions and the corresponding arguments.

Web applications:

  • Single page applications are now fully supported. I.e. it is possible to manage several virtual pages in one application. The switching between the pages can be done by accessing the browser history. I.e. the user is capable of pressing back and forward buttons and the application remains the same. For an introduction to single page applications see here. An example of a single page application can be seen here.
  • Web applications can contain reference elements. These can be used to optimize applications with really big doms (e.g. several hundreds or thousands of elements). Introduction to reference elements see here. A simple spreadsheet implemented as a web application can be found here.
  • Files on the local machine can be selected and loaded into the application.
  • Session and local storage of the browser can be used.

Pretty Printing: A new algorithm based on Phil Wadler’s design is used which makes the code more elegant, easy to read and fixes some bugs in the previous algorithm. The new algorithm is in a separate module `Pretty`. The old module `Print` is kept but will be removed in the next release.

Combinator Parsing: As a convenience there are lexeme parsers which support languages with some standard syntax (like Haskell’s Parsec). Some bugfixes and minor additional functions. No breaking changes.

10 Likes

These look like high quality libraries, but I wonder why you package them together ?

One could want to do pretty printing but not a webapp and vice versa.

Also, have you at pprint and pretty_expressive ? Reading quickly I could see if there was significant differences between your pretty and these ones. I am not saying yours is worse, but maybe if you had contributed to one of these instead of writing your own from scratch, then the resulting library would have been better than anything we have today.

You can install them separately.

opam install fmlib_pretty
opam install fmlib_browser

They are just released together. It is easier for me. But for opam they are individual packages.

2 Likes

Thanks for your work on this library. I am a user of fmlib_browser. The very complicated page I use it for is a joy to work with and easy to maintain. I can’t say the same for react/typescript.

5 Likes

@quietlight: Thank you for the positive feedback. I am happy to hear that the library is useful for you.

If you need any function which might be useful in the library, don’t hesitate raise an issue. As well raise an issue if you observe something strange.

Regards

Helmut