caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Ivan Gotovchits <ivg@ieee.org>
To: caml-list <caml-list@inria.fr>
Cc: Pierre.Weis@inria.fr
Subject: [Caml-list] Deprecation of tabulation boxes
Date: Mon, 19 Dec 2016 12:59:22 -0500	[thread overview]
Message-ID: <CALdWJ+w47mA=3pByjBTDwaOv+XDEZXb-jRpEy5fM4YWxY-ryGA@mail.gmail.com> (raw)

[-- 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 --]

             reply	other threads:[~2016-12-19 17:59 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-12-19 17:59 Ivan Gotovchits [this message]
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

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CALdWJ+w47mA=3pByjBTDwaOv+XDEZXb-jRpEy5fM4YWxY-ryGA@mail.gmail.com' \
    --to=ivg@ieee.org \
    --cc=Pierre.Weis@inria.fr \
    --cc=caml-list@inria.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).