Author: Armin Rigo <ar...@tunes.org>
Branch: py3.5-newtext
Changeset: r90115:a675735c36bf
Date: 2017-02-14 17:36 +0100
http://bitbucket.org/pypy/pypy/changeset/a675735c36bf/

Log:    hg merge c5c3e2fb39a6

diff too long, truncating to 2000 out of 4500 lines

diff --git a/pypy/module/_cffi_backend/allocator.py 
b/pypy/module/_cffi_backend/allocator.py
--- a/pypy/module/_cffi_backend/allocator.py
+++ b/pypy/module/_cffi_backend/allocator.py
@@ -27,7 +27,7 @@
             return cdataobj.W_CDataNewStd(space, ptr, ctype, length)
         else:
             w_raw_cdata = space.call_function(self.w_alloc,
-                                              space.wrap(datasize))
+                                              space.newint(datasize))
             if not isinstance(w_raw_cdata, cdataobj.W_CData):
                 raise oefmt(space.w_TypeError,
                             "alloc() must return a cdata object (got %T)",
@@ -76,7 +76,7 @@
     if w_alloc is None and w_free is not None:
         raise oefmt(space.w_TypeError, "cannot pass 'free' without 'alloc'")
     alloc = W_Allocator(ffi, w_alloc, w_free, bool(should_clear_after_alloc))
-    return space.wrap(alloc)
+    return alloc
 
 
 default_allocator = W_Allocator(None, None, None, 
should_clear_after_alloc=True)
diff --git a/pypy/module/_cffi_backend/call_python.py 
b/pypy/module/_cffi_backend/call_python.py
--- a/pypy/module/_cffi_backend/call_python.py
+++ b/pypy/module/_cffi_backend/call_python.py
@@ -90,7 +90,7 @@
     ffi = space.interp_w(W_FFIObject, w_ffi)
 
     if space.is_w(w_name, space.w_None):
-        w_name = space.getattr(w_python_callable, space.wrap('__name__'))
+        w_name = space.getattr(w_python_callable, space.newtext('__name__'))
     name = space.str_w(w_name)
 
     ctx = ffi.ctxobj.ctx
@@ -130,4 +130,4 @@
 
 @specialize.memo()
 def get_generic_decorator(space):
-    return space.wrap(interp2app(externpy_deco))
+    return space.wrap(interp2app(externpy_deco)) # init time
diff --git a/pypy/module/_cffi_backend/cdataobj.py 
b/pypy/module/_cffi_backend/cdataobj.py
--- a/pypy/module/_cffi_backend/cdataobj.py
+++ b/pypy/module/_cffi_backend/cdataobj.py
@@ -58,21 +58,21 @@
 
     def repr(self):
         extra2 = self._repr_extra()
-        extra1 = u''
+        extra1 = ''
         if not isinstance(self, W_CDataNewOwning):
             # it's slightly confusing to get "<cdata 'struct foo' 0x...>"
             # because the struct foo is not owned.  Trying to make it
             # clearer, write in this case "<cdata 'struct foo &' 0x...>".
             from pypy.module._cffi_backend import ctypestruct
             if isinstance(self.ctype, ctypestruct.W_CTypeStructOrUnion):
-                extra1 = u' &'
-        return self.space.wrap(u"<cdata '%s%s' %s>" % (
-            self.ctype.name.decode('utf-8'), extra1, extra2.decode('utf-8')))
+                extra1 = ' &'
+        return self.space.newtext("<cdata '%s%s' %s>" % (
+            self.ctype.name, extra1, extra2))
 
     def bool(self):
         with self as ptr:
             nonzero = self.ctype.nonzero(ptr)
-        return self.space.wrap(nonzero)
+        return self.space.newbool(nonzero)
 
     def int(self, space):
         with self as ptr:
@@ -95,7 +95,7 @@
         from pypy.module._cffi_backend import ctypearray
         space = self.space
         if isinstance(self.ctype, ctypearray.W_CTypeArray):
-            return space.wrap(self.get_array_length())
+            return space.newint(self.get_array_length())
         raise oefmt(space.w_TypeError,
                     "cdata of type '%s' has no len()", self.ctype.name)
 
@@ -137,7 +137,7 @@
         # alignment (to 4, 8, maybe 16 bytes), so we use the following
         # formula to avoid the trailing bits being always 0.
         h = h ^ (h >> 4)
-        return self.space.wrap(h)
+        return self.space.newint(h)
 
     def getitem(self, w_index):
         space = self.space
@@ -319,7 +319,7 @@
                         "pointer subtraction: the distance between the two "
                         "pointers is not a multiple of the item size")
                 diff //= itemsize
-            return space.wrap(diff)
+            return space.newint(diff)
         #
         return self._add_or_sub(w_other, -1)
 
@@ -441,7 +441,7 @@
         if isinstance(ct, W_CTypePointer):
             ct = ct.ctitem
         lst = ct.cdata_dir()
-        return space.newlist([space.wrap(s) for s in lst])
+        return space.newlist([space.newtext(s) for s in lst])
 
     def get_structobj(self):
         return None
diff --git a/pypy/module/_cffi_backend/cerrno.py 
b/pypy/module/_cffi_backend/cerrno.py
--- a/pypy/module/_cffi_backend/cerrno.py
+++ b/pypy/module/_cffi_backend/cerrno.py
@@ -13,7 +13,7 @@
 _errno_after  = rposix._errno_after
 
 def get_errno(space):
-    return space.wrap(rposix.get_saved_alterrno())
+    return space.newint(rposix.get_saved_alterrno())
 
 @unwrap_spec(errno=int)
 def set_errno(space, errno):
@@ -27,4 +27,4 @@
     if code == -1:
         code = GetLastError_alt_saved()
     message = FormatError(code)
-    return space.newtuple([space.wrap(code), space.wrap(message)])
+    return space.newtuple([space.newint(code), space.newtext(message)])
diff --git a/pypy/module/_cffi_backend/cffi1_module.py 
b/pypy/module/_cffi_backend/cffi1_module.py
--- a/pypy/module/_cffi_backend/cffi1_module.py
+++ b/pypy/module/_cffi_backend/cffi1_module.py
@@ -39,12 +39,12 @@
     if src_ctx.c_includes:
         lib.make_includes_from(src_ctx.c_includes)
 
-    w_name = space.wrap(name)
+    w_name = space.newtext(name)
     module = Module(space, w_name)
     if path is not None:
         module.setdictvalue(space, '__file__', space.wrap_fsdecoded(path))
-    module.setdictvalue(space, 'ffi', space.wrap(ffi))
-    module.setdictvalue(space, 'lib', space.wrap(lib))
+    module.setdictvalue(space, 'ffi', ffi)
+    module.setdictvalue(space, 'lib', lib)
     w_modules_dict = space.sys.get('modules')
-    space.setitem(w_modules_dict, w_name, space.wrap(module))
-    space.setitem(w_modules_dict, space.wrap(name + '.lib'), space.wrap(lib))
+    space.setitem(w_modules_dict, w_name, space.newtext(module))
+    space.setitem(w_modules_dict, space.newtext(name + '.lib'), 
space.newtext(lib))
diff --git a/pypy/module/_cffi_backend/ctypearray.py 
b/pypy/module/_cffi_backend/ctypearray.py
--- a/pypy/module/_cffi_backend/ctypearray.py
+++ b/pypy/module/_cffi_backend/ctypearray.py
@@ -100,7 +100,7 @@
             return self.space.wrap(self.ctitem)
         if attrchar == 'l':     # length
             if self.length >= 0:
-                return self.space.wrap(self.length)
+                return self.space.newint(self.length)
             else:
                 return self.space.w_None
         return W_CTypePtrOrArray._fget(self, attrchar)
@@ -121,7 +121,7 @@
         self._stop = rffi.ptradd(self._next, length * ctitem.size)
 
     def iter_w(self):
-        return self.space.wrap(self)
+        return self
 
     def next_w(self):
         result = self._next
diff --git a/pypy/module/_cffi_backend/ctypefunc.py 
b/pypy/module/_cffi_backend/ctypefunc.py
--- a/pypy/module/_cffi_backend/ctypefunc.py
+++ b/pypy/module/_cffi_backend/ctypefunc.py
@@ -120,11 +120,11 @@
             return self.space.newtuple([self.space.wrap(a)
                                         for a in self.fargs])
         if attrchar == 'r':    # result
-            return self.space.wrap(self.ctitem)
+            return self.ctitem
         if attrchar == 'E':    # ellipsis
             return self.space.wrap(self.ellipsis)
         if attrchar == 'A':    # abi
-            return self.space.wrap(self.abi)
+            return self.space.newint(self.abi)
         return W_CTypePtrBase._fget(self, attrchar)
 
     def call(self, funcaddr, args_w):
diff --git a/pypy/module/_cffi_backend/ctypeobj.py 
b/pypy/module/_cffi_backend/ctypeobj.py
--- a/pypy/module/_cffi_backend/ctypeobj.py
+++ b/pypy/module/_cffi_backend/ctypeobj.py
@@ -34,7 +34,7 @@
 
     def repr(self):
         space = self.space
-        return space.wrap("<ctype '%s'>" % (self.name,))
+        return space.newtext("<ctype '%s'>" % (self.name,))
 
     def extra_repr(self, cdata):
         if cdata:
@@ -229,17 +229,17 @@
     # __________ app-level attributes __________
     def dir(self):
         space = self.space
-        lst = [space.wrap(name)
+        lst = [space.newtext(name)
                   for name in _name_of_attributes
-                  if space.findattr(self, space.wrap(name)) is not None]
+                  if space.findattr(self, space.newtext(name)) is not None]
         return space.newlist(lst)
 
     def _fget(self, attrchar):
         space = self.space
         if attrchar == 'k':     # kind
-            return space.wrap(self.kind)      # class attribute
+            return space.newtext(self.kind)      # class attribute
         if attrchar == 'c':     # cname
-            return space.wrap(self.name)
+            return space.newtext(self.name)
         raise oefmt(space.w_AttributeError,
                     "ctype '%s' has no such attribute", self.name)
 
diff --git a/pypy/module/_cffi_backend/ctypeprim.py 
b/pypy/module/_cffi_backend/ctypeprim.py
--- a/pypy/module/_cffi_backend/ctypeprim.py
+++ b/pypy/module/_cffi_backend/ctypeprim.py
@@ -122,7 +122,7 @@
     _attrs_ = []
 
     def cast_to_int(self, cdata):
-        return self.space.wrap(ord(cdata[0]))
+        return self.space.newint(ord(cdata[0]))
 
     def convert_to_object(self, cdata):
         return self.space.newbytes(cdata[0])
@@ -166,11 +166,11 @@
 
     def cast_to_int(self, cdata):
         unichardata = rffi.cast(WCHAR_INTP, cdata)
-        return self.space.wrap(unichardata[0])
+        return self.space.newint(unichardata[0])
 
     def convert_to_object(self, cdata):
         unichardata = rffi.cast(rffi.CWCHARP, cdata)
-        return self.space.wrap(unichardata[0])
+        return self.space.newunicode(unichardata[0])
 
     def string(self, cdataobj, maxlen):
         with cdataobj as ptr:
@@ -195,7 +195,7 @@
 
     def unpack_ptr(self, w_ctypeptr, ptr, length):
         u = rffi.wcharpsize2unicode(rffi.cast(rffi.CWCHARP, ptr), length)
-        return self.space.wrap(u)
+        return self.space.newunicode(u)
 
 
 class W_CTypePrimitiveSigned(W_CTypePrimitive):
@@ -214,14 +214,14 @@
     def convert_to_object(self, cdata):
         if self.value_fits_long:
             value = misc.read_raw_long_data(cdata, self.size)
-            return self.space.wrap(value)
+            return self.space.newint(value)
         else:
             return self._convert_to_object_longlong(cdata)
 
     def _convert_to_object_longlong(self, cdata):
         # in its own function: LONGLONG may make the whole function jit-opaque
         value = misc.read_raw_signed_data(cdata, self.size)
-        return self.space.wrap(value)    # r_longlong => on 32-bit, 'long'
+        return self.space.newint(value)    # r_longlong => on 32-bit, 'long'
 
     def convert_from_object(self, cdata, w_ob):
         if self.value_fits_long:
@@ -271,7 +271,7 @@
                 overflowed = misc.pack_list_to_raw_array_bounds_signed(
                     int_list, cdata, self.size)
                 if overflowed != 0:
-                    self._overflow(self.space.wrap(overflowed))
+                    self._overflow(self.space.newint(overflowed))
             return True
         return W_CTypePrimitive.pack_list_of_items(self, cdata, w_ob)
 
@@ -316,16 +316,16 @@
         if self.value_fits_ulong:
             value = misc.read_raw_ulong_data(cdata, self.size)
             if self.value_fits_long:
-                return self.space.wrap(intmask(value))
+                return self.space.newint(intmask(value))
             else:
-                return self.space.wrap(value)    # r_uint => 'long' object
+                return self.space.newint(value)    # r_uint => 'long' object
         else:
             return self._convert_to_object_longlong(cdata)
 
     def _convert_to_object_longlong(self, cdata):
         # in its own function: LONGLONG may make the whole function jit-opaque
         value = misc.read_raw_unsigned_data(cdata, self.size)
-        return self.space.wrap(value)    # r_ulonglong => 'long' object
+        return self.space.newint(value)    # r_ulonglong => 'long' object
 
     def get_vararg_type(self):
         if self.size < rffi.sizeof(rffi.INT):
@@ -349,7 +349,7 @@
             overflowed = misc.pack_list_to_raw_array_bounds_unsigned(
                 int_list, cdata, self.size, self.vrangemax)
             if overflowed != 0:
-                self._overflow(self.space.wrap(overflowed))
+                self._overflow(self.space.newint(overflowed))
             return True
         return W_CTypePrimitive.pack_list_of_items(self, cdata, w_ob)
 
@@ -419,7 +419,7 @@
 
     def convert_to_object(self, cdata):
         value = misc.read_raw_float_data(cdata, self.size)
-        return self.space.wrap(value)
+        return self.space.newfloat(value)
 
     def convert_from_object(self, cdata, w_ob):
         space = self.space
@@ -499,7 +499,7 @@
 
     def float(self, cdata):
         value = self._read_from_longdouble(cdata)
-        return self.space.wrap(value)
+        return self.space.newfloat(value)
 
     def convert_to_object(self, cdata):
         w_cdata = cdataobj.W_CDataMem(self.space, self)
diff --git a/pypy/module/_cffi_backend/ctypeptr.py 
b/pypy/module/_cffi_backend/ctypeptr.py
--- a/pypy/module/_cffi_backend/ctypeptr.py
+++ b/pypy/module/_cffi_backend/ctypeptr.py
@@ -176,7 +176,7 @@
                     "will be forbidden in the future (check that the types "
                     "are as you expect; use an explicit ffi.cast() if they "
                     "are correct)" % (other.name, self.name))
-                space.warn(space.wrap(msg), space.w_UserWarning)
+                space.warn(space.newtext(msg), space.w_UserWarning)
             else:
                 raise self._convert_error("compatible pointer", w_ob)
 
@@ -385,7 +385,7 @@
 
     def _fget(self, attrchar):
         if attrchar == 'i':     # item
-            return self.space.wrap(self.ctitem)
+            return self.ctitem
         return W_CTypePtrBase._fget(self, attrchar)
 
 # ____________________________________________________________
diff --git a/pypy/module/_cffi_backend/ctypestruct.py 
b/pypy/module/_cffi_backend/ctypestruct.py
--- a/pypy/module/_cffi_backend/ctypestruct.py
+++ b/pypy/module/_cffi_backend/ctypestruct.py
@@ -70,8 +70,8 @@
             result = [None] * len(self._fields_list)
             for fname, field in self._fields_dict.iteritems():
                 i = self._fields_list.index(field)
-                result[i] = space.newtuple([space.wrap(fname),
-                                            space.wrap(field)])
+                result[i] = space.newtuple([space.newtext(fname),
+                                            field])
             return space.newlist(result)
         return W_CType._fget(self, attrchar)
 
@@ -93,7 +93,7 @@
         try:
             cfield = self._getcfield_const(fieldname)
         except KeyError:
-            raise OperationError(space.w_KeyError, space.wrap(fieldname))
+            raise OperationError(space.w_KeyError, space.newtext(fieldname))
         if cfield.bitshift >= 0:
             raise oefmt(space.w_TypeError, "not supported for bitfields")
         return (cfield.ctype, cfield.offset)
@@ -280,14 +280,14 @@
                 shiftforsign = r_uint(1) << (self.bitsize - 1)
                 value = ((value >> self.bitshift) + shiftforsign) & valuemask
                 result = intmask(value) - intmask(shiftforsign)
-                return space.wrap(result)
+                return space.newint(result)
             else:
                 value = misc.read_raw_unsigned_data(cdata, ctype.size)
                 valuemask = (r_ulonglong(1) << self.bitsize) - 1
                 shiftforsign = r_ulonglong(1) << (self.bitsize - 1)
                 value = ((value >> self.bitshift) + shiftforsign) & valuemask
                 result = r_longlong(value) - r_longlong(shiftforsign)
-                return space.wrap(result)
+                return space.newint(result)
         #
         if isinstance(ctype, ctypeprim.W_CTypePrimitiveUnsigned):
             value_fits_long = ctype.value_fits_long
@@ -303,14 +303,14 @@
             valuemask = (r_uint(1) << self.bitsize) - 1
             value = (value >> self.bitshift) & valuemask
             if value_fits_long:
-                return space.wrap(intmask(value))
+                return space.newint(intmask(value))
             else:
-                return space.wrap(value)    # uint => wrapped long object
+                return space.newint(value)    # uint => wrapped long object
         else:
             value = misc.read_raw_unsigned_data(cdata, ctype.size)
             valuemask = (r_ulonglong(1) << self.bitsize) - 1
             value = (value >> self.bitshift) & valuemask
-            return space.wrap(value)      # ulonglong => wrapped long object
+            return space.newint(value)      # ulonglong => wrapped long object
 
     def convert_bitfield_from_object(self, cdata, w_ob):
         ctype = self.ctype
diff --git a/pypy/module/_cffi_backend/embedding.py 
b/pypy/module/_cffi_backend/embedding.py
--- a/pypy/module/_cffi_backend/embedding.py
+++ b/pypy/module/_cffi_backend/embedding.py
@@ -38,7 +38,7 @@
     compiler = space.createcompiler()
     pycode = compiler.compile(code, "<init code for '%s'>" % name, 'exec', 0)
     w_globals = space.newdict(module=True)
-    space.setitem_str(w_globals, "__builtins__", space.wrap(space.builtin))
+    space.setitem_str(w_globals, "__builtins__", space.builtin)
     pycode.exec_code(space, w_globals, w_globals)
 
 
diff --git a/pypy/module/_cffi_backend/func.py 
b/pypy/module/_cffi_backend/func.py
--- a/pypy/module/_cffi_backend/func.py
+++ b/pypy/module/_cffi_backend/func.py
@@ -46,17 +46,17 @@
                         "ctype '%s' is of unknown size", w_obj.name)
     else:
         raise oefmt(space.w_TypeError, "expected a 'cdata' or 'ctype' object")
-    return space.wrap(size)
+    return space.newint(size)
 
 @unwrap_spec(w_ctype=ctypeobj.W_CType)
 def alignof(space, w_ctype):
     align = w_ctype.alignof()
-    return space.wrap(align)
+    return space.newint(align)
 
 @unwrap_spec(w_ctype=ctypeobj.W_CType, following=int)
 def typeoffsetof(space, w_ctype, w_field_or_index, following=0):
     ctype, offset = w_ctype.direct_typeoffsetof(w_field_or_index, following)
-    return space.newtuple([space.wrap(ctype), space.wrap(offset)])
+    return space.newtuple([space.wrap(ctype), space.newint(offset)])
 
 @unwrap_spec(w_ctype=ctypeobj.W_CType, w_cdata=cdataobj.W_CData, offset=int)
 def rawaddressof(space, w_ctype, w_cdata, offset):
@@ -68,7 +68,7 @@
 def getcname(space, w_ctype, replace_with):
     p = w_ctype.name_position
     s = '%s%s%s' % (w_ctype.name[:p], replace_with, w_ctype.name[p:])
-    return space.wrap(s)
+    return space.newtext(s)
 
 # ____________________________________________________________
 
diff --git a/pypy/module/_cffi_backend/lib_obj.py 
b/pypy/module/_cffi_backend/lib_obj.py
--- a/pypy/module/_cffi_backend/lib_obj.py
+++ b/pypy/module/_cffi_backend/lib_obj.py
@@ -26,7 +26,7 @@
         self.libname = libname    # some string that gives the name of the lib
 
     def descr_repr(self):
-        return self.space.wrap("<Lib object for '%s'>" % self.libname)
+        return self.space.newtext("<Lib object for '%s'>" % self.libname)
 
     def make_includes_from(self, c_includes):
         space = self.space
@@ -35,7 +35,7 @@
         while c_includes[num]:
             include_name = rffi.charp2str(c_includes[num])
             try:
-                w_lib1 = space.appexec([space.wrap(include_name)], 
"""(modname):
+                w_lib1 = space.appexec([space.newtext(include_name)], 
"""(modname):
                     mod = __import__(modname, None, None, ['ffi', 'lib'])
                     return mod.lib""")
                 lib1 = space.interp_w(W_LibObject, w_lib1)
@@ -185,7 +185,7 @@
         return w_result
 
     def _get_attr(self, w_attr, is_getattr=False):
-        attr = self.space.str_w(w_attr)
+        attr = self.space.text_w(w_attr)
         try:
             w_value = self._get_attr_elidable(attr)
         except KeyError:
@@ -202,7 +202,7 @@
                     from pypy.interpreter.module import Module
                     return self.space.gettypeobject(Module.typedef)
                 if is_getattr and attr == '__name__':
-                    return self.space.wrap("%s.lib" % self.libname)
+                    return self.space.newtext("%s.lib" % self.libname)
                 raise oefmt(self.space.w_AttributeError,
                             "cffi library '%s' has no function, constant "
                             "or global variable named '%s'",
diff --git a/pypy/module/_cffi_backend/libraryobj.py 
b/pypy/module/_cffi_backend/libraryobj.py
--- a/pypy/module/_cffi_backend/libraryobj.py
+++ b/pypy/module/_cffi_backend/libraryobj.py
@@ -36,7 +36,7 @@
 
     def repr(self):
         space = self.space
-        return space.wrap("<clibrary '%s'>" % self.name)
+        return space.newtext("<clibrary '%s'>" % self.name)
 
     @unwrap_spec(w_ctype=W_CType, name=str)
     def load_function(self, w_ctype, name):
@@ -94,4 +94,4 @@
 @unwrap_spec(filename="str_or_None", flags=int)
 def load_library(space, filename, flags=0):
     lib = W_Library(space, filename, flags)
-    return space.wrap(lib)
+    return lib
diff --git a/pypy/module/_cffi_backend/misc.py 
b/pypy/module/_cffi_backend/misc.py
--- a/pypy/module/_cffi_backend/misc.py
+++ b/pypy/module/_cffi_backend/misc.py
@@ -147,7 +147,7 @@
     try:
         return bigint.tolonglong()
     except OverflowError:
-        raise OperationError(space.w_OverflowError, space.wrap(ovf_msg))
+        raise OperationError(space.w_OverflowError, space.newtext(ovf_msg))
 
 def as_long(space, w_ob):
     # Same as as_long_long(), but returning an int instead.
@@ -164,7 +164,7 @@
     try:
         return bigint.toint()
     except OverflowError:
-        raise OperationError(space.w_OverflowError, space.wrap(ovf_msg))
+        raise OperationError(space.w_OverflowError, space.newtext(ovf_msg))
 
 def as_unsigned_long_long(space, w_ob, strict):
     # (possibly) convert and cast a Python object to an unsigned long long.
@@ -179,7 +179,7 @@
             raise
     else:
         if strict and value < 0:
-            raise OperationError(space.w_OverflowError, space.wrap(neg_msg))
+            raise OperationError(space.w_OverflowError, space.newtext(neg_msg))
         return r_ulonglong(value)
     try:
         bigint = space.bigint_w(w_ob, allow_conversion=False)
@@ -193,9 +193,9 @@
         try:
             return bigint.toulonglong()
         except ValueError:
-            raise OperationError(space.w_OverflowError, space.wrap(neg_msg))
+            raise OperationError(space.w_OverflowError, space.newtext(neg_msg))
         except OverflowError:
-            raise OperationError(space.w_OverflowError, space.wrap(ovf_msg))
+            raise OperationError(space.w_OverflowError, space.newtext(ovf_msg))
     else:
         return bigint.ulonglongmask()
 
@@ -213,9 +213,9 @@
         try:
             return bigint.touint()
         except ValueError:
-            raise OperationError(space.w_OverflowError, space.wrap(neg_msg))
+            raise OperationError(space.w_OverflowError, space.newtext(neg_msg))
         except OverflowError:
-            raise OperationError(space.w_OverflowError, space.wrap(ovf_msg))
+            raise OperationError(space.w_OverflowError, space.newtext(ovf_msg))
     else:
         return bigint.uintmask()
 
diff --git a/pypy/module/_cffi_backend/newtype.py 
b/pypy/module/_cffi_backend/newtype.py
--- a/pypy/module/_cffi_backend/newtype.py
+++ b/pypy/module/_cffi_backend/newtype.py
@@ -167,7 +167,7 @@
     try:
         ctypecls, size, align = PRIMITIVE_TYPES[name]
     except KeyError:
-        raise OperationError(space.w_KeyError, space.wrap(name))
+        raise OperationError(space.w_KeyError, space.newtext(name))
     ctype = ctypecls(space, size, name, len(name), align)
     unique_cache.primitives[name] = ctype
     return ctype
diff --git a/pypy/module/_cffi_backend/realize_c_type.py 
b/pypy/module/_cffi_backend/realize_c_type.py
--- a/pypy/module/_cffi_backend/realize_c_type.py
+++ b/pypy/module/_cffi_backend/realize_c_type.py
@@ -131,15 +131,15 @@
 
     if neg == 0:     # positive
         if value <= rffi.cast(rffi.ULONGLONG, sys.maxint):
-            return ffi.space.wrap(intmask(value))
+            return ffi.space.newint(intmask(value))
         else:
-            return ffi.space.wrap(value)
+            return ffi.space.newint(value)
     elif neg == 1:   # negative
         value = rffi.cast(rffi.LONGLONG, value)
         if value >= -sys.maxint-1:
-            return ffi.space.wrap(intmask(value))
+            return ffi.space.newint(intmask(value))
         else:
-            return ffi.space.wrap(value)
+            return ffi.space.newint(value)
 
     if neg == 2:
         got = "%d (0x%x)" % (value, value)
@@ -364,7 +364,7 @@
             while p[j] != ',' and p[j] != '\x00':
                 j += 1
             enname = rffi.charpsize2str(p, j)
-            enumerators_w.append(space.wrap(enname))
+            enumerators_w.append(space.newtext(enname))
 
             gindex = parse_c_type.search_in_globals(ffi.ctxobj.ctx, enname)
             assert gindex >= 0
@@ -493,10 +493,10 @@
                                          field_name, "'")
 
         fields_w[i] = space.newtuple([
-            space.wrap(field_name),
+            space.newtext(field_name),
             w_ctf,
-            space.wrap(fbitsize),
-            space.wrap(field_offset)])
+            space.newint(fbitsize),
+            space.newint(field_offset)])
 
     sflags = 0
     c_flags = rffi.getintfield(s, 'c_flags')
diff --git a/pypy/module/_cffi_backend/test/_backend_test_c.py 
b/pypy/module/_cffi_backend/test/_backend_test_c.py
--- a/pypy/module/_cffi_backend/test/_backend_test_c.py
+++ b/pypy/module/_cffi_backend/test/_backend_test_c.py
@@ -1254,20 +1254,6 @@
     orig_getline = linecache.getline
     try:
         linecache.getline = lambda *args: 'LINE'    # hack: speed up PyPy tests
-        sys.stderr = cStringIO.StringIO()
-        assert f(100) == 300
-        assert sys.stderr.getvalue() == ''
-        assert f(10000) == -42
-        assert matches(sys.stderr.getvalue(), """\
-From cffi callback <function$Zcb1 at 0x$>:
-Traceback (most recent call last):
-  File "$", line $, in Zcb1
-    $
-  File "$", line $, in check_value
-    $
-ValueError: 42
-""")
-        sys.stderr = cStringIO.StringIO()
         bigvalue = 20000
         assert f(bigvalue) == -42
         assert matches(sys.stderr.getvalue(), """\
@@ -1275,59 +1261,6 @@
 Trying to convert the result back to C:
 OverflowError: integer 60000 does not fit 'short'
 """)
-        sys.stderr = cStringIO.StringIO()
-        bigvalue = 20000
-        assert len(seen) == 0
-        assert ff(bigvalue) == -42
-        assert sys.stderr.getvalue() == ""
-        assert len(seen) == 1
-        exc, val, tb = seen[0]
-        assert exc is OverflowError
-        assert str(val) == "integer 60000 does not fit 'short'"
-        #
-        sys.stderr = cStringIO.StringIO()
-        bigvalue = 20000
-        del seen[:]
-        oops_result = 81
-        assert ff(bigvalue) == 81
-        oops_result = None
-        assert sys.stderr.getvalue() == ""
-        assert len(seen) == 1
-        exc, val, tb = seen[0]
-        assert exc is OverflowError
-        assert str(val) == "integer 60000 does not fit 'short'"
-        #
-        sys.stderr = cStringIO.StringIO()
-        bigvalue = 20000
-        del seen[:]
-        oops_result = "xy"     # not None and not an int!
-        assert ff(bigvalue) == -42
-        oops_result = None
-        assert matches(sys.stderr.getvalue(), """\
-From cffi callback <function$Zcb1 at 0x$>:
-Trying to convert the result back to C:
-OverflowError: integer 60000 does not fit 'short'
-
-During the call to 'onerror', another exception occurred:
-
-TypeError: $integer$
-""")
-        #
-        sys.stderr = cStringIO.StringIO()
-        seen = "not a list"    # this makes the oops() function crash
-        assert ff(bigvalue) == -42
-        assert matches(sys.stderr.getvalue(), """\
-From cffi callback <function$Zcb1 at 0x$>:
-Trying to convert the result back to C:
-OverflowError: integer 60000 does not fit 'short'
-
-During the call to 'onerror', another exception occurred:
-
-Traceback (most recent call last):
-  File "$", line $, in oops
-    $
-AttributeError: 'str' object has no attribute 'append'
-""")
     finally:
         sys.stderr = orig_stderr
         linecache.getline = orig_getline
diff --git a/pypy/module/_cffi_backend/wrapper.py 
b/pypy/module/_cffi_backend/wrapper.py
--- a/pypy/module/_cffi_backend/wrapper.py
+++ b/pypy/module/_cffi_backend/wrapper.py
@@ -93,12 +93,12 @@
 
     def descr_repr(self, space):
         doc = self.rawfunctype.repr_fn_type(self.ffi, self.fnname)
-        return space.wrap("<FFIFunctionWrapper '%s'>" % (doc,))
+        return space.newtext("<FFIFunctionWrapper '%s'>" % (doc,))
 
     def descr_get_doc(self, space):
         doc = self.rawfunctype.repr_fn_type(self.ffi, self.fnname)
         doc = '%s;\n\nCFFI C function from %s.lib' % (doc, self.modulename)
-        return space.wrap(doc)
+        return space.newtext(doc)
 
     def descr_get(self, space, w_obj, w_type=None):
         # never bind anything, but a __get__ is still present so that
diff --git a/pypy/module/_codecs/interp_codecs.py 
b/pypy/module/_codecs/interp_codecs.py
--- a/pypy/module/_codecs/interp_codecs.py
+++ b/pypy/module/_codecs/interp_codecs.py
@@ -743,7 +743,7 @@
     res, consumed, byteorder = runicode.str_decode_utf_16_helper(
         data, len(data), errors, final, state.decode_error_handler, byteorder)
     return space.newtuple([space.newunicode(res), space.newint(consumed),
-                           space.newtext(byteorder)])
+                           space.newint(byteorder)])
 
 @unwrap_spec(data='bufferstr', errors='str_or_None', byteorder=int,
              w_final=WrappedDefault(False))
@@ -762,7 +762,7 @@
     res, consumed, byteorder = runicode.str_decode_utf_32_helper(
         data, len(data), errors, final, state.decode_error_handler, byteorder)
     return space.newtuple([space.newunicode(res), space.newint(consumed),
-                           space.newtext(byteorder)])
+                           space.newint(byteorder)])
 
 # ____________________________________________________________
 # Charmap
diff --git a/pypy/module/_csv/interp_csv.py b/pypy/module/_csv/interp_csv.py
--- a/pypy/module/_csv/interp_csv.py
+++ b/pypy/module/_csv/interp_csv.py
@@ -22,7 +22,7 @@
     ]
 
 def _fetch(space, w_dialect, name):
-    return space.findattr(w_dialect, space.wrap(name))
+    return space.findattr(w_dialect, space.newtext(name))
 
 def _get_bool(space, w_src, default):
     if w_src is None:
@@ -134,7 +134,7 @@
                              w_escapechar, w_lineterminator, w_quotechar,
                              w_quoting, w_skipinitialspace, w_strict)
     if space.is_w(w_subtype, space.gettypeobject(W_Dialect.typedef)):
-        return space.wrap(dialect)
+        return dialect
     else:
         subdialect = space.allocate_instance(W_Dialect, w_subtype)
         subdialect.delimiter        = dialect.delimiter
@@ -145,18 +145,18 @@
         subdialect.quoting          = dialect.quoting
         subdialect.skipinitialspace = dialect.skipinitialspace
         subdialect.strict           = dialect.strict
-        return space.wrap(subdialect)
+        return subdialect
 
 
 def _get_escapechar(space, dialect):
     if dialect.escapechar == u'\0':
         return space.w_None
-    return space.wrap(dialect.escapechar)
+    return space.newtext(dialect.escapechar)
 
 def _get_quotechar(space, dialect):
     if dialect.quotechar == u'\0':
         return space.w_None
-    return space.wrap(dialect.quotechar)
+    return space.newtext(dialect.quotechar)
 
 
 W_Dialect.typedef = TypeDef(
diff --git a/pypy/module/_csv/interp_writer.py 
b/pypy/module/_csv/interp_writer.py
--- a/pypy/module/_csv/interp_writer.py
+++ b/pypy/module/_csv/interp_writer.py
@@ -13,7 +13,7 @@
     def __init__(self, space, dialect, w_fileobj):
         self.space = space
         self.dialect = dialect
-        self.w_filewrite = space.getattr(w_fileobj, space.wrap('write'))
+        self.w_filewrite = space.getattr(w_fileobj, space.newtext('write'))
         # precompute this
         special = dialect.delimiter + dialect.lineterminator
         if dialect.escapechar != '\0':
@@ -26,8 +26,8 @@
     def error(self, msg):
         space = self.space
         w_module = space.getbuiltinmodule('_csv')
-        w_error = space.getattr(w_module, space.wrap('Error'))
-        raise OperationError(w_error, space.wrap(msg))
+        w_error = space.getattr(w_module, space.newtext('Error'))
+        raise OperationError(w_error, space.newtext(msg))
 
     def writerow(self, w_fields):
         """Construct and write a CSV record from a sequence of fields.
@@ -115,7 +115,7 @@
         rec.append(dialect.lineterminator)
 
         line = rec.build()
-        return space.call_function(self.w_filewrite, space.wrap(line))
+        return space.call_function(self.w_filewrite, space.newtext(line))
 
     def writerows(self, w_seqseq):
         """Construct and write a series of sequences to a csv file.
diff --git a/pypy/module/_demo/demo.py b/pypy/module/_demo/demo.py
--- a/pypy/module/_demo/demo.py
+++ b/pypy/module/_demo/demo.py
@@ -15,7 +15,7 @@
 
 def get(space, name):
     w_module = space.getbuiltinmodule('_demo')
-    return space.getattr(w_module, space.wrap(name))
+    return space.getattr(w_module, space.newtext(name))
 
 
 @unwrap_spec(repetitions=int)
@@ -27,7 +27,7 @@
     for i in range(repetitions):
         space.call_function(w_callable)
     endtime = time(0)
-    return space.wrap(endtime - starttime)
+    return space.newint(endtime - starttime)
 
 @unwrap_spec(n=int)
 def sieve(space, n):
@@ -55,10 +55,10 @@
     def multiply(self, w_y):
         space = self.space
         y = space.int_w(w_y)
-        return space.wrap(self.x * y)
+        return space.newint(self.x * y)
 
     def fget_x(self, space):
-        return space.wrap(self.x)
+        return space.newint(self.x)
 
     def fset_x(self, space, w_value):
         self.x = space.int_w(w_value)
@@ -66,8 +66,8 @@
 @unwrap_spec(x=int)
 def mytype_new(space, w_subtype, x):
     if x == 3:
-        return space.wrap(MySubType(space, x))
-    return space.wrap(W_MyType(space, x))
+        return MySubType(space, x)
+    return W_MyType(space, x)
 
 getset_x = GetSetProperty(W_MyType.fget_x, W_MyType.fset_x, cls=W_MyType)
 
diff --git a/pypy/module/_io/interp_bufferedio.py 
b/pypy/module/_io/interp_bufferedio.py
--- a/pypy/module/_io/interp_bufferedio.py
+++ b/pypy/module/_io/interp_bufferedio.py
@@ -27,9 +27,9 @@
     # that we're getting a reasonable value at this point.
     w_value = space.call_function(
         space.w_BlockingIOError,
-        space.wrap(rposix.get_saved_errno()),
-        space.wrap("write could not complete without blocking"),
-        space.wrap(written))
+        space.newint(rposix.get_saved_errno()),
+        space.newtext("write could not complete without blocking"),
+        space.newint(written))
     return OperationError(space.w_BlockingIOError, w_value)
 
 
@@ -115,7 +115,7 @@
     def _readinto(self, space, w_buffer, methodname):
         rwbuffer = space.getarg_w('w*', w_buffer)
         length = rwbuffer.getlength()
-        w_data = space.call_method(self, methodname, space.wrap(length))
+        w_data = space.call_method(self, methodname, space.newint(length))
 
         if not space.isinstance_w(w_data, space.w_str):
             raise oefmt(space.w_TypeError, "%s() should return bytes",
@@ -127,7 +127,7 @@
                         "%d bytes requested, %d returned",
                         methodname, length, len(data))
         rwbuffer.setslice(0, data)
-        return space.wrap(len(data))
+        return space.newint(len(data))
 
 W_BufferedIOBase.typedef = TypeDef(
     '_io._BufferedIOBase', W_IOBase.typedef,
@@ -244,15 +244,15 @@
 
     def closed_get_w(self, space):
         self._check_init(space)
-        return space.getattr(self.w_raw, space.wrap("closed"))
+        return space.getattr(self.w_raw, space.newtext("closed"))
 
     def name_get_w(self, space):
         self._check_init(space)
-        return space.getattr(self.w_raw, space.wrap("name"))
+        return space.getattr(self.w_raw, space.newtext("name"))
 
     def mode_get_w(self, space):
         self._check_init(space)
-        return space.getattr(self.w_raw, space.wrap("mode"))
+        return space.getattr(self.w_raw, space.newtext("mode"))
 
     def readable_w(self, space):
         self._check_init(space)
@@ -271,16 +271,16 @@
         return space.call_method(self.w_raw, "isatty")
 
     def repr_w(self, space):
-        typename = space.type(self).name.decode('utf-8')
+        typename = space.type(self).name
         try:
-            w_name = space.getattr(self, space.wrap("name"))
+            w_name = space.getattr(self, space.newtext("name"))
         except OperationError as e:
             if not e.match(space, space.w_Exception):
                 raise
-            return space.wrap(u"<%s>" % (typename,))
+            return space.newtext("<%s>" % (typename,))
         else:
-            name_repr = space.unicode_w(space.repr(w_name))
-            return space.wrap(u"<%s name=%s>" % (typename, name_repr))
+            name_repr = space.text_w(space.repr(w_name))
+            return space.newtext("<%s name=%s>" % (typename, name_repr))
 
     # ______________________________________________
 
@@ -301,7 +301,7 @@
     def tell_w(self, space):
         self._check_init(space)
         pos = self._raw_tell(space) - self._raw_offset()
-        return space.wrap(pos)
+        return space.newint(pos)
 
     @unwrap_spec(pos=r_longlong, whence=int)
     def seek_w(self, space, pos, whence=0):
@@ -327,7 +327,7 @@
                     newpos = self.pos + offset
                     assert newpos >= 0
                     self.pos = newpos
-                    return space.wrap(current - available + offset)
+                    return space.newint(current - available + offset)
 
         # Fallback: invoke raw seek() method and clear buffer
         with self.lock:
@@ -341,11 +341,11 @@
             self.raw_pos = -1
             if self.readable:
                 self._reader_reset_buf()
-            return space.wrap(n)
+            return space.newint(n)
 
     def _raw_seek(self, space, pos, whence):
         w_pos = space.call_method(self.w_raw, "seek",
-                                  space.wrap(pos), space.wrap(whence))
+                                  space.newint(pos), space.newint(whence))
         pos = space.r_longlong_w(w_pos)
         if pos < 0:
             raise oefmt(space.w_IOError,
@@ -354,7 +354,7 @@
         return pos
 
     def _closed(self, space):
-        return space.is_true(space.getattr(self.w_raw, space.wrap("closed")))
+        return space.is_true(space.getattr(self.w_raw, 
space.newtext("closed")))
 
     def close_w(self, space):
         self._check_init(space)
@@ -781,7 +781,7 @@
                 self._adjust_position(self.pos + size)
                 if self.pos > self.write_end:
                     self.write_end = self.pos
-                return space.wrap(size)
+                return space.newint(size)
 
             # First write the current buffer
             try:
@@ -809,7 +809,7 @@
                         self.buffer[self.write_end + i] = data[i]
                     self.write_end += size
                     self.pos += size
-                    return space.wrap(size)
+                    return space.newint(size)
                 # Buffer as much as possible
                 for i in range(available):
                     self.buffer[self.write_end + i] = data[i]
@@ -865,7 +865,7 @@
             self.write_end = remaining
             self._adjust_position(remaining)
             self.raw_pos = 0
-        return space.wrap(written)
+        return space.newint(written)
 
     def flush_w(self, space):
         self._check_closed(space, "flush of closed file")
@@ -976,13 +976,13 @@
             if self.w_writer is None:
                 raise oefmt(space.w_ValueError,
                             "I/O operation on uninitialized object")
-            w_meth = space.getattr(self.w_writer, space.wrap(method))
+            w_meth = space.getattr(self.w_writer, space.newtext(method))
             w_result = space.call_args(w_meth, __args__)
         if reader:
             if self.w_reader is None:
                 raise oefmt(space.w_ValueError,
                             "I/O operation on uninitialized object")
-            w_meth = space.getattr(self.w_reader, space.wrap(method))
+            w_meth = space.getattr(self.w_reader, space.newtext(method))
             w_result = space.call_args(w_meth, __args__)
         return w_result
     return method_w
@@ -1019,7 +1019,7 @@
         if self.w_writer is None:
             raise oefmt(space.w_ValueError,
                         "I/O operation on uninitialized object")
-        w_meth = space.getattr(self.w_writer, space.wrap("close"))
+        w_meth = space.getattr(self.w_writer, space.newtext("close"))
         try:
             space.call_args(w_meth, __args__)
         except OperationError as e:
@@ -1030,7 +1030,7 @@
         if self.w_reader is None:
             raise oefmt(space.w_ValueError,
                         "I/O operation on uninitialized object")
-        w_meth = space.getattr(self.w_reader, space.wrap("close"))
+        w_meth = space.getattr(self.w_reader, space.newtext("close"))
         space.call_args(w_meth, __args__)
 
         if e:
@@ -1046,7 +1046,7 @@
         return space.call_method(self.w_reader, "isatty")
 
     def closed_get_w(self, space):
-        return space.getattr(self.w_writer, space.wrap("closed"))
+        return space.getattr(self.w_writer, space.newtext("closed"))
 
 methods = dict((method, interp2app(getattr(W_BufferedRWPair, method + '_w')))
                for method in ['read', 'peek', 'read1', 'readinto', 'readable',
diff --git a/pypy/module/_io/interp_bytesio.py 
b/pypy/module/_io/interp_bytesio.py
--- a/pypy/module/_io/interp_bytesio.py
+++ b/pypy/module/_io/interp_bytesio.py
@@ -71,7 +71,7 @@
         if self.is_closed():
             if message is None:
                 message = "I/O operation on closed file"
-            raise OperationError(space.w_ValueError, space.wrap(message))
+            raise OperationError(space.w_ValueError, space.newtext(message))
 
     def read_w(self, space, w_size=None):
         self._check_closed(space)
@@ -93,16 +93,16 @@
 
         output = self.read(size)
         rwbuffer.setslice(0, output)
-        return space.wrap(len(output))
+        return space.newint(len(output))
 
     def write_w(self, space, w_data):
         self._check_closed(space)
         buf = space.buffer_w(w_data, space.BUF_CONTIG_RO).as_str()
         length = len(buf)
         if length <= 0:
-            return space.wrap(0)
+            return space.newint(0)
         self.write(buf)
-        return space.wrap(length)
+        return space.newint(length)
 
     def truncate_w(self, space, w_size=None):
         self._check_closed(space)
@@ -121,7 +121,7 @@
             self.seek(0, 2)
         else:
             self.seek(pos)
-        return space.wrap(size)
+        return space.newint(size)
 
     def getbuffer_w(self, space):
         self._check_closed(space)
@@ -133,7 +133,7 @@
 
     def tell_w(self, space):
         self._check_closed(space)
-        return space.wrap(self.tell())
+        return space.newint(self.tell())
 
     @unwrap_spec(pos=r_longlong, whence=int)
     def seek_w(self, space, pos, whence=0):
@@ -153,7 +153,7 @@
                         "whence must be between 0 and 2, not %d", whence)
 
         self.seek(pos, whence)
-        return space.wrap(self.tell())
+        return space.newint(self.tell())
 
     def readable_w(self, space):
         self._check_closed(space)
@@ -175,13 +175,13 @@
         return type(self) is not W_BytesIO
 
     def closed_get_w(self, space):
-        return space.wrap(self.is_closed())
+        return space.newbool(self.is_closed())
 
     def getstate_w(self, space):
         self._check_closed(space)
         return space.newtuple([
             space.newbytes(self.getvalue()),
-            space.wrap(self.tell()),
+            space.newint(self.tell()),
             self.getdict(space)])
 
     def setstate_w(self, space, w_state):
diff --git a/pypy/module/_io/interp_fileio.py b/pypy/module/_io/interp_fileio.py
--- a/pypy/module/_io/interp_fileio.py
+++ b/pypy/module/_io/interp_fileio.py
@@ -18,7 +18,7 @@
     def fget(space, obj):
         w_value = getattr(obj, name)
         if w_value is None:
-            raise OperationError(space.w_AttributeError, space.wrap(name))
+            raise OperationError(space.w_AttributeError, space.newtext(name))
         else:
             return w_value
     def fset(space, obj, w_value):
@@ -26,7 +26,7 @@
     def fdel(space, obj):
         w_value = getattr(obj, name)
         if w_value is None:
-            raise OperationError(space.w_AttributeError, space.wrap(name))
+            raise OperationError(space.w_AttributeError, space.newtext(name))
         setattr(obj, name, None)
 
     return GetSetProperty(fget, fset, fdel, cls=cls, doc=doc)
@@ -141,7 +141,7 @@
     def descr_new(space, w_subtype, __args__):
         self = space.allocate_instance(W_FileIO, w_subtype)
         W_FileIO.__init__(self, space)
-        return space.wrap(self)
+        return self
 
     @unwrap_spec(mode=str, closefd=int)
     def descr_init(self, space, w_name, mode='r', closefd=True, w_opener=None):
@@ -199,7 +199,7 @@
                                                 eintr_retry=False)
                 else:
                     w_fd = space.call_function(w_opener, w_name,
-                                               space.wrap(flags))
+                                               space.newint(flags))
                     try:
                         self.fd = space.int_w(w_fd)
                         if self.fd < 0:
@@ -235,7 +235,7 @@
             if HAS_BLKSIZE and st.st_blksize > 1:
                 self.blksize = st.st_blksize
 
-            space.setattr(self, space.wrap("name"), w_name)
+            space.setattr(self, space.newtext("name"), w_name)
 
             if self.appending:
                 # For consistent behaviour, we explicitly seek to the end of 
file
@@ -270,10 +270,10 @@
             return 'wb'
 
     def descr_get_mode(self, space):
-        return space.wrap(self._mode())
+        return space.newtext(self._mode())
 
     def get_blksize(self, space):
-        return space.wrap(self.blksize)
+        return space.newint(self.blksize)
 
     def _closed(self, space):
         return self.fd < 0
@@ -282,7 +282,7 @@
         if message is None:
             message = "I/O operation on closed file"
         if self.fd < 0:
-            raise OperationError(space.w_ValueError, space.wrap(message))
+            raise OperationError(space.w_ValueError, space.newtext(message))
 
     def _check_readable(self, space):
         if not self.readable:
@@ -322,13 +322,13 @@
     def _dealloc_warn_w(self, space, w_source):
         if self.fd >= 0 and self.closefd:
             try:
-                msg = (u"unclosed file %s" %
-                       space.unicode_w(space.repr(w_source)))
-                space.warn(space.wrap(msg), space.w_ResourceWarning)
+                msg = ("unclosed file %s" %
+                       space.text_w(space.repr(w_source)))
+                space.warn(space.newtext(msg), space.w_ResourceWarning)
             except OperationError as e:
                 # Spurious errors can appear at shutdown
                 if e.match(space, space.w_Warning):
-                    e.write_unraisable(space, '', space.wrap(self))
+                    e.write_unraisable(space, '', self)
 
     @unwrap_spec(pos=r_longlong, whence=int)
     def seek_w(self, space, pos, whence=0):
@@ -339,7 +339,7 @@
             raise wrap_oserror(space, e,
                                exception_name='w_IOError',
                                eintr_retry=False)
-        return space.wrap(pos)
+        return space.newint(pos)
 
     def tell_w(self, space):
         self._check_closed(space)
@@ -349,15 +349,15 @@
             raise wrap_oserror(space, e,
                                exception_name='w_IOError',
                                eintr_retry=False)
-        return space.wrap(pos)
+        return space.newint(pos)
 
     def readable_w(self, space):
         self._check_closed(space)
-        return space.wrap(self.readable)
+        return space.newbool(self.readable)
 
     def writable_w(self, space):
         self._check_closed(space)
-        return space.wrap(self.writable)
+        return space.newbool(self.writable)
 
     def seekable_w(self, space):
         self._check_closed(space)
@@ -374,7 +374,7 @@
 
     def fileno_w(self, space):
         self._check_closed(space)
-        return space.wrap(self.fd)
+        return space.newint(self.fd)
 
     def isatty_w(self, space):
         self._check_closed(space)
@@ -383,23 +383,23 @@
         except OSError as e:
             raise wrap_oserror(space, e, exception_name='w_IOError',
                                eintr_retry=False)
-        return space.wrap(res)
+        return space.newbool(res)
 
     def repr_w(self, space):
         if self.fd < 0:
-            return space.wrap("<_io.FileIO [closed]>")
+            return space.newtext("<_io.FileIO [closed]>")
 
         closefd = "True" if self.closefd else "False"
 
         if self.w_name is None:
-            return space.wrap(
+            return space.newtext(
                 "<_io.FileIO fd=%d mode='%s' closefd=%s>" % (
                     self.fd, self._mode(), closefd))
         else:
             w_repr = space.repr(self.w_name)
-            return space.wrap(
+            return space.newtext(
                 "<_io.FileIO name=%s mode='%s' closefd=%s>" % (
-                    space.str_w(w_repr), self._mode(), closefd))
+                    space.text_w(w_repr), self._mode(), closefd))
 
     # ______________________________________________
 
@@ -419,7 +419,7 @@
                              exception_name='w_IOError',
                              eintr_retry=True)
 
-        return space.wrap(n)
+        return space.newint(n)
 
     def read_w(self, space, w_size=None):
         self._check_closed(space)
@@ -458,7 +458,7 @@
                              exception_name='w_IOError',
                              eintr_retry=True)
         rwbuffer.setslice(0, buf)
-        return space.wrap(len(buf))
+        return space.newint(len(buf))
 
     def readall_w(self, space):
         self._check_closed(space)
diff --git a/pypy/module/_io/interp_io.py b/pypy/module/_io/interp_io.py
--- a/pypy/module/_io/interp_io.py
+++ b/pypy/module/_io/interp_io.py
@@ -71,7 +71,7 @@
         if writing or appending:
             raise oefmt(space.w_ValueError,
                         "can't use U and writing mode at once")
-        space.warn(space.wrap("'U' mode is deprecated ('r' has the same "
+        space.warn(space.newtext("'U' mode is deprecated ('r' has the same "
                               "effect in Python 3.x)"),
                    space.w_DeprecationWarning)
     if text and binary:
@@ -87,8 +87,8 @@
         raise oefmt(space.w_ValueError,
                     "binary mode doesn't take a newline argument")
     w_raw = space.call_function(
-        space.gettypefor(W_FileIO), w_file, space.wrap(rawmode),
-        space.wrap(bool(closefd)), w_opener)
+        space.gettypefor(W_FileIO), w_file, space.newtext(rawmode),
+        space.newbool(closefd), w_opener)
 
     isatty = space.is_true(space.call_method(w_raw, "isatty"))
     line_buffering = buffering == 1 or (buffering < 0 and isatty)
@@ -96,7 +96,7 @@
         buffering = -1
 
     if buffering < 0:
-        buffering = space.c_int_w(space.getattr(w_raw, space.wrap("_blksize")))
+        buffering = space.c_int_w(space.getattr(w_raw, 
space.newtext("_blksize")))
 
     if buffering < 0:
         raise oefmt(space.w_ValueError, "invalid buffering size")
@@ -115,17 +115,17 @@
     else:
         raise oefmt(space.w_ValueError, "unknown mode: '%s'", mode)
     w_buffer = space.call_function(
-        space.gettypefor(buffer_cls), w_raw, space.wrap(buffering)
+        space.gettypefor(buffer_cls), w_raw, space.newint(buffering)
     )
     if binary:
         return w_buffer
 
     w_wrapper = space.call_function(space.gettypefor(W_TextIOWrapper),
         w_buffer,
-        space.wrap(encoding),
-        space.wrap(errors),
-        space.wrap(newline),
-        space.wrap(line_buffering)
+        space.newtext_or_none(encoding),
+        space.newtext_or_none(errors),
+        space.newtext_or_none(newline),
+        space.newbool(line_buffering)
     )
-    space.setattr(w_wrapper, space.wrap("mode"), space.wrap(mode))
+    space.setattr(w_wrapper, space.newtext("mode"), space.newtext(mode))
     return w_wrapper
diff --git a/pypy/module/_io/interp_iobase.py b/pypy/module/_io/interp_iobase.py
--- a/pypy/module/_io/interp_iobase.py
+++ b/pypy/module/_io/interp_iobase.py
@@ -23,15 +23,15 @@
         return False
     try:
         w_value = error.get_w_value(space)
-        w_errno = space.getattr(w_value, space.wrap("errno"))
-        return space.eq_w(w_errno, space.wrap(EINTR))
+        w_errno = space.getattr(w_value, space.newtext("errno"))
+        return space.eq_w(w_errno, space.newint(EINTR))
     except OperationError:
         return False
 
 def unsupported(space, message):
     w_exc = space.getattr(space.getbuiltinmodule('_io'),
-                          space.wrap('UnsupportedOperation'))
-    return OperationError(w_exc, space.wrap(message))
+                          space.newtext('UnsupportedOperation'))
+    return OperationError(w_exc, space.newtext(message))
 
 # May be called with any object
 def check_readable_w(space, w_obj):
@@ -69,7 +69,7 @@
     def _closed(self, space):
         # This gets the derived attribute, which is *not* __IOBase_closed
         # in most cases!
-        w_closed = space.findattr(self, space.wrap('closed'))
+        w_closed = space.findattr(self, space.newtext('closed'))
         if w_closed is not None and space.is_true(w_closed):
             return True
         return False
@@ -88,7 +88,7 @@
 
     def descr_del(self):
         space = self.space
-        w_closed = space.findattr(self, space.wrap('closed'))
+        w_closed = space.findattr(self, space.newtext('closed'))
         try:
             # If `closed` doesn't exist or can't be evaluated as bool, then
             # the object is probably in an unusable state, so ignore.
@@ -117,7 +117,7 @@
             message = "I/O operation on closed file"
         if self._closed(space):
             raise OperationError(
-                space.w_ValueError, space.wrap(message))
+                space.w_ValueError, space.newtext(message))
 
     def check_closed_w(self, space):
         self._check_closed(space)
@@ -156,7 +156,7 @@
         self._unsupportedoperation(space, "seek")
 
     def tell_w(self, space):
-        return space.call_method(self, "seek", space.wrap(0), space.wrap(1))
+        return space.call_method(self, "seek", space.newint(0), 
space.newint(1))
 
     def truncate_w(self, space, w_size=None):
         self._unsupportedoperation(space, "truncate")
@@ -166,14 +166,14 @@
 
     def enter_w(self, space):
         self._check_closed(space)
-        return space.wrap(self)
+        return self
 
     def exit_w(self, space, __args__):
         space.call_method(self, "close")
 
     def iter_w(self, space):
         self._check_closed(space)
-        return space.wrap(self)
+        return self
 
     def next_w(self, space):
         w_line = space.call_method(self, "readline")
@@ -203,7 +203,7 @@
         # For backwards compatibility, a (slowish) readline().
         limit = convert_size(space, w_limit)
 
-        has_peek = space.findattr(self, space.wrap("peek"))
+        has_peek = space.findattr(self, space.newtext("peek"))
 
         builder = StringBuilder()
         size = 0
@@ -213,7 +213,7 @@
 
             if has_peek:
                 try:
-                    w_readahead = space.call_method(self, "peek", 
space.wrap(1))
+                    w_readahead = space.call_method(self, "peek", 
space.newint(1))
                 except OperationError as e:
                     if trap_eintr(space, e):
                         continue
@@ -243,7 +243,7 @@
                     nreadahead = n
 
             try:
-                w_read = space.call_method(self, "read", 
space.wrap(nreadahead))
+                w_read = space.call_method(self, "read", 
space.newint(nreadahead))
             except OperationError as e:
                 if trap_eintr(space, e):
                     continue
@@ -363,7 +363,7 @@
         while True:
             try:
                 w_data = space.call_method(self, "read",
-                                           space.wrap(DEFAULT_BUFFER_SIZE))
+                                           space.newint(DEFAULT_BUFFER_SIZE))
             except OperationError as e:
                 if trap_eintr(space, e):
                     continue
diff --git a/pypy/module/_io/interp_stringio.py 
b/pypy/module/_io/interp_stringio.py
--- a/pypy/module/_io/interp_stringio.py
+++ b/pypy/module/_io/interp_stringio.py
@@ -28,11 +28,11 @@
 
         if (newline is not None and newline != u"" and newline != u"\n" and
             newline != u"\r" and newline != u"\r\n"):
-            # Not using oefmt() because I don't know how to ues it
+            # Not using oefmt() because I don't know how to use it
             # with unicode
             raise OperationError(space.w_ValueError,
                 space.mod(
-                    space.wrap("illegal newline value: %s"), 
space.wrap(newline)
+                    space.newtext("illegal newline value: %s"), w_newline
                 )
             )
         if newline is not None:
@@ -45,7 +45,7 @@
             self.w_decoder = space.call_function(
                 space.gettypefor(W_IncrementalNewlineDecoder),
                 space.w_None,
-                space.wrap(int(self.readtranslate))
+                space.newint(int(self.readtranslate))
             )
 
         if not space.is_none(w_initvalue):
@@ -58,9 +58,9 @@
         if self.readnl is None:
             w_readnl = space.w_None
         else:
-            w_readnl = space.str(space.wrap(self.readnl))
+            w_readnl = space.str(space.newunicode(self.readnl)) # YYY
         return space.newtuple([
-            w_initialval, w_readnl, space.wrap(self.pos), w_dict
+            w_initialval, w_readnl, space.newint(self.pos), w_dict
         ])
 
     def descr_setstate(self, space, w_state):
@@ -105,7 +105,7 @@
         if self.buf is None:
             if message is None:
                 message = "I/O operation on closed file"
-            raise OperationError(space.w_ValueError, space.wrap(message))
+            raise OperationError(space.w_ValueError, space.newtext(message))
 
     def resize_buffer(self, newlength):
         if len(self.buf) > newlength:
@@ -139,7 +139,7 @@
 
         if self.writenl:
             w_decoded = space.call_method(
-                w_decoded, "replace", space.wrap("\n"), 
space.wrap(self.writenl)
+                w_decoded, "replace", space.newtext("\n"), 
space.newunicode(self.writenl)
             )
 
         string = space.unicode_w(w_decoded)
@@ -147,7 +147,7 @@
 
         if size:
             self.write(string)
-        return space.wrap(orig_size)
+        return space.newint(orig_size)
 
     def read_w(self, space, w_size=None):
         self._check_closed(space)
@@ -155,21 +155,21 @@
         start = self.pos
         available = len(self.buf) - start
         if available <= 0:
-            return space.wrap(u"")
+            return space.newunicode(u"")
         if size >= 0 and size <= available:
             end = start + size
         else:
             end = len(self.buf)
         assert 0 <= start <= end
         self.pos = end
-        return space.wrap(u''.join(self.buf[start:end]))
+        return space.newunicode(u''.join(self.buf[start:end]))
 
     def readline_w(self, space, w_limit=None):
         self._check_closed(space)
         limit = convert_size(space, w_limit)
 
         if self.pos >= len(self.buf):
-            return space.wrap(u"")
+            return space.newunicode(u"")
 
         start = self.pos
         if limit < 0 or limit > len(self.buf) - self.pos:
@@ -190,7 +190,7 @@
             endpos = end
         assert endpos >= 0
         self.pos = endpos
-        return space.wrap(u"".join(self.buf[start:endpos]))
+        return space.newunicode(u"".join(self.buf[start:endpos]))
 
     @unwrap_spec(pos=int, mode=int)
     def seek_w(self, space, pos, mode=0):
@@ -212,7 +212,7 @@
 
         assert pos >= 0
         self.pos = pos
-        return space.wrap(pos)
+        return space.newint(pos)
 
     def truncate_w(self, space, w_size=None):
         self._check_closed(space)
@@ -227,11 +227,11 @@
         if size < len(self.buf):
             self.resize_buffer(size)
 
-        return space.wrap(size)
+        return space.newint(size)
 
     def getvalue_w(self, space):
         self._check_closed(space)
-        return space.wrap(u''.join(self.buf))
+        return space.newunicode(u''.join(self.buf))
 
     def readable_w(self, space):
         self._check_closed(space)
@@ -253,7 +253,7 @@
         return type(self) is not W_StringIO
 
     def closed_get_w(self, space):
-        return space.wrap(self.buf is None)
+        return space.newbool(self.buf is None)
 
     def line_buffering_get_w(self, space):
         return space.w_False
@@ -261,7 +261,7 @@
     def newlines_get_w(self, space):
         if self.w_decoder is None:
             return space.w_None
-        return space.getattr(self.w_decoder, space.wrap("newlines"))
+        return space.getattr(self.w_decoder, space.newtext("newlines"))
 
 
 W_StringIO.typedef = TypeDef(
diff --git a/pypy/module/_io/interp_textio.py b/pypy/module/_io/interp_textio.py
--- a/pypy/module/_io/interp_textio.py
+++ b/pypy/module/_io/interp_textio.py
@@ -29,17 +29,17 @@
 
     def __init__(self, space):
         self.w_newlines_dict = {
-            SEEN_CR: space.wrap(u"\r"),
-            SEEN_LF: space.wrap(u"\n"),
-            SEEN_CRLF: space.wrap(u"\r\n"),
+            SEEN_CR: space.newunicode(u"\r"),
+            SEEN_LF: space.newunicode(u"\n"),
+            SEEN_CRLF: space.newunicode(u"\r\n"),
             SEEN_CR | SEEN_LF: space.newtuple(
-                [space.wrap(u"\r"), space.wrap(u"\n")]),
+                [space.newunicode(u"\r"), space.newunicode(u"\n")]),
             SEEN_CR | SEEN_CRLF: space.newtuple(
-                [space.wrap(u"\r"), space.wrap(u"\r\n")]),
+                [space.newunicode(u"\r"), space.newunicode(u"\r\n")]),
             SEEN_LF | SEEN_CRLF: space.newtuple(
-                [space.wrap(u"\n"), space.wrap(u"\r\n")]),
+                [space.newunicode(u"\n"), space.newunicode(u"\r\n")]),
             SEEN_CR | SEEN_LF | SEEN_CRLF: space.newtuple(
-                [space.wrap(u"\r"), space.wrap(u"\n"), space.wrap(u"\r\n")]),
+                [space.newunicode(u"\r"), space.newunicode(u"\n"), 
space.newunicode(u"\r\n")]),
             }
 
     @unwrap_spec(translate=int)
@@ -47,7 +47,7 @@
         self.w_decoder = w_decoder
         self.translate = translate
         if space.is_none(w_errors):
-            self.w_errors = space.wrap("strict")
+            self.w_errors = space.newtext("strict")
         else:
             self.w_errors = w_errors
 
@@ -65,7 +65,7 @@
         # decode input (with the eventual \r from a previous pass)
         if not space.is_w(self.w_decoder, space.w_None):
             w_output = space.call_method(self.w_decoder, "decode",
-                                         w_input, space.wrap(final))
+                                         w_input, space.newbool(final))
         else:
             w_output = w_input
 
@@ -91,7 +91,7 @@
                 output_len -= 1
 
         if output_len == 0:
-            return space.wrap(u"")
+            return space.newunicode(u"")
 
         # Record which newlines are read and do newline translation if
         # desired, all in one pass.
@@ -146,7 +146,7 @@
             output = builder.build()
 
         self.seennl |= seennl
-        return space.wrap(output)
+        return space.newunicode(output)
 
     def reset_w(self, space):
         self.seennl = 0
@@ -165,7 +165,7 @@
         flag <<= 1
         if self.pendingcr:
             flag |= 1
-        return space.newtuple([w_buffer, space.wrap(flag)])
+        return space.newtuple([w_buffer, space.newint(flag)])
 
     def setstate_w(self, space, w_state):
         w_buffer, w_flag = space.unpackiterable(w_state, 2)
@@ -174,7 +174,7 @@
         flag >>= 1
 
         if self.w_decoder and not space.is_w(self.w_decoder, space.w_None):
-            w_state = space.newtuple([w_buffer, space.wrap(flag)])
+            w_state = space.newtuple([w_buffer, space.newint(flag)])
             space.call_method(self.w_decoder, "setstate", w_state)
 
 W_IncrementalNewlineDecoder.typedef = TypeDef(
@@ -272,7 +272,7 @@
 
 def _determine_encoding(space, encoding, w_buffer):
     if encoding is not None:
-        return space.wrap(encoding)
+        return space.newtext(encoding)
 
     # Try os.device_encoding(fileno)
     try:
@@ -283,21 +283,21 @@
                 e.match(space, space.fromcache(Cache).w_unsupportedoperation)):
             raise
     else:
-        w_os = space.call_method(space.builtin, '__import__', space.wrap('os'))
+        w_os = space.call_method(space.builtin, '__import__', 
space.newtext('os'))
         w_encoding = space.call_method(w_os, 'device_encoding', w_fileno)
         if space.isinstance_w(w_encoding, space.w_unicode):
             return w_encoding
 
     try:
         w_locale = space.call_method(space.builtin, '__import__',
-                                     space.wrap('locale'))
+                                     space.newtext('locale'))
         w_encoding = space.call_method(w_locale, 'getpreferredencoding',
                                        space.w_False)
     except OperationError as e:
         # getpreferredencoding() may also raise ImportError
         if not e.match(space, space.w_ImportError):
             raise
-        return space.wrap('ascii')
+        return space.newtext('ascii')
     else:
         if space.isinstance_w(w_encoding, space.w_unicode):
             return w_encoding
@@ -383,7 +383,7 @@
         self.w_encoding = _determine_encoding(space, encoding, w_buffer)
 
         if space.is_none(w_errors):
-            w_errors = space.wrap("strict")
+            w_errors = space.newtext("strict")
         self.w_errors = w_errors
 
         if space.is_none(w_newline):
@@ -413,9 +413,9 @@
             self.writenl = None
 
         w_codec = interp_codecs.lookup_codec(space,
-                                             space.str_w(self.w_encoding))
+                                             space.text_w(self.w_encoding))
         if not space.is_true(space.getattr(w_codec,
-                                           space.wrap('_is_text_encoding'))):
+                                           
space.newtext('_is_text_encoding'))):
             msg = ("%R is not a text encoding; "
                    "use codecs.open() to handle arbitrary codecs")
             raise oefmt(space.w_LookupError, msg, self.w_encoding)
@@ -427,7 +427,7 @@
             if self.readuniversal:
                 self.w_decoder = space.call_function(
                     space.gettypeobject(W_IncrementalNewlineDecoder.typedef),
-                    self.w_decoder, space.wrap(self.readtranslate))
+                    self.w_decoder, space.newbool(self.readtranslate))
 
         # build the encoder object
         if space.is_true(space.call_method(w_buffer, "writable")):
@@ -437,15 +437,15 @@
         self.seekable = space.is_true(space.call_method(w_buffer, "seekable"))
         self.telling = self.seekable
 
-        self.has_read1 = space.findattr(w_buffer, space.wrap("read1"))
+        self.has_read1 = space.findattr(w_buffer, space.newtext("read1"))
 
         self.encoding_start_of_stream = False
         if self.seekable and self.w_encoder:
             self.encoding_start_of_stream = True
             w_cookie = space.call_method(self.w_buffer, "tell")
-            if not space.eq_w(w_cookie, space.wrap(0)):
+            if not space.eq_w(w_cookie, space.newint(0)):
                 self.encoding_start_of_stream = False
-                space.call_method(self.w_encoder, "setstate", space.wrap(0))
+                space.call_method(self.w_encoder, "setstate", space.newint(0))
 
         self.state = STATE_OK
 
@@ -465,10 +465,10 @@
         W_TextIOBase._check_closed(self, space, message)
 
     def __w_attr_repr(self, space, name):
-        w_attr = space.findattr(self, space.wrap(name))
+        w_attr = space.findattr(self, space.newtext(name))
         if w_attr is None:
-            return space.wrap("")
-        return space.mod(space.wrap("%s=%%r " % name), w_attr)
+            return space.newtext("")
+        return space.mod(space.newtext("%s=%%r " % name), w_attr)
 
     def descr_repr(self, space):
         self._check_init(space)
@@ -476,7 +476,7 @@
                                  self.__w_attr_repr(space, 'mode'),
                                  self.w_encoding])
         return space.mod(
-            space.wrap("<_io.TextIOWrapper %s%sencoding=%r>"), w_args
+            space.newtext("<_io.TextIOWrapper %s%sencoding=%r>"), w_args
         )
 
     def readable_w(self, space):
@@ -501,17 +501,17 @@
 
     def closed_get_w(self, space):
         self._check_attached(space)
-        return space.getattr(self.w_buffer, space.wrap("closed"))
+        return space.getattr(self.w_buffer, space.newtext("closed"))
 
     def newlines_get_w(self, space):
         self._check_attached(space)
         if self.w_decoder is None:
             return space.w_None
-        return space.findattr(self.w_decoder, space.wrap("newlines"))
+        return space.findattr(self.w_decoder, space.newtext("newlines"))
 
     def name_get_w(self, space):
         self._check_attached(space)
-        return space.getattr(self.w_buffer, space.wrap("name"))
+        return space.getattr(self.w_buffer, space.newtext("name"))
 
     def flush_w(self, space):
         self._check_attached(space)
@@ -530,7 +530,7 @@
     def close_w(self, space):
         self._check_attached(space)
         if not space.is_true(space.getattr(self.w_buffer,
-                                           space.wrap("closed"))):
+                                           space.newtext("closed"))):
             try:
                 space.call_method(self, "flush")
             finally:
@@ -594,7 +594,7 @@
         # Read a chunk, decode it, and put the result in self._decoded_chars
         w_input = space.call_method(self.w_buffer,
                                     "read1" if self.has_read1 else "read",
-                                    space.wrap(self.chunk_size))
+                                    space.newint(self.chunk_size))
 
         if not space.isinstance_w(w_input, space.w_str):
             msg = "decoder getstate() should have returned a bytes " \
@@ -603,7 +603,7 @@
 
         eof = space.len_w(w_input) == 0
         w_decoded = space.call_method(self.w_decoder, "decode",
-                                      w_input, space.wrap(eof))
+                                      w_input, space.newbool(eof))
         check_decoded(space, w_decoded)
         self._set_decoded_chars(space.unicode_w(w_decoded))
         if space.len_w(w_decoded) > 0:
@@ -641,7 +641,7 @@
             w_bytes = space.call_method(self.w_buffer, "read")
             w_decoded = space.call_method(self.w_decoder, "decode", w_bytes, 
space.w_True)
             check_decoded(space, w_decoded)
-            w_result = space.wrap(self._get_decoded_chars(-1))
+            w_result = space.newunicode(self._get_decoded_chars(-1))
             w_final = space.add(w_result, w_decoded)
             self.snapshot = None
             return w_final
@@ -667,7 +667,7 @@
                     continue
                 raise
 
-        return space.wrap(builder.build())
+        return space.newunicode(builder.build())
 
     def readline_w(self, space, w_limit=None):
         self._check_attached(space)
@@ -758,9 +758,9 @@
             line = u''.join(chunks)
 
         if line:
-            return space.wrap(line)
+            return space.newunicode(line)
         else:
-            return space.wrap(u'')
+            return space.newunicode(u'')
 
     # _____________________________________________________________
     # write methods
@@ -784,8 +784,8 @@
             if text.find(u'\n') >= 0:
                 haslf = True
         if haslf and self.writetranslate and self.writenl:
-            w_text = space.call_method(w_text, "replace", space.wrap(u'\n'),
-                                       space.wrap(self.writenl))
+            w_text = space.call_method(w_text, "replace", 
space.newunicode(u'\n'),
+                                       space.newunicode(self.writenl))
             text = space.unicode_w(w_text)
 
         needflush = False
@@ -819,7 +819,7 @@
         if self.w_decoder:
             space.call_method(self.w_decoder, "reset")
 
-        return space.wrap(textlen)
+        return space.newint(textlen)
 
     def _writeflush(self, space):
         if not self.pending_bytes:
@@ -862,14 +862,14 @@
         else:
             space.call_method(self.w_decoder, "setstate",
                               space.newtuple([space.newbytes(""),
-                                              space.wrap(cookie.dec_flags)]))
+                                              space.newint(cookie.dec_flags)]))
 
     def _encoder_setstate(self, space, cookie):
         if cookie.start_pos == 0 and cookie.dec_flags == 0:
             space.call_method(self.w_encoder, "reset")
             self.encoding_start_of_stream = True
         else:
-            space.call_method(self.w_encoder, "setstate", space.wrap(0))
+            space.call_method(self.w_encoder, "setstate", space.newint(0))
             self.encoding_start_of_stream = False
 
     @unwrap_spec(whence=int)
@@ -882,7 +882,7 @@
 
         if whence == 1:
             # seek relative to current position
-            if not space.is_true(space.eq(w_pos, space.wrap(0))):
+            if not space.is_true(space.eq(w_pos, space.newint(0))):
                 self._unsupportedoperation(
                     space, "can't do nonzero cur-relative seeks")
             # Seeking to the current position should attempt to sync the
@@ -891,7 +891,7 @@
 
         elif whence == 2:
             # seek relative to end of file
-            if not space.is_true(space.eq(w_pos, space.wrap(0))):
+            if not space.is_true(space.eq(w_pos, space.newint(0))):
                 self._unsupportedoperation(
                     space, "can't do nonzero end-relative seeks")
             space.call_method(self, "flush")
@@ -900,14 +900,14 @@
             if self.w_decoder:
                 space.call_method(self.w_decoder, "reset")
             return space.call_method(self.w_buffer, "seek",
-                                     w_pos, space.wrap(whence))
+                                     w_pos, space.newint(whence))
 
         elif whence != 0:
             raise oefmt(space.w_ValueError,
                         "invalid whence (%d, should be 0, 1 or 2)",
                         whence)
 
-        if space.is_true(space.lt(w_pos, space.wrap(0))):
+        if space.is_true(space.lt(w_pos, space.newint(0))):
             r = space.str_w(space.repr(w_pos))
             raise oefmt(space.w_ValueError,
                         "negative seek position %s", r)
@@ -919,7 +919,7 @@
         cookie = PositionCookie(space.bigint_w(w_pos))
 
         # Seek back to the safe start point
-        space.call_method(self.w_buffer, "seek", space.wrap(cookie.start_pos))
+        space.call_method(self.w_buffer, "seek", 
space.newint(cookie.start_pos))
 
         self._set_decoded_chars(None)
         self.snapshot = None
@@ -931,7 +931,7 @@
         if cookie.chars_to_skip:
             # Just like _read_chunk, feed the decoder and save a snapshot.
             w_chunk = space.call_method(self.w_buffer, "read",
-                                        space.wrap(cookie.bytes_to_feed))
+                                        space.newint(cookie.bytes_to_feed))
             if not space.isinstance_w(w_chunk, space.w_str):
                 msg = "underlying read() should have returned " \
                       "a bytes object, not '%T'"
@@ -941,7 +941,7 @@
                                              space.bytes_w(w_chunk))
 
             w_decoded = space.call_method(self.w_decoder, "decode",
-                                          w_chunk, space.wrap(cookie.need_eof))
+                                          w_chunk, 
space.newbool(cookie.need_eof))
             check_decoded(space, w_decoded)
             self._set_decoded_chars(space.unicode_w(w_decoded))
 
@@ -1034,8 +1034,8 @@
             else:
                 # We didn't get enough decoded data; signal EOF to get more.
                 w_decoded = space.call_method(self.w_decoder, "decode",
-                                              space.wrap(""),
-                                              space.wrap(1)) # final=1
+                                              space.newbytes(""),
+                                              space.newint(1)) # final=1
                 check_decoded(space, w_decoded)
                 chars_decoded += len(space.unicode_w(w_decoded))
                 cookie.need_eof = 1
@@ -1052,7 +1052,7 @@
 
     def chunk_size_get_w(self, space):
         self._check_attached(space)
-        return space.wrap(self.chunk_size)
+        return space.newint(self.chunk_size)
 
     def chunk_size_set_w(self, space, w_size):
         self._check_attached(space)
diff --git a/pypy/module/_lsprof/interp_lsprof.py 
b/pypy/module/_lsprof/interp_lsprof.py
--- a/pypy/module/_lsprof/interp_lsprof.py
+++ b/pypy/module/_lsprof/interp_lsprof.py
@@ -54,7 +54,7 @@
             calls_repr = "None"
         else:
             calls_repr = space.str_w(space.repr(self.w_calls))
-        return space.wrap('("%s", %d, %d, %f, %f, %s)' % (
+        return space.newtext('("%s", %d, %d, %f, %f, %s)' % (
             frame_repr, self.callcount, self.reccallcount,
             self.tt, self.it, calls_repr))
 
@@ -82,7 +82,7 @@
 
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to