This is the mail archive of the kawa@sourceware.org mailing list for the Kawa project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]