* [Caml-list] int/float_of_string
@ 2003-06-20 17:35 Christophe TROESTLER
2003-06-23 7:55 ` Frederic van der Plancke
2003-06-24 6:53 ` Pierre Weis
0 siblings, 2 replies; 3+ messages in thread
From: Christophe TROESTLER @ 2003-06-20 17:35 UTC (permalink / raw)
To: O'Caml Mailing List
Hi,
I noticed that there are some disparities in the way string are
converted to int/float :
Objective Caml version 3.06+36 (2003-06-19)
# int_of_string "34\000xx";;
- : int = 34
# float_of_string "34\000xx";;
Exception: Failure "float_of_string".
Is this intentional? I suppose it is not and float_of_string does the
right thing.
On a related note, it seems that the only way to decode an int/float
within a string is to create a new string containing the substring.
Moreover one must know the length of the number in advance. Wouldn't
it be useful to have primitives like:
int_of_string_at : string -> int -> (int, int)
float_of_string_at : string -> int -> (int, float)
with usage like
let (pos_after_the_number, decoded_number) = float_of_string_at s start
? (I know such thing can be done with Scanf but I believe such
primitives can simplify and speed up¹ Scanf with no slowdown on
int_of_string / float_of_string.)
Cheers,
ChriS
---
¹ For what simple minded benchs worth, int_of_string can be as much as
1000% faster than Scanf.
-------------------
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
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Caml-list] int/float_of_string
2003-06-20 17:35 [Caml-list] int/float_of_string Christophe TROESTLER
@ 2003-06-23 7:55 ` Frederic van der Plancke
2003-06-24 6:53 ` Pierre Weis
1 sibling, 0 replies; 3+ messages in thread
From: Frederic van der Plancke @ 2003-06-23 7:55 UTC (permalink / raw)
To: O'Caml Mailing List
Christophe TROESTLER wrote:
>
> Hi,
>
> I noticed that there are some disparities in the way string are
> converted to int/float :
>
> Objective Caml version 3.06+36 (2003-06-19)
>
> # int_of_string "34\000xx";;
> - : int = 34
> # float_of_string "34\000xx";;
> Exception: Failure "float_of_string".
>
> Is this intentional? I suppose it is not and float_of_string does the
> right thing.
And, BTW, I find the next unsafe behaviour very annoying, especially
when reading text files (while I was still innocent, I got hit):
# int_of_string "9876543210" ;;
- : int = -860875030
# int_of_float 9876543210.0;;
- : int = -860875030
Since OCaml aims to be safe, and since IMO adding an overflow check to
int_of_string & relatives would not be costly (relatively speaking), I
think it should be done. We could add unsafe_int_of_string-like functions
for speed afficionados.
Frédéric vdP
-------------------
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
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Caml-list] int/float_of_string
2003-06-20 17:35 [Caml-list] int/float_of_string Christophe TROESTLER
2003-06-23 7:55 ` Frederic van der Plancke
@ 2003-06-24 6:53 ` Pierre Weis
1 sibling, 0 replies; 3+ messages in thread
From: Pierre Weis @ 2003-06-24 6:53 UTC (permalink / raw)
To: Christophe TROESTLER; +Cc: caml-list
Hi,
[...]
> ---
> ¹ For what simple minded benchs worth, int_of_string can be as much as
> 1000% faster than Scanf.
>
> -------------------
In order to make Scanf faster, I would be glad to have your ``simple
minded benchs'' since my own figures are not compatible with yours:
ocamlopt compiled Scanf code is indeed fast (normally <= 2 times the
runtime of the ``cc -O2''-compiled C corresponding code).
Thanks in advance,
Pierre Weis
INRIA, Projet Cristal, Pierre.Weis@inria.fr, http://pauillac.inria.fr/~weis/
-------------------
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
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2003-06-24 6:53 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-06-20 17:35 [Caml-list] int/float_of_string Christophe TROESTLER
2003-06-23 7:55 ` Frederic van der Plancke
2003-06-24 6:53 ` Pierre Weis
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox