Browse thread
[Caml-list] int32/int64 literals in next release?
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ 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).
http://raevnos.pennmush.org/code/litint306-1.diff.gz
or http://raevnos.pennmush.org/code/ocaml.html 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 cmmgen.ml 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 pa_lisp.ml
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
shawnw@speakeasy.org
-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners