Version française
Home     About     Download     Resources     Contact us    

This site is updated infrequently. For up-to-date information, please visit the new OCaml website at

Browse thread
[Caml-list] int32/int64 literals in next release?
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Shawn Wagner <shawnw@s...>
Subject: Re: [Caml-list] int32/int64 literals in next release?
On Wed, Nov 13, 2002 at 10:42:36PM +0100, Pierre Weis wrote:
> Hi,
> > Is there any chance some way of inputing int32/int64 literals can be
> > added to the compiler for this next release?
> AFAIK, this is fairly hight in the todo list.

Ask, and ye shall recieve (In other words, I had a few hours to kill and
have been wanting this feature myself).

or in case the direct URL
doesn't work, as I might put up newer versions (-2, -3, etc.) if I fix any of
the problems noted below.

Uses a suffix to the number to indicate type, like in C. The actual suffixes
are taken from the printf formats.

With it:
% ./ocaml
        Objective Caml version 3.06

# 0;;
- : int = 0
# 0l;;
- : int32 = <int32 0>
# 0L;;
- : int64 = <int64 0>
# 0n;;
- : nativeint = <nativeint 0>
# Int32.mul 6l 7l;;
- : int32 = <int32 42>

Tested with bytecode and i386 linux native.

Problems I know about already:

* The native compiler doesn't support literal int64's, as I didn't see a place
to crib from for what to emit in after a quick look.

* int32's and nativeints on the native compiler aren't heavily tested, though
simple problems using them compile and appear to work right.

* Compiling camlp4 breaks with:
../../boot/ocamlrun ../boot/camlp4 -nolib -I ../boot ./pa_lispr.cmo
pa_extend.cmo q_MLast.cmo pr_dump.cmo -o pa_lisp.ppo
Error while loading "./pa_lispr.cmo": interface mismatch on MLast.

I haven't been able to figure out why. camlp4 is commented out of the
Makefile for now.

* The Foo.of_string functions aren't handling the suffixes, even though I
changed ints.c:parse_long() and ints.c:int64_of_string() to do so, and they
work when called through gdb. Do ocamlrun and the native compiler use
another set of functions for the conversions?

Help with any of the above is appreciated.

Shawn Wagner
To unsubscribe, mail Archives:
Bug reports: FAQ:
Beginner's list: