[Vm-dev] VM Maker: VMMaker.oscog-eem.175.mcz
commits at source.squeak.org
commits at source.squeak.org
Tue Jun 26 20:05:12 UTC 2012
Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.175.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.175
Author: eem
Time: 26 June 2012, 1:02:32.636 pm
UUID: a4adf9bf-b651-46c9-babd-bcc27b62d599
Ancestors: VMMaker.oscog-eem.174
Warn about api methods being removed.
Move stringForCString: up to StackInterpreter.
=============== Diff against VMMaker.oscog-eem.174 ===============
Item was changed:
----- Method: CCodeGenerator>>reportShouldNotBeRemoved:varList: (in category 'inlining') -----
reportShouldNotBeRemoved: removed varList: varList
"Report whether any of the removed methods are still used."
| varListAsStrings shouldNotBeRemoved |
varListAsStrings := varList collect: [ :sym | sym asString ].
shouldNotBeRemoved := Set new.
+ removed do:
+ [:m|
+ m isAPIMethod ifTrue:
+ [shouldNotBeRemoved add: m selector]].
methods do:
[:m|
(m selector = #interpret
or: [removed includes: m selector]) ifFalse:
[m allCalls do:
[:sel|
(removed includesKey: sel) ifTrue:
[shouldNotBeRemoved add: sel]]]].
vmClass additionalSelectorTables do:
[:selectorTable|
selectorTable do:
[:selOrInteger|
selOrInteger isInteger ifFalse:
[(removed includesKey: selOrInteger) ifTrue:
[shouldNotBeRemoved add: selOrInteger]]]].
shouldNotBeRemoved do:
[:sel| | str |
str := String streamContents:
[:strm| | them |
strm
nextPutAll: 'Removed ';
nextPutAll: sel;
nextPutAll: ' because it refers to the local variable'.
them := (removed at: sel) freeVariableReferences asSet intersection: varListAsStrings.
them size > 1 ifTrue:
[strm nextPut: $s.
them := self sortStrings: them].
them do: [:var| strm space; nextPutAll: var].
strm
nextPutAll: ' of interpret.';
cr;
nextPutAll: 'But it is either used outside of interpret or exported!!!!';
cr].
logger ensureCr; show: str.
self inform: str]!
Item was removed:
- ----- Method: CoInterpreter>>stringForCString: (in category 'primitive support') -----
- stringForCString: aCString
- "Answer a new String copied from a null-terminated C string,
- or nil if out of memory.
- Caution: This may invoke the garbage collector."
- <api>
- <var: 'aCString' type: 'const char *'>
- | len newString |
- len := self strlen: aCString.
- newString := objectMemory instantiateClass: objectMemory classString indexableSize: len.
- newString isNil ifFalse:
- [self st: (self arrayValueOf: newString)
- rn: aCString
- cpy: len]. "(char *)strncpy()"
- ^newString!
Item was added:
+ ----- Method: StackInterpreter>>stringForCString: (in category 'primitive support') -----
+ stringForCString: aCString
+ "Answer a new String copied from a null-terminated C string,
+ or nil if out of memory.
+ Caution: This may invoke the garbage collector."
+ <api>
+ <var: 'aCString' type: 'const char *'>
+ | len newString |
+ len := self strlen: aCString.
+ newString := objectMemory instantiateClass: objectMemory classString indexableSize: len.
+ newString isNil ifFalse:
+ [self st: (self arrayValueOf: newString)
+ rn: aCString
+ cpy: len]. "(char *)strncpy()"
+ ^newString!
More information about the Vm-dev
mailing list