[Vm-dev] VM Maker: VMMaker.oscog-eem.2898.mcz

commits at source.squeak.org commits at source.squeak.org
Wed Nov 25 19:36:03 UTC 2020

Eliot Miranda uploaded a new version of VMMaker to project VM Maker:

==================== Summary ====================

Name: VMMaker.oscog-eem.2898
Author: eem
Time: 25 November 2020, 11:35:52.726014 am
UUID: 3d8515f6-7807-4eca-9e5d-9b8f30bca350
Ancestors: VMMaker.oscog-eem.2897

Don't use forceNewFileNamed:.  It is destructive in complex source configurations such as the one used in Terf where we overlay a repository over the opensmalltalk-vm one.

=============== Diff against VMMaker.oscog-eem.2897 ===============

Item was changed:
  ----- Method: CCodeGenerator>>storeCodeOnFile:doInlining:doAssertions: (in category 'public') -----
  storeCodeOnFile: fileName doInlining: inlineFlag doAssertions: assertionFlag
+ 	"Store C code for this code base on the given file.
+ 	 Try and reuse the file if it already exists."
- 	"Store C code for this code base on the given file."
  	| stream |
+ 	stream := VMMaker fileNamed: fileName.
- 	stream := VMMaker forceNewFileNamed: fileName.
  	stream ifNil: [Error signal: 'Could not open C code file: ', fileName].
+ 	stream truncate.
  	self emitCCodeOn: stream doInlining: inlineFlag doAssertions: assertionFlag.
  	stream close!

Item was added:
+ ----- Method: VMMaker class>>fileNamed: (in category 'file utilities') -----
+ fileNamed: aFilename
+ 	"Always output files in unix lf format.
+ 		A single format is friendlier to e.g. external version control systems.
+ 		The Microsoft and old MacOS classic C compilers all accept lf format files."
+ 	^(MultiByteFileStream fileNamed: aFilename)
+ 		lineEndConvention: #lf;
+ 		yourself!

More information about the Vm-dev mailing list