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)!
vm-dev@lists.squeakfoundation.org