[pypy-svn] r16527 - in pypy/dist/pypy/translator/llvm2: . module

rxe at codespeak.net rxe at codespeak.net
Thu Aug 25 19:05:56 CEST 2005


Author: rxe
Date: Thu Aug 25 19:05:55 2005
New Revision: 16527

Modified:
   pypy/dist/pypy/translator/llvm2/genllvm.py
   pypy/dist/pypy/translator/llvm2/module/genexterns.c
   pypy/dist/pypy/translator/llvm2/module/support.py
Log:
More progress towards ll_strtod_formatd.



Modified: pypy/dist/pypy/translator/llvm2/genllvm.py
==============================================================================
--- pypy/dist/pypy/translator/llvm2/genllvm.py	(original)
+++ pypy/dist/pypy/translator/llvm2/genllvm.py	Thu Aug 25 19:05:55 2005
@@ -40,6 +40,9 @@
     #find function names, declare them internal with fastcc calling convertion
     ll_lines = []
     funcnames = {
+        "%RPyString_Size"                      : True,
+        "%RPyString_AsString"                  : True,
+        "%RPyString_FromString"                : True,
         "%ll_frexp_result__Float_Signed"       : True,
         "%ll_modf_result__Float_Float"         : True,
         "%prepare_and_raise_ZeroDivisionError" : True,
@@ -184,6 +187,7 @@
         fns = [('ll_math_%s' % f) for f in math_fns.split()]
         time_fns = "ll_time_time ll_time_clock ll_time_sleep ll_floattime"
         fns += time_fns.split()
+        fns.append('ll_strtod_formatd')
         return get_ll(open(p).read(), extern_dir, fns)
 
     def gen_llvm_source(self, func=None):

Modified: pypy/dist/pypy/translator/llvm2/module/genexterns.c
==============================================================================
--- pypy/dist/pypy/translator/llvm2/module/genexterns.c	(original)
+++ pypy/dist/pypy/translator/llvm2/module/genexterns.c	Thu Aug 25 19:05:55 2005
@@ -17,6 +17,10 @@
 struct RPyFREXP_RESULT *ll_frexp_result__Float_Signed(double, int);
 struct RPyMODF_RESULT *ll_modf_result__Float_Float(double, double);
 
+char *RPyString_AsString(struct RPyString*);
+int RPyString_Size(struct RPyString_Size*);
+struct RPyString *RPyString_FromString(char *);
+
 void prepare_and_raise_OverflowError(char *);
 void prepare_and_raise_ValueError(char *);
 void prepare_and_raise_IOError(char *);
@@ -424,7 +428,7 @@
 	if (fail_pos > last)
 		fail_pos = last;
 	if (fail_pos == s || *fail_pos != '\0' || fail_pos != last) {
-		RPyRaiseSimpleException(PyExc_ValueError, "invalid float literal");
+		prepare_and_raise_ValueError("invalid float literal");
 		return -1.0;
 	}
 	if (x == 0.0) { /* maybe a denormal value, ask for atof behavior */
@@ -435,7 +439,7 @@
 }
 
 
-struct RPyString *LL_strtod_formatd(struct RPyString *fmt, double x) {
+struct RPyString *ll_strtod_formatd(struct RPyString *fmt, double x) {
 	char buffer[120]; /* this should be enough, from PyString_Format code */
 	int buflen = 120;
 	int res;

Modified: pypy/dist/pypy/translator/llvm2/module/support.py
==============================================================================
--- pypy/dist/pypy/translator/llvm2/module/support.py	(original)
+++ pypy/dist/pypy/translator/llvm2/module/support.py	Thu Aug 25 19:05:55 2005
@@ -49,7 +49,6 @@
 
 """)
 
-
 extfunctions["%RPyString_FromString"] = ((), """
 internal fastcc %RPyString* %RPyString_FromString(sbyte* %s) {
     %len       = call ccc int %strlen(sbyte* %s)



More information about the Pypy-commit mailing list