This is the mail archive of the
kawa@sourceware.org
mailing list for the Kawa project.
Sharing in Kawa
- From: Shachar Rubinstein <rshachar at yahoo dot com>
- To: kawa at sourceware dot org
- Date: Wed, 30 Aug 2006 09:06:46 -0700 (PDT)
- Subject: Sharing in Kawa
Soot
The ArrayNumberer numbers all objects used by Soot to
describe the classes it reads and uses. These objects
are also held by their owning objects, therefore
creating the big number of cutpoints that can be seen.
For example SootClass has an ArrayList of its methods,
and each method is a numbered SootMethod.
The array in ArrayNumberer is used to enable retrieval
of object using a number only
SootClass also holds a hash table (HashChain) of
fields and interfaces A SootField points to a
SootClass, which points to all the methods etc, which
are already cutpoints.
Kawa
Literal ? From the static literal table in LitTable
What about the rest?
-
Gnu.expr ? Expression ? For each Scheme expression.
Compilation is created for each expression.
Environment? Has maps
Kawa.standard.Scheme ? Defines the Scheme environment.
But it is fixed.
Kawa.repl ? main!
CodeAttr ? Is the final code?
Method? AttrContainer? ClassType holds a list of
methods
LitTable ? has a static Literal table
IntNum ? Has a static IntNum array
Q2Read creates a list with PairWithPosition, which
inherits from Pair, which is a list node (car,cdr)
Q2ReaderParens calls readCommand in Q2Read
ReaderDispatch.read
LispReader.readValues
LispReader.readObject
Kawa.repl with ?C calls CompileFile.compile_to_files
The Scheme language is registered as the default
language
Scheme uses ScmRead, which uses LispReader
Translator scanForm pushes read objects to a Stack
LispLanguage.parse creates a Translator, which extends
Compilation
In CompileFile
First we ?read?
Then we compileToFiles
Hi,
I?m a Master?s student conducting a research about
sharing in the heap. Kawa is one of my benchmarks and
I would like to ask a question, if it is possible.
I?m looking at a part of the heap reachable from a
method?s formal parameters, including the this
pointer, (local heap) and searching for objects who
are shared from outside the local heap (cutpoints For
exact definitions please check out N. Rinetzky, J.
Bauer, T. Reps, M. Sagiv, and R. Wilhelm. A semantics
for procedure local heaps and its abstractions). The
purpose is to find erroneous sharing.
Running Kawa to compile the test.scm example program
resulted in many repeating cutpoints. After looking at
the source I?ve found out that ?Literal?s are shared
by the LitTable.staticTable and ?IntNum?s are shared
by IntNum. smallFixNums, but there are many more
(appearing in the list at the end). I?m not sure why,
as they are all reachable from gnu.expr.Compilation.
Who else might reference these objects when working on
them through gnu.expr.Compilation?
Thank you very much for your time,
Shachar Rubinstein
MSc candidate,
School of Computer Science,
Exact Sciences Faculty,
Tel-Aviv University,
Israel
The numbers appearing in the list are the maximum
number of cutpoints which appeared for the specified
class in gnu.expr.Compilation.getCode().
total 2472
gnu/expr/ Literal 1110
gnu/lists/ PairWithPosition 543
gnu/lists/ FString 293
gnu/bytecode/ ClassType 201
gnu/math/ IntNum 119
gnu/bytecode/ Field 90
gnu/expr/ LambdaExp 61
gnu/lists/ FVector 33
gnu/expr/ Declaration 33
gnu/text/ Char 21
gnu/mapping/ Symbol 20
gnu/bytecode/ Label 17
gnu/bytecode/ PrimType 9
gnu/bytecode/ Method 8
gnu/bytecode/ ArrayType 7
gnu/mapping/ SharedLocation 4
gnu/math/ CComplex 4
gnu/kawa/lispexpr/ LangPrimType 4
gnu/bytecode/ [Type 2
gnu/text/ PrettyWriter 2
gnu/mapping/ Namespace 2
gnu/expr/ Keyword 2
gnu/math/ DComplex 2
gnu/expr/ ApplyExp 1
kawa/lib/ syntax 1
gnu/expr/ QuoteExp 1
kawa/lang/ SyntaxRules 1
gnu/text/ SourceMessages 1
kawa/lang/ [SyntaxRule 1
gnu/expr/ ModuleExp 1
gnu/bytecode/ Variable 1
kawa/lang/ SyntaxPattern 1
gnu/lists/ LList 1
kawa/standard/ Scheme 1
gnu/mapping/ InheritingEnvironment 1
gnu/expr/ [Expression 1
gnu/expr/ Undefined 1
kawa/lang/ PatternScope 1
gnu/mapping/ Values 1
kawa/lang/ SyntaxRule 1
gnu/expr/ PrimProcedure 1
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com