Trying to test Seaside on MacOS

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
20 messages Options
Reply | Threaded
Open this post in threaded view
|

Trying to test Seaside on MacOS

Giuseppe
Hi,

This is what happen when I try to test Seaside. I hope this info is  
usefull. You can download the seasidetest.im generated from GST, from http://www.lordzealon.com/mc/seasidetest.im



galilea:~ glpunzi$ gst -V
GNU Smalltalk ready

st> PackageLoader fileInPackage: 'Seaside'
Loading package TCP
"Global garbage collection... done"
"Scavenging... 69% reclaimed, done"
Loading package Iconv
Loading package Sport
"Scavenging... 48% reclaimed, done"
Loading package Swazoo
"Scavenging... 40% reclaimed, done"
"Scavenging... 36% reclaimed, done"
"Scavenging... 35% reclaimed, done"
Loading package Seaside-Core
"Scavenging... 39% reclaimed, done"
"Scavenging... 34% reclaimed, done"
"Scavenging... 33% reclaimed, done"
"Scavenging... 34% reclaimed, done"
"Scavenging... 34% reclaimed, done"
"Scavenging... 34% reclaimed, done"
"Scavenging... 36% reclaimed, done"
"Scavenging... 34% reclaimed, done"
"Scavenging... 46% reclaimed, done"
Loading package Seaside
returned value is PackageLoader
3441 byte codes executed
which took 1.509 seconds (0.654s user+0.126s sys)
237 primitives, percent 6.89
self returns 53, inst var returns 23, literal returns 14
124 method cache lookups since last cleanup, percent 3.60
53 method cache hits, 71 misses, 42.74 percent hits
st> PackageLoader fileInPackage: 'Seaside-Development'
Loading package Seaside-Core
Loading package Seaside-Development
"Scavenging... 77% reclaimed, done"
returned value is PackageLoader
112978 byte codes executed
which took 0.104 seconds (0.059s user+0.010s sys)
11209 primitives, percent 9.92
self returns 482, inst var returns 453, literal returns 142
124 method cache lookups since last cleanup, percent 0.11
53 method cache hits, 71 misses, 42.74 percent hits
st> PackageLoader fileInPackage: 'Seaside-Examples'
"Scavenging... 54% reclaimed, done"
Loading package Seaside-Core
Loading package Seaside-Examples
"Scavenging... 50% reclaimed, done"
"Scavenging... 37% reclaimed, done"
returned value is PackageLoader
232148 byte codes executed
which took 0.107 seconds (0.092s user+0.010s sys)
23429 primitives, percent 10.09
self returns 1002, inst var returns 926, literal returns 340
124 method cache lookups since last cleanup, percent 0.05
53 method cache hits, 71 misses, 42.74 percent hits
st> ObjectMemory snapshot: 'seasidetest.im'
"Global garbage collection... done"
returned value is false
6962 byte codes executed
which took 0.482 seconds (0.026s user+0.013s sys)
513 primitives, percent 7.37
self returns 93, inst var returns 137, literal returns 41
104 method cache lookups since last cleanup, percent 1.49
41 method cache hits, 63 misses, 39.42 percent hits
st>


galilea:~ glpunzi$ gst -V seasidetest.im
Processing seasidetest.im
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^C
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character 0xe9
seasidetest.im:3: Invalid character 0xb6
seasidetest.im:3: Invalid character ^A
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^B
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^P
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^^
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character 0xf5
seasidetest.im:3: expected expression
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^P
seasidetest.im:3: Invalid character ^A
seasidetest.im:3: Invalid character 0xf4
seasidetest.im:3: Invalid character ^]
seasidetest.im:3: Invalid character 0xca
seasidetest.im:3: Invalid character ^C
seasidetest.im:3: Invalid character 0xa4
seasidetest.im:3: Invalid character 0x99
seasidetest.im:3: Invalid character 0xcd
seasidetest.im:3: Invalid character 0x8f
seasidetest.im:3: Invalid character 0xd2
seasidetest.im:3: Invalid character 0xf2
seasidetest.im:3: Invalid character ^F
seasidetest.im:3: Invalid character ^B
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^?
seasidetest.im:3: Invalid character ^H
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^F
seasidetest.im:3: Invalid character ^B
seasidetest.im:3: Invalid character ^B
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^?
seasidetest.im:3: Invalid character ^C
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^F
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^E
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^C
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^D
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^D
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^D
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^F
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^D
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^E
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^D
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^D
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^E
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^E
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^E
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:3: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^E
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^C
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^D
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^C
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^C
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^C
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^C
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^F
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^C
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^C
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^C
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^D
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^C
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^D
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^C
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^C
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^C
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^D
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^D
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^C
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^C
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^D
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^C
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^D
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^C
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^C
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^E
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^C
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^F
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^E
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^E
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^C
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^C
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^H
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^E
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^D
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^C
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^F
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^D
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^D
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^D
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^C
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^D
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^F
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^D
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^E
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^C
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^D
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^F
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^F
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^D
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^E
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^D
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^D
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^D
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^F
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^D
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^C
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^E
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^D
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^D
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^C
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^C
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^C
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^F
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^D
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^E
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^E
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^D
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^G
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^E
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^E
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^D
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^D
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^D
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^D
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^E
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:4: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^E
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^F
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^D
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^C
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^F
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^E
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^E
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^D
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^E
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^D
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^F
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^D
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^D
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^E
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^E
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^E
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^D
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^H
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^G
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^C
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^D
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^D
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^H
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^E
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^D
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^E
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^E
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^F
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^E
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^D
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^G
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^G
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^F
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^E
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^F
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^D
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^D
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^D
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^E
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^F
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^D
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^F
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^E
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^D
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^D
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^E
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^E
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^F
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^D
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^F
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^O
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^O
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^O
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^O
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^O
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^O
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^O
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^O
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^O
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^O
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^O
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^O
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^O
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^O
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^O
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^O
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^O
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^O
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^O
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^O
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^O
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^O
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^O
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^O
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^O
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^O
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^O
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^O
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^O
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^O
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^O
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^O
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^O
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^O
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^O
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^O
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^O
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^O
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^O
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^O
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^O
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^O
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^O
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^O
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^O
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^O
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^O
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^O
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^O
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^O
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@
seasidetest.im:5: Invalid character ^@^Cseasidetest.im:5: Interrupt
galilea:~ glpunzi$



_______________________________________________
help-smalltalk mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/help-smalltalk
Reply | Threaded
Open this post in threaded view
|

Re: Trying to test Seaside on MacOS

Paolo Bonzini-2
Giuseppe Luigi Punzi Ruiz wrote:
> Hi,
>
> This is what happen when I try to test Seaside. I hope this info is
> usefull. You can download the seasidetest.im generated from GST, from
> http://www.lordzealon.com/mc/seasidetest.im
>
> galilea:~ glpunzi$ gst -V seasidetest.im

Why don't you follow the online info (which is also in the docs, type
"info gst")? :-)  (You have to use gst-remote at this point).

Paolo


_______________________________________________
help-smalltalk mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/help-smalltalk
Reply | Threaded
Open this post in threaded view
|

Re: Trying to test Seaside on MacOS

Giuseppe
Hi,

Paolo Bonzini escribió:

> Giuseppe Luigi Punzi Ruiz wrote:
>> Hi,
>>
>> This is what happen when I try to test Seaside. I hope this info is
>> usefull. You can download the seasidetest.im generated from GST, from
>> http://www.lordzealon.com/mc/seasidetest.im
>>
>> galilea:~ glpunzi$ gst -V seasidetest.im
>
> Why don't you follow the online info (which is also in the docs, type
> "info gst")? :-)  (You have to use gst-remote at this point).

Sorry, I forgot to mention (and paste), thath when I did gst-remote, I
got an "Abort Trap".

For this reason, I tried to execute with gst on verbose mode, trying to
get some usefull info.
>
> Paolo

Cheers.

/ Giuseppe


_______________________________________________
help-smalltalk mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/help-smalltalk
Reply | Threaded
Open this post in threaded view
|

Re: Trying to test Seaside on MacOS

Paolo Bonzini-2

> Sorry, I forgot to mention (and paste), thath when I did gst-remote, I
> got an "Abort Trap".

Ah.  Try creating a seaside-load.st file

   PackageLoader fileInPackage: 'Seaside'!
   PackageLoader fileInPackage: 'Seaside-Examples'!
   PackageLoader fileInPackage: 'Seaside-Development'!
   ObjectMemory snapshot: 'seaside-test.im'!

and a seaside-start.st file

   Seaside.SwazooSeaside startOn: 8080!
   Processor activeProcess suspend!

Then do

   gst seaside-load.st
   gst -I seaside-test.im seaside-start.st

and point your browser to http://localhost:8080/seaside/browse

Paolo


_______________________________________________
help-smalltalk mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/help-smalltalk
Reply | Threaded
Open this post in threaded view
|

Re: Trying to test Seaside on MacOS

Giuseppe
I will try it at home. On windows I'm having the IconV problem and I'm
trying to get time to solve it.

Cheers.

Paolo Bonzini escribió:

>
>> Sorry, I forgot to mention (and paste), thath when I did gst-remote,
>> I got an "Abort Trap".
>
> Ah.  Try creating a seaside-load.st file
>
>   PackageLoader fileInPackage: 'Seaside'!
>   PackageLoader fileInPackage: 'Seaside-Examples'!
>   PackageLoader fileInPackage: 'Seaside-Development'!
>   ObjectMemory snapshot: 'seaside-test.im'!
>
> and a seaside-start.st file
>
>   Seaside.SwazooSeaside startOn: 8080!
>   Processor activeProcess suspend!
>
> Then do
>
>   gst seaside-load.st
>   gst -I seaside-test.im seaside-start.st
>
> and point your browser to http://localhost:8080/seaside/browse
>
> Paolo



_______________________________________________
help-smalltalk mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/help-smalltalk
Reply | Threaded
Open this post in threaded view
|

Re: Trying to test Seaside on MacOS

Giuseppe
In reply to this post by Paolo Bonzini-2
Hi again,

I tried without succeed.

galilea:~ glpunzi$ gst seaside-load.st
Loading package TCP
"Global garbage collection... done"
Loading package Iconv
Loading package Sport
Loading package Swazoo
Loading package Seaside-Core
Loading package Seaside
Loading package Seaside-Core
Loading package Seaside-Examples
Loading package Seaside-Core
Loading package Seaside-Development
"Global garbage collection... done"
galilea:~ glpunzi$ gst -I seaside-test.im seaside-start.st
"Global garbage collection... Abort trap
galilea:~ glpunzi$



El 02/06/2008, a las 9:31, Paolo Bonzini escribió:

>
>> Sorry, I forgot to mention (and paste), thath when I did gst-
>> remote, I got an "Abort Trap".
>
> Ah.  Try creating a seaside-load.st file
>
>  PackageLoader fileInPackage: 'Seaside'!
>  PackageLoader fileInPackage: 'Seaside-Examples'!
>  PackageLoader fileInPackage: 'Seaside-Development'!
>  ObjectMemory snapshot: 'seaside-test.im'!
>
> and a seaside-start.st file
>
>  Seaside.SwazooSeaside startOn: 8080!
>  Processor activeProcess suspend!
>
> Then do
>
>  gst seaside-load.st
>  gst -I seaside-test.im seaside-start.st
>
> and point your browser to http://localhost:8080/seaside/browse
>
> Paolo



_______________________________________________
help-smalltalk mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/help-smalltalk
Reply | Threaded
Open this post in threaded view
|

Re: Trying to test Seaside on MacOS

Giuseppe
Paolo, has you time to check this?

Cheers.

Giuseppe Luigi Punzi Ruiz escribió:

> Hi again,
>
> I tried without succeed.
>
> galilea:~ glpunzi$ gst seaside-load.st
> Loading package TCP
> "Global garbage collection... done"
> Loading package Iconv
> Loading package Sport
> Loading package Swazoo
> Loading package Seaside-Core
> Loading package Seaside
> Loading package Seaside-Core
> Loading package Seaside-Examples
> Loading package Seaside-Core
> Loading package Seaside-Development
> "Global garbage collection... done"
> galilea:~ glpunzi$ gst -I seaside-test.im seaside-start.st
> "Global garbage collection... Abort trap
> galilea:~ glpunzi$
>
>
>
> El 02/06/2008, a las 9:31, Paolo Bonzini escribió:
>
>>
>>> Sorry, I forgot to mention (and paste), thath when I did gst-remote,
>>> I got an "Abort Trap".
>>
>> Ah.  Try creating a seaside-load.st file
>>
>>  PackageLoader fileInPackage: 'Seaside'!
>>  PackageLoader fileInPackage: 'Seaside-Examples'!
>>  PackageLoader fileInPackage: 'Seaside-Development'!
>>  ObjectMemory snapshot: 'seaside-test.im'!
>>
>> and a seaside-start.st file
>>
>>  Seaside.SwazooSeaside startOn: 8080!
>>  Processor activeProcess suspend!
>>
>> Then do
>>
>>  gst seaside-load.st
>>  gst -I seaside-test.im seaside-start.st
>>
>> and point your browser to http://localhost:8080/seaside/browse
>>
>> Paolo
>
>
>
> _______________________________________________
> help-smalltalk mailing list
> [hidden email]
> http://lists.gnu.org/mailman/listinfo/help-smalltalk



_______________________________________________
help-smalltalk mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/help-smalltalk
Reply | Threaded
Open this post in threaded view
|

Re: Trying to test Seaside on MacOS

Paolo Bonzini-2
Giuseppe Luigi Punzi wrote:
> Paolo, has you time to check this?

It works for me.  Try this.

gdb --args `which gst` -I seaside-test.im seaside-start.st
b exit
run
t 1
bt

and send the output (pasted from console).

Paolo


_______________________________________________
help-smalltalk mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/help-smalltalk
Reply | Threaded
Open this post in threaded view
|

Re: Trying to test Seaside on MacOS

Giuseppe
I will try at home.

Cheers.

Paolo Bonzini escribió:

> Giuseppe Luigi Punzi wrote:
>> Paolo, has you time to check this?
>
> It works for me.  Try this.
>
> gdb --args `which gst` -I seaside-test.im seaside-start.st
> b exit
> run
> t 1
> bt
>
> and send the output (pasted from console).
>
> Paolo



_______________________________________________
help-smalltalk mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/help-smalltalk
Reply | Threaded
Open this post in threaded view
|

Re: Trying to test Seaside on MacOS

Giuseppe
In reply to this post by Paolo Bonzini-2
galilea:gnusmalltalk glpunzi$ gdb --args `which gst` -I seaside-
test.im seaside-start.st
GNU gdb 6.3.50-20050815 (Apple version gdb-768) (Tue Oct  2 04:07:49  
UTC 2007)
Copyright 2004 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 "i386-apple-darwin"...Reading symbols for  
shared libraries .
warning: Could not find object file "/opt/local/var/macports/build/
_opt_local_var_macports_sources_rsync
.macports.org_release_ports_lang_gst-dev/work/smalltalk-3.0b/
libgst/.libs/libgst.lax/libffi.a/closures.o" - no debug information  
available for "src/closures.c".


warning: Could not find object file "/opt/local/var/macports/build/
_opt_local_var_macports_sources_rsync
.macports.org_release_ports_lang_gst-dev/work/smalltalk-3.0b/
libgst/.libs/libgst.lax/libffi.a/debug.o" - no debug information  
available for "src/debug.c".


warning: Could not find object file "/opt/local/var/macports/build/
_opt_local_var_macports_sources_rsync
.macports.org_release_ports_lang_gst-dev/work/smalltalk-3.0b/
libgst/.libs/libgst.lax/libffi.a/ffi.o" - no debug information  
available for "src/x86/ffi.c".


warning: Could not find object file "/opt/local/var/macports/build/
_opt_local_var_macports_sources_rsync
.macports.org_release_ports_lang_gst-dev/work/smalltalk-3.0b/
libgst/.libs/libgst.lax/libffi.a/java_raw_api.o" - no debug  
information available for "src/java_raw_api.c".


warning: Could not find object file "/opt/local/var/macports/build/
_opt_local_var_macports_sources_rsync
.macports.org_release_ports_lang_gst-dev/work/smalltalk-3.0b/
libgst/.libs/libgst.lax/libffi.a/prep_cif.o" - no debug information  
available for "src/prep_cif.c".


warning: Could not find object file "/opt/local/var/macports/build/
_opt_local_var_macports_sources_rsync
.macports.org_release_ports_lang_gst-dev/work/smalltalk-3.0b/
libgst/.libs/libgst.lax/libffi.a/raw_api.o" - no debug information  
available for "src/raw_api.c".


warning: Could not find object file "/opt/local/var/macports/build/
_opt_local_var_macports_sources_rsync
.macports.org_release_ports_lang_gst-dev/work/smalltalk-3.0b/
libgst/.libs/libgst.lax/libffi.a/types.o" - no debug information  
available for "src/types.c".

...... done

(gdb) b exit
Breakpoint 1 at 0x29eaf
(gdb) run
Starting program: /opt/local/bin/gst -I seaside-test.im seaside-start.st
Reading symbols for shared libraries ++++++.. done
Breakpoint 1 at 0x90751eb5
"Global garbage collection...
Program received signal EXC_BAD_INSTRUCTION, Illegal instruction/
operand.
[Switching to process 214 thread 0x1003]
0x9081e434 in __abort ()
(gdb) t1
Undefined command: "t1".  Try "help".
(gdb) t 1
[Switching to thread 1 (process 214 local thread 0x2f13)]
0x0012238d in empty_context_stack ()
(gdb) bt
#0  0x0012238d in empty_context_stack ()
#1  0xa00e883c in __sFX ()
(gdb)



El 03/06/2008, a las 18:43, Paolo Bonzini escribió:

> Giuseppe Luigi Punzi wrote:
>> Paolo, has you time to check this?
>
> It works for me.  Try this.
>
> gdb --args `which gst` -I seaside-test.im seaside-start.st
> b exit
> run
> t 1
> bt
>
> and send the output (pasted from console).
>
> Paolo



_______________________________________________
help-smalltalk mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/help-smalltalk
Reply | Threaded
Open this post in threaded view
|

Re: Trying to test Seaside on MacOS

Paolo Bonzini-2

> (gdb) b exit
> Breakpoint 1 at 0x29eaf
> (gdb) run
> Starting program: /opt/local/bin/gst -I seaside-test.im seaside-start.st
> Reading symbols for shared libraries ++++++.. done
> Breakpoint 1 at 0x90751eb5
> "Global garbage collection...
> Program received signal EXC_BAD_INSTRUCTION, Illegal instruction/operand.
> [Switching to process 214 thread 0x1003]
> 0x9081e434 in __abort ()
> (gdb) t1
> Undefined command: "t1".  Try "help".
> (gdb) t 1
> [Switching to thread 1 (process 214 local thread 0x2f13)]
> 0x0012238d in empty_context_stack ()
> (gdb) bt
> #0  0x0012238d in empty_context_stack ()
> #1  0xa00e883c in __sFX ()
> (gdb)

Hmm, I don't know. :-(

Can you type "Features" or "Features printNl" (on a fresh image) and
send the result?

Paolo


_______________________________________________
help-smalltalk mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/help-smalltalk
Reply | Threaded
Open this post in threaded view
|

Re: Trying to test Seaside on MacOS

Giuseppe
galilea:desarrollo glpunzi$ gst
GNU Smalltalk ready

st> Features
Set (#BloxTK #Kernel #Parser #Blox #DLD #DebugTools #Browser )
st>



El 03/06/2008, a las 21:12, Paolo Bonzini escribió:

>
>> (gdb) b exit
>> Breakpoint 1 at 0x29eaf
>> (gdb) run
>> Starting program: /opt/local/bin/gst -I seaside-test.im seaside-
>> start.st
>> Reading symbols for shared libraries ++++++.. done
>> Breakpoint 1 at 0x90751eb5
>> "Global garbage collection...
>> Program received signal EXC_BAD_INSTRUCTION, Illegal instruction/
>> operand.
>> [Switching to process 214 thread 0x1003]
>> 0x9081e434 in __abort ()
>> (gdb) t1
>> Undefined command: "t1".  Try "help".
>> (gdb) t 1
>> [Switching to thread 1 (process 214 local thread 0x2f13)]
>> 0x0012238d in empty_context_stack ()
>> (gdb) bt
>> #0  0x0012238d in empty_context_stack ()
>> #1  0xa00e883c in __sFX ()
>> (gdb)
>
> Hmm, I don't know. :-(
>
> Can you type "Features" or "Features printNl" (on a fresh image) and  
> send the result?
>
> Paolo



_______________________________________________
help-smalltalk mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/help-smalltalk
Reply | Threaded
Open this post in threaded view
|

Re: Trying to test Seaside on MacOS

Paolo Bonzini-2

>> Can you type "Features" or "Features printNl" (on a fresh image) and
>> send the result?

Can you try loading Seaside on a fully fresh image, i.e. without the
browser?  Just type "gst -i" instead of "gst" on the invocation that you
do to load the Seaside packages.

Paolo


_______________________________________________
help-smalltalk mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/help-smalltalk
Reply | Threaded
Open this post in threaded view
|

Re: Trying to test Seaside on MacOS

Giuseppe
galilea:desarrollo glpunzi$ gst -i
"Global garbage collection... done"
GNU Smalltalk ready

st> PackageLoader fileInPackage: 'Seaside'
Loading package TCP
Loading package Iconv
Loading package Sport
Loading package Swazoo
Loading package Seaside-Core
Loading package Seaside
PackageLoader
st> PackageLoader fileInPackage: 'Seaside-Development'
Loading package Seaside-Core
Loading package Seaside-Development
PackageLoader
st> PackageLoader fileInPackage: 'Seaside-Examples'
Loading package Seaside-Core
Loading package Seaside-Examples
PackageLoader
st>


El 03/06/2008, a las 21:31, Paolo Bonzini escribió:

>
>>> Can you type "Features" or "Features printNl" (on a fresh image)  
>>> and send the result?
>
> Can you try loading Seaside on a fully fresh image, i.e. without the  
> browser?  Just type "gst -i" instead of "gst" on the invocation that  
> you do to load the Seaside packages.
>
> Paolo



_______________________________________________
help-smalltalk mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/help-smalltalk
Reply | Threaded
Open this post in threaded view
|

Re: Trying to test Seaside on MacOS

Paolo Bonzini-2
Giuseppe Luigi Punzi Ruiz wrote:

> galilea:desarrollo glpunzi$ gst -i
> "Global garbage collection... done"
> GNU Smalltalk ready
>
> st> PackageLoader fileInPackage: 'Seaside'
> Loading package TCP
> Loading package Iconv
> Loading package Sport
> Loading package Swazoo
> Loading package Seaside-Core
> Loading package Seaside
> PackageLoader
> st> PackageLoader fileInPackage: 'Seaside-Development'
> Loading package Seaside-Core
> Loading package Seaside-Development
> PackageLoader
> st> PackageLoader fileInPackage: 'Seaside-Examples'
> Loading package Seaside-Core
> Loading package Seaside-Examples
> PackageLoader
> st>

... and then start it :-)

Paolo


_______________________________________________
help-smalltalk mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/help-smalltalk
Reply | Threaded
Open this post in threaded view
|

Re: Trying to test Seaside on MacOS

Giuseppe
galilea:gnusmalltalk glpunzi$ gst
GNU Smalltalk ready

st> PackageLoader fileInPackage
fileInPackage:   fileInPackages:
st> PackageLoader fileInPackage: 'Seaside'
Loading package TCP
"Global garbage collection... done"
Loading package Iconv
Loading package Sport
Loading package Swazoo
Loading package Seaside-Core
^[[ALoading package Seaside
PackageLoader
st> PackageLoader fileInPackage: 'Seaside-Development'
Loading package Seaside-Core
Loading package Seaside-Development
PackageLoader
st> PackageLoader fileInPackage: 'Seaside-Examples'
Loading package Seaside-Core
Loading package Seaside-Examples
PackageLoader
st> Seaside.SwazooSeaside startOn: 8080
Seaside.SwazooSeaside
st> Processor activeProcess suspend
Object: nil error: did not understand #anyDataReady
MessageNotUnderstood(Exception)>>signal
UndefinedObject(Object)>>doesNotUnderstand: #anyDataReady
Swazoo.HTTPConnection>>getAndDispatchMessages
optimized [] in Swazoo.HTTPConnection>>interact
BlockClosure>>on:do:
SpExceptionContext class>>for:on:do:
optimized [] in Swazoo.HTTPConnection>>interact
[] in Process>>onBlock:at:suspend:
BlockClosure>>on:do:
[] in Process>>onBlock:at:suspend:
BlockClosure>>ensure:
[] in Process>>onBlock:at:suspend:
[] in BlockClosure>>asContext:
BlockContext class>>fromClosure:parent:
Object: nil error: did not understand #anyDataReady
MessageNotUnderstood(Exception)>>signal
UndefinedObject(Object)>>doesNotUnderstand: #anyDataReady
Swazoo.HTTPConnection>>getAndDispatchMessages
optimized [] in Swazoo.HTTPConnection>>interact
BlockClosure>>on:do:
SpExceptionContext class>>for:on:do:
optimized [] in Swazoo.HTTPConnection>>interact
[] in Process>>onBlock:at:suspend:
BlockClosure>>on:do:
[] in Process>>onBlock:at:suspend:
BlockClosure>>ensure:
[] in Process>>onBlock:at:suspend:
[] in BlockClosure>>asContext:
BlockContext class>>fromClosure:parent:
Object: nil error: did not understand #anyDataReady
MessageNotUnderstood(Exception)>>signal
UndefinedObject(Object)>>doesNotUnderstand: #anyDataReady
Swazoo.HTTPConnection>>getAndDispatchMessages
optimized [] in Swazoo.HTTPConnection>>interact
BlockClosure>>on:do:
SpExceptionContext class>>for:on:do:
optimized [] in Swazoo.HTTPConnection>>interact
[] in Process>>onBlock:at:suspend:
BlockClosure>>on:do:
[] in Process>>onBlock:at:suspend:
BlockClosure>>ensure:
[] in Process>>onBlock:at:suspend:
[] in BlockClosure>>asContext:
BlockContext class>>fromClosure:parent:
"Global garbage collection... done, heap grown"


As you see, I started without exit of GST shell..and WORKS!!! Seems  
the problem is with the .im file.


El 03/06/2008, a las 21:41, Paolo Bonzini escribió:

> Giuseppe Luigi Punzi Ruiz wrote:
>> galilea:desarrollo glpunzi$ gst -i
>> "Global garbage collection... done"
>> GNU Smalltalk ready
>> st> PackageLoader fileInPackage: 'Seaside'
>> Loading package TCP
>> Loading package Iconv
>> Loading package Sport
>> Loading package Swazoo
>> Loading package Seaside-Core
>> Loading package Seaside
>> PackageLoader
>> st> PackageLoader fileInPackage: 'Seaside-Development'
>> Loading package Seaside-Core
>> Loading package Seaside-Development
>> PackageLoader
>> st> PackageLoader fileInPackage: 'Seaside-Examples'
>> Loading package Seaside-Core
>> Loading package Seaside-Examples
>> PackageLoader
>> st>
>
> ... and then start it :-)
>
> Paolo



_______________________________________________
help-smalltalk mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/help-smalltalk
Reply | Threaded
Open this post in threaded view
|

Re: Trying to test Seaside on MacOS

Giuseppe
Added to this:..

There isn't Halos in Seaside port for GST?

El 03/06/2008, a las 22:07, Giuseppe Luigi Punzi Ruiz escribió:

> galilea:gnusmalltalk glpunzi$ gst
> GNU Smalltalk ready
>
> st> PackageLoader fileInPackage
> fileInPackage:   fileInPackages:
> st> PackageLoader fileInPackage: 'Seaside'
> Loading package TCP
> "Global garbage collection... done"
> Loading package Iconv
> Loading package Sport
> Loading package Swazoo
> Loading package Seaside-Core
> ^[[ALoading package Seaside
> PackageLoader
> st> PackageLoader fileInPackage: 'Seaside-Development'
> Loading package Seaside-Core
> Loading package Seaside-Development
> PackageLoader
> st> PackageLoader fileInPackage: 'Seaside-Examples'
> Loading package Seaside-Core
> Loading package Seaside-Examples
> PackageLoader
> st> Seaside.SwazooSeaside startOn: 8080
> Seaside.SwazooSeaside
> st> Processor activeProcess suspend
> Object: nil error: did not understand #anyDataReady
> MessageNotUnderstood(Exception)>>signal
> UndefinedObject(Object)>>doesNotUnderstand: #anyDataReady
> Swazoo.HTTPConnection>>getAndDispatchMessages
> optimized [] in Swazoo.HTTPConnection>>interact
> BlockClosure>>on:do:
> SpExceptionContext class>>for:on:do:
> optimized [] in Swazoo.HTTPConnection>>interact
> [] in Process>>onBlock:at:suspend:
> BlockClosure>>on:do:
> [] in Process>>onBlock:at:suspend:
> BlockClosure>>ensure:
> [] in Process>>onBlock:at:suspend:
> [] in BlockClosure>>asContext:
> BlockContext class>>fromClosure:parent:
> Object: nil error: did not understand #anyDataReady
> MessageNotUnderstood(Exception)>>signal
> UndefinedObject(Object)>>doesNotUnderstand: #anyDataReady
> Swazoo.HTTPConnection>>getAndDispatchMessages
> optimized [] in Swazoo.HTTPConnection>>interact
> BlockClosure>>on:do:
> SpExceptionContext class>>for:on:do:
> optimized [] in Swazoo.HTTPConnection>>interact
> [] in Process>>onBlock:at:suspend:
> BlockClosure>>on:do:
> [] in Process>>onBlock:at:suspend:
> BlockClosure>>ensure:
> [] in Process>>onBlock:at:suspend:
> [] in BlockClosure>>asContext:
> BlockContext class>>fromClosure:parent:
> Object: nil error: did not understand #anyDataReady
> MessageNotUnderstood(Exception)>>signal
> UndefinedObject(Object)>>doesNotUnderstand: #anyDataReady
> Swazoo.HTTPConnection>>getAndDispatchMessages
> optimized [] in Swazoo.HTTPConnection>>interact
> BlockClosure>>on:do:
> SpExceptionContext class>>for:on:do:
> optimized [] in Swazoo.HTTPConnection>>interact
> [] in Process>>onBlock:at:suspend:
> BlockClosure>>on:do:
> [] in Process>>onBlock:at:suspend:
> BlockClosure>>ensure:
> [] in Process>>onBlock:at:suspend:
> [] in BlockClosure>>asContext:
> BlockContext class>>fromClosure:parent:
> "Global garbage collection... done, heap grown"
>
>
> As you see, I started without exit of GST shell..and WORKS!!! Seems  
> the problem is with the .im file.
>
>
> El 03/06/2008, a las 21:41, Paolo Bonzini escribió:
>
>> Giuseppe Luigi Punzi Ruiz wrote:
>>> galilea:desarrollo glpunzi$ gst -i
>>> "Global garbage collection... done"
>>> GNU Smalltalk ready
>>> st> PackageLoader fileInPackage: 'Seaside'
>>> Loading package TCP
>>> Loading package Iconv
>>> Loading package Sport
>>> Loading package Swazoo
>>> Loading package Seaside-Core
>>> Loading package Seaside
>>> PackageLoader
>>> st> PackageLoader fileInPackage: 'Seaside-Development'
>>> Loading package Seaside-Core
>>> Loading package Seaside-Development
>>> PackageLoader
>>> st> PackageLoader fileInPackage: 'Seaside-Examples'
>>> Loading package Seaside-Core
>>> Loading package Seaside-Examples
>>> PackageLoader
>>> st>
>>
>> ... and then start it :-)
>>
>> Paolo
>
>
>
> _______________________________________________
> help-smalltalk mailing list
> [hidden email]
> http://lists.gnu.org/mailman/listinfo/help-smalltalk



_______________________________________________
help-smalltalk mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/help-smalltalk
Reply | Threaded
Open this post in threaded view
|

Re: Trying to test Seaside on MacOS

Paolo Bonzini-2
Giuseppe Luigi Punzi Ruiz wrote:
> Added to this:..
>
> There isn't Halos in Seaside port for GST?

It's seaside 2.9 so you have to enable it in the configuration, by
adding WAToolDecoration.  It's still partly broken though (particularly
CSS and inspector).

I'll see what the backtrace is about, and I also have a way to reproduce
the original bug.

Paolo


_______________________________________________
help-smalltalk mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/help-smalltalk
Reply | Threaded
Open this post in threaded view
|

Re: Trying to test Seaside on MacOS

Giuseppe
Cool,

Say me something when you know how to solve.

Two more things.

How to add WAToolDecoration? :P

And, once Processor activeProcess suspend is executed, then, I can't  
stop (interrupt) GST.



El 03/06/2008, a las 22:20, Paolo Bonzini escribió:

> Giuseppe Luigi Punzi Ruiz wrote:
>> Added to this:..
>> There isn't Halos in Seaside port for GST?
>
> It's seaside 2.9 so you have to enable it in the configuration, by  
> adding WAToolDecoration.  It's still partly broken though  
> (particularly CSS and inspector).
>
> I'll see what the backtrace is about, and I also have a way to  
> reproduce the original bug.
>
> Paolo



_______________________________________________
help-smalltalk mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/help-smalltalk
Reply | Threaded
Open this post in threaded view
|

Re: Trying to test Seaside on MacOS

Paolo Bonzini-2

> And, once Processor activeProcess suspend is executed, then, I can't
> stop (interrupt) GST.

This patch completely overhauls the way GST deals with SIGINT, so that
^C propagates up and terminates all call-ins.  It's not perfect but it's
a great improvement.

It also makes "kill -USR1" work more reliably to show the backtrace of
the currently executing process.

Paolo

2008-06-04  Paolo Bonzini  <[hidden email]>
   
    * libgst/interp-bc.inl: Create a jmp_buf for _gst_interpret.
    * libgst/interp-jit.inl: Likewise.
    * libgst/interp.c: Rewrite handling of interp_jmp_buf and signals.  Use
    the jmp_buf from _gst_interpret when SIGINT is sent but the current
    process is terminated.
    * libgst/prims.def: Use push_jmp_buf and pop_jmp_buf.  Propagate
    interruptions until the interpreter is reached.

diff --git a/libgst/interp-bc.inl b/libgst/interp-bc.inl
index 093940f..461e2fa 100644
--- a/libgst/interp-bc.inl
+++ b/libgst/interp-bc.inl
@@ -441,6 +441,9 @@ _gst_validate_method_cache_entries (void)
 OOP
 _gst_interpret (OOP processOOP)
 {
+  interp_jmp_buf jb;
+  gst_callin_process process;
+
 #ifdef LOCAL_REGS
 # undef  sp
 # undef  ip
@@ -494,22 +497,24 @@ _gst_interpret (OOP processOOP)
 
 #include "vm.inl"
 
-  /* Set the global variables holding the pointers to the bytecode
-     routines.  */
+  /* Global pointers to the bytecode routines are used to interrupt the
+     bytecode interpreter "from the outside" and divert it to
+     monitor_byte_codes.  */
   global_normal_bytecodes = normal_byte_codes;
   global_monitored_bytecodes = monitored_byte_codes;
   dispatch_vec = normal_byte_codes;
 
-  /* The first time through, evaluate the monitoring code in order to
-     process the execution tracing flag.  */
-  _gst_except_flag = true;
-
-  _gst_register_oop (processOOP);
-  in_interpreter = true;
-
   /* Prime the interpreter's registers.  */
   IMPORT_REGS ();
 
+  push_jmp_buf (&jb, true, processOOP);
+  if (setjmp (jb.jmpBuf) == 0)
+    goto monitor_byte_codes;
+  else
+    goto return_value;
+
+  /* The code blocks that follow are executed in threaded-code style.  */
+
 monitor_byte_codes:
   SET_EXCEPT_FLAG (false);
   if (!disable_preemption)
@@ -548,12 +553,7 @@ monitor_byte_codes:
     }
 
   if (is_process_terminating (processOOP))
-    {
-      gst_callin_process process = (gst_callin_process) OOP_TO_OBJ (processOOP);
-      _gst_unregister_oop (processOOP);
-      in_interpreter = false;
-      return (process->returnedValue);
-    }
+    goto return_value;
 
   if UNCOMMON (_gst_abort_execution)
     {
@@ -561,6 +561,7 @@ monitor_byte_codes:
       selectorOOP = _gst_intern_string ((char *) _gst_abort_execution);
       _gst_abort_execution = NULL;
       SEND_MESSAGE (selectorOOP, 0);
+      IMPORT_REGS ();
     }
 
   if UNCOMMON (_gst_execution_tracing)
@@ -603,6 +604,13 @@ lookahead_dup_false:
   PREFETCH_VEC (false_byte_codes);
   PUSH_OOP (_gst_false_oop);
   NEXT_BC_VEC (false_byte_codes);
+
+ return_value:
+  process = (gst_callin_process) OOP_TO_OBJ (processOOP);
+  if (pop_jmp_buf ())
+    stop_execution ();
+
+  return (process->returnedValue);
 }
 
 
diff --git a/libgst/interp-jit.inl b/libgst/interp-jit.inl
index 8f7c291..2c07522 100644
--- a/libgst/interp-jit.inl
+++ b/libgst/interp-jit.inl
@@ -379,98 +379,100 @@ refresh_native_ips (OOP contextOOP)
 OOP
 _gst_interpret (OOP processOOP)
 {
-  _gst_register_oop (processOOP);
-  in_interpreter = true;
-
-  for (;;)
-    {
-      gst_method_context thisContext;
-
-      if (!native_ip)
- return (_gst_nil_oop);
-
-      native_ip = _gst_run_native_code (native_ip);
-
-      if (!_gst_except_flag)
- {
-          OOP activeProcessOOP = get_scheduled_process ();
-          gst_callin_process process = (gst_callin_process) OOP_TO_OBJ (activeProcessOOP);
-          process->returnedValue = POP_OOP ();
-          _gst_terminate_process (activeProcessOOP);
- }
-
-      if UNCOMMON (_gst_abort_execution)
- {
-  OOP selectorOOP;
-  selectorOOP = _gst_intern_string ((char *)_gst_abort_execution);
-  _gst_abort_execution = NULL;
-  SEND_MESSAGE (selectorOOP, 0);
- }
-
-      if (!disable_preemption)
-        {
-  _gst_disable_interrupts (); /* block out everything! */
-          if UNCOMMON (async_queue_index)
-    {
-      /* deal with any async signals */
-      int i;
-      for (i = 0; i < async_queue_index; i++)
-        {
-          sync_signal (queued_async_signals[i].sem);
-          if (queued_async_signals[i].unregister)
-    _gst_unregister_oop (queued_async_signals[i].sem);
-        }
-
-      async_queue_index = 0;
-    }
-          _gst_enable_interrupts ();
- }
-
-      thisContext =
- (gst_method_context) OOP_TO_OBJ (_gst_this_context_oop);
-      thisContext->native_ip = GET_NATIVE_IP (native_ip);
-
-      _gst_except_flag = false;
-
-      if UNCOMMON (!IS_NIL (switch_to_process))
- {
-  change_process_context (switch_to_process);
-          if UNCOMMON (single_step_semaphore)
-            {
-              _gst_async_signal (single_step_semaphore);
-              single_step_semaphore = NULL;
-            }
- }
-
-      else if UNCOMMON (time_to_preempt)
- ACTIVE_PROCESS_YIELD ();
-
-      if (is_process_terminating (processOOP))
-        {
-          gst_callin_process process = (gst_callin_process) OOP_TO_OBJ (processOOP);
-          if (!IS_NIL (switch_to_process))
-            change_process_context (switch_to_process);
-
-  _gst_unregister_oop (processOOP);
-  in_interpreter = false;
-          return (process->returnedValue);
-        }
-
-      /* If the native_ip in the context is not valid, this is a
-         process that we have not restarted yet! Get a fresh
-         native_ip for each context in the chain, recompiling
-         methods if needed. */
-      thisContext =
- (gst_method_context) OOP_TO_OBJ (_gst_this_context_oop);
-
-      if (!(_gst_this_method->flags & F_XLAT)
-  || thisContext->native_ip == DUMMY_NATIVE_IP)
- {
-  refresh_native_ips (_gst_this_context_oop);
-  native_ip = GET_CONTEXT_IP (thisContext);
- }
-
-      if UNCOMMON (time_to_preempt)
- set_preemption_timer ();
-    }
+  gst_callin_process process;
+  push_jmp_buf (&jb, true, processOOP);
+
+  if (setjmp (jb.jmpBuf) == 0)
+    for (;;)
+      {
+        gst_method_context thisContext;
+
+        if (!native_ip)
+  return (_gst_nil_oop);
+
+        native_ip = _gst_run_native_code (native_ip);
+
+        if (!_gst_except_flag)
+  {
+            OOP activeProcessOOP = get_scheduled_process ();
+            gst_callin_process process = (gst_callin_process) OOP_TO_OBJ (activeProcessOOP);
+            process->returnedValue = POP_OOP ();
+            _gst_terminate_process (activeProcessOOP);
+  }
+
+        if UNCOMMON (_gst_abort_execution)
+  {
+    OOP selectorOOP;
+    selectorOOP = _gst_intern_string ((char *)_gst_abort_execution);
+    _gst_abort_execution = NULL;
+    SEND_MESSAGE (selectorOOP, 0);
+  }
+
+        if (!disable_preemption)
+          {
+    _gst_disable_interrupts (); /* block out everything! */
+            if UNCOMMON (async_queue_index)
+      {
+        /* deal with any async signals */
+        int i;
+        for (i = 0; i < async_queue_index; i++)
+          {
+            sync_signal (queued_async_signals[i].sem);
+            if (queued_async_signals[i].unregister)
+      _gst_unregister_oop (queued_async_signals[i].sem);
+          }
+
+        async_queue_index = 0;
+      }
+            _gst_enable_interrupts ();
+  }
+
+        thisContext =
+  (gst_method_context) OOP_TO_OBJ (_gst_this_context_oop);
+        thisContext->native_ip = GET_NATIVE_IP (native_ip);
+
+        _gst_except_flag = false;
+
+        if UNCOMMON (!IS_NIL (switch_to_process))
+  {
+    change_process_context (switch_to_process);
+            if UNCOMMON (single_step_semaphore)
+              {
+                _gst_async_signal (single_step_semaphore);
+                single_step_semaphore = NULL;
+              }
+  }
+
+        else if UNCOMMON (time_to_preempt)
+  ACTIVE_PROCESS_YIELD ();
+
+        if (is_process_terminating (processOOP))
+          break;
+
+        /* If the native_ip in the context is not valid, this is a
+           process that we have not restarted yet! Get a fresh
+           native_ip for each context in the chain, recompiling
+           methods if needed. */
+        thisContext =
+  (gst_method_context) OOP_TO_OBJ (_gst_this_context_oop);
+
+        if (!(_gst_this_method->flags & F_XLAT)
+    || thisContext->native_ip == DUMMY_NATIVE_IP)
+  {
+    refresh_native_ips (_gst_this_context_oop);
+    native_ip = GET_CONTEXT_IP (thisContext);
+  }
+
+        if UNCOMMON (time_to_preempt)
+  set_preemption_timer ();
+      }
+
+  if (!IS_NIL (switch_to_process))
+    change_process_context (switch_to_process);
+
+  process = (gst_callin_process) OOP_TO_OBJ (processOOP);
+  if (pop_jmp_buf ())
+    stop_execution ();
+
+  return (process->returnedValue);
 }
diff --git a/libgst/interp.c b/libgst/interp.c
index 14a2913..4ed28a8 100644
--- a/libgst/interp.c
+++ b/libgst/interp.c
@@ -128,10 +128,12 @@ async_queue_entry;
 
 typedef struct interp_jmp_buf
 {
+  jmp_buf jmpBuf;
   struct interp_jmp_buf *next;
-  int suspended;
+  unsigned short suspended;
+  unsigned char interpreter;
+  unsigned char interrupted;
   OOP processOOP;
-  jmp_buf jmpBuf;
 }
 interp_jmp_buf;
 
@@ -218,9 +220,6 @@ OOP _gst_this_method = NULL;
 /* Signal this semaphore at the following instruction.  */
 static OOP single_step_semaphore = NULL;
 
-/* Answer whether we are in the interpreter or in application code.  */
-static mst_Boolean in_interpreter = false;
-
 /* CompiledMethod cache which memoizes the methods and some more
    information for each class->selector pairs.  */
 static method_cache_entry method_cache[METHOD_CACHE_SIZE] CACHELINE_ALIGNED;
@@ -328,17 +327,12 @@ static OOP next_scheduled_process (void);
    CONTEXTOOP context, and answer it.  */
 static OOP create_callin_process (OOP contextOOP);
 
-/* Sets flags so that the interpreter starts returning immediately from
-   whatever byte codes it's executing.  It returns via a normal message
-   send of the unary selector MSG, so that the world is in a consistent
-   state when it's done.  */
-static void stop_executing (const char *msg);
-
 /* Set a timer at the end of which we'll preempt the current process.  */
 static void set_preemption_timer (void);
 
-/* Same as _gst_parse_stream, but creating a reentrancy_jmpbuf.  */
-static void parse_stream_with_protection (mst_Boolean method);
+/* Same as _gst_parse_stream, but creating a reentrancy_jmpbuf.  Returns
+   true if interrupted. */
+static mst_Boolean parse_stream_with_protection (mst_Boolean method);
 
 /* Put the given process to sleep by rotating the list of processes for
    PROCESSOOP's priority (i.e. it was the head of the list and becomes
@@ -517,54 +511,28 @@ static mst_Boolean unwind_to (OOP returnContextOOP);
    doing a local return.  */
 static mst_Boolean disable_non_unwind_contexts (OOP returnContextOOP);
 
-/* Called to handle signals that are not passed to the Smalltalk
-   program, such as interrupts or segmentation violation.  In the
-   latter case, try to show a method invocation backtrace if possibly,
-   otherwise try to show where the system was in the file it was
-   processing when the error occurred.  */
-static RETSIGTYPE interrupt_handler (int sig);
-
 /* Called to preempt the current process after a specified amount
    of time has been spent in the GNU Smalltalk interpreter.  */
 #ifdef ENABLE_PREEMPTION
 static RETSIGTYPE preempt_smalltalk_process (int sig);
 #endif
 
-/* This macro acts as a block statement (if, for, while); it
-   accepts a pointer to an interp_jmp_buf and executes its body
-   so that the current process is suspended and SIGINT breaks
-   out of it.  */
-#define PROTECT_CURRENT_PROCESS_WITH(jb) \
-  for ((jb)->next = reentrancy_jmp_buf, \
-       (jb)->suspended = 0, \
-       (jb)->processOOP = get_active_process (), \
-       _gst_register_oop ((jb)->processOOP), \
-       reentrancy_jmp_buf = (jb), \
-       in_interpreter = false; \
-       !in_interpreter; \
-       in_interpreter = true, \
-       _gst_unregister_oop ((jb)->processOOP), \
-       reentrancy_jmp_buf = reentrancy_jmp_buf->next) \
-    if (setjmp (reentrancy_jmp_buf->jmpBuf) != 0) \
-      continue; \
-    else \
-
-/* This macro acts as a block statement (if, for, while); it
-   accepts a pointer to an interp_jmp_buf and executes its body
-   so that the current process is not suspended (like in
-   asynchronous C call-outs) but SIGINT breaks out of it.  */
-#define PROTECT_FROM_INTERRUPT_WITH(jb) \
-  for ((jb)->next = reentrancy_jmp_buf, \
-       (jb)->suspended = 0, \
-       (jb)->processOOP = _gst_nil_oop, \
-       reentrancy_jmp_buf = (jb), \
-       in_interpreter = false; \
-       !in_interpreter; \
-       in_interpreter = true, \
-       reentrancy_jmp_buf = reentrancy_jmp_buf->next) \
-    if (setjmp (reentrancy_jmp_buf->jmpBuf) != 0) \
-      continue; \
-    else \
+/* Push an execution state for process PROCESSOOP.  The process is
+   used for two reasons: 1) it is suspended if there is a call-in
+   while the execution state is on the top of the stack; 2) it is
+   sent #userInterrupt if the user presses Ctrl-C.  */
+static void push_jmp_buf (interp_jmp_buf *jb,
+  int for_interpreter,
+  OOP processOOP);
+
+/* Pop an execution state.  Return true if the interruption has to
+   be propagated up.  */
+static mst_Boolean pop_jmp_buf (void);
+
+/* Jump out of the top execution state.  This is used by C call-out
+   primitives to jump out repeatedly until a Smalltalk process is
+   encountered and terminated.  */
+static void stop_execution (void);
 
 /* Pick a process that is the highest-priority process different from
    the currently executing one, and schedule it for execution after
@@ -2217,14 +2185,9 @@ _gst_nvmsg_send (OOP receiver,
   /* Re-enable the previously executing process *now*, because a
      primitive might expect the current stack pointer to be that
      of the process that was executing.  */
-  if (reentrancy_jmp_buf && !--reentrancy_jmp_buf->suspended)
+  if (reentrancy_jmp_buf && !--reentrancy_jmp_buf->suspended
+      && !is_process_terminating (reentrancy_jmp_buf->processOOP))
     {
-      if (is_process_terminating (reentrancy_jmp_buf->processOOP))
- {
-  _gst_errorf ("Process terminated during call-out, VM confused!\n");
-  abort ();
- }
-
       resume_process (reentrancy_jmp_buf->processOOP, true);
       if (!IS_NIL (switch_to_process))
         change_process_context (switch_to_process);
@@ -2430,80 +2393,31 @@ _gst_restore_object_pointers (void)
   SET_EXCEPT_FLAG (true); /* force to import registers */
 }
 
-void
-_gst_init_signals (void)
+static RETSIGTYPE
+interrupt_on_signal (int sig)
 {
-  if (!_gst_make_core_file)
+  if (reentrancy_jmp_buf)
+    stop_execution ();
+  else
     {
-#ifdef ENABLE_JIT_TRANSLATION
-      _gst_set_signal_handler (SIGILL, interrupt_handler);
-#endif
-      _gst_set_signal_handler (SIGABRT, interrupt_handler);
+      _gst_set_signal_handler (sig, SIG_DFL);
+      raise (sig);
     }
-  _gst_set_signal_handler (SIGTERM, interrupt_handler);
-  _gst_set_signal_handler (SIGINT, interrupt_handler);
-  _gst_set_signal_handler (SIGFPE, interrupt_handler);
-  _gst_set_signal_handler (SIGUSR1, interrupt_handler);
-}
-
-
-void
-stop_executing (const char *msg)
-{
-  _gst_abort_execution = msg;
-  SET_EXCEPT_FLAG (true);
-  if (reentrancy_jmp_buf)
-    longjmp (reentrancy_jmp_buf->jmpBuf, 1); /* throw out from C
-   code */
 }
 
-
-RETSIGTYPE
-interrupt_handler (int sig)
+static void
+backtrace_on_signal_1 (mst_Boolean is_serious_error, mst_Boolean c_backtrace)
 {
-  mst_Boolean is_serious_error = true;
-  mst_Boolean in_c_code = !in_interpreter || !ip || _gst_gc_running;
-
-  switch (sig)
-    {
-    case SIGTERM:
-      is_serious_error = false;
-      break;
-
-    case SIGUSR1:
-      is_serious_error = false;
-      _gst_set_signal_handler (sig, interrupt_handler);
-      break;
-
-    case SIGFPE:
-      _gst_set_signal_handler (sig, interrupt_handler);
-      return;
-
-    case SIGINT:
-      is_serious_error = false;
-      if (!_gst_non_interactive && in_interpreter)
- {
-  _gst_set_signal_handler (sig, interrupt_handler);
-  stop_executing ("userInterrupt");
-  return;
- }
-      break;
-
-    default:
-      break;
-    }
+  static int reentering = -1;
 
-  if (sig != SIGUSR1)
-    _gst_errorf ("%s", strsignal (sig));
+  /* Avoid recursive signals */
+  reentering++;
 
-  if (!in_c_code)
-    {
-      /* Avoid recursive signals */
-      mst_Boolean save_in_interpreter = in_interpreter;
-      in_interpreter = false;
-      _gst_show_backtrace ();
-      in_interpreter = save_in_interpreter;
-    }
+  if ((reentrancy_jmp_buf && reentrancy_jmp_buf->interpreter)
+      && !reentering
+      && ip
+      && !_gst_gc_running)
+    _gst_show_backtrace ();
   else
     {
       if (is_serious_error)
@@ -2512,8 +2426,7 @@ interrupt_handler (int sig)
 #ifdef HAVE_EXECINFO_H
       /* Don't print a backtrace, for example, if exiting during a
  compilation.  */
-      if ((_gst_verbosity == 3 && (ip || _gst_gc_running))
-  || is_serious_error || sig == SIGUSR1)
+      if (c_backtrace && !reentering)
  {
           PTR array[11];
           size_t size = backtrace (array, 11);
@@ -2522,21 +2435,43 @@ interrupt_handler (int sig)
 #endif
     }
 
-  switch (sig)
-    {
-    case SIGUSR1:
-      return;
+  reentering--;
+}
 
-    case SIGTERM:
-    case SIGINT:
-      exit (0);
+static RETSIGTYPE
+backtrace_on_signal (int sig)
+{
+  _gst_errorf ("%s", strsignal (sig));
+  _gst_set_signal_handler (sig, backtrace_on_signal);
+  backtrace_on_signal_1 (sig != SIGTERM, sig != SIGTERM);
+  _gst_set_signal_handler (sig, SIG_DFL);
+  raise (sig);
+}
 
-    default:
-      _gst_set_signal_handler (sig, SIG_DFL);
-      raise (sig);
+static RETSIGTYPE
+user_backtrace_on_signal (int sig)
+{
+  _gst_set_signal_handler (sig, user_backtrace_on_signal);
+  backtrace_on_signal_1 (false, true);
+}
+
+void
+_gst_init_signals (void)
+{
+  if (!_gst_make_core_file)
+    {
+#ifdef ENABLE_JIT_TRANSLATION
+      _gst_set_signal_handler (SIGILL, backtrace_on_signal);
+#endif
+      _gst_set_signal_handler (SIGABRT, backtrace_on_signal);
     }
+  _gst_set_signal_handler (SIGTERM, backtrace_on_signal);
+  _gst_set_signal_handler (SIGINT, interrupt_on_signal);
+  _gst_set_signal_handler (SIGFPE, SIG_IGN);
+  _gst_set_signal_handler (SIGUSR1, user_backtrace_on_signal);
 }
 
+
 void
 _gst_show_backtrace (void)
 {
@@ -2683,10 +2618,55 @@ _gst_set_primitive_attributes (int primitive, prim_table_entry *pte)
 }
 
 void
+push_jmp_buf (interp_jmp_buf *jb, int for_interpreter, OOP processOOP)
+{
+  jb->next = reentrancy_jmp_buf;
+  jb->processOOP = processOOP;
+  jb->suspended = 0;
+  jb->interpreter = for_interpreter;
+  jb->interrupted = false;
+  _gst_register_oop (processOOP);
+  reentrancy_jmp_buf = jb;
+}
+
+mst_Boolean
+pop_jmp_buf (void)
+{
+  interp_jmp_buf *jb = reentrancy_jmp_buf;
+  reentrancy_jmp_buf = jb->next;
+
+  if (jb->interpreter && !is_process_terminating (jb->processOOP))
+    _gst_terminate_process (jb->processOOP);
+    
+  _gst_unregister_oop (jb->processOOP);
+  return jb->interrupted && reentrancy_jmp_buf;
+}
+
+void
+stop_execution (void)
+{
+  reentrancy_jmp_buf->interrupted = true;
+
+  if (reentrancy_jmp_buf->interpreter
+      && !is_process_terminating (reentrancy_jmp_buf->processOOP))
+    {
+      _gst_abort_execution = "userInterrupt";
+      SET_EXCEPT_FLAG (true);
+      if (get_active_process () != reentrancy_jmp_buf->processOOP)
+ resume_process (reentrancy_jmp_buf->processOOP, true);
+    }
+  else
+    longjmp (reentrancy_jmp_buf->jmpBuf, 1);
+}
+
+mst_Boolean
 parse_stream_with_protection (mst_Boolean method)
 {
-  interp_jmp_buf localJmpBuf;
+  interp_jmp_buf jb;
 
-  PROTECT_CURRENT_PROCESS_WITH (&localJmpBuf)
+  push_jmp_buf (&jb, false, get_active_process ());
+  if (setjmp (jb.jmpBuf) == 0)
     _gst_parse_stream (method);
+
+  return pop_jmp_buf ();
 }
diff --git a/libgst/prims.def b/libgst/prims.def
index 796026a..b456e34 100644
--- a/libgst/prims.def
+++ b/libgst/prims.def
@@ -5036,6 +5036,7 @@ primitive VMpr_Behavior_primCompile [succeed]
 {
   OOP oop1;
   OOP oop2;
+  mst_Boolean interrupted;
   _gst_primitives_executed++;
 
   oop2 = POP_OOP ();
@@ -5047,9 +5048,13 @@ primitive VMpr_Behavior_primCompile [succeed]
 
   _gst_set_compilation_class (oop1);
   _gst_set_compilation_category (_gst_string_new ("still unclassified"));
-  parse_stream_with_protection (true);
+  interrupted = parse_stream_with_protection (true);
   _gst_pop_stream (true);
   PUSH_OOP (_gst_latest_compiled_method);
+
+  if (interrupted)
+    stop_execution ();
+
   PRIM_SUCCEEDED;
 }
 
@@ -5067,6 +5072,7 @@ primitive VMpr_Behavior_primCompileIfError [fail,succeed,reload_ip]
   if (IS_CLASS (oop3, _gst_block_closure_class))
     {
       mst_Boolean oldReportErrors = _gst_report_errors;
+      mst_Boolean interrupted;
 
       if (oldReportErrors)
  {
@@ -5081,12 +5087,17 @@ primitive VMpr_Behavior_primCompileIfError [fail,succeed,reload_ip]
 
       _gst_set_compilation_class (oop1);
       _gst_set_compilation_category (_gst_string_new ("still unclassified"));
-      parse_stream_with_protection (true);
+      interrupted = parse_stream_with_protection (true);
       _gst_pop_stream (true);
+      _gst_report_errors = oldReportErrors;
+      PUSH_OOP (_gst_latest_compiled_method);
 
-      if (_gst_first_error_str != NULL)
+      if (interrupted)
+        stop_execution ();
+
+      else if (_gst_first_error_str != NULL)
  {
-  PUSH_OOP (oop3); /* block context */
+  SET_STACKTOP (oop3); /* block context */
   if (_gst_first_error_file != NULL)
     {
       PUSH_OOP (_gst_string_new (_gst_first_error_file));
@@ -5105,11 +5116,7 @@ primitive VMpr_Behavior_primCompileIfError [fail,succeed,reload_ip]
   else
     PRIM_SUCCEEDED_RELOAD_IP;
  }
-      else
- {
-  _gst_report_errors = oldReportErrors;
-  PUSH_OOP (_gst_latest_compiled_method);
- }
+
       PRIM_SUCCEEDED;
     }
   UNPOP (3);
@@ -5162,8 +5169,7 @@ primitive VMpr_ObjectMemory_snapshot [succeed,fail]
   oop2 = POP_OOP ();
   if (IS_CLASS (oop2, _gst_string_class))
     {
-      interp_jmp_buf localJmpBuf;
-      mst_Boolean success = false;
+      mst_Boolean success;
       fileName = _gst_to_cstring (oop2);
       errno = 0;
 
@@ -5171,9 +5177,7 @@ primitive VMpr_ObjectMemory_snapshot [succeed,fail]
  the save, the stack will be in this state. See below. */
       SET_STACKTOP (_gst_true_oop);
 
-      PROTECT_CURRENT_PROCESS_WITH (&localJmpBuf)
- success = _gst_save_to_file (fileName);
-      
+      success = _gst_save_to_file (fileName);
       xfree (fileName);
       if (success)
  {
@@ -5232,17 +5236,19 @@ primitive VMpr_Stream_fileInLine [succeed,fail]
       && (IS_NIL (oop3)
   || (IS_CLASS (oop3, _gst_string_class) && IS_INT (oop4))))
     {
-      intptr_t arg1;
-      intptr_t arg4;
-      arg1 = TO_INT (oop1);
-      arg4 = TO_INT (oop4);
+      mst_Boolean interrupted;
+      intptr_t arg1 = TO_INT (oop1);
+      intptr_t arg4 = TO_INT (oop4);
 
       _gst_push_stream_oop (streamOOP);
       _gst_set_stream_info (arg1, oop2, oop3, arg4);
       old = _gst_set_undeclared (UNDECLARED_GLOBALS);
-      parse_stream_with_protection (false);
+      interrupted = parse_stream_with_protection (false);
       _gst_set_undeclared (old);
       _gst_pop_stream (false);
+      if (interrupted)
+ stop_execution ();
+
       PRIM_SUCCEEDED;
     }
 
@@ -5771,10 +5777,10 @@ primitive VMpr_FileDescriptor_socketOp [succeed,fail]
 
 primitive VMpr_CFuncDescriptor_asyncCall [succeed,fail]
 {
-  volatile OOP result = NULL;
+  OOP resultOOP;
   volatile gst_method_context context;
   OOP contextOOP, cFuncOOP, receiverOOP;
-  interp_jmp_buf localJmpBuf;
+  interp_jmp_buf jb;
 
   _gst_primitives_executed++;
 
@@ -5792,11 +5798,20 @@ primitive VMpr_CFuncDescriptor_asyncCall [succeed,fail]
     }
 
   cFuncOOP = STACKTOP ();
-  PROTECT_FROM_INTERRUPT_WITH (&localJmpBuf)
-    result = _gst_invoke_croutine (cFuncOOP, receiverOOP,
-                                   context->contextStack);
+  push_jmp_buf (&jb, false, _gst_nil_oop);
+  if (setjmp (jb.jmpBuf) == 0)
+    resultOOP = _gst_invoke_croutine (cFuncOOP, receiverOOP,
+   context->contextStack);
+  else
+    resultOOP = NULL;
+
+  if (pop_jmp_buf ())
+    {
+      stop_execution ();
+      PRIM_SUCCEEDED;
+    }
 
-  if (result)
+  else if (resultOOP)
     {
       SET_EXCEPT_FLAG (true);
       PRIM_SUCCEEDED;
@@ -5809,15 +5824,15 @@ primitive VMpr_CFuncDescriptor_asyncCall [succeed,fail]
 
 primitive VMpr_CFuncDescriptor_call [succeed,fail]
 {
-  volatile OOP result = NULL; /* initialize to please GCC */
   volatile gst_method_context context;
-  gst_object resultObj;
-  OOP receiverOOP, contextOOP, resultOOP, cFuncOOP;
-  interp_jmp_buf localJmpBuf;
+  gst_object resultHolderObj;
+  OOP receiverOOP, contextOOP, cFuncOOP, resultOOP;
+  volatile OOP resultHolderOOP;
+  interp_jmp_buf jb;
 
   _gst_primitives_executed++;
 
-  resultOOP = POP_OOP ();
+  resultHolderOOP = POP_OOP ();
   if (numArgs == 2)
     {
       contextOOP = POP_OOP ();
@@ -5835,18 +5850,27 @@ primitive VMpr_CFuncDescriptor_call [succeed,fail]
 
   /* Make the result reachable, and also push it before the
      active process can change.  */
-  PUSH_OOP (resultOOP);
+  PUSH_OOP (resultHolderOOP);
 
-  PROTECT_CURRENT_PROCESS_WITH (&localJmpBuf)
-    result = _gst_invoke_croutine (cFuncOOP, receiverOOP,
-   context->contextStack);
+  push_jmp_buf (&jb, false, get_active_process ());
+  if (setjmp (jb.jmpBuf) == 0)
+    resultOOP = _gst_invoke_croutine (cFuncOOP, receiverOOP,
+      context->contextStack);
+  else
+    resultOOP = NULL;
+
+  if (pop_jmp_buf ())
+    {
+      stop_execution ();
+      PRIM_SUCCEEDED;
+    }
 
-  if (result)
+  else if (resultOOP)
     {
-      if (!IS_NIL (resultOOP))
+      if (!IS_NIL (resultHolderOOP))
  {
-          resultObj = OOP_TO_OBJ (resultOOP);
-          resultObj->data[0] = result;
+          resultHolderObj = OOP_TO_OBJ (resultHolderOOP);
+          resultHolderObj->data[0] = resultOOP;
  }
       SET_EXCEPT_FLAG (true);
       PRIM_SUCCEEDED;
@@ -5857,7 +5881,7 @@ primitive VMpr_CFuncDescriptor_call [succeed,fail]
   PUSH_OOP (cFuncOOP);
   if (numArgs == 2)
     PUSH_OOP (contextOOP);
-  PUSH_OOP (resultOOP);
+  PUSH_OOP (resultHolderOOP);
   PRIM_FAILED;
 }
 

_______________________________________________
help-smalltalk mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/help-smalltalk