[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Lightning] Porting GNU Smalltalk to lightning 2
From: |
Paulo César Pereira de Andrade |
Subject: |
Re: [Lightning] Porting GNU Smalltalk to lightning 2 |
Date: |
Sun, 26 Oct 2014 10:46:32 -0200 |
2014-10-26 9:05 GMT-02:00 Holger Hans Peter Freyther <address@hidden>:
> On Sat, Oct 25, 2014 at 05:07:18PM -0200, Paulo César Pereira de Andrade
> wrote:
>
>> and most important, update to latest scratch-lightning-branch
>> https://github.com/pcpa/smalltalk/commit/5e0e9f4aa148b03f619d8d8378fdcae0a658a250
>
> oh wow. In regard to the inline caches. Maybe you can think of a
> better way to invalidate them. You should invalidate your ICs from
Actually, I enabled it back in
https://github.com/pcpa/smalltalk/commit/c1cac9ab3f6abde6bc53127d4ca07428c77d1b21
I had the jump test reversed... I reversed the logic at some point when
doing some trial&error :(
> _gst_reset_inline_caches as well. _gst_invalidate_method_cache will
> be called from Smalltalk code (e.g. when a new method is added to
> the method dictionary).
I looks quite better now, after this commit
https://github.com/pcpa/smalltalk/commit/6864d42b53bc34ce307a3d953125a985ba13d3d1
that should be what you are talking about. In my first reading of
the code I thought something like in the above commit was not
required. I mean, why does it need to adjust jit translations to
no longer reference translations that are about to be deleted?
If it references them, they are reachable and should not be
deleted... (Maybe the code was rewritten and need a new
translation?)
How do I enabled a build type that calls gc at every possibility?
Some kind of gc debug build? I suspect it is failing some tests in
make check due to the gc "resetting" references to code about to
be deleted. The few now failing tests are passing in the build with
the bundled lightning 1, but I believe it may be due gc called a lot
more frequently.
GC should be being called a lot more frequently due to the way
lightning 2 does translations, where it mmap's a code buffer, so,
there are a lot of "r-x" 4K buffers around, where lightning 1x would
generate as small as 100 bytes buffers (appended to variably sized
method_entry structures).
BTW, it generates so much buffers where the difference is only
one embedded constant, it should be somehow parameterized.
> holger
make check now looks like this:
---%<---
/bin/sh './testsuite'
## -------------------------------- ##
## GNU Smalltalk 3.2.91 test suite. ##
## -------------------------------- ##
Regression tests.
1: arrays.st ok
2: classes.st ok
3: blocks.st ok
4: sets.st ok
5: processes.st ok
6: exceptions.st ok
7: intmath.st ok
8: floatmath.st ok
9: dates.st ok
10: objects.st ok
11: strings.st ok
12: chars.st ok
13: delays.st ok
14: geometry.st ok
15: cobjects.st ok
16: compiler.st ok
17: fileext.st ok
18: mutate.st ok
19: getopt.st ok
20: quit.st ok
21: pools.st ok
22: shape.st ok
23: streams.st ok
24: xlat.st ok
Other simple tests.
25: ackermann.st ok
26: ary3.st ok
27: except.st ok
28: fibo.st ok
29: hash.st ok
30: hash2.st ok
31: heapsort.st ok
32: lists.st ok
33: lists1.st ok
34: lists2.st ok
35: matrix.st ok
36: methcall.st ok
37: nestedloop.st ok
38: objinst.st ok
39: prodcons.st ok
40: random-bench.st ok
41: sieve.st ok
42: strcat.st ok
43: stcompiler.st ok
Basic packages.
44: SUnit ok
45: Parser ok
ANSI compliancy tests.
46: ArrayANSITest FAILED (testsuite.at:82)
47: ArrayFactoryANSITest ok
48: BagANSITest FAILED (testsuite.at:84)
49: BagFactoryANSITest ok
50: BooleanANSITest ok
51: ByteArrayANSITest FAILED (testsuite.at:87)
52: ByteArrayFactoryANSITest ok
53: CharacterANSITest ok
54: CharacterFactoryANSITest ok
55: DateAndTimeANSITest ok
56: DateAndTimeFactoryANSITest ok
57: DictionaryANSITest FAILED (testsuite.at:93)
58: DictionaryFactoryANSITest ok
59: DurationANSITest ok
60: DurationFactoryANSITest ok
61: DyadicValuableANSITest ok
62: ErrorANSITest ok
63: ErrorClassANSITest ok
64: ExceptionANSITest ok
65: ExceptionClassANSITest ok
66: ExceptionSetANSITest ok
67: FailedMessageANSITest ok
68: FileStreamFactoryANSITest ok
69: FloatANSITest FAILED (testsuite.at:105)
70: FloatCharacterizationANSITest ok
71: FractionANSITest ok
72: FractionFactoryANSITest ok
73: IdentityDictionaryANSITest ok
74: IdentityDictionaryFactoryANSITest ok
75: IntegerANSITest FAILED (testsuite.at:111)
76: IntervalANSITest ok
77: IntervalFactoryANSITest ok
78: MessageNotUnderstoodANSITest ok
79: MessageNotUnderstoodSelectorANSITest ok
80: MonadicBlockANSITest ok
81: NilANSITest ok
82: NiladicBlockANSITest ok
83: NotificationANSITest ok
84: NotificationClassANSITest ok
85: ObjectANSITest ok
86: ObjectClassANSITest ok
87: OrderedCollectionANSITest FAILED (testsuite.at:123)
88: OrderedCollectionFactoryANSITest ok
89: ReadFileStreamANSITest ok
90: ReadStreamANSITest ok
91: ReadStreamFactoryANSITest ok
92: ReadWriteStreamANSITest ok
93: ReadWriteStreamFactoryANSITest ok
94: ScaledDecimalANSITest ok
95: SelectorANSITest ok
96: SetANSITest ok
97: SetFactoryANSITest ok
98: SortedCollectionANSITest ok
99: SortedCollectionFactoryANSITest ok
100: StringANSITest ok
101: StringFactoryANSITest ok
102: SymbolANSITest FAILED (testsuite.at:138)
103: TranscriptANSITest ok
104: WarningANSITest ok
105: WarningClassANSITest ok
106: WriteFileStreamANSITest ok
107: WriteStreamANSITest ok
108: WriteStreamFactoryANSITest ok
109: ZeroDivideANSITest ok
110: ZeroDivideFactoryANSITest ok
Other packages.
111: Announcements ok
112: Complex ok
113: Continuations ok
114: DBD-MySQL skipped (testsuite.at:152)
115: DBD-PostgreSQL skipped (testsuite.at:153)
116: DBD-SQLite skipped (testsuite.at:154)
117: DebugTools
---%<---
It hangs in test 117. But it also hangs in the build using the bunlded
"lightning 1". So, it is something to be looked at next..
BTW, how do I start the same environment of a test under gdb?
Thanks,
Paulo
- Re: [Lightning] Porting GNU Smalltalk to lightning 2, (continued)
- Re: [Lightning] Porting GNU Smalltalk to lightning 2, Holger Hans Peter Freyther, 2014/10/24
- Re: [Lightning] Porting GNU Smalltalk to lightning 2, Paulo César Pereira de Andrade, 2014/10/24
- Re: [Lightning] Porting GNU Smalltalk to lightning 2, Paulo César Pereira de Andrade, 2014/10/24
- Re: [Lightning] Porting GNU Smalltalk to lightning 2, Holger Hans Peter Freyther, 2014/10/25
- Re: [Lightning] Porting GNU Smalltalk to lightning 2, Paulo César Pereira de Andrade, 2014/10/25
- Re: [Lightning] Porting GNU Smalltalk to lightning 2, Holger Hans Peter Freyther, 2014/10/25
- Re: [Lightning] Porting GNU Smalltalk to lightning 2, Paulo César Pereira de Andrade, 2014/10/25
- Re: [Lightning] Porting GNU Smalltalk to lightning 2, Holger Hans Peter Freyther, 2014/10/26
- Re: [Lightning] Porting GNU Smalltalk to lightning 2, Holger Hans Peter Freyther, 2014/10/26
- Re: [Lightning] Porting GNU Smalltalk to lightning 2, Holger Hans Peter Freyther, 2014/10/26
- Re: [Lightning] Porting GNU Smalltalk to lightning 2,
Paulo César Pereira de Andrade <=
- Re: [Lightning] Porting GNU Smalltalk to lightning 2, Holger Hans Peter Freyther, 2014/10/26
- Re: [Lightning] Porting GNU Smalltalk to lightning 2, Paulo César Pereira de Andrade, 2014/10/26
- Re: [Lightning] Porting GNU Smalltalk to lightning 2, Holger Hans Peter Freyther, 2014/10/26
- Re: [Lightning] Porting GNU Smalltalk to lightning 2, Paulo César Pereira de Andrade, 2014/10/26
- Re: [Lightning] Porting GNU Smalltalk to lightning 2, Holger Hans Peter Freyther, 2014/10/26
- Re: [Lightning] Porting GNU Smalltalk to lightning 2, Paulo César Pereira de Andrade, 2014/10/26
- Re: [Lightning] Porting GNU Smalltalk to lightning 2, Holger Hans Peter Freyther, 2014/10/26
- Re: [Lightning] Porting GNU Smalltalk to lightning 2, Paulo César Pereira de Andrade, 2014/10/26
- Re: [Lightning] Porting GNU Smalltalk to lightning 2, Paulo César Pereira de Andrade, 2014/10/26
- Re: [Lightning] Porting GNU Smalltalk to lightning 2, Paulo César Pereira de Andrade, 2014/10/26