[M3commit] CVS Update: cm3

Daniel Alejandro Benavides D. dabenavidesd at yahoo.es
Mon Aug 6 19:37:56 CEST 2012


Hi all:
yes, not completely bad ideas, is hard to follow on everything by this time of the world, but trust me IBM worked hard in Modula-3 as in Modula-2, I wouldn't be surprised by other products of Modula-3.
I have read they are working in a big project of a new programming Java-like language called X10, by the expected boost in performance and productivity, it's free and oss, I have met some other Modula- family members, but sometimes, I lack the interest to let you know.
In any case, if you were talking a Modula-3 Interaction Abstract Machine, here it was developed, they worked there also hard:
http://reference.kfupm.edu.sa/content/i/n/interaction_abstract_machines_112015.pdf

As you say, there might be many machines of Modula-3 we don't know, so it would be nice to count all of those implementations and portability of tools.
Thanks in advance


--- El lun, 6/8/12, Dragiša Durić <dragisha at m3w.org> escribió:

De: Dragiša Durić <dragisha at m3w.org>
Asunto: Re: [M3commit] CVS Update: cm3
Para: "Daniel Alejandro Benavides D." <dabenavidesd at yahoo.es>
CC: "Jay" <jay.krell at cornell.edu>, m3commit at elegosoft.com
Fecha: lunes, 6 de agosto, 2012 11:11

This is CV of a guy who implemented Modula-3 to C translator.
Not as a backend to existing compiler, like we can do now. As M3CG is in place and ready for exploitation. When DEC was big and Modula-3 IN, guy implemented a compiler. Tons of compilers implemented every year. For example, there is one great compiler I became aware of only recently - Turbo51. Not a Modula-3, but Wirth family member - Pascal. And target is 8bit CPU with few kilobytes of RAM :).
Maybe we need few additional lists to carry discussions like this one? One where you can put links you google out, for people trying to follow what-we-have-right-now and another where people who like to chit-chat about relevant technologies can meet and share.
On Aug 6, 2012, at 2:26 PM, Daniel Alejandro Benavides D. wrote:
Hi all:
please if this description helps you understand the problem is to communicate with a C C to Modula-3 process:
http://groups.yahoo.com/group/rmiug-jobs/message/54928

Thanks in advance

--- El lun, 6/8/12, Dragiša Durić <dragisha at m3w.org> escribió:

De: Dragiša Durić <dragisha at m3w.org>
Asunto: Re: [M3commit] CVS Update: cm3
Para: "Daniel Alejandro Benavides D." <dabenavidesd at yahoo.es>
CC: "Jay" <jay.krell at cornell.edu>, m3commit at elegosoft.com
Fecha: lunes, 6 de agosto, 2012 02:08

Daniel,
It's very hard to understand you, from time to time :). I am not a Grammar Nazi, but grammar is problem here. Lots of us are not native English
 speakers (it is my fourth language, for example) but we need some (as much as possible) common language to communicate with each other.
Thus said, m3cg is IR -> O, no C there. As far as I know (I may be wrong, of course) there is no C in current compile process anywhere. m3cg is written in C, some libraries are C, but we have no C in compile process. Yet you write about C like it's done thing, not something to be done, just something to make better, more logical, …
Also, I don't get this "m3cg machine" thing. m3cg is a translator, not interpreter or anything like it. There is no machine, just a compile-time process. And that process is not "running in C", it is written in C. It is ad(o|a)pted gcc code. But, being written in C is it's compile-time property and has (more or less) nothing with us using it.
"use IR directly as real IR" - another puzzle. As you mention JIT later,
 you probably mean "IR as bytecode"? If so, then - not every IR is bytecode, and vice versa. Bytecode is more like object code, final product for some (maybe vemulated) CPU.
And so on. If I was an English major (like my son whom I consulted whie reading/writing in this thread) I could have written more extensive piece on grammar aspects here, but I think I got at least most important Modula-3 ones :).
Have a nice time!
On Aug 6, 2012, at 4:37 AM, Daniel Alejandro Benavides D. wrote:
Hi all:

yes, I'm into to do actually getting  some, but meanwhile if you are 
deleting every other type information of C sources, more and more,  
won't we need another representation of Modula-3 code, we would have 
just 3 different compilers 1)

 M3←↓→ IR , IR ←↓→ O , C←↓→ O but better M3 ← ↓ → C , C ←↓→ O ,  S ←↓→O 
    M3cg                C               S                                  C                 S                  O



Question is if M3cg machine is running in C why we needed  C for it ? 
Instead use IR directly as real IR?  Why waste time on coding it, Code that isn't running?

The real thing is we need to communicate M3cg with C one way of another as it actually is partly from Modula-3 to C. Don't you think?
If not is better to go through the right side scheme for our JIT target.

Thanks in advance

--- El dom, 5/8/12, Jay <jay.krell at cornell.edu> escribió:

De: Jay <jay.krell at cornell.edu>
Asunto: Re: [M3commit] CVS Update: cm3
Para: "Daniel Alejandro Benavides D." <dabenavidesd at yahoo.es>
CC: "<m3commit at elegosoft.com>" <m3commit at elegosoft.com>, "<jkrell at elego.de>"
 <jkrell at elego.de>
Fecha: domingo, 5 de agosto, 2012 19:53

Daniel, your question doesn't quite make sense to me. Do you have some actual code? If you translate Modula-3 to C then you don't need m3cc. m3cc is a backend that integrates with cm3.
 - Jay (briefly/pocket-sized-computer-aka-phone)
On Aug 5, 2012, at 11:22 AM, "Daniel Alejandro Benavides D." <dabenavidesd at yahoo.es> wrote:

Hi all:
Jay, if I produce a target
 dependent translator to C Do I need to make it to talk with  m3gcc to use Modula-3 compiler code (M3 code)?
For instance CM3 -> C  →m3gcc← .is 
Or is there  
 any  tool than gcc to talk with C in AIX can I use to talk with Modula-3?
This is  to recover type information lost in translation  to  C before is lost.
Thanks in advance

--- El dom, 5/8/12, Jay Krell <jkrell at elego.de> escribió:

De: Jay Krell <jkrell at elego.de>
Asunto: [M3commit] CVS Update: cm3
Para: m3commit at elegosoft.com
Fecha:
 domingo, 5 de agosto, 2012 13:55

CVSROOT:    /usr/cvs
Changes by:   
 jkrell at birch.    12/08/05 18:55:19

Modified files:
    cm3/m3-sys/m3cc/gcc/gcc/m3cg/: parse.c 
    ./: parse.c 
    cm3/m3-sys/m3cc/gcc-4.7/: Makefile.def Makefile.in Makefile.tpl 
                              configure 
    ./: Makefile.def Makefile.in Makefile.tpl configure 
    cm3/m3-sys/m3cc/gcc-4.7/gcc/: Makefile.in builtins.c configure 
                                  configure.ac double-int.c 
                                  double-int.h expr.c fold-const.c 
                           
       lto-compress.c lto-section-out.c 
                                  passes.c real.c toplev.c 
                                  tree-pass.h tree-ssa-loop-niter.c 
                                  tree-vrp.c tree.c tree.h 
    ./: Makefile.in builtins.c configure configure.ac double-int.c 
        double-int.h expr.c fold-const.c lto-compress.c 
        lto-section-out.c passes.c real.c toplev.c tree-pass.h 
        tree-ssa-loop-niter.c tree-vrp.c tree.c tree.h 
    cm3/m3-sys/m3cc/src/: clean_marker.txt m3makefile 
Removed
 files:
    cm3/m3-sys/m3cc/gcc-4.7/gcc/: collect2-aix.c collect2-aix.h 
                                  collect2.c collect2.h gcc-ar.c 
                                  genmultilib realmpfr.h 
    ./: collect2-aix.c collect2-aix.h collect2.c collect2.h gcc-ar.c 
        genmultilib realmpfr.h 
    cm3/m3-sys/m3cc/gcc-4.7/zlib/: FAQ INDEX Makefile.am Makefile.in 
                                   README acinclude.m4 aclocal.m4 
                                   adler32.c algorithm.txt
 
                                   compress.c configure configure.ac 
                                   crc32.c crc32.h deflate.c 
                                   deflate.h example.c gzio.c 
                                   infback.c inffast.c inffast.h 
                                   inffixed.h inflate.c inflate.h 
                               
    inftrees.c inftrees.h 
                                   make_vms.com minigzip.c trees.c 
                                   trees.h uncompr.c zconf.h 
                                   zconf.in.h zlib.3 zlib.h zutil.c 
                                   zutil.h 
    ./: FAQ INDEX Makefile.am Makefile.in README acinclude.m4 
        aclocal.m4 adler32.c algorithm.txt compress.c configure 
        configure.ac crc32.c crc32.h deflate.c deflate.h example.c
 
        gzio.c infback.c inffast.c inffast.h inffixed.h inflate.c 
        inflate.h inftrees.c inftrees.h make_vms.com minigzip.c 
        trees.c trees.h uncompr.c zconf.h zconf.in.h zlib.3 zlib.h 
        zutil.c zutil.h 
    cm3/m3-sys/m3cc/gcc-4.7/zlib/amiga/: Makefile.pup Makefile.sas 
    ./: Makefile.pup Makefile.sas 
    cm3/m3-sys/m3cc/gcc-4.7/zlib/as400/: bndsrc compile.clp 
                                         readme.txt zlib.inc 
    ./: bndsrc compile.clp readme.txt zlib.inc 
    cm3/m3-sys/m3cc/gcc-4.7/zlib/examples/: README.examples fitblk.c 
                   
                         gun.c gzappend.c 
                                            gzjoin.c gzlog.c gzlog.h 
                                            zlib_how.html zpipe.c 
                                            zran.c 
    ./: README.examples fitblk.c gun.c gzappend.c gzjoin.c gzlog.c 
        gzlog.h zlib_how.html zpipe.c zran.c 
    cm3/m3-sys/m3cc/gcc-4.7/zlib/msdos/: Makefile.bor Makefile.dj2 
                 
                        Makefile.emx Makefile.msc 
                                         Makefile.tc 
    ./: Makefile.bor Makefile.dj2 Makefile.emx Makefile.msc 
        Makefile.tc 
    cm3/m3-sys/m3cc/gcc-4.7/zlib/old/: Makefile.riscos README 
                                       descrip.mms visual-basic.txt 
                                       zlib.html 
    ./: Makefile.riscos README descrip.mms visual-basic.txt 
        zlib.html
 
    cm3/m3-sys/m3cc/gcc-4.7/zlib/old/os2/: Makefile.os2 zlib.def 
    ./: Makefile.os2 zlib.def 
    cm3/m3-sys/m3cc/gcc-4.7/zlib/projects/: README.projects 
    ./: README.projects 
    cm3/m3-sys/m3cc/gcc-4.7/zlib/projects/visualc6/: README.txt 
                                                     example.dsp 
                                                     minigzip.dsp 
                                                 
    zlib.dsp 
                                                     zlib.dsw 
    ./: README.txt example.dsp minigzip.dsp zlib.dsp zlib.dsw 
    cm3/m3-sys/m3cc/gcc-4.7/zlib/qnx/: package.qpg 
    ./: package.qpg 
    cm3/m3-sys/m3cc/gcc-4.7/zlib/win32/: DLL_FAQ.txt Makefile.bor 
                                         Makefile.emx Makefile.gcc 
                                         Makefile.msc VisualC.txt 
                   
                      zlib.def zlib1.rc 
    ./: DLL_FAQ.txt Makefile.bor Makefile.emx Makefile.gcc 
        Makefile.msc VisualC.txt zlib.def zlib1.rc 

Log message:
    remove use of gmp and zlib
    removal of gmp does have a little collateral damage in lost
    optimizations -- value range propagation (vrp) and some loop
    optimizations (gmp used in calculating how many times
    loops run)
    zlib is only for LTO, which we don't use anyway
    remove some dead stuff wrt collect, ppl, cloog



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://m3lists.elegosoft.com/pipermail/m3commit/attachments/20120806/a2fd08aa/attachment-0002.html>


More information about the M3commit mailing list