GithubHelp home page GithubHelp logo

More build detail needed about cm3 HOT 19 CLOSED

modula3 avatar modula3 commented on September 14, 2024
More build detail needed

from cm3.

Comments (19)

jaykrell avatar jaykrell commented on September 14, 2024

Please try scripts/python/make-dist.py.

I personally find sh distasteful for programming of any kind and never use those.

  • Jay

On Jun 5, 2016, at 6:54 PM, doug719 [email protected] wrote:

I would like to build a cm3. I can run do-cm3-front.sh buildglobal ok. When I try to use the cm3 that this script generated (in a separate directory) with the script do-cm3-base.sh buildglobal I get

bad M3CG version stamp (0x110), expected 0x100

Surely there must be a straightforward way to build a system, but I sure don't see any documentation on how to do it. Until I can build a system I will use the elegosoft 2010 version, which has some problems, but there are workarounds. Please supply a little more info on how to build a system.

Thanks -- Doug


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

from cm3.

jaykrell avatar jaykrell commented on September 14, 2024

Please try scripts/python/make-dist.py.

�- Jay


Date: Sun, 5 Jun 2016 18:54:57 -0700
From: [email protected]
To: [email protected]
CC:
Subject: [modula3/cm3] More build detail needed (#14)

I would like to build a cm3. I can run do-cm3-front.sh buildglobal ok.
When I try to use the cm3 that this script generated (in a separate
directory) with the script do-cm3-base.sh buildglobal I get

bad M3CG version stamp (0x110), expected 0x100

Surely there must be a straightforward way to build a system, but I
sure don't see any documentation on how to do it. Until I can build a
system I will use the elegosoft 2010 version, which has some problems,
but there are workarounds. Please supply a little more info on how to
build a system.

Thanks -- Doug



You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on
GitHubhttps://github.com//issues/14, or mute the
threadhttps://github.com/notifications/unsubscribe/ABj1kJ6mkyGNqrVdaDOuVhIITKKN57YYks5qI33xgaJpZM4IugdU.

from cm3.

doug719 avatar doug719 commented on September 14, 2024

Jay,
Thanks for the reply. Will give it a try.
--Doug

from cm3.

doug719 avatar doug719 commented on September 14, 2024

I am running Ubuntu 15.10 on a x86_64 machine.
First I set PATH to the cm3 compiler from elegosoft.com (2010 version) make-dist.py compiled for quite a while and then

== package /home/doug/cm3-master/m3-db/odbc ==

+++ /tmp/tmpnPGyOM/cm3-all-AMD64_LINUX-d5.10.0-Linux4.2.0-20160606/bin/cm3 -build -DROOT=/home/doug/cm3-master +++
--- building in AMD64_LINUX ---

ignoring ../src/m3overrides

new source -> compiling SQLtypes.i3
new source -> compiling SQL.i3
new source -> compiling SQLext.i3
new source -> compiling SQLext.m3
-> archiving libm3odbc.a
ar: u' modifier ignored sinceD' is the default (see `U')
/usr/bin/ld: cannot find -lodbc
collect2: error: ld returned 1 exit status
make_lib => 1
librarian failed building: m3odbc
Fatal Error: package build failed
*** execution of [<function _BuildGlobalFunction at 0x7f1cdb3e2a28>, <function _ShipFunction at 0x7f1cdb3e2aa0>] failed ***


Then I started with a fresh cm3-master and ran the scripts do-cm3-front.sh (and changed the path for cm3) and ran install-cm3-compiler.py. When I run make-dist.py I get

OSError: [Errno 2] No such file or directory: '/home/doug/cm3-master/m3-sys/cm3/pkg/libm3'

What scripts do I need to run before running make-dist.py?

Regards, --Doug

from cm3.

jaykrell avatar jaykrell commented on September 14, 2024
  1. Don't use any of the scripts outside the python directory.
  2. I think we should remove the odbc and PostgreSQL (libpq) wrappers from any of the package sets. Lately the second won't build for me either on Linux. These are a case of missing dependencies. The overall distribution includes wrappers (or "bindings") for "unrelated" stuff, and building the wrappers requires having the wrapped installed.

Can you edit them out of..I think it is called pkginfo.txt? You might have to rm PKGSDB or PKGDB. Look in the scripts directory for it.

The error message is a little strange but lacking libodbc is common for me when I setup new systems.

  • Jay

On Jun 6, 2016, at 5:52 AM, doug719 [email protected] wrote:

I am running Ubuntu 15.10 on a x86_64 machine.
First I set PATH to the cm3 compiler from elegosoft.com (2010 version) make-dist.py compiled for quite a while and then

== package /home/doug/cm3-master/m3-db/odbc ==

+++ /tmp/tmpnPGyOM/cm3-all-AMD64_LINUX-d5.10.0-Linux4.2.0-20160606/bin/cm3 -build -DROOT=/home/doug/cm3-master +++
--- building in AMD64_LINUX ---

ignoring ../src/m3overrides

new source -> compiling SQLtypes.i3
new source -> compiling SQL.i3
new source -> compiling SQLext.i3
new source -> compiling SQLext.m3
-> archiving libm3odbc.a
ar: u' modifier ignored sinceD' is the default (see `U')
/usr/bin/ld: cannot find -lodbc
collect2: error: ld returned 1 exit status
make_lib => 1
librarian failed building: m3odbc
Fatal Error: package build failed
*** execution of [, ] failed ***

Then I started with a fresh cm3-master and ran the scripts do-cm3-front.sh (and changed the path for cm3) and ran install-cm3-compiler.py. When I run make-dist.py I get

OSError: [Errno 2] No such file or directory: '/home/doug/cm3-master/m3-sys/cm3/pkg/libm3'

What scripts do I need to run before running make-dist.py?

Regards, --Doug


You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

from cm3.

jaykrell avatar jaykrell commented on September 14, 2024

Doug here is something more precise: cd scripts/python edit ../pkginfo.txt
remove these two lines:
odbc database
postgres95 database
rm ../PKGS ./make-dist.py

  • Jay

From: [email protected]
CC: [email protected]; [email protected]; [email protected]
Subject: Re: [modula3/cm3] More build detail needed (#14)
Date: Mon, 6 Jun 2016 09:12:00 -0700
To: [email protected]

  1. Don't use any of the scripts outside the python directory.
  2. I think we should remove the odbc and PostgreSQL (libpq) wrappers from any of the package sets. Lately the second won't build for me either on Linux. These are a case of missing dependencies. The overall distribution includes wrappers (or "bindings") for "unrelated" stuff, and building the wrappers requires having the wrapped installed.
    Can you edit them out of..I think it is called pkginfo.txt? You might have to rm PKGSDB or PKGDB. Look in the scripts directory for it.
    The error message is a little strange but lacking libodbc is common for me when I setup new systems.

I am running Ubuntu 15.10 on a x86_64 machine.

First I set PATH to the cm3 compiler from elegosoft.com (2010 version) make-dist.py compiled for quite a while and then

== package /home/doug/cm3-master/m3-db/odbc ==

+++ /tmp/tmpnPGyOM/cm3-all-AMD64_LINUX-d5.10.0-Linux4.2.0-20160606/bin/cm3 -build -DROOT=/home/doug/cm3-master +++

--- building in AMD64_LINUX ---

ignoring ../src/m3overrides

new source -> compiling SQLtypes.i3

new source -> compiling SQL.i3

new source -> compiling SQLext.i3

new source -> compiling SQLext.m3

-> archiving libm3odbc.a

ar: u' modifier ignored sinceD' is the default (see `U')

/usr/bin/ld: cannot find -lodbc

collect2: error: ld returned 1 exit status

make_lib => 1

librarian failed building: m3odbc

Fatal Error: package build failed

*** execution of [, ] failed ***

Then I started with a fresh cm3-master and ran the scripts do-cm3-front.sh (and changed the path for cm3) and ran install-cm3-compiler.py. When I run make-dist.py I get

OSError: [Errno 2] No such file or directory: '/home/doug/cm3-master/m3-sys/cm3/pkg/libm3'

What scripts do I need to run before running make-dist.py?

Regards, --Doug


You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

from cm3.

doug719 avatar doug719 commented on September 14, 2024

Jay, I deleted
odbc database
postgres95 database

 rm ../PKGS.   ./make-dist.py
Got error with db database, so deleted.  Error on m3-db/db, so deleted amalldb  database.

Got error below for m3-ui. Looks like it wants some libs from a previous X11 version. I am running a fairly recent version of Ubuntu (15.10).

== package /home/doug/cm3-master/m3-ui/X11R4 ==

+++ /tmp/tmp3SW8JI/cm3-all-AMD64_LINUX-d5.10.0-Linux4.2.0-20160606/bin/cm3 -build -DROOT=/home/doug/cm3-master +++
--- building in AMD64_LINUX ---

ignoring ../src/m3overrides

new source -> compiling XMachine.i3
new source -> compiling X.i3
new source -> compiling Xatom.i3
new source -> compiling Xmbuf.i3
new source -> compiling Xct.i3
new source -> compiling Xrm.i3
new source -> compiling Xmu.i3
new source -> compiling Xt.i3
new source -> compiling XtC.i3
new source -> compiling XtC.m3
new source -> compiling XtE.i3
new source -> compiling XtE.m3
new source -> compiling XtN.i3
new source -> compiling XtN.m3
new source -> compiling XtR.i3
new source -> compiling XtR.m3
new source -> compiling Xaw.i3
-> archiving libm3X11R4.a
ar: u' modifier ignored sinceD' is the default (see `U')
/usr/bin/ld: cannot find -lXaw
/usr/bin/ld: cannot find -lXmu
/usr/bin/ld: cannot find -lXt
collect2: error: ld returned 1 exit status
make_lib => 1
librarian failed building: m3X11R4
Fatal Error: package build failed
*** execution of [<function _BuildGlobalFunction at 0x7f64ad590aa0>, <function _ShipFunction at 0x7f64ad590c08>] failed ***

-- Doug

from cm3.

olaf-wagner avatar olaf-wagner commented on September 14, 2024

On Mon, 06 Jun 2016 13:48:21 -0700
doug719 [email protected] wrote:

Jay, I deleted
odbc database
postgres95 database

 rm ../PKGS.   ./make-dist.py
Got error with db database, so deleted.  Error on m3-db/db, so deleted amalldb  database.

Got error below for m3-ui. Looks like it wants some libs from a previous X11 version. I am running a fairly recent version of Ubuntu (15.10).

All X systems should habe those libraries. Perhaps you need to install the
static ones or configure the system to link them only dynamically.
I'm not sure if the latter can be accomplished easily though.

Olaf

== package /home/doug/cm3-master/m3-ui/X11R4 ==

+++ /tmp/tmp3SW8JI/cm3-all-AMD64_LINUX-d5.10.0-Linux4.2.0-20160606/bin/cm3 -build -DROOT=/home/doug/cm3-master +++
--- building in AMD64_LINUX ---

ignoring ../src/m3overrides

new source -> compiling XMachine.i3
new source -> compiling X.i3
new source -> compiling Xatom.i3
new source -> compiling Xmbuf.i3
new source -> compiling Xct.i3
new source -> compiling Xrm.i3
new source -> compiling Xmu.i3
new source -> compiling Xt.i3
new source -> compiling XtC.i3
new source -> compiling XtC.m3
new source -> compiling XtE.i3
new source -> compiling XtE.m3
new source -> compiling XtN.i3
new source -> compiling XtN.m3
new source -> compiling XtR.i3
new source -> compiling XtR.m3
new source -> compiling Xaw.i3
-> archiving libm3X11R4.a
ar: u' modifier ignored sinceD' is the default (see `U')
/usr/bin/ld: cannot find -lXaw
/usr/bin/ld: cannot find -lXmu
/usr/bin/ld: cannot find -lXt
collect2: error: ld returned 1 exit status
make_lib => 1
librarian failed building: m3X11R4
Fatal Error: package build failed
*** execution of [<function _BuildGlobalFunction at 0x7f64ad590aa0>, <function _ShipFunction at 0x7f64ad590c08>] failed ***

-- Doug


You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
#14 (comment)

Olaf Wagner -- elego Software Solutions GmbH -- http://www.elegosoft.com
Gustav-Meyer-Allee 25 / Gebäude 12, 13355 Berlin, Germany
phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 45 86 95
Geschäftsführer: Olaf Wagner | Sitz: Berlin
Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214194

from cm3.

jaykrell avatar jaykrell commented on September 14, 2024

Athena widgets are not so popular and that isn't surprising.
apt-get install libxaw7-dev ?
https://packages.debian.org/sid/libxaw7-dev discourages their use -- legacy, use something more modern.

ar: u' modifier ignored sinceD' is the default (see `U')
I'm curious to see:
do-pkg.py X11R4 buildship commands
To understand this u/D/U stuff.
(I really think commands should be the default, and cleaned up slightly, but I know people disagree with me -- see the results though -- yes, it is pretty, and nice when it works, but people send only that pretty terse output.. ).

  • Jay

Date: Mon, 6 Jun 2016 14:07:26 -0700
From: [email protected]
To: [email protected]
CC: [email protected]; [email protected]
Subject: Re: [modula3/cm3] More build detail needed (#14)

On Mon, 06 Jun 2016 13:48:21 -0700

doug719 [email protected] wrote:

Jay, I deleted

 odbc database

 postgres95 database



 rm ../PKGS.   ./make-dist.py

Got error with db database, so deleted.  Error on m3-db/db, so deleted amalldb  database.

Got error below for m3-ui. Looks like it wants some libs from a previous X11 version. I am running a fairly recent version of Ubuntu (15.10).

All X systems should habe those libraries. Perhaps you need to install the

static ones or configure the system to link them only dynamically.

I'm not sure if the latter can be accomplished easily though.

Olaf

== package /home/doug/cm3-master/m3-ui/X11R4 ==

+++ /tmp/tmp3SW8JI/cm3-all-AMD64_LINUX-d5.10.0-Linux4.2.0-20160606/bin/cm3 -build -DROOT=/home/doug/cm3-master +++

--- building in AMD64_LINUX ---

ignoring ../src/m3overrides

new source -> compiling XMachine.i3

new source -> compiling X.i3

new source -> compiling Xatom.i3

new source -> compiling Xmbuf.i3

new source -> compiling Xct.i3

new source -> compiling Xrm.i3

new source -> compiling Xmu.i3

new source -> compiling Xt.i3

new source -> compiling XtC.i3

new source -> compiling XtC.m3

new source -> compiling XtE.i3

new source -> compiling XtE.m3

new source -> compiling XtN.i3

new source -> compiling XtN.m3

new source -> compiling XtR.i3

new source -> compiling XtR.m3

new source -> compiling Xaw.i3

-> archiving libm3X11R4.a

ar: u' modifier ignored sinceD' is the default (see `U')

/usr/bin/ld: cannot find -lXaw

/usr/bin/ld: cannot find -lXmu

/usr/bin/ld: cannot find -lXt

collect2: error: ld returned 1 exit status

make_lib => 1

librarian failed building: m3X11R4

Fatal Error: package build failed

*** execution of [<function _BuildGlobalFunction at 0x7f64ad590aa0>, <function _ShipFunction at 0x7f64ad590c08>] failed ***

-- Doug


You are receiving this because you are subscribed to this thread.

Reply to this email directly or view it on GitHub:

#14 (comment)

Olaf Wagner -- elego Software Solutions GmbH -- http://www.elegosoft.com

           Gustav-Meyer-Allee 25 / Gebäude 12, 13355 Berlin, Germany

phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 45 86 95

Geschäftsführer: Olaf Wagner | Sitz: Berlin

Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214194


You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

from cm3.

doug719 avatar doug719 commented on September 14, 2024

I loaded the X11 development libraries. Deleted the 4 packages previously mentioned. Changed PATH to point to elegosoft.com cm3 (2010 version). Created links:
libXaw.so -> libXaw.so.7
libXmu.so -> libXmu.so.6
libXt.so -> libXt.so.6

copied /usr/lib/x86_64-linux-gnu/libz.a to /usr/lib (since got error couldn't find libz.a)

Got error

-> archiving libsuplib.a
ar: u' modifier ignored sinceD' is the default (see U') /usr/bin/ld: /usr/lib/libz.a(deflate.o): relocation R_X86_64_32S against_length_code' can not be used when making a shared object; recompile with -fPIC
/usr/lib/libz.a: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
make_lib => 1
librarian failed building: suplib
Fatal Error: package build failed


Perhaps I need the 32 bit version of libz.a ?

Jay : On which operating system do you build cm3?

-- Doug

from cm3.

jaykrell avatar jaykrell commented on September 14, 2024

I'm most only Darwin but I try to use a variety.I can ssh to opencsw for Solaris and have VMs.I understand this error mostly -- is there libz.so?The problem is linking a static libz.a into a shared library.They should just compile everything -fPIC, but alas, I have no standing to fight that battle.

It could all be built on Linux, OpenBSD, FreeBSD, NetBSD, Solaris in the fairly recent past. Multiple architectures each.Also the whole thing built on OSF/1 fairly recently. And maybe HP-UX. And Interix, and Cygwin and maybe MinGWin.I wanted to get AIX and Irix and VMS working but didn't get super far on them.

Anyway, just remove all the cvsup stuff from pkginfo.txt also.it isn't very useful -- who uses CVS anyway..?
If you really want to fix it, see here:
https://github.com/modula3/cm3/blob/master/m3-tools/cvsup/suplib/src/m3makefile
The "contains Z" part can be made to work easily enough by editing your config file,and the "IsSolaris" part could be expanded...but this is gross, sorry.

  • Jay

Date: Mon, 6 Jun 2016 14:52:33 -0700
From: [email protected]
To: [email protected]
CC: [email protected]; [email protected]
Subject: Re: [modula3/cm3] More build detail needed (#14)

I loaded the X11 development libraries. Deleted the 4 packages previously mentioned. Changed PATH to point to elegosoft.com cm3 (2010 version). Created links:

libXaw.so -> libXaw.so.7

libXmu.so -> libXmu.so.6

libXt.so -> libXt.so.6

copied /usr/lib/x86_64-linux-gnu/libz.a to /usr/lib (since got error couldn't find libz.a)

Got error

-> archiving libsuplib.a

ar: u' modifier ignored sinceD' is the default (see U')

/usr/bin/ld: /usr/lib/libz.a(deflate.o): relocation R_X86_64_32S against_length_code' can not be used when making a shared object; recompile with -fPIC

/usr/lib/libz.a: error adding symbols: Bad value

collect2: error: ld returned 1 exit status

make_lib => 1

librarian failed building: suplib

Fatal Error: package build failed

Perhaps I need the 32 bit version of libz.a ?

Jay : On which operating system do you build cm3?

-- Doug


You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

from cm3.

jaykrell avatar jaykrell commented on September 14, 2024

Or here:
https://github.com/modula3/cm3/blob/master/m3-tools/cvsup/quake/cvsup.quake
the -lz at the end probably works on all posix systems, and none of the cvsup stuff
builds for Windows anyway. Remove the if Darwin or Solaris?

  • Jay

From: [email protected]
To: [email protected]; [email protected]
CC: [email protected]
Subject: RE: [modula3/cm3] More build detail needed (#14)
Date: Mon, 6 Jun 2016 22:03:50 +0000

I'm most only Darwin but I try to use a variety.I can ssh to opencsw for Solaris and have VMs.I understand this error mostly -- is there libz.so?The problem is linking a static libz.a into a shared library.They should just compile everything -fPIC, but alas, I have no standing to fight that battle.

It could all be built on Linux, OpenBSD, FreeBSD, NetBSD, Solaris in the fairly recent past. Multiple architectures each.Also the whole thing built on OSF/1 fairly recently. And maybe HP-UX. And Interix, and Cygwin and maybe MinGWin.I wanted to get AIX and Irix and VMS working but didn't get super far on them.

Anyway, just remove all the cvsup stuff from pkginfo.txt also.it isn't very useful -- who uses CVS anyway..?
If you really want to fix it, see here:
https://github.com/modula3/cm3/blob/master/m3-tools/cvsup/suplib/src/m3makefile
The "contains Z" part can be made to work easily enough by editing your config file,and the "IsSolaris" part could be expanded...but this is gross, sorry.

  • Jay

Date: Mon, 6 Jun 2016 14:52:33 -0700
From: [email protected]
To: [email protected]
CC: [email protected]; [email protected]
Subject: Re: [modula3/cm3] More build detail needed (#14)

I loaded the X11 development libraries. Deleted the 4 packages previously mentioned. Changed PATH to point to elegosoft.com cm3 (2010 version). Created links:

libXaw.so -> libXaw.so.7

libXmu.so -> libXmu.so.6

libXt.so -> libXt.so.6

copied /usr/lib/x86_64-linux-gnu/libz.a to /usr/lib (since got error couldn't find libz.a)

Got error

-> archiving libsuplib.a

ar: u' modifier ignored sinceD' is the default (see U')

/usr/bin/ld: /usr/lib/libz.a(deflate.o): relocation R_X86_64_32S against_length_code' can not be used when making a shared object; recompile with -fPIC

/usr/lib/libz.a: error adding symbols: Bad value

collect2: error: ld returned 1 exit status

make_lib => 1

librarian failed building: suplib

Fatal Error: package build failed

Perhaps I need the 32 bit version of libz.a ?

Jay : On which operating system do you build cm3?

-- Doug


You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

from cm3.

doug719 avatar doug719 commented on September 14, 2024

Jay
I deleted the CVS packages, and the build worked. But when I try to compile with it I get

doug@doug-Z170X-UD5:~/cm3-2010/sedgewick/AMD64_LINUX$ cm3 tstJos.m3
missing version stamps -> compiling tstJos.m3
cm3cg: fatal error: *** bad M3CG version stamp (0x110), expected 0x100
compilation terminated.
m3_backend => 1
m3cc (aka cm3cg) failed compiling: tstJos.mc
compilation failed => not building program "prog"
Fatal Error: package build failed

Does cm3 build on Darwin? Which version of Darwin are you using?
I have a spare drive that I could load Darwin onto.

-- Doug

from cm3.

jaykrell avatar jaykrell commented on September 14, 2024

Doug, cm3 builds on many systems. It really does. Don't resort to Darwin.
Switching to Darwin won't change much. Sure it would have fixed the "z" and "aw" problems maybe quicker.

Let's work through this, please be patient, and hopefully we can make it easier soon after you have it working.

The problem you are seeing is due to a version mismatch between cm3 and cm3cg.
It says that pretty directly. Still, it doesn't say how to fix it.

You ran make-dist,py, right?
And in the end it gave you a .tar.gz, and you extracted it somewhere and put that somewhere/bin early in path?

If you just ran make-dist.py and left its output wherever (in tmp or sitting in current directory), could be make-dist also modified the original environment, which it probably ought not.

�- Jay


Date: Mon, 6 Jun 2016 17:02:28 -0700
From: [email protected]
To: [email protected]
CC: [email protected]; [email protected]
Subject: Re: [modula3/cm3] More build detail needed (#14)

Jay
I deleted the CVS packages, and the build worked. But when I try to
compile with it I get

doug@doug-Z170X-UD5:~/cm3-2010/sedgewick/AMD64_LINUX$ cm3 tstJos.m3
missing version stamps -> compiling tstJos.m3
cm3cg: fatal error: *** bad M3CG version stamp (0x110), expected 0x100
compilation terminated.
m3_backend => 1
m3cc (aka cm3cg) failed compiling: tstJos.mc
compilation failed => not building program "prog"
Fatal Error: package build failed

Does cm3 build on Darwin? Which version of Darwin are you using?
I have a spare drive that I could load Darwin onto.

-- Doug


You are receiving this because you commented.
Reply to this email directly, view it on
GitHubhttps://github.com//issues/14#issuecomment-224124804,
or mute the
threadhttps://github.com/notifications/unsubscribe/ABj1kL5KhQzDLp3-8WKw0R_Yn7Q8Ykszks5qJLUUgaJpZM4IugdU.

from cm3.

doug719 avatar doug719 commented on September 14, 2024

Jay, I didn't realize I had to install the created *.tar.gz file. I think the README in scripts or python could use some serious updating. When I installed
cm3-all-AMD64_LINUX-d5.10.0-Linux4.2.0-20160607.tar.gz
in a new directory and changed the PATH to point to its cm3, then the 2 tests that I ran on simple m3 programs were successful.

Thank you for your help. If you want me to run any more tests, let me know.

Regards,
Doug

from cm3.

jaykrell avatar jaykrell commented on September 14, 2024

I agree, sorry, and I was going to send mail.I'd like to start by deleting all of the .sh and .cmd files.And move all the .py files up a level, and remove their extensions.So effort won't be too diluted.We might also rewrite them in quake (cm3's internal scripting language), or come up with a way to just use m3makefiles to tie recurse into directories (it already can), but "flush" at program/library, and build by walking the dependency tree from the bottom up, and maybe having a good way to prune the tree.

Also, in terms of testing, note that make-dist.py built a (2) compiler with your (1) preexisting compiler, then built a (3) compiler with that (2) compiler, then compiled everything with that (3).So there is some builtin testing -- such is the value of implementing a language compiler in its own language.Since you got through the gui stuff, you can test some of the larger apps like calculator, fisheye, formsedit, tetris, Juno.

It should probably also build the entire system with (2) and (3) and verify all the IR or assembly or C is identical (I wouldn't go so far as to compare object files or executables, they might have timestamps or guids). Or just make that a separate script that takes as input two preexisting cm3. This is useful for compiler development.

  • Jay

Date: Tue, 7 Jun 2016 14:30:31 -0700
From: [email protected]
To: [email protected]
CC: [email protected]; [email protected]
Subject: Re: [modula3/cm3] More build detail needed (#14)

Jay, I didn't realize I had to install the created *.tar.gz file. I think the README in scripts or python could use some serious updating. When I installed

cm3-all-AMD64_LINUX-d5.10.0-Linux4.2.0-20160607.tar.gz

in a new directory and changed the PATH to point to its cm3, then the 2 tests that I ran on simple m3 programs were successful.

Thank you for your help. If you want me to run any more tests, let me know.

Regards,

Doug


You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

from cm3.

olaf-wagner avatar olaf-wagner commented on September 14, 2024

On Tue, 07 Jun 2016 16:15:20 -0700
jaykrell [email protected] wrote:

I agree, sorry, and I was going to send mail.I'd like to start by deleting all of the .sh and .cmd files.And move all the .py files up a level, and remove their extensions.So effort won't be too diluted.We might also rewrite them in quake (cm3's internal scripting language), or come up with a way to just use m3makefiles to tie recurse into directories (it already can), but "flush" at program/library, and build by walking the dependency tree from the bottom up, and maybe having a good way to prune the tree.

Do we really want to remove all the shell scripts from the distribution?
I'd vote against it, because we completely depend on Python then, while
sh is installed on any POSIX system.

And Python -- at least the 2.x versions -- has its own problems, for
example Unicode handling. We've learned this the hard and expensive way
at Elego.

Please keep the shell scripts somewhere in a callable location.

Olaf

Olaf Wagner -- elego Software Solutions GmbH -- http://www.elegosoft.com
Gustav-Meyer-Allee 25 / Gebäude 12, 13355 Berlin, Germany
phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 45 86 95
Geschäftsführer: Olaf Wagner | Sitz: Berlin
Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214194

from cm3.

jaykrell avatar jaykrell commented on September 14, 2024

And Python -- at least the 2.x versions -- has its own problems, for�

unicode: relevant here?

I agree Python has some problems, as a general purpose programming language.

They don't take compatibility seriously e.g. 3.x vs. 2.x.

Their member references are slow hash table lookups instead
of simple offsets.

Their variables are all variants with
constant runtime type checking instead of static checking
at compile time.

They have a giant lock -- their threading interface is about ideal,
but the resulting behavior is about the worst in existance.

I don't think they have proper lexical scoping.
Nor is "this" implicit like in C++ and many languages.
Aside -- the correct behavior here is really obvious yet people
reject it on ambiguity grounds. In fact the ambiguity is mostly a feature.
"this" is meant to be one of the "scopes" in lexically scoped systems,
if the designers realize the elegance and utility of it.
You can push locals into "this" and refactor w/o rewriting.

I don't like having "this" have members that "shadow" locals, as
I find the order ambiguous, but I often refactor code by moving locals
or params into this.

Many of the obvious mistakes.
Not all of the obvious mistakes -- at least everything isn't a string.


They started to get into functional programming -- map, filter, etc.
then backed away from it. Oops.

The "comprehension" stuff that they push now still doesn't make sense to me.�

But yet for these purposes and many choices, one of the best choices.

I have experimented quite a bit in these areas.

I tried sh. Difficult to read and write at least for me.
Difficult to keep portable (Solaris problems).
No builtin Windows support -- though Cygwin, etc...
Quick to shell out to non-portable utilities.
Whereas in Python I try to handle things in-process instead of by running other stuff.

cmd. Difficult. Slow. Windows-only.
Perhaps the worst "programming language" i have ever used.
And I have used it a lot.

Perl -- I've done my share due to a legacy system I work with.
It breaks down quickly -- want an array of hash tables, or a hash table of arrays?
Difficult.�Which way to do objects or simple structs?
As hash tables where typos just work, or inside-out?

cm3 quake -- maybe a good choice actually, and if not maybe we should extend it to be so
cm3 seems unwilling to just run a while though, only to include a file in its
assumed pipeline. Fix that? cm3 foo.quake?
In the interest of semi-dogfooding, this is a good idea.
In the interest of using a language that isn't really bad in my experience, not a bad idea.
But it is probably the most obscure choice.

lua -- well spoken of but I haven't been able to get started. Maybe I'm just old now.

Tcl -- Seems messed up. They appear to use braces for block structure, but it is actually
an escape character, and those function definitions are actually big strings. Hm.

Python -- seems good, despite the language problems, has been pleasant.

Back when I had the time and machines to try and run everywhere,
this was really working very well.

One system was giving slight grief, like MIPS64_OPENBSD maybe?
The libffi dependency of Python was a slight problem.
But I think this was fixable.

I believe if we ever port to djgpp, Python 2.x will work.

It really is quite portable.

Do we really want to remove all the shell scripts from the distribution?�

Problem is clutter and confusion, documentation, and testing.

But I understand, you know it, maybe you use them. Many people do find it readable
and writable. Surprisingly large systems have been built with it.
My view is a little warped and little quick to conclusion.

What about "joining" the tree, the packages, with m3makefiles that say include_dir or similar,
like how directories within packages are joined?

I think there is an idea in there -- that we don't actually need the scripts for their main purpose.
We don't need them for walking the tree.

make-dist is another story though. I haven't thought through how to replace that with quake.
But it might actually be easy.

The idea I haven't fully formed is:

The existing quake include_dir construct.

Tie together the entire tree this way.

cd to the root.

run cm3.

It is changed though.

It recognizes library and program as "end of package".
If that feels a little unclear or sloppy, instead of include_dir, call it include_dir_package or include_package.
Same meaning as I'm otherwise describing.

So read all the data, discover all the packages and all their source files.

Then, a few options, depending on command line.

  1. Walk the entire dependency tree from the bottom, starting with m3core.
    First you compile and link everything -- incrementally -- then optionally ship.
    Probably not shipping in place.

  2. Depending on command line option, start at the bottom, but stop at the specified directories or package names.

for example
�edit m3core
�cm3 cm3 or cm3 m3-sys/cm3

(We'd actually need cm3 to import m3cc for this to work -- their dependency isn't discoverable as it is for Modula-3 calling Modula-3)

This doesn't provide everything, e.g. boot1.py and make-dist.py, but it goes a very long way.

All of the package info, like about skipping m3cc on NT386 or m3gdb on Darwin, that should be encoded in the m3makefiles anyway.

I think even the likes of make-dist aren't far from being doable in quake.
It is just copying files, running cd && cm3, setting path maybe, and then tar cf.

� - Jay


Date: Tue, 7 Jun 2016 23:44:18 -0700
From: [email protected]
To: [email protected]
CC: [email protected]; [email protected]
Subject: Re: [modula3/cm3] More build detail needed (#14)

On Tue, 07 Jun 2016 16:15:20 -0700
jaykrell [email protected] wrote:

I agree, sorry, and I was going to send mail.I'd like to start by
deleting all of the .sh and .cmd files.And move all the .py files up a
level, and remove their extensions.So effort won't be too diluted.We
might also rewrite them in quake (cm3's internal scripting language),
or come up with a way to just use m3makefiles to tie recurse into
directories (it already can), but "flush" at program/library, and build
by walking the dependency tree from the bottom up, and maybe having a
good way to prune the tree.

Do we really want to remove all the shell scripts from the distribution?
I'd vote against it, because we completely depend on Python then, while
sh is installed on any POSIX system.

And Python -- at least the 2.x versions -- has its own problems, for
example Unicode handling. We've learned this the hard and expensive way
at Elego.

Please keep the shell scripts somewhere in a callable location.

Olaf

Olaf Wagner -- elego Software Solutions GmbH -- http://www.elegosoft.com
Gustav-Meyer-Allee 25 / Geb�ude 12, 13355 Berlin, Germany
phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 45 86 95
Gesch�ftsf�hrer: Olaf Wagner | Sitz: Berlin
Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214194


You are receiving this because you commented.
Reply to this email directly, view it on
GitHubhttps://github.com//issues/14#issuecomment-224503207,
or mute the
threadhttps://github.com/notifications/unsubscribe/ABj1kJxfZfbFCMa7XQ3XrGCZW0UGdXoDks5qJmTCgaJpZM4IugdU.

from cm3.

 avatar commented on September 14, 2024

We now have better getting started instructions on the wiki.

Related to many of the issues mentioned in this thread:

  • The mysql adapter only builds if the required external libraries are available on the system.
  • The UI libraries do not build by default on X11 systems, as this has proven to be problematic esp. on Macs, but are easily added.
  • The installer doesn't try to build the caltech libraries on those platforms where they don't work.
  • The various scripting issues have been de-facto resolved in favor of python. Not for any technical merit, but simply because of near-universal availability and the fact that the included batteries are sufficient to the point that we don't have to worry about 3rd-party dependencies.

from cm3.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.