[M3commit] [modula3/cm3] 7a17e0: New package llvmbindings, with LLVM.i3 merged and ...

Rodney Bates rodney.m.bates at acm.org
Thu Jun 4 22:03:06 CEST 2015


  Branch: refs/heads/master
  Home:   https://github.com/modula3/cm3
  Commit: 7a17e0f736a04d3996b0da5ed6431b099772293a
      https://github.com/modula3/cm3/commit/7a17e0f736a04d3996b0da5ed6431b099772293a
  Author: Rodney Bates <rodney.m.bates at acm.org>
  Date:   2015-06-04 (Thu, 04 Jun 2015)

  Changed paths:
    A m3-sys/llvmbindings/src/.gitignore
    A m3-sys/llvmbindings/src/LLVM.i3
    A m3-sys/llvmbindings/src/M3Extras.cpp
    A m3-sys/llvmbindings/src/M3Extras.h
    A m3-sys/llvmbindings/src/Makefile
    A m3-sys/llvmbindings/src/README
    A m3-sys/llvmbindings/src/m3makefile

  Log Message:
  -----------
  New package llvmbindings, with LLVM.i3 merged and updated to llvm 3.6.1

This new Modula3 package contains Modula3 bindings to selected things in
llvm that are needed to interface to llvm.  It contains merges of
various versions of LLVM.i3 and supporting code, and is updated
to llvm 3.6.1, at least for compiling.  No testing is done yet.

A procedure binding generally requires code in three files:

1) Modula3 code in a .i3 file, that contains a (usually) zero-thickness
   Module3-to-C binding.  This is just a PROCEDURE signature in
   Modula3 syntax, using types and parameteter modes equivalent to C
   types for parameters and results.

2) C code in a .h file, that contains a prototype for a plain C
   function.  This will be #included by C++ code, but contains 'extern
   "C"' so the C++ compiler will generate unmangled link names for its
   functions.

3) C++ code in a .cpp file, that contains a wrapper function for
   calling a C++ function inside of llvm.  This latter is usually a
   member function of a class, and also often requires type
   conversions to/from llvm's C++-but-not-C types, so the wrapper must
   be in C++.

This package supplies 1) for everything needed.  The llvm project
supplies Core.h/Core.cpp, inside its source tree, which contain 2) and
3) for a set of functions chosen by llvm's developers.  For others,
this package supplies 2) and 3) itself.


  Commit: fbffb1a3d230fec8ca943bb0a9a5c556ea7dbf13
      https://github.com/modula3/cm3/commit/fbffb1a3d230fec8ca943bb0a9a5c556ea7dbf13
  Author: Rodney Bates <rodney.m.bates at acm.org>
  Date:   2015-06-04 (Thu, 04 Jun 2015)

  Changed paths:
    M m3-sys/cminstall/src/config-no-install/NT.common
    M m3-sys/cminstall/src/config-no-install/Unix.common
    M m3-sys/m3cc/gcc-4.5/gcc/tree.h
    M m3-sys/m3cc/gcc-4.6/gcc/tree.h
    M m3-sys/m3cc/gcc-4.7/gcc/tree.h
    M m3-sys/m3cc/gcc-apple/gcc/tree.h
    M m3-sys/m3cc/gcc/gcc/tree.h
    M scripts/pkginfo.txt
    M scripts/python/make-dist.py
    M scripts/python/upgrade.py

  Log Message:
  -----------
  Merge branch 'master' of https://github.com/modula3/cm3


Compare: https://github.com/modula3/cm3/compare/1f5ad3005500...fbffb1a3d230


More information about the M3commit mailing list