[M3commit] [modula3/cm3] 9343e3: packedVars branch, initial commit.

GitHub noreply at github.com
Wed Aug 8 22:27:45 CEST 2018


  Branch: refs/heads/packedVars
  Home:   https://github.com/modula3/cm3
  Commit: 9343e3f917bc76672f1f9b9efda80e64ac3895ca
      https://github.com/modula3/cm3/commit/9343e3f917bc76672f1f9b9efda80e64ac3895ca
  Author: Rodney Bates <rodney.m.bates at acm.org>
  Date:   2018-08-08 (Wed, 08 Aug 2018)

  Changed paths:
    M m3-sys/m3front/src/builtinAtomic/CompareSwap.mg
    M m3-sys/m3front/src/builtinOps/Dec.m3
    M m3-sys/m3front/src/builtinOps/Inc.m3
    M m3-sys/m3front/src/builtinOps/IsType.m3
    M m3-sys/m3front/src/builtinOps/Narrow.m3
    M m3-sys/m3front/src/builtinOps/New.m3
    M m3-sys/m3front/src/builtinOps/Subarray.m3
    M m3-sys/m3front/src/builtinTypes/EReel.m3
    M m3-sys/m3front/src/builtinTypes/ErrType.m3
    M m3-sys/m3front/src/builtinTypes/Int.m3
    M m3-sys/m3front/src/builtinTypes/LInt.m3
    M m3-sys/m3front/src/builtinTypes/LReel.m3
    M m3-sys/m3front/src/builtinTypes/Reel.m3
    M m3-sys/m3front/src/builtinWord/Extract.mg
    M m3-sys/m3front/src/builtinWord/Insert.mg
    M m3-sys/m3front/src/exprs/AddExpr.m3
    M m3-sys/m3front/src/exprs/ArrayExpr.m3
    M m3-sys/m3front/src/exprs/CastExpr.m3
    M m3-sys/m3front/src/exprs/ConcatExpr.m3
    M m3-sys/m3front/src/exprs/DerefExpr.m3
    M m3-sys/m3front/src/exprs/DivideExpr.m3
    M m3-sys/m3front/src/exprs/EqualExpr.m3
    M m3-sys/m3front/src/exprs/Expr.i3
    M m3-sys/m3front/src/exprs/Expr.m3
    M m3-sys/m3front/src/exprs/ExprParse.m3
    M m3-sys/m3front/src/exprs/ExprRep.i3
    M m3-sys/m3front/src/exprs/MethodExpr.m3
    M m3-sys/m3front/src/exprs/ModExpr.m3
    M m3-sys/m3front/src/exprs/MultiplyExpr.m3
    M m3-sys/m3front/src/exprs/NarrowExpr.m3
    M m3-sys/m3front/src/exprs/QualifyExpr.m3
    M m3-sys/m3front/src/exprs/SetExpr.m3
    M m3-sys/m3front/src/exprs/SubscriptExpr.m3
    M m3-sys/m3front/src/exprs/SubtractExpr.m3
    M m3-sys/m3front/src/exprs/VarExpr.m3
    M m3-sys/m3front/src/misc/CG.i3
    M m3-sys/m3front/src/misc/CG.m3
    M m3-sys/m3front/src/misc/Jmpbufs.m3
    M m3-sys/m3front/src/misc/Marker.m3
    M m3-sys/m3front/src/stmts/AssignStmt.i3
    M m3-sys/m3front/src/stmts/AssignStmt.m3
    M m3-sys/m3front/src/stmts/TryFinStmt.m3
    M m3-sys/m3front/src/stmts/TryStmt.m3
    M m3-sys/m3front/src/stmts/TypeCaseStmt.m3
    M m3-sys/m3front/src/types/ArrayType.i3
    M m3-sys/m3front/src/types/ArrayType.m3
    M m3-sys/m3front/src/types/EnumType.m3
    M m3-sys/m3front/src/types/NamedType.m3
    M m3-sys/m3front/src/types/ObjectType.m3
    M m3-sys/m3front/src/types/OpaqueType.m3
    M m3-sys/m3front/src/types/OpenArrayType.i3
    M m3-sys/m3front/src/types/OpenArrayType.m3
    M m3-sys/m3front/src/types/PackedType.i3
    M m3-sys/m3front/src/types/PackedType.m3
    M m3-sys/m3front/src/types/ProcType.m3
    M m3-sys/m3front/src/types/RecordType.i3
    M m3-sys/m3front/src/types/RecordType.m3
    M m3-sys/m3front/src/types/RefType.m3
    M m3-sys/m3front/src/types/SetType.m3
    M m3-sys/m3front/src/types/SubrangeType.m3
    M m3-sys/m3front/src/types/Type.i3
    M m3-sys/m3front/src/types/Type.m3
    M m3-sys/m3front/src/types/TypeRep.i3
    M m3-sys/m3front/src/types/UserProc.m3
    M m3-sys/m3front/src/values/Constant.m3
    M m3-sys/m3front/src/values/Exceptionz.m3
    M m3-sys/m3front/src/values/Formal.m3
    M m3-sys/m3front/src/values/Module.m3
    M m3-sys/m3front/src/values/Variable.m3
    M m3-sys/m3middle/src/M3CG.i3
    M m3-sys/m3middle/src/M3CG_Check.m3
    M m3-sys/m3middle/src/M3CG_Ops.i3
    M m3-sys/m3middle/src/TWord.i3
    M m3-sys/m3middle/src/TWord.m3
    M m3-sys/m3middle/src/Target.i3
    M m3-sys/m3middle/src/Target.m3

  Log Message:
  -----------
  packedVars branch, initial commit.

A start toward fixing many compiler failures, error detection
failures, limitations on packed fields/elements, etc.

This started with the highly mistaken notion that only a few patches
here and there would be needed.  After months, this is clearly not
so.  It is time to get the many changes already made committed, but
there is more to do, so this is a new branch.

As of this commit, the front group recompiles itself twice and handles
some additional uses of packed types.  Currently, most fetches and stores
work.  A packed scalar field/element is handled if it does not cross a word
boundary, and a packed field/element that is a record or array is
handled if either the entire aggregate lies within one word, or it
is byte-aligned and every packed field/element within follows this rule
recursively.

There is more to do for subarrays, parameters, and constructors, at least.
There are also new regressions in the compiler test suite.  There are
several new test cases, but these are not commited as of now.

The concept of alignment in the front end has had to be expanded into
alignment of a type and alignment of a variable, which are sometimes
different.  Also in CG, an independent alignment system for postponed
computations has had to be expanded into three kinds.



      **NOTE:** This service has been marked for deprecation: https://developer.github.com/changes/2018-04-25-github-services-deprecation/

      Functionality will be removed from GitHub.com on January 31st, 2019.


More information about the M3commit mailing list