[Vm-dev] [OpenSmalltalk/opensmalltalk-vm] 557fae: CogVm source as per VMMaker.oscog-eem.3229

Eliot Miranda noreply at github.com
Sun Jul 31 00:26:57 UTC 2022


  Branch: refs/heads/Cog
  Home:   https://github.com/OpenSmalltalk/opensmalltalk-vm
  Commit: 557faeee2089a2dc4cbb8ecc4a82b4fa45b2aab7
      https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/557faeee2089a2dc4cbb8ecc4a82b4fa45b2aab7
  Author: Eliot Miranda <eliot.miranda at gmail.com>
  Date:   2022-07-30 (Sat, 30 Jul 2022)

  Changed paths:
    M src/plugins/AsynchFilePlugin/AsynchFilePlugin.c
    M src/plugins/B2DPlugin/B2DPlugin.c
    M src/plugins/B3DAcceleratorPlugin/B3DAcceleratorPlugin.c
    M src/plugins/ClipboardExtendedPlugin/ClipboardExtendedPlugin.c
    M src/plugins/CroquetPlugin/CroquetPlugin.c
    M src/plugins/FileCopyPlugin/FileCopyPlugin.c
    M src/plugins/HostWindowPlugin/HostWindowPlugin.c
    M src/plugins/InternetConfigPlugin/InternetConfigPlugin.c
    M src/plugins/JPEGReadWriter2Plugin/JPEGReadWriter2Plugin.c
    M src/plugins/Klatt/Klatt.c
    M src/plugins/MIDIPlugin/MIDIPlugin.c
    M src/plugins/MacMenubarPlugin/MacMenubarPlugin.c
    M src/plugins/MiscPrimitivePlugin/MiscPrimitivePlugin.c
    M src/plugins/Mpeg3Plugin/Mpeg3Plugin.c
    M src/plugins/ScratchPlugin/ScratchPlugin.c
    M src/plugins/SerialPlugin/SerialPlugin.c
    M src/plugins/SocketPlugin/SocketPlugin.c
    M src/plugins/SoundPlugin/SoundPlugin.c
    M src/plugins/SqueakFFIPrims/ARM32FFIPlugin.c
    M src/plugins/SqueakFFIPrims/ARM64AppleFFIPlugin.c
    M src/plugins/SqueakFFIPrims/ARM64FFIPlugin.c
    M src/plugins/SqueakFFIPrims/IA32FFIPlugin.c
    M src/plugins/SqueakFFIPrims/RiscV64FFIPlugin.c
    M src/plugins/SqueakFFIPrims/X64SysVFFIPlugin.c
    M src/plugins/SqueakFFIPrims/X64Win64FFIPlugin.c
    M src/plugins/Win32OSProcessPlugin/Win32OSProcessPlugin.c

  Log Message:
  -----------
  CogVm source as per VMMaker.oscog-eem.3229

Slang:
Improve inferTypesForImplicitlyTypedVariablesIn:, reducing the special casing
and simply deferring to each kind of parse node to determine its own type.
Hence allow typing of TSwitchStmtNode, especially when some cases return.
This allows
	var := expr caseOf: { [v1] -> ['a string].  [v2] -> ['b string] }
				otherwise: [^interpreterProxy primitiveFailFor: PrimErrNoMatch].
to type correctly var as char *.

Hence don't prepend assignments to TSwitchStmtNode cases which return.

Hence extract the type merging in CCodeGenerator>>#mergeTypeOf:in:with:method:
into CCodeGenerator>>#mergeType:with:.




More information about the Vm-dev mailing list