I've been using simp since its inception, and successfully weathered
-- Numpy superceding numarray/numeric;
-- The transition to 64-bit machines;
-- Having simp still use python2 while most distribution now default to python3.
However, in the meantime a number of glitches have accumulated. Moreover, the increasing amounts of available RAM
make it desirable to be able to run much large arrays than before.
Here is my wish list of issues to be addressed, in my priority order. As I learn more about simp and progress in
documenting it down to my level of expertise, I'm willing to help address some of these issues myself where I can.
---------------- ARRAY SIZE (segmentation fault)
For my research, I'd like to be able to run much larger arrays. At the moment, I regularly find a "segmentation
fault" limit right past the 0x200 by 0x200 size. Eg, in the game of life with echo,
on 0x200 x 0x200: works well!
on 0x201 x 0x201: works well!
on 0x202 x 0x202: works well!
on 0x203 x 0x203: works well!
on 0x204 x 0x204: Fatal Python error! (pygame parachute) Segmentation Fault
X,Y = 0x200,0x207 works well
X,Y = 0x200,0x208 segmentation fault
What is this limit due to? Note that I have 8G of RAM:
tt@pks:~/simp/exp$ free
total used free shared buffers cached
Mem: 8114496 832540 7281956 0 49676 343944
-/+ buffers/cache: 438920 7675576
Swap: 16646140 0 16646140
---------------- PcCodeGen
Apparently, PcCodeGen is broken, and for the moment on has to limit oneself to Pc by putting in .simp the line
__stepname__=["Pc"]
#__stepname__=["PcThreaded"]
Hopefully this can be fixed.
---------------- ROTATIONS BY SHIFT
Possibly, the lack of PcCodeGen is what prevents rotation of pictures by iterative halve-and-shift to work (see attached rot100 and
rotcol100). I get
simp.step.StepError: The Pc STEP currently only handles SmallUInt signals
The signals I use in rot100 are
bit = SmallUInt(2)
byte= UInt8
q = Signal(byte) # my state
p = Signal(byte) # ancillary picture layer
h = Signal(bit) # horz phase for vertical shift
v = Signal(bit) # vert phase for horizont shift
The situation is of course much worse with rotcol100, which uses color figures:
qred = Signal(byte) # my state
qgreen = Signal(byte) # my state
qblue = Signal(byte) # my state
pred = Signal(byte) # ancillary picture layer
pgreen = Signal(byte) # ancillary picture layer
pblue = Signal(byte) # ancillary picture layer
---------------- BENNETT'S scarf
Scarf (a 1-D rule) has stopped working, with the following message:
Warning: Can't currently change the shape of the XTRenderer
Switching to renderer <XTRenderer name=krgb>
File "/usr/lib/python2.7/site-packages/simp/latticearray.py"
line 519, in __init__: stop_ = stop_%size[i]
TypeError: unsupported operand type(s) for %: 'long' and 'numpy.int32'
---------------- STEP COUNTER
It would be useful to have more control of the managment of the step counter, for counting paces (an alternation of an even
and an odd step), for counting backwards when a rule is reversed, and for suppressing counting when a rule is revesed by the
device of marking time for one step in an even/odd alternation
---------------- TRANSITION TO PYTHON3
Numpy is now available for python3. Most of Pygame modules now work indifferently with python2 and python3. It would be nice to byte the bullet and port simp to python3.
rotation by shift b/w