caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* probleme de parsing ?
@ 2000-02-29 19:06 Jean-Yves Moyen
  2000-03-01 17:19 ` Sven LUTHER
                   ` (3 more replies)
  0 siblings, 4 replies; 7+ messages in thread
From: Jean-Yves Moyen @ 2000-02-29 19:06 UTC (permalink / raw)
  To: caml-list

Bonjour, il y a apparamment un probleme de parsing des chaines dans la
fonction int_of_string : les espaces precedents (ou suivant) les nombres
ne sont pas eliminer. En revanche, il le sont dans la fonction
float_of_string :

# int_of_string " 5";;
Uncaught exception: Failure("int_of_string")
#float_of_string " 5";;
- : float = 5

(avec Ocaml 2.04)

Est-ce voulu ? Si oui, pourquoi avoir introduit cette difference ?


Hypocoristiquement,
Jym.




^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: probleme de parsing ?
  2000-02-29 19:06 probleme de parsing ? Jean-Yves Moyen
@ 2000-03-01 17:19 ` Sven LUTHER
  2000-03-06  9:07   ` Xavier Leroy
  2000-03-01 18:07 ` Vitaly Lugovsky
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 7+ messages in thread
From: Sven LUTHER @ 2000-03-01 17:19 UTC (permalink / raw)
  To: Jean-Yves Moyen; +Cc: caml-list

On Tue, Feb 29, 2000 at 08:06:51PM +0100, Jean-Yves Moyen wrote:
> Bonjour, il y a apparamment un probleme de parsing des chaines dans la
> fonction int_of_string : les espaces precedents (ou suivant) les nombres
> ne sont pas eliminer. En revanche, il le sont dans la fonction
> float_of_string :
> 
> # int_of_string " 5";;
> Uncaught exception: Failure("int_of_string")
> #float_of_string " 5";;
> - : float = 5
> 
> (avec Ocaml 2.04)
> 
> Est-ce voulu ? Si oui, pourquoi avoir introduit cette difference ?

et au passage est-ce normal que caml-light 0.74 plante pour 1./.0. mais pour
1/0 l'exception est proprement attraper par le toplevel ?

Amicalement,

Sven LUTHER




^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: probleme de parsing ?
  2000-02-29 19:06 probleme de parsing ? Jean-Yves Moyen
  2000-03-01 17:19 ` Sven LUTHER
@ 2000-03-01 18:07 ` Vitaly Lugovsky
  2000-03-02  2:26 ` Max Skaller
  2000-03-06  8:52 ` Xavier Leroy
  3 siblings, 0 replies; 7+ messages in thread
From: Vitaly Lugovsky @ 2000-03-01 18:07 UTC (permalink / raw)
  To: Jean-Yves Moyen; +Cc: caml-list

On Tue, 29 Feb 2000, Jean-Yves Moyen wrote:
> Bonjour, il y a apparamment un probleme de parsing des chaines dans la
> fonction int_of_string : les espaces precedents (ou suivant) les nombres
> ne sont pas eliminer. En revanche, il le sont dans la fonction
> float_of_string :
> 
> # int_of_string " 5";;
> Uncaught exception: Failure("int_of_string")
> #float_of_string " 5";;
> - : float = 5
> 
> (avec Ocaml 2.04)
> 
> Est-ce voulu ? Si oui, pourquoi avoir introduit cette difference ?

 Here is a kinda hack for it. Dunno, can it be a convential solution,
we have not standard documents, etc...

ocaml/byterun/ints.c:
-----
24a25,26
> #define _isdelimeter(c) ((c)==' ' || (c)=='\t' || (c)=='\n')
> 
29a32
>   while(_isdelimeter(*p)) p++;
------


--

   V.S.Lugovsky aka Mauhuur (http://ontil.ihep.su/~vsl) (UIN=45482254)





^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: probleme de parsing ?
  2000-02-29 19:06 probleme de parsing ? Jean-Yves Moyen
  2000-03-01 17:19 ` Sven LUTHER
  2000-03-01 18:07 ` Vitaly Lugovsky
@ 2000-03-02  2:26 ` Max Skaller
  2000-03-06  8:52 ` Xavier Leroy
  3 siblings, 0 replies; 7+ messages in thread
From: Max Skaller @ 2000-03-02  2:26 UTC (permalink / raw)
  To: Jym; +Cc: caml-list

Jean-Yves Moyen wrote:
> 
> Bonjour, il y a apparamment un probleme de parsing des chaines dans la
> fonction int_of_string : les espaces precedents (ou suivant) les nombres
> ne sont pas eliminer. En revanche, il le sont dans la fonction
> float_of_string :
> 
> # int_of_string " 5";;
> Uncaught exception: Failure("int_of_string")
> #float_of_string " 5";;
> - : float = 5

Furthermore, the float value is wrong: it should be "5.0",
a value which would be parsed as a float by the compiler.
[Both parser functions above should fault, IMHO: the string
should contain exactly the number, no leading spaces]
-- 
John (Max) Skaller at OTT [Open Telecommications Ltd]
mailto:maxs@in.ot.com.au      -- at work
mailto:skaller@maxtal.com.au  -- at home



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: probleme de parsing ?
  2000-02-29 19:06 probleme de parsing ? Jean-Yves Moyen
                   ` (2 preceding siblings ...)
  2000-03-02  2:26 ` Max Skaller
@ 2000-03-06  8:52 ` Xavier Leroy
  3 siblings, 0 replies; 7+ messages in thread
From: Xavier Leroy @ 2000-03-06  8:52 UTC (permalink / raw)
  To: Jym, caml-list

> Bonjour, il y a apparamment un probleme de parsing des chaines dans la
> fonction int_of_string : les espaces precedents (ou suivant) les nombres
> ne sont pas eliminer. En revanche, il le sont dans la fonction
> float_of_string :
> Est-ce voulu ? Si oui, pourquoi avoir introduit cette difference ?

Ce n'est pas vraiment voulu.  La fonction int_of_string est
implémentée dans le runtime Caml, et effectue un parsing précis de la
chaîne argument.  En revanche, float_of_string est un appel à la
fonction atof() de la bibliothèque C standard, laquelle effectue un
parsing un peu plus lâche de la chaîne, avec espaces optionnels au
début.  Aussi, atof() n'échoue jamais, mais renvoie 0.0 pour une
chaîne mal formée.

Il ne serait pas difficile de "durcir" float_of_string par une passe
de vérification supplémentaire; mais est-ce bien la peine?

- Xavier Leroy



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: probleme de parsing ?
  2000-03-01 17:19 ` Sven LUTHER
@ 2000-03-06  9:07   ` Xavier Leroy
  2000-03-06  9:43     ` Sven LUTHER
  0 siblings, 1 reply; 7+ messages in thread
From: Xavier Leroy @ 2000-03-06  9:07 UTC (permalink / raw)
  To: Jean-Yves Moyen, caml-list, luther

> et au passage est-ce normal que caml-light 0.74 plante pour 1./.0. mais pour
> 1/0 l'exception est proprement attraper par le toplevel ?

Comme la plupart des langages modernes, Caml Light et Objective Caml
suivent la norme IEEE pour les flottants, norme dans laquelle 1.0 /. 0.0
n'est pas une erreur, mais est égal à +infini.  En revanche, une
division entière par 0 est une erreur et lève une exception.

Si vous observez un plantage pour 1.0 /. 0.0, c'est que votre hardware
ou le compilateur C utilisé pour compiler le runtime Caml Light ne
sont pas conformes aux flottants IEEE.  Par exemple, l'Alpha
n'implémente pas entièrement les flottants IEEE en hardware (mais on
peut obtenir le comportement IEEE via une couche software
supplémentaire: il suffit de passer l'option "-ieee" au compilateur C
lors de la compilation du runtime Caml).

- Xavier Leroy



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: probleme de parsing ?
  2000-03-06  9:07   ` Xavier Leroy
@ 2000-03-06  9:43     ` Sven LUTHER
  0 siblings, 0 replies; 7+ messages in thread
From: Sven LUTHER @ 2000-03-06  9:43 UTC (permalink / raw)
  To: Xavier Leroy; +Cc: Jean-Yves Moyen, caml-list

On Mon, Mar 06, 2000 at 10:07:58AM +0100, Xavier Leroy wrote:
> > et au passage est-ce normal que caml-light 0.74 plante pour 1./.0. mais pour
> > 1/0 l'exception est proprement attraper par le toplevel ?
> 
> Comme la plupart des langages modernes, Caml Light et Objective Caml
> suivent la norme IEEE pour les flottants, norme dans laquelle 1.0 /. 0.0
> n'est pas une erreur, mais est égal à +infini.  En revanche, une
> division entière par 0 est une erreur et lève une exception.
> 
> Si vous observez un plantage pour 1.0 /. 0.0, c'est que votre hardware
> ou le compilateur C utilisé pour compiler le runtime Caml Light ne
> sont pas conformes aux flottants IEEE.  Par exemple, l'Alpha
> n'implémente pas entièrement les flottants IEEE en hardware (mais on
> peut obtenir le comportement IEEE via une couche software
> supplémentaire: il suffit de passer l'option "-ieee" au compilateur C
> lors de la compilation du runtime Caml).

Oui, effectivement il s'agit d'une station ALPHA. il faut donc recompiler caml
light, en mettant -ieee comme option du compilateur. y a-t-il une variable du
makefile particuliere ou mettre cette option ? 

Merci, ...

Amicalement,

Sven LUTHER



^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2000-03-06 13:33 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2000-02-29 19:06 probleme de parsing ? Jean-Yves Moyen
2000-03-01 17:19 ` Sven LUTHER
2000-03-06  9:07   ` Xavier Leroy
2000-03-06  9:43     ` Sven LUTHER
2000-03-01 18:07 ` Vitaly Lugovsky
2000-03-02  2:26 ` Max Skaller
2000-03-06  8:52 ` Xavier Leroy

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).