Commit Graph

81 Commits (3c1d4986bcd434ed641f6844388b86910354696a)

Author SHA1 Message Date
Gabriel Scherer 3ffa399b37 Use a nominal datatype for CamlinternalFormat.format6
This should make the type-checking of formats simpler and more robust:
instead of trying to find a pair as previously, we can now use the
path of the format6 type directly.

A nice side-effect of the change is that the internal definition of
formats (as a pair) is not printed in error messages anymore.
Because format6 is in fact defined in the CamlinternalFormatBasics
submodule of Pervasives, and has an alias at the toplevel of
Pervasives, error messages still expand the definition:

> Error: This expression has type
>          ('a, 'b, 'c, 'd, 'd, 'a) format6 =
>            ('a, 'b, 'c, 'd, 'd, 'a) CamlinternalFormatBasics.format6
>        but an expression was expected of type ...

Passing the option `-short-paths` does avoid this expansion and
returns exactly the same error message as 4.01:

> Error: This expression has type ('a, 'b, 'c, 'd, 'd, 'a) format6
>        but an expression was expected of type ...

(To get this error message without -short-paths, one would need to
define format6 directly in Pervasives; but this type is mutually
recursive with several GADT types that we don't want to add in the
Pervasives namespace unqualified. This is why I'll keep the alias
for now.)

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14868 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-05-14 15:07:13 +00:00
Gabriel Scherer 72669307e8 second part of Benoît Vaugon's format+gadts patch
To finish the bootstrap cycle, run:

  make library-cross
  make promote
  make partialclean
  make core

  make library-cross
  make promote-cross
  make partialclean
  make ocamlc ocamllex ocamltools

  make library-cross
  make promote
  make partialclean
  make core
  make compare

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14810 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-05-12 15:37:37 +00:00
Damien Doligez 5b8df637d2 merge branch "safe-string"
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14705 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-04-29 11:56:17 +00:00
Xavier Leroy 1353262558 PR#5739: Printf.printf "%F" and nan/infinity/neg_infinity.
(Reflecting commit r13910 on version/4.01)


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13911 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-07-19 09:07:54 +00:00
Pierre Weis 626c696aee Wrong quoting chase.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13717 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-05-29 18:03:55 +00:00
Pierre Weis 3e110da03d Details.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13608 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-04-25 09:11:44 +00:00
Pierre Weis a79b51b675 Complete rewriting of Format.mk_printf. Convergence between Printf and Format codes.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13606 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-04-24 14:56:25 +00:00
Pierre Weis a2c500f8bc Details.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13413 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-03-19 08:06:06 +00:00
Damien Doligez c63f9e0957 fix a few problems with whitespace and over-long lines
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13393 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-03-09 22:38:52 +00:00
Damien Doligez def31744f9 remove all $Id keywords
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13013 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-10-15 17:50:56 +00:00
Pierre Weis 1d690696e9 Introducing ikfprintf.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@12343 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-04-11 18:01:02 +00:00
Damien Doligez b4ccb873a6 PR#5380: copy fix from 3.12 branch
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@12014 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-01-11 15:22:51 +00:00
Damien Doligez cca0035fbb continuing to change the name to OCaml
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@11922 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2011-12-21 15:37:54 +00:00
Damien Doligez 3b507dd1aa renaming of Objective Caml to OCaml and cleanup of copyright headers
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@11156 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2011-07-27 14:17:02 +00:00
Damien Doligez c91db736b1 merge changes from 3.12.0 to 3.12.1
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@11123 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2011-07-20 09:17:07 +00:00
Pierre Weis c5289420e9 Module Printf, Format, and Scanf are printed in -w A warning mode. This found an old and subtle bug in Format; for other modules, the code is clearer and cleaner!
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@11100 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2011-06-20 21:46:20 +00:00
Pierre Weis e5ecb27dab Documenting that +int is now a valid token, hence %F can support a sign indication.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@9463 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2009-12-09 08:28:59 +00:00
Pierre Weis 7ad9cd975b To deal with printf output for %F format, adding a unary + operator.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@9454 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2009-12-07 16:40:39 +00:00
Pierre Weis 41d5f40413 Introducing nop format delimiter %,
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@9429 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2009-11-30 21:49:25 +00:00
Pierre Weis 0ae5a2decf Spell-check.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@9355 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2009-09-25 08:01:40 +00:00
Pierre Weis 318bab1553 Correcting the F specification with/without widths.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@9345 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2009-09-23 11:18:23 +00:00
Damien Doligez ed32f569e3 merge changes from ocaml3110 to ocaml3111rc0
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@9270 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2009-05-20 11:52:42 +00:00
Pierre Weis e1556cf9da option -C is a gnuism that is not portable: use cd instead!
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@9227 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2009-04-06 22:23:23 +00:00
Pierre Weis 785a6d9748 A simple fix to BR#4756
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@9191 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2009-03-28 14:24:53 +00:00
Pierre Weis 579eb1e41e Documentation.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@9040 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2008-09-27 20:50:01 +00:00
Damien Doligez f855dcf49a PR#4321 bug with positional parameters
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@9017 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2008-09-10 15:34:51 +00:00
Pierre Weis 9be355c716 Various explanations and typos.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@8901 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2008-07-01 12:47:39 +00:00
Pierre Weis 10b38811b6 Support for tk8.5: correcting tk_incs.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@8899 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2008-07-01 09:55:52 +00:00
Pierre Weis fd31a59856 Indentation was erroneous.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@8410 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2007-10-04 21:00:51 +00:00
Pierre Weis 236baa6ee4 Encapsulation of system specific exports in module Printf.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@7735 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2006-11-17 08:34:05 +00:00
Pierre Weis 6d958f53fd New type ac (argument counting for format strings). New function ac_of_format.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@7722 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2006-11-06 10:22:42 +00:00
Pierre Weis 044ac2610c New function ifprintf that does not print. (See request #0004031.)
Ifprintf is a one-liner using implementation tools from Printf, whereas it is
not possible to write it in pure Caml.
Useful to conditionally ignore printing.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@7717 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2006-11-06 09:12:53 +00:00
Pierre Weis 5f5211a849 Better calculation of format argument number.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@7708 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2006-10-27 09:13:40 +00:00
Pierre Weis 5770271304 Typechecking of user's defined readers.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@7705 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2006-10-24 22:07:47 +00:00
Pierre Weis fa5b7ef147 Sub module Sformat now deals with format6.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@7703 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2006-10-24 21:11:48 +00:00
Pierre Weis 5c04d6cade Bug report 0004119: Issue with Scanf.Scanning.from_file
Bumping the version sub number and date.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@7678 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2006-10-04 10:02:01 +00:00
Pierre Weis cf0590146f Code review before adding new typing of format string.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@7396 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2006-05-04 12:52:22 +00:00
Damien Doligez 1279ab4b76 fusion des changements 3.09.1 -> 3.09.2
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@7382 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2006-04-16 23:28:22 +00:00
Pierre Weis cd49f2b781 Dead code removed + typos.
cvs: ----------------------------------------------------------------------


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@7375 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2006-04-05 15:39:10 +00:00
Pierre Weis 176b3c0da8 Module Sformat is internal to printf. Better typing specifications of functions working with format strings.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@7374 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2006-04-05 11:49:07 +00:00
Pierre Weis dca5609f32 Importing the 3.09 debugging version of Printf.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@7333 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2006-01-24 11:12:26 +00:00
Pierre Weis 129535d070 Correcting bug for %{ conversions.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@7300 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2006-01-04 08:50:40 +00:00
Damien Doligez 0e5ca9dca5 nettoyage
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@7164 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2005-10-25 18:34:07 +00:00
Pierre Weis 19096f90f3 Hard bug in printf: when the first argument to print was a floating point
number, the printing process failed and we had a fatal error.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@7095 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2005-09-30 16:15:18 +00:00
Pierre Weis 922746e675 Implementing positional parameters in format string. First step:
runtime implementation for printf-like functions.
Revising printf documentation and adding something for positional
parameters.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@7082 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2005-09-26 10:12:01 +00:00
Pierre Weis 339b08f82f Closing a long standing bug in the implementation of printf-like
functions: partially applied printf functions were printing material
as soon as the first argument was applied (and even before: printing
started as soon as the format string was provided).
This is the first step towards the implementation of $ formats
(i.e. formats that can access directly to any of their arguments,
using a $n notation to denote the nth argument (``a la Yacc'')). This
is supposed to be mandatory to internationalisation of messages.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@7060 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2005-09-20 17:18:03 +00:00
Pierre Weis 32e84c0515 Homogènésation des interfaces de printf et format: kprintf est marquée
obsolète au profit de ksprintf; on introduit kfprintf.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@6979 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2005-07-22 12:21:02 +00:00
Pierre Weis 280dcb3097 Correcting bug about erroneous erro reporting in case of wrong
conversions in format strings.
Static and dynamic messages about wrong format strings are now very
similar in printf.ml, scanf.ml, and typecore.ml.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@6802 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2005-03-04 14:51:31 +00:00
Pierre Weis 53c525611e Invalid format string error report is more uniform.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@6726 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2004-12-07 06:17:12 +00:00
Pierre Weis 09b2253f0e Doc (typos).
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@6677 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2004-11-16 10:25:59 +00:00