[pypy-svn] r29862 - in pypy/dist/pypy/translator/cli: . src
antocuni at codespeak.net
antocuni at codespeak.net
Sat Jul 8 18:54:52 CEST 2006
Author: antocuni
Date: Sat Jul 8 18:54:49 2006
New Revision: 29862
Modified:
pypy/dist/pypy/translator/cli/class_.py
pypy/dist/pypy/translator/cli/function.py
pypy/dist/pypy/translator/cli/src/pypylib.cs
Log:
Added *very* primitive support for os.write
Modified: pypy/dist/pypy/translator/cli/class_.py
==============================================================================
--- pypy/dist/pypy/translator/cli/class_.py (original)
+++ pypy/dist/pypy/translator/cli/class_.py Sat Jul 8 18:54:49 2006
@@ -8,7 +8,7 @@
self.cts = db.type_system_class(db)
self.classdef = classdef
self.namespace, self.name = self.cts.split_class_name(classdef._name)
-
+
if not self.is_root(classdef):
self.db.pending_class(classdef._superclass)
@@ -35,7 +35,7 @@
else:
return base_class._name
- def render(self, ilasm):
+ def render(self, ilasm):
if self.is_root(self.classdef):
return
Modified: pypy/dist/pypy/translator/cli/function.py
==============================================================================
--- pypy/dist/pypy/translator/cli/function.py (original)
+++ pypy/dist/pypy/translator/cli/function.py Sat Jul 8 18:54:49 2006
@@ -67,6 +67,10 @@
ilasm.opcode('call float64 [pypylib]pypy.runtime.Utils::Time()')
elif func_name == 'll_time_clock':
ilasm.opcode('call float64 [pypylib]pypy.runtime.Utils::Clock()')
+ elif func_name == 'll_os_write':
+ ilasm.opcode('ldarg.0')
+ ilasm.opcode('ldarg.1')
+ ilasm.opcode('call int32 [pypylib]pypy.runtime.Utils::os_write(int32, string)')
else:
assert False, 'Unknown primitive function: %s' % func_name
Modified: pypy/dist/pypy/translator/cli/src/pypylib.cs
==============================================================================
--- pypy/dist/pypy/translator/cli/src/pypylib.cs (original)
+++ pypy/dist/pypy/translator/cli/src/pypylib.cs Sat Jul 8 18:54:49 2006
@@ -113,6 +113,13 @@
return (DateTime.UtcNow - ClockStart).TotalSeconds;
}
+ // XXX: very hackish, refactoring needed
+ public static int os_write(int fd, string buffer)
+ {
+ if (fd == 1 || fd == 2)
+ Console.WriteLine(buffer);
+ return buffer.Length;
+ }
}
public class StringBuilder
More information about the Pypy-commit
mailing list