[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Help-smalltalk] undeclared bindings; ArrayConstructorNodes
From: |
Stephen Compall |
Subject: |
[Help-smalltalk] undeclared bindings; ArrayConstructorNodes |
Date: |
Fri, 29 Dec 2006 23:06:23 -0600 |
I've been trying to load I18N with Compiler loaded in 2.3.1, using
compiler-cascade.diff from earlier. (This patch works fine, by the
way.)
In STSymbolTable, bindingOf:for: (used for vars with paths) handles
undeclared variables during fileIn as the builtin compiler does, but
lookupPoolsFor: (used for vars without paths) does not. Attached is
gst-lookupPoolsFor-undeclared.diff on compiler/STSymTable.st to handle
this.
Then, I ran into what seemed to be a premature send of
STSymbolTable>>#finish (as #() cannot grow). Test:
st> UndefinedObject compile: 'scTest: aV and: bV | what | what := {aV. bV}.
self strftime: what format: aV readStream on: bV'!
Object: Array new: 0 "<-0x4c5c9288>" error: Invalid index 1: index out of range
SystemExceptions.IndexOutOfRange(Smalltalk.Exception)>>#signal
SystemExceptions.IndexOutOfRange class>>#signalOn:withIndex:
Smalltalk.Array(Smalltalk.Object)>>#checkIndexableBounds:put:
Smalltalk.Array(Smalltalk.Object)>>#at:put:
[] in STInST.STLiteralsTable>>#addLiteral:
RBArrayConstructorNode>>#acceptVisitor: still sends #acceptArrayNode:,
and RBProgramNodeVisitor's implementation of that descends into the
SequenceNode, presumably invoking the aforementioned #finish.
I don't know which way the renaming is going, so I just added
acceptArrayNode: to STCompiler. Then I found that
acceptArrayConstructorNode: was storing in 1,2,3 instead of 0,1,2 for
this little test: 'scTest ^{1. 2. 3}', so I shifted that back. Both are
in gst-arrayCtor.diff on compiler/STCompiler.st.
Now I can load I18N with Compiler!
--
Stephen Compall
http://scompall.nocandysw.com/blog
gst-lookupPoolsFor-undeclared.diff
Description: Text Data
gst-arrayCtor.diff
Description: Text Data
signature.asc
Description: This is a digitally signed message part
- [Help-smalltalk] undeclared bindings; ArrayConstructorNodes,
Stephen Compall <=