caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* [Caml-list] Deprecation of tabulation boxes
@ 2016-12-19 17:59 Ivan Gotovchits
  2016-12-19 18:20 ` Gabriel Scherer
  0 siblings, 1 reply; 5+ messages in thread
From: Ivan Gotovchits @ 2016-12-19 17:59 UTC (permalink / raw)
  To: caml-list; +Cc: Pierre.Weis

[-- Attachment #1: Type: text/plain, Size: 2029 bytes --]

Greetings,

The tabulation boxes are marked as deprecated since 4.03.0. I've tried to
google for
any reasons that justify the removal but found only a note by Pierre Weis
in the Matis issue tracker[1]:


The proposed printf-like syntax is fine, but tabulation boxes are now
> deprecated.
> Indeed, tabulation boxes interaction with other pretty-printing boxes have
> never been sorted out and tabulation boxes usage is orthogonal to the rest
> of the Format module.
> If considered useful, tabulation boxes could be implemented out of the
> Format module.


First of all the tabulation boxes can't be implemented outside of the
format module since the tab stops are actually stored in the stack of
tabulation boxes. If this data field would be removed from the formatter we
will need to pass an extra argument to all pretty-printers that use the
tabulation break, or use some global variable. Neither solution can be
considered acceptable.

Speaking about the usefulness. The tabulation boxes are useful for printing
assembly outputs. And since compiler writing is sort of an application area
for OCaml, it shouldn't be considered as a rare case. It is also very
useful for printing Fortran code, that can be considered an assembler for
the numeric computing. It also just allows printing nicely formatted texts,
that it the main purpose of the Format library. As an example, tabulation
boxes are used in BAP and CIL frameworks.

To summarize, the deprecation will eventually make few project
non-compilable. And there is no clear substitution for the deprecated
feature.

Given that, I would like to hear the justifications for the deprecation of
tabulation boxes and suggested workarounds.

One possible workaround, that I could see, is making the `formatter` type
extensible with existential boxes or, more generally, with existential
attributes. In that case, we will indeed be able to implement tabulation
boxes outside of the format module.

Best wishes,
Ivan Gotovchits

[1]: https://caml.inria.fr/mantis/view.php?id=4665

[-- Attachment #2: Type: text/html, Size: 2515 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2017-01-03 15:33 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-12-19 17:59 [Caml-list] Deprecation of tabulation boxes Ivan Gotovchits
2016-12-19 18:20 ` Gabriel Scherer
2016-12-19 18:51   ` Ivan Gotovchits
2017-01-01 17:58     ` Pierre Weis
2017-01-03 15:33       ` Ivan Gotovchits

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).