[M3commit] [modula3/cm3] da17d2: Allow assigning and passing of procedures in prede...

GitHub noreply at github.com
Thu Oct 6 02:15:51 CEST 2016


  Branch: refs/heads/master
  Home:   https://github.com/modula3/cm3
  Commit: da17d27fa86eec7bd2cbf6a21e4c6b75b139c0fc
      https://github.com/modula3/cm3/commit/da17d27fa86eec7bd2cbf6a21e4c6b75b139c0fc
  Author: Rodney Bates <rodney.m.bates at acm.org>
  Date:   2016-10-05 (Wed, 05 Oct 2016)

  Changed paths:
    M m3-libs/m3core/src/word/GenWord.mg
    M m3-sys/m3front/src/builtinAtomic/CompareSwap.mg
    M m3-sys/m3front/src/builtinAtomic/Fence.mg
    M m3-sys/m3front/src/builtinAtomic/FetchAnd.mg
    M m3-sys/m3front/src/builtinAtomic/FetchDec.mg
    M m3-sys/m3front/src/builtinAtomic/FetchInc.mg
    M m3-sys/m3front/src/builtinAtomic/FetchOr.mg
    M m3-sys/m3front/src/builtinAtomic/FetchXor.mg
    M m3-sys/m3front/src/builtinAtomic/IsLockFree.mg
    M m3-sys/m3front/src/builtinAtomic/Load.mg
    M m3-sys/m3front/src/builtinAtomic/Store.mg
    M m3-sys/m3front/src/builtinAtomic/Swap.mg
    M m3-sys/m3front/src/builtinInfo/InfoThisException.m3
    M m3-sys/m3front/src/builtinInfo/InfoThisFile.m3
    M m3-sys/m3front/src/builtinInfo/InfoThisLine.m3
    M m3-sys/m3front/src/builtinInfo/InfoThisPath.m3
    M m3-sys/m3front/src/builtinOps/Abs.m3
    M m3-sys/m3front/src/builtinOps/Adr.m3
    M m3-sys/m3front/src/builtinOps/AdrSize.m3
    M m3-sys/m3front/src/builtinOps/BitSize.m3
    M m3-sys/m3front/src/builtinOps/ByteSize.m3
    M m3-sys/m3front/src/builtinOps/Ceiling.m3
    M m3-sys/m3front/src/builtinOps/Dec.m3
    M m3-sys/m3front/src/builtinOps/Dispose.m3
    M m3-sys/m3front/src/builtinOps/First.m3
    M m3-sys/m3front/src/builtinOps/Floatt.m3
    M m3-sys/m3front/src/builtinOps/Floor.m3
    M m3-sys/m3front/src/builtinOps/Inc.m3
    M m3-sys/m3front/src/builtinOps/IsType.m3
    M m3-sys/m3front/src/builtinOps/Last.m3
    M m3-sys/m3front/src/builtinOps/Loophole.m3
    M m3-sys/m3front/src/builtinOps/Max.m3
    M m3-sys/m3front/src/builtinOps/Min.m3
    M m3-sys/m3front/src/builtinOps/Narrow.m3
    M m3-sys/m3front/src/builtinOps/New.m3
    M m3-sys/m3front/src/builtinOps/Number.m3
    M m3-sys/m3front/src/builtinOps/Ord.m3
    M m3-sys/m3front/src/builtinOps/Round.m3
    M m3-sys/m3front/src/builtinOps/Subarray.m3
    M m3-sys/m3front/src/builtinOps/Trunc.m3
    M m3-sys/m3front/src/builtinOps/Typecode.m3
    M m3-sys/m3front/src/builtinOps/Val.m3
    M m3-sys/m3front/src/builtinWord/And.mg
    M m3-sys/m3front/src/builtinWord/Divide.mg
    M m3-sys/m3front/src/builtinWord/Extract.mg
    M m3-sys/m3front/src/builtinWord/GE.mg
    M m3-sys/m3front/src/builtinWord/GT.mg
    M m3-sys/m3front/src/builtinWord/Insert.mg
    M m3-sys/m3front/src/builtinWord/LE.mg
    M m3-sys/m3front/src/builtinWord/LT.mg
    M m3-sys/m3front/src/builtinWord/Minus.mg
    M m3-sys/m3front/src/builtinWord/Mod.mg
    M m3-sys/m3front/src/builtinWord/Not.mg
    M m3-sys/m3front/src/builtinWord/Or.mg
    M m3-sys/m3front/src/builtinWord/Plus.mg
    M m3-sys/m3front/src/builtinWord/Rotate.mg
    M m3-sys/m3front/src/builtinWord/Shift.mg
    M m3-sys/m3front/src/builtinWord/Times.mg
    M m3-sys/m3front/src/builtinWord/Xor.mg
    M m3-sys/m3front/src/values/Procedure.i3
    M m3-sys/m3front/src/values/Procedure.m3

  Log Message:
  -----------
  Allow assigning and passing of procedures in predefined modules Word and Long.

This compiler fix allows assigning the procedures in predefined modules
Word and Long to a variable or passing to a formal parameter of appropriate
procedure type.  Previously, attempting to do this resulted in a code
generator failure message.

In m3core, there are already libraries Word and Long, whose only
apparent purpose could be to support this, yet the compiler could
not use them.  Add some explanation to the libraries, as this is
confusing.

Also, for those builtin procedures that still cannot be passed or
assigne (e.g. Info.InfoThisLine), give a meaningful compile-time
error message, instead of failing.




More information about the M3commit mailing list