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

commits at source.squeak.org commits at source.squeak.org
Tue Aug 2 19:07:38 UTC 2022


Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.3241.mcz

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

Name: VMMaker.oscog-eem.3241
Author: eem
Time: 2 August 2022, 12:07:24.643254 pm
UUID: 5c816837-269e-45e8-bc95-008f9dc43ae7
Ancestors: VMMaker.oscog-eem.3240

Simplify maintaining the list of processor and os specific names defined at compile time by considering any name beginning with an underscore ad defined at compile time.

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

Item was changed:
  ----- Method: VMBasicConstants class>>defineAtCompileTime: (in category 'C translation') -----
  defineAtCompileTime: anObject
  	^anObject isSymbol
+ 	 and: ["("anObject first == $_ "a host of processor, compiler, and OS-specific names"
+ 		or: [self nonUnderscoreNamesDefinedAtCompileTime includes: anObject]")
- 	 and: ["("self namesDefinedAtCompileTime includes: anObject")
  			ifTrue: [compileTimeQueries add: anObject. true]
  			ifFalse: [translationTimeQueries add: anObject. false]"]
  
  	"compileTimeQueries := Set new.
  	translationTimeQueries := Set new"
  	"self class
  		removeInstVarName: 'compileTimeQueries';
  		removeInstVarName: 'translationTimeQueries'"!

Item was removed:
- ----- Method: VMBasicConstants class>>namesDefinedAtCompileTime (in category 'C translation') -----
- namesDefinedAtCompileTime
- 	"Answer the set of names for variables that should be defined at compile time.
- 	 Some of these get default values during simulation, and hence get defaulted in
- 	 the various initializeMiscConstants methods.  But that they have values should
- 	 /not/ cause the code generator to do dead code elimination based on their
- 	 default values.  In particular, methods marked with <option: ANameDefinedAtCompileTime>
- 	 will be emitted within #if defined(ANameDefinedAtCompileTime)...#endif.
- 
- 	And of course this is backwards.  We'd like to define names that are defined at translation time.
- 	But doing so would entail defining (or referencing) hundreds of class and pool variables.  This way
- 	is marginally more manageable."
- 	^#(VMBIGENDIAN
- 		IMMUTABILITY
- 		STACKVM COGVM COGMTVM SPURVM
- 		PharoVM								"Pharo vs Squeak"
- 		TerfVM VM_TICKER						"Terf vs Squeak & Qwaq/Teleplace/Terf high-priority thread support"
- 		EnforceAccessControl					"Newspeak"
- 		CheckRememberedInTrampoline		"IMMUTABILITY"
- 		BIT_IDENTICAL_FLOATING_POINT PLATFORM_SPECIFIC_FLOATING_POINT	"Alternatives for using fdlibm for floating-point"
- 		ITIMER_HEARTBEAT						"older linux's woultn't allow a higher priority thread, hence no threaded heartbeat."
- 		TestingPrimitives
- 		OBSOLETE_ALIEN_PRIMITIVES			"Ancient crap in the IA32ABI plugin"
- 		LLDB									"As of lldb-370.0.42 Swift-3.1, passing function parameters to printOopsSuchThat fails with Internal error [IRForTarget]: Couldn't rewrite one of the arguments of a function call.  Turning off link time optimization with -fno-lto has no effect.  hence we define some debugging functions as being <option: LLDB>"
- 		LRPCheck								"Optional checking for long running primitives"
- 
- 		"ThreadedFFIPlugin related"
- 		ALLOCA_LIES_SO_SETSP_BEFORE_CALL PLATFORM_API_USES_CALLEE_POPS_CONVENTION SQUEAK_BUILTIN_PLUGIN STACK_ALIGN_BYTES
- 
- 		"processor related"
- 		__ARM_ARCH__ __arm__ __arm32__ ARM32
- 		__arm64__ __arm64 __aarch64__ ARM64
- 		__mips__ __mips
- 		__powerpc __powerpc__ __powerpc64__ __POWERPC__
- 		__ppc__ __ppc64__ __PPC__ __PPC64__
- 		__riscv__ __riscv64__ __riscv __riscv64
- 		__sparc__ __sparc __sparc_v8__ __sparc_v9__ __sparcv8 __sparcv9
- 		_M_I386 _X86_ i386 i486 i586 i686 __i386__ __386__ X86 I386
- 		x86_64 __amd64 __x86_64 __amd64__ __x86_64__ _M_AMD64 _M_X64
- 
- 		"Compiler brand related"
- 		__ACK__
- 		__CC_ARM
- 		__clang__
- 		__GNUC__
- 		_MSC_VER
- 		__ICC
- 		__SUNPRO_C
- 		
- 		"os related"
- 		ACORN
- 		_AIX
- 		__ANDROID__
- 		__APPLE__
- 		__BEOS__
- 		EPLAN9
- 		__FreeBSD__ __NetBSD__ __OpenBSD__
- 		__linux__
- 		__MACH__
- 		__MINGW32__
- 		__osf__
- 		__unix__ __unix UNIX
- 		WIN32 _WIN32 _WIN32_WCE
- 		WIN64 _WIN64 _WIN64_WCE)!

Item was added:
+ ----- Method: VMBasicConstants class>>nonUnderscoreNamesDefinedAtCompileTime (in category 'C translation') -----
+ nonUnderscoreNamesDefinedAtCompileTime
+ 	"Answer the set of names for variables that should be defined at compile time
+ 	 (excepting those that begin with underscore, which we assume are defined at compile time).
+ 	 Some of these get default values during simulation, and hence get defaulted in
+ 	 the various initializeMiscConstants methods.  But that they have values should
+ 	 /not/ cause the code generator to do dead code elimination based on their
+ 	 default values.  In particular, methods marked with <option: ANameDefinedAtCompileTime>
+ 	 will be emitted within #if defined(ANameDefinedAtCompileTime)...#endif.
+ 
+ 	And of course this is backwards.  We'd like to define names that are defined at translation time.
+ 	But doing so would entail defining (or referencing) hundreds of class and pool variables.  This way
+ 	is marginally more manageable."
+ 	^#(VMBIGENDIAN
+ 		IMMUTABILITY
+ 		STACKVM COGVM COGMTVM SPURVM
+ 		PharoVM								"Pharo vs Squeak"
+ 		TerfVM VM_TICKER						"Terf vs Squeak & Qwaq/Teleplace/Terf high-priority thread support"
+ 		EnforceAccessControl					"Newspeak"
+ 		CheckRememberedInTrampoline		"IMMUTABILITY"
+ 		BIT_IDENTICAL_FLOATING_POINT PLATFORM_SPECIFIC_FLOATING_POINT	"Alternatives for using fdlibm for floating-point"
+ 		ITIMER_HEARTBEAT						"older linux's woultn't allow a higher priority thread, hence no threaded heartbeat."
+ 		TestingPrimitives
+ 		OBSOLETE_ALIEN_PRIMITIVES			"Ancient crap in the IA32ABI plugin"
+ 		LLDB									"As of lldb-370.0.42 Swift-3.1, passing function parameters to printOopsSuchThat fails with Internal error [IRForTarget]: Couldn't rewrite one of the arguments of a function call.  Turning off link time optimization with -fno-lto has no effect.  hence we define some debugging functions as being <option: LLDB>"
+ 		LRPCheck								"Optional checking for long running primitives"
+ 
+ 		"Plugin related"
+ 		SQUEAK_BUILTIN_PLUGIN
+ 		"ThreadedFFIPlugin related"
+ 		ALLOCA_LIES_SO_SETSP_BEFORE_CALL PLATFORM_API_USES_CALLEE_POPS_CONVENTION STACK_ALIGN_BYTES
+ 
+ 		"processor related"
+ 		ARM32 ARM64
+ 		i386 i486 i586 i686 X86 I386
+ 		x86_64
+ 
+ 		"os related"
+ 		ACORN
+ 		EPLAN9
+ 		UNIX
+ 		WIN32
+ 		WIN64)!



More information about the Vm-dev mailing list