caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Pierre Weis <Pierre.Weis@inria.fr>
To: tews@tcs.inf.tu-dresden.de (Hendrik Tews)
Cc: caml-list@inria.fr
Subject: Re: [Caml-list] pretty printers and format and matrices
Date: Thu, 14 Jun 2001 21:37:44 +0200 (MET DST)	[thread overview]
Message-ID: <200106141937.VAA27299@pauillac.inria.fr> (raw)
In-Reply-To: <15143.22914.894206.676827@gargle.gargle.HOWL> from Hendrik Tews at "Jun 13, 101 02:16:02 pm"

> Hi, 
> 
> I have another question about the format module:
> 
> How can I set max_boxes to infinity?
> 
> We use the format module to output source code of a programming
> language. For that one needs a way to advice the format module to
> print everything, regardless of how deep boxes are nested. At the
> moment we use (set_max_boxes 1000), and when we run into problems
> we increase the number.
> 
> 
> Bye,
> 
> Hendrik
> -------------------
> Bug reports: http://caml.inria.fr/bin/caml-bugs  FAQ: http://caml.inria.fr/FAQ/
> To unsubscribe, mail caml-list-request@inria.fr  Archives: http://caml.inria.fr

Having to open more than 1000 boxes to print any material seems
incredible to me, since I used to pretty print an entire Caml compiler
within 35 boxes.

Anyway, I'm afraid there is no notion of infinity in Format. Neither
in the Caml integer values. Hence no solution to your problem.

The best you can do is to use a rough approximation, as in:

set_max_boxes max_int;;

On a regular machine this allows to simultaneously open no more than
4611686018427387903 boxes, which could be large enough to pretty print
a huge source chunk of your programming language source programs. On
the other hand, on my Ipaq handheld this limit is much smaller than
that, namely 1073741823 which may be really short for you.

If you need more than max_int simultaneously open boxes, you should
rewrite the Format module using the bignumbers facility of
Caml. However, I should admit that you will still be facing another
stupid limit (no more than 2^30 words in a big integer, which means
approximately 9 * 2 ^ 30 decimal digits on a little machine, once more
far far away from infinity). If you really need infinity, I am not aware
of any practical solution in Objective Caml.

Sorry for this unsatisfactory answer, due to stupid limitations in the
language.

Pierre Weis

INRIA, Projet Cristal, Pierre.Weis@inria.fr, http://pauillac.inria.fr/~weis/


-------------------
Bug reports: http://caml.inria.fr/bin/caml-bugs  FAQ: http://caml.inria.fr/FAQ/
To unsubscribe, mail caml-list-request@inria.fr  Archives: http://caml.inria.fr


  reply	other threads:[~2001-06-14 19:37 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-06-12 18:18 Chris Hecker
2001-06-12 19:03 ` Markus Mottl
2001-06-12 21:01   ` Chris Hecker
2001-06-13 12:16     ` Hendrik Tews
2001-06-14 19:37       ` Pierre Weis [this message]
2001-06-14 19:58         ` Patrick M Doane
2001-06-14 20:36           ` Pierre Weis
2001-06-14 21:35         ` Frank Atanassow
2001-06-15 12:43           ` Pierre Weis
2001-06-15 12:34         ` Hendrik Tews
2001-06-15 17:32           ` Pierre Weis
2001-06-14  6:46     ` Pierre Weis

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=200106141937.VAA27299@pauillac.inria.fr \
    --to=pierre.weis@inria.fr \
    --cc=caml-list@inria.fr \
    --cc=tews@tcs.inf.tu-dresden.de \
    /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).