[Stackless] Stackless 2.5 branch updated for Python 2.5.1c1

Hieu Hoang hieu.d.hoang at gmail.com
Sun Apr 15 18:26:56 CEST 2007


On 4/16/07, Hieu Hoang <hieu.d.hoang at gmail.com> wrote:
> Reading the switch_x64_masm.asm and switch_amd64_unix.h doesn't give
> me any idea which registers to save. I added rdi rsi, in that order,
> to REGS_TO_SAVE. Doesn't look better to me:
>

Now I add rbx rdi rsi, it looks different:

r64y at babol [02:21]:~/stackless-gcc-4/Stackless/unittests
$> ../../python runAll.py
.......E.........E....Segmentation fault (core dumped)
r64y at babol [02:22]:~/stackless-gcc-4/Stackless/unittests
$> gdb --args ../../python runAll.py
GNU gdb 6.6-debian
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu"...
Using host libthread_db library "/lib/libthread_db.so.1".
(gdb) run
Starting program: /home/r64y/stackless-gcc-4/python runAll.py
[Thread debugging using libthread_db enabled]
[New Thread 46945544423152 (LWP 1483)]
.......E.........E....F.F.........
======================================================================
ERROR: Same as 1, but with a pickled unrun tasklet.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "./test_miscell.py", line 62, in test_aliveness2
    self.lifecycle(t_new)
  File "./test_miscell.py", line 31, in lifecycle
    res = stackless.run(10)
RuntimeError: cannot execute invalid frame with 'run_cframe': frame
had a C state that can't be restored.

======================================================================
ERROR: testGeneratorScheduling (test_pickle.TestConcretePickledTasklets)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "./test_pickle.py", line 228, in testGeneratorScheduling
    self.run_pickled(genschedoutertest, 20, 13)
  File "./test_pickle.py", line 156, in run_pickled
    ip.run()
  File "./test_pickle.py", line 17, in accumulate
    rval = (ident, func(*args))
  File "./test_pickle.py", line 103, in genschedoutertest
    for x in genschedinnertest(n, when):
RuntimeError: cannot execute invalid frame with
'gen_iternext_callback': frame had a C state that can't be restored.

======================================================================
FAIL: testSet (test_pickle.TestConcretePickledTasklets)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "./test_pickle.py", line 218, in testSet
    self.run_pickled(settest, 20, 13)
  File "./test_pickle.py", line 164, in run_pickled
    self.assertEquals(new_rval, old_rval)
AssertionError: 13 != 19

======================================================================
FAIL: testXrange (test_pickle.TestConcretePickledTasklets)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "./test_pickle.py", line 197, in testXrange
    self.run_pickled(xrangetest, 20, 13)
  File "./test_pickle.py", line 164, in run_pickled
    self.assertEquals(new_rval, old_rval)
AssertionError: -352583151047933933 != 19

----------------------------------------------------------------------
Ran 34 tests in 2.121s

FAILED (failures=2, errors=2)
.......EF.........................
======================================================================
ERROR: Same as 1, but with a pickled unrun tasklet.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "./test_miscell.py", line 62, in test_aliveness2
    self.lifecycle(t_new)
  File "./test_miscell.py", line 31, in lifecycle
    res = stackless.run(10)
RuntimeError: cannot execute invalid frame with 'run_cframe': frame
had a C state that can't be restored.

======================================================================
FAIL: Same as 1, but with a pickled run(slightly) tasklet.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "./test_miscell.py", line 107, in test_aliveness3
    self.assertEquals(t.recursion_depth, 0)
AssertionError: -1 != 0

----------------------------------------------------------------------
Ran 34 tests in 2.065s

FAILED (failures=1, errors=1)

Program exited normally.
(gdb)


How can I get at what made it segfault?
And, everytime I change switch_amd64_unix.h, I only have to remove the
slp_transfer.o file and run make again, or should I make distclean?

  Hieu

_______________________________________________
Stackless mailing list
Stackless at stackless.com
http://www.stackless.com/mailman/listinfo/stackless



More information about the Stackless mailing list