Size of changes file

Tim Rowledge rowledge at interval.com
Thu Mar 4 21:22:52 UTC 1999


On Thu 04 Mar, Chris Reuter wrote:
> Howzabout we[1]:
> 
> 	  1) Implement an abstract class MethodSource whose
>              subinstances implement methods #sourceString, which gets
>              the source from wherever it's stored, be it file, CVS
>              repository, web site, ROM, etc and #setSource: which
> 	     stores it at said location.
>            
> 	  2) Modify CompiledMethod to keep method source in an
>              ordinary ST instance variable (i.e. reference).  (IIRC,
>              this doesn't change the size of the object since it
>              already uses 32 bits to store the index.)
> 
> 	  3) Modify CompiledMethod's source-fetching code to check the
>              method source object and if it's an integer, get it from
>              the usual files in the usual way.  If it's a
>              MethodSource subinstance, send it #sourceString.
Pretty much already done - look at my new CompiledMethod stuff.
	CM's are no longer special magic objects
	source pointers can (currently) be
		SmallInt, which converts to a RemoteString
		nil, which converts to a MethodDecompiler
		CompressedString, which converts to an AnnotatedMethodDecompiler
The latter two handle the case of no sources file by either just decompiling or
decompiling with temp names kept in CompressedStrings. Obvious extensions
include allowing LPIs to extend the size of the possible files, URLs to allow
for a web server, database queries to get source from Oracle/Sybase/DB2 and
probably many others.
You can download the NCM stuff from my website, got to
http://sumeru.stanford.EDU/tim/pooters/squeak.html and look for 'New
CompiledMethod format image system' halfway down the page.

tim

-- 
Useful random insult:- Ready to check in at the HaHa Hilton.
Tim Rowledge:  rowledge at interval.com (w)  +1 (650) 842-6110 (w)
 tim at sumeru.stanford.edu (h)  <http://sumeru.stanford.edu/tim>





More information about the Squeak-dev mailing list