From jayk123 at hotmail.com Mon Jan 1 15:39:26 2007 From: jayk123 at hotmail.com (j k) Date: Mon, 01 Jan 2007 14:39:26 +0000 Subject: [M3devel] review before checkin/submit/commit? place for user-specific or work-in-progres? Message-ID: An HTML attachment was scrubbed... URL: From jayk123 at hotmail.com Tue Jan 2 17:30:54 2007 From: jayk123 at hotmail.com (j k) Date: Tue, 02 Jan 2007 16:30:54 +0000 Subject: [M3devel] anyone want to try Windows now? Message-ID: An HTML attachment was scrubbed... URL: From dabenavidesd at yahoo.es Tue Jan 2 18:41:22 2007 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Tue, 2 Jan 2007 18:41:22 +0100 (CET) Subject: [M3devel] anyone want to try Windows now? In-Reply-To: Message-ID: <17375.25565.qm@web86910.mail.ukl.yahoo.com> I would like to install here, I have Win Xp +Sp2 on professional Ed. A project to make a Modula-3 plugin for Eclipse has been started, and it would be useful to have an installation procedure for cm3 on Windows. I have an pm3 running here with one of the latest cygwin. I just made a little changes on pm3\language\modula3\m3compiler\m3cc\gcc\m3.c, but I dont know if that could be sended to the cvs repository. Thanks Daniel Benavides j k escribi?: Anyone want to try Windows now? What should work is installing the latest release -- 5.2.6. Checking out the whole tree, copying m3-sys\cminstall\src\config\NT386 to like \cm3\bin\cm3.cfg putting cm3.exe's directory in %PATH%, running vcvars32.bat or simiplar to get a compiler/linker in the path along with %include% and %lib% (sometimes this is done by Visual C++ setup), though %include%/%lib% are hardly used, and running any of scripts\win\do* or scripts\win\upgrad or scripts\win\make-dist, or cd'ing around the tree and running cm3, using any of a variety of versions of Visual C++. (Note that sysinfo.cmd puts \cm3\lib in %LIB% and if you just cd depend, and are using a Visual C++ Express Edition, without also the Windows SDK, then you'll get errors -- the Express Editions lack the Win32 import .libs. m3-win\import-libs builds them and puts them in \cm3\lib.) \cm3 is computed by cm3.cfg to be the directory above the directory that contains cm3.exe. So you don't have to edit cm3.cfg at all. Of course probably some machine/OS/configuration-specificity crept in and it probably only works for me. If you build with Visual C++ 8.0, there is a download/setup needed for machines without it installed, see m3-win\vcredist.txt. I only tested on XP but a variety of versions of Windows should work, esp. versions of NT (as opposed to 95/98) Anyone have a bunch of test automation here? The main problem was really just the infinite recursion in startup. Should a release be made soon then? - Jay --------------------------------- Get live scores and news about your team: Add the Live.com Football Page _______________________________________________ M3devel mailing list M3devel at elegosoft.com https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel __________________________________________________ Correo Yahoo! Espacio para todos tus mensajes, antivirus y antispam ?gratis! Reg?strate ya - http://correo.yahoo.es -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: m3.c Type: text/x-csrc Size: 103827 bytes Desc: 1289283312-m3.c URL: From jayk123 at hotmail.com Wed Jan 3 09:45:34 2007 From: jayk123 at hotmail.com (j k) Date: Wed, 03 Jan 2007 08:45:34 +0000 Subject: [M3devel] m3commit not working In-Reply-To: <20070103070313.GC24460@elegosoft.com> Message-ID: An HTML attachment was scrubbed... URL: From wagner at plane.elego.de Wed Jan 3 08:03:13 2007 From: wagner at plane.elego.de (Olaf Wagner) Date: Wed, 3 Jan 2007 08:03:13 +0100 Subject: [M3devel] m3commit not working In-Reply-To: References: Message-ID: <20070103070313.GC24460@elegosoft.com> On Sun, Dec 31, 2006 at 12:58:19PM +0000, j k wrote: > > The m3commit mailing list does not appear to be working. > I have commited several Windows fixes. > But seen no mail. > > Now might be ok an time for folks to try Windows again, but I > do have more testing and more changes in the works. I got all your commit messages, so it's probably not sending the mails to the committer himself. Olaf -- elego Software Solutions GmbH HRB 77719 Olaf Wagner E-Mail: wagner(at)elego.de Ohmstra?e 9 Tel: +49 30 40 04 19 29 10179 Berlin Fax: +49 30 23 45 86 95 Cranachstra?e 7 Tel: +49 30 85 58 01 81 12157 Berlin Fax: +49 30 85 58 01 88 ------------------> WWW: http://www.elego-software-solutions.com From lemming at henning-thielemann.de Wed Jan 3 14:31:24 2007 From: lemming at henning-thielemann.de (Henning Thielemann) Date: Wed, 03 Jan 2007 14:31:24 +0100 (MET) Subject: [M3devel] Re: [M3commit] CVS Update: cm3 In-Reply-To: <200612300802.kBU82TdQ018879@birch.elego.de> References: <200612300802.kBU82TdQ018879@birch.elego.de> Message-ID: On Sat, 30 Dec 2006, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 06/12/30 09:02:29 > > Modified files: > cm3/m3-libs/arithmetic/src/: m3overrides > cm3/m3-libs/commandrw/src/: m3overrides > cm3/m3-libs/dosunixrw/src/: m3overrides > cm3/m3-libs/fftw/src/: m3overrides > cm3/m3-libs/lapack/src/: m3overrides > cm3/m3-libs/plplot/src/: m3overrides > cm3/m3-libs/unittest/src/: m3overrides > cm3/m3-tools/pp/src/: m3overrides > cm3/m3-ui/ui/src/: m3overrides > cm3/m3-ui/vbtkit/src/: m3overrides > > Log message: > Most m3overrides do not use SL (SLash -- \ for Windows or / for Unix). > These few do. > Fewer variables are better. > Removing these uses lets us not define SL in scripts\win\sysinfo.cmd. > It is still used in some m3makefiles and those uses need to be reviewed. Since I added the SLs recently in many of my m3overrides - can you elaborate on these changes? From lemming at henning-thielemann.de Wed Jan 3 14:33:05 2007 From: lemming at henning-thielemann.de (Henning Thielemann) Date: Wed, 03 Jan 2007 14:33:05 +0100 (MET) Subject: [M3devel] Re: [M3commit] CVS Update: cm3 In-Reply-To: <200612301138.kBUBcjLL020924@birch.elego.de> References: <200612301138.kBUBcjLL020924@birch.elego.de> Message-ID: On Sat, 30 Dec 2006, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 06/12/30 12:38:45 > > Modified files: > cm3/scripts/win/c-runtime/: Microsoft.VC80.CRT.manifest > msvcr80.cmd > cm3/scripts/win/lib/: make-lib-1.cmd make-lib-2.cmd make-lib.cmd > > Log message: > convert line endings to Windows format, in new files, that are used on Windows hosts I thought, that the CVS client is responsible for the correct line endings. From wagner at elegosoft.com Wed Jan 3 16:38:05 2007 From: wagner at elegosoft.com (Olaf Wagner) Date: Wed, 3 Jan 2007 16:38:05 +0100 (CET) Subject: [M3devel] Re: [M3commit] CVS Update: cm3 In-Reply-To: <200612300118.kBU1I6e5008873@birch.elego.de> References: <200612300118.kBU1I6e5008873@birch.elego.de> Message-ID: <33776.194.138.127.36.1167838685.squirrel@mail.elegosoft.com> On Sat, December 30, 2006 3:18 am, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 06/12/30 02:18:06 > > Modified files: > cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 > > Log message: > important: fix infinite recursion in Win32 startup > correct check for TlsAlloc failure (TLS_OUT_OF_INDEXES instead of < 0) > reduce critical sections slightly (esp. to avoid calling out while in a > critical section, including to DuplicateHandle, CreateThread, VirtualQuery) I would like to understand this change better (especially the first item), or at least how/why and endless recursion got into the source (as older versions have run, haven't they?). As for critical sections, you seem to have remove one completely and reduced another. Are you sure that is correct? (I've only had a short look at the diff, and haven't got a comprehensive understanding of the CM3 WIN32 runtime currently.) Olaf -- Olaf Wagner elego Software Solutions GmbH, Berlin, Germany From wagner at elegosoft.com Wed Jan 3 16:55:43 2007 From: wagner at elegosoft.com (Olaf Wagner) Date: Wed, 3 Jan 2007 16:55:43 +0100 (CET) Subject: [M3devel] anyone want to try Windows now? In-Reply-To: References: Message-ID: <46553.194.138.127.36.1167839743.squirrel@mail.elegosoft.com> On Tue, January 2, 2007 5:30 pm, j k wrote: >
Anyone want to try Windows now? >
 
>
What should work is installing the latest release -- > 5.2.6.
>
Checking out the whole tree, copying > m3-sys\cminstall\src\config\NT386 to like \cm3\bin\cm3.cfg putting cm3.exe's > directory in %PATH%, running vcvars32.bat or simiplar to get a compiler/linker > in the path along with %include% and %lib% (sometimes this is done by Visual > C++ setup), though %include%/%lib% are hardly used, and running any of > scripts\win\do* or scripts\win\upgrad or scripts\win\make-dist, or cd'ing > around the tree and running cm3, using any of a variety of versions of Visual > C++. (Note that sysinfo.cmd puts \cm3\lib in %LIB% and if you just cd depend, > and are using a Visual C++ Express Edition, without also the Windows SDK, then > you'll get errors -- the Express Editions lack the Win32 import .libs. > m3-win\import-libs builds them and puts them in \cm3\lib.)
>
 
>
\cm3 is computed by cm3.cfg to be the directory above the > directory that contains cm3.exe. So you don't have to edit cm3.cfg at > all.
>
 
>
Of course probably some machine/OS/configuration-specificity > crept in and it probably only works for me.
>
 
>
If you build with Visual C++ 8.0, there is a download/setup > needed for machines without it installed, see m3-win\vcredist.txt.
>
 
>
I only tested on XP but a variety of versions of Windows should > work, esp. versions of NT (as opposed to 95/98)
>
 
>
Anyone have a bunch of test automation here?
>
 
>
The main problem was really just the infinite recursion in > startup.
>
 
>
Should a release be made soon then?
>
 
Hi Jay, you seem to have done a lot of work for CM3 on Windows platforms; thanks for that! I understand that most things are now working for you; but I'm unsure about the actual state of the code and meaning of the above announcement (as I haven't got much Windows experience). I think we should proceed in two steps: 1. write up some documentation about the - needed prerequisites - how to get and install them - how to install/upgrade and use the system which can be understood and used by M3-experienced people. We will then hopefully get some feedback from M3 users, can fix some problems, and improve the documentation. We should also pick one or at most two standard setups. 2. write up end-user documentation for installation and use of CM3 on Windows systems based on the chosen standard setups. This should be included in the CM3 www and doc packages and bundled with the official NT386 release for CM3 5.4. We should have some test feedback before we do that, though. Olaf -- Olaf Wagner elego Software Solutions GmbH, Berlin, Germany From wagner at plane.elego.de Wed Jan 3 08:03:13 2007 From: wagner at plane.elego.de (Olaf Wagner) Date: Wed, 3 Jan 2007 08:03:13 +0100 Subject: [M3devel] m3commit not working In-Reply-To: References: Message-ID: <20070103070313.GC24460@elegosoft.com> On Sun, Dec 31, 2006 at 12:58:19PM +0000, j k wrote: > > The m3commit mailing list does not appear to be working. > I have commited several Windows fixes. > But seen no mail. > > Now might be ok an time for folks to try Windows again, but I > do have more testing and more changes in the works. I got all your commit messages, so it's probably not sending the mails to the committer himself. Olaf -- elego Software Solutions GmbH HRB 77719 Olaf Wagner E-Mail: wagner(at)elego.de Ohmstra?e 9 Tel: +49 30 40 04 19 29 10179 Berlin Fax: +49 30 23 45 86 95 Cranachstra?e 7 Tel: +49 30 85 58 01 81 12157 Berlin Fax: +49 30 85 58 01 88 ------------------> WWW: http://www.elego-software-solutions.com From wagner at elegosoft.com Wed Jan 3 15:58:00 2007 From: wagner at elegosoft.com (Olaf Wagner) Date: Wed, 3 Jan 2007 15:58:00 +0100 (CET) Subject: [M3devel] review before checkin/submit/commit? place for user-specific or work-in-progres? In-Reply-To: References: Message-ID: <36493.194.138.127.36.1167836280.squirrel@mail.elegosoft.com> On Mon, January 1, 2007 3:39 pm, j k wrote: >
Do folks here > require/prefer all things be discussed/reviewed before any > checkin/submit/commit? Or ok to do stuff kind of single-mindedly? Source > control helps it not matter imho, but cvs isn't a great source control system, > as far as I know yet and as far as I have read.
>
 
>
Is there anywhere appropriate to checkin
>
  work in progress?
>
  user/developer-specific stuff?
>
 
>
For example at work we can put stuf in > <root>\developer\<username>.
>
Can a similar namespace be carved out in the cm3 cvs tree or > would that be an abuse?
>
 
>
Maybe I should just find some generic hosting service..?
>
 
> Jay, usually it's OK to check-in changes on the main trunk if they are compiling and working OK. If you are undertaking bigger projects that might affect other development, you should create a development branch for them to isolate them until they are finished and have been tested by others. Anyway it is always a good idea to announce changes on the m3devel list to see if anybody objects. Have you read the M3 configuration management rules at http://modula3.elegosoft.com/cm3/cm3-cm-rules.html? I would really like to have automatic compilation and regression testing on different target platforms, but this is not too easy to set up and maintain. You are right that CVS is not the greatest tool for version control, but it's working reliably, the bugs are known and can be worked around or ignored :) A migration of the repository to e.g. Subversion would be quite a lot of work, and have impacts on much of the existing infrastructure. With the available human resources I wouldn't recommend such a change. Olaf PS: You may want to include non-HTML versions of the texts in your email. PPS: Please also note the other mails about the CFLF/LF line ending, which should be taken care of by your CVS client. If you don't get proper Windows-formatted texts in your workspace, you have set up something wrong. -- Olaf Wagner elego Software Solutions GmbH, Berlin, Germany From wagner at elegosoft.com Wed Jan 3 16:10:18 2007 From: wagner at elegosoft.com (Olaf Wagner) Date: Wed, 3 Jan 2007 16:10:18 +0100 (CET) Subject: [M3devel] inaccuracy of NT386 and Win32 names? In-Reply-To: References: Message-ID: <46641.194.138.127.36.1167837018.squirrel@mail.elegosoft.com> On Sun, December 31, 2006 2:22 pm, j k wrote: >

Does anyone care that neither "NT386" > nor "Win32" are accurate names?

>

Historically and probably currently the NT386 target supported Windows > 95/98, which are not NT.

>

Lately support for older processors like 386 is going away. The current > operating systems don't support 386 nor likely do the current > compilers.
 Granted as long as the compiler supported it, you could > produce binaries that'd run on old OSes that did support 386.
 And the > C++ compiler has fairly little bearing here, and probably the linker too.

>

Most "Win32" code also works asis on Win64, so just calling it "Windows" > usually or "Windows-x86" sometimes would seem right, maybe "Win" or "Winx86" > for short.

>

I assume there's really no value in renaming NT386, and that "Win32" could > just be somewhat sleazily considered to also mean Win64.
Most other > hypothetical Windows targets could rightfully include NT in their name, > NTMIPS, NTALPHA, NTPOWERPC, NTIA64, NTAMD64, etc.
Things like CE, or heck, > Xbox, would likely be different targets distinct from NT.

>

(It has always bugged me how people claim Microsoft is kind of the opposite > of portability when in fact the portability of NT has been very well > demonstrated, but that then hardly any producer of Windows software followed > suit (including Microsoft -- Office))

>

I had to at least ask. :)

>

I also wonder if Modula-3 even needs both of these identifiers, they map > one to one currently, right? Maybe this was acknowledgement of the possibility > of NTMIPS, NTALPHA, NTPOWERPC, etc?

WIN32 should encapsulate all code that is specific to the 32 bit development and runtime environment of Windows. Historically it also distinguished code from 16 bit Microsoft environments IIRC. I expect we will also need a WIN64 code set soon. NT386 was supposed to run on Windows 95/98/NT, and later 2000 and XP, on the Intel processor architecture. It is certainly a misnomer wrt. the 3 in its name, but so have been lots of other identifiers, too. There has also been a NT386GNU target which used the Cygwin POSIX emulation environment running on Windows. There have never been any other supported hardware architectures for NT/2000/... as far as I know, but then, there has been no software support at all for these, even by Microsoft... A more consistent naming scheme for M3 targets may be interesting for new target platforms, but I wouldn't change any existing names for reasons of backward compatibility and effort. Olaf -- Olaf Wagner elego Software Solutions GmbH, Berlin, Germany From jayk123 at hotmail.com Thu Jan 4 02:15:51 2007 From: jayk123 at hotmail.com (j k) Date: Thu, 04 Jan 2007 01:15:51 +0000 Subject: [M3devel] Re: [M3commit] CVS Update: cm3 In-Reply-To: Message-ID: An HTML attachment was scrubbed... URL: From jayk123 at hotmail.com Thu Jan 4 02:27:46 2007 From: jayk123 at hotmail.com (j k) Date: Thu, 04 Jan 2007 01:27:46 +0000 Subject: [M3devel] Re: [M3commit] CVS Update: cm3 In-Reply-To: Message-ID: An HTML attachment was scrubbed... URL: From jayk123 at hotmail.com Thu Jan 4 02:57:26 2007 From: jayk123 at hotmail.com (j k) Date: Thu, 04 Jan 2007 01:57:26 +0000 Subject: [M3devel] Re: [M3commit] CVS Update: cm3 In-Reply-To: <33776.194.138.127.36.1167838685.squirrel@mail.elegosoft.com> Message-ID: An HTML attachment was scrubbed... URL: From jayk123 at hotmail.com Thu Jan 4 02:57:26 2007 From: jayk123 at hotmail.com (j k) Date: Thu, 04 Jan 2007 01:57:26 +0000 Subject: [M3devel] Re: [M3commit] CVS Update: cm3 In-Reply-To: <33776.194.138.127.36.1167838685.squirrel@mail.elegosoft.com> Message-ID: An HTML attachment was scrubbed... URL: From jayk123 at hotmail.com Thu Jan 4 03:07:36 2007 From: jayk123 at hotmail.com (j k) Date: Thu, 04 Jan 2007 02:07:36 +0000 Subject: [M3devel] review before checkin/submit/commit? place for user-specific or work-in-progres? Message-ID: > PS: You may want to include non-HTML versions of the texts in your email. hm, sorry, that was hotmail's doing but I think due to a setting change I didn't notice, not sure I made it or not. This should come through better. >Have you read the M3 configuration management rules at I'll reread them. I don't like so much ahead of time oversight in my way... It looks like folks have made it easy to convert to other source controls systems, there are import tools, but I guess "easy" is relative, like all things. "Nothing" has the minimal short term cost of course, but usually not the minimal long term cost. My understanding is that Subversion isn't so great either. It doesn't have like "hierarchical branches", just a mainline and copying back and forth to it, something like that. My "random survey" says Perforce is best. Win32 mostly implies Win64. They don't need to be distinct forks. Really the problem is like of "hierarchical sharing". It bugs me how much is copy/pasted among targets in Modula-3. You want to be able to factor out arbitrarily so that targets can be "derived" from other targets, or intermediate abstract targets. (ie: Win32 would be the base of Win32-x86, Win32-PowerPC, Win32-MIPS, Win32-Alpha, and even the base of Win64, which would then be the base of Win64-AMD64, Win64-IA64..) I realize that there isn't zero sharing here in Modula-3, but there is also a lot of copy/paste. _WIN64 implies _WIN32. They are both defined if _WIN64 is defined. /Usually/ but not always #if defined(_WIN32) is around Windows-specific code, not pointer-size dependent or processor dependent code. This is true in Modula-3 where most but not all TARGET == NT386 and OS_TYPE == Win32 code would work on any Win32 or Win64 architecture. - Jay From: "Olaf Wagner" To: "j k" CC: m3devel at elegosoft.com Subject: Re: [M3devel] review before checkin/submit/commit? place for user-specific or work-in-progres? Date: Wed, 3 Jan 2007 15:58:00 +0100 (CET) > >On Mon, January 1, 2007 3:39 pm, j k wrote: > >
Do folks here > > require/prefer all things be discussed/reviewed before any > > checkin/submit/commit? Or ok to do stuff kind of single-mindedly? Source > > control helps it not matter imho, but cvs isn't a great source control >system, > > as far as I know yet and as far as I have read.
> >
 
> >
Is there anywhere appropriate to checkin
> >
  work in progress?
> >
  user/developer-specific stuff?
> >
 
> >
For example at work we can put stuf in > > <root>\developer\<username>.
> >
Can a similar namespace be carved out in the cm3 cvs tree >or > > would that be an abuse?
> >
 
> >
Maybe I should just find some generic hosting >service..?
> >
 
> > > >Jay, > >usually it's OK to check-in changes on the main trunk if they are compiling >and working OK. If you are undertaking bigger projects that might affect >other development, you should create a development branch for them to >isolate them until they are finished and have been tested by others. >Anyway it is always a good idea to announce changes on the m3devel list >to see if anybody objects. > >Have you read the M3 configuration management rules at >http://modula3.elegosoft.com/cm3/cm3-cm-rules.html? > >I would really like to have automatic compilation and regression testing >on different target platforms, but this is not too easy to set up and >maintain. > >You are right that CVS is not the greatest tool for version control, >but it's working reliably, the bugs are known and can be worked around >or ignored :) A migration of the repository to e.g. Subversion would >be quite a lot of work, and have impacts on much of the existing >infrastructure. With the available human resources I wouldn't recommend >such a change. > >Olaf > >PS: You may want to include non-HTML versions of the texts in your email. >PPS: Please also note the other mails about the CFLF/LF line ending, which > should be taken care of by your CVS client. If you don't get proper > Windows-formatted texts in your workspace, you have set up something > wrong. >-- >Olaf Wagner >elego Software Solutions GmbH, Berlin, Germany _________________________________________________________________ Dave vs. Carl: The Insignificant Championship Series. ?Who will win? http://clk.atdmt.com/MSN/go/msnnkwsp0070000001msn/direct/01/?href=http://davevscarl.spaces.live.com/?icid=T001MSN38C07001 From jayk123 at hotmail.com Thu Jan 4 04:22:58 2007 From: jayk123 at hotmail.com (j k) Date: Thu, 04 Jan 2007 03:22:58 +0000 Subject: [M3devel] review before checkin/submit/commit? place for user-specific or work-in-progres? In-Reply-To: <20070104031027.GA17926@topoi.pooq.com> Message-ID: I admit there are /lots/ of source controls systems. It seems like cvs held down the fort a while, and then everyone about the same time decided they didn't like it and wrote more stuff. I don't know anything about monotone. Compared to my little bit of use of cvs, perforce has: files are read only by default locally you have to explicitly check them out (not exclusively mind you) so you get "p4 opened", "p4 diff", where cvs doesn't have them or is slow For branching you can create an arbitrary tree of branches and "integrate" (merge) branches up or down the tree, or even across, or just individual files or changelists (aka "cherry picking). Heck, p4 diff brings up windiff which is nice. Surely I'm not using cvs to its fullest (yet). It has some model for "remote depots" where you have a local copy if all the history. I haven't used it. In fact, the one feature I'd like that Perforce does not have is doing this sort of thing by default. As I understand, I think Subversion has that feature. Every developer has all the history locally. I think in Git takes this one step further and every developer has a local repository that is a peer of all the others. There's some lack of hierarchy which turns out ok. I'd really like cvs diff to not require network use. p4 diff isn't ideal here either. Heck, at least save a local copy of any file I checkout, if not more history than that. Anyway, my "random survey" includes very little use of anything, just reading up on a little bit of marketing and "community" and parts of books. Subversion does have Perforce beat on cost+licensing, but Perforce is free for open source use, and free for a very small number of clients, I think 10, formerly 2. I plan to use it at home. We use it at work so I am very familiar with it. Open Watcom uses Perforce and I read in their newsgroup, either they or someone else, stopped using cvs partly because it was a large cpu drain on the host system. There are just a bunch of systems these days. - Jay >From: hendrik at topoi.pooq.com >To: m3devel at elegosoft.com >CC: j k >Subject: Re: [M3devel] review before checkin/submit/commit? place for >user-specific or work-in-progres? >Date: Wed, 3 Jan 2007 22:10:27 -0500 > >On Thu, Jan 04, 2007 at 02:07:36AM +0000, j k wrote: > > > > It looks like folks have made it easy to convert to other source >controls > > systems, there are import tools, but I guess "easy" is relative, like >all > > things. "Nothing" has the minimal short term cost of course, but usually > > not the minimal long term cost. My understanding is that Subversion >isn't > > so great either. It doesn't have like "hierarchical branches", just a > > mainline and copying back and forth to it, something like that. My >"random > > survey" says Perforce is best. > >I never heard of Perforce. I've been using monotone here. What did you >like about it? > >-- hendrik _________________________________________________________________ Get FREE Web site and company branded e-mail from Microsoft Office Live http://clk.atdmt.com/MRT/go/mcrssaub0050001411mrt/direct/01/ From jayk123 at hotmail.com Thu Jan 4 04:14:04 2007 From: jayk123 at hotmail.com (j k) Date: Thu, 04 Jan 2007 03:14:04 +0000 Subject: [M3devel] Re: [M3commit] CVS Update: cm3 In-Reply-To: Message-ID: >I didn't look at the history for how the recursion got there. Tony has made a bunch of changes here over the past months/years as part of using pthreads on other platforms. Revision 1.8 looks suspicious. It has Init call GetActivation. GetActivation calls EnterCriticalSection(idleMu) which Init hasn't yet initialized. Where I said "infinite recursion", substitute "entering an uninitialized critical section". That might still lead to infinite recursion, like the access violation might be caught and code rerun or something. Feel free to undo my change and run the result. :) - Jay >From: "j k" >To: wagner at elegosoft.com, jkrell at birch.elego.de >CC: m3devel at elegosoft.com >Subject: RE: [M3devel] Re: [M3commit] CVS Update: cm3 >Date: Thu, 04 Jan 2007 01:57:26 +0000 > > > >I didn't look at the history for how the recursion got there. >I didn't put it in. >It was definitely there and as it was, ANY attempt to run ANY Modula-3 code >would crash in startup due to infinite recursion, stack overflow. > >For the critical sections I just did a local analysis within the file which >proved adequate to me. You can see fairly readily what are local variables >and what are gobals. > >There is a global linked list and the critical sections are used >to protect it. But you can set up a local before putting it on the list >without the critical section. > >The shorter time you are in a critical section, the better. > >The critical sections are still overused or underused, in the pthread code >too. > >Consider this pthread code: > >PROCEDURE GetActivation (): Activation = >? (* If not the initial thread and not created by Fork, returns NIL *) >? (* LL = 0 *) >? BEGIN >??? IF initActivations THEN InitActivations() END; >??? RETURN LOOPHOLE(Upthread.getspecific(activations), Activation); >? END GetActivation; > > >PROCEDURE InitActivations () = >? VAR me := NEW(Activation); >? BEGIN >??? WITH r = Upthread.key_create(activations, NIL) DO <*ASSERT r=0*> END; >??? WITH r = Upthread.setspecific(activations, me) DO <*ASSERT r=0*> END; >??? WITH r = Upthread.mutex_lock(activeMu) DO <*ASSERT r=0*> END; >????? <* ASSERT allThreads = NIL *> >????? me.handle := Upthread.self(); >????? me.next := me; >????? me.prev := me; >????? allThreads := me; >????? initActivations := FALSE; >??? WITH r = Upthread.mutex_unlock(activeMu) DO <*ASSERT r=0*> END; >? END InitActivations; > >The critical section might need to be expanded to encompass the >"initActivations" variable. > >Possible a "double check" is ok: >?if initActivations >??? enter critical section >????? if initActivations > >In Win32 you can probably get by with a simple spin lock using >InterlockedIncrement. >Does pthreads have that? >In Vista a "once" would be appropriate. I believe pthreads has those too. >Use of simple booleans to implement "onces" is often done incorrectly. > >The critical section does not need to cover the lines: >?? me.next = me; >?? me.prev = me; >?? me.handle = Upthread.self(); > >If this all is in some "startup" code that provides its own serialization, >then more of this is unnecessary. >For example on Windows this should be in m3core.dll's DllMain(process >startup). It probably already is. I'd have to check. > >Putting it in main is just about adequate, except that someone's .dll's >DllMain(process startup) could create a thread that ends up in Modula-3 >code. (There is the assertion about being created by Fork, which is >unfortunate -- I should be able to use Modula-3 .dlls from non-Modula-3 >code and I should be able to create threads with the system-native thread >creater, CreateThread on Windows. Having to go through custom functions to >create threads is not good. It requires more control of the system than you >often have -- imagine for example providing a COM object implemented in >Modula-3...) > >It'd be nice to not roll custom linked lists btw, and then for there to be >a generic ThreadSafeList or such. > >?- Jay > > > > > > > >From:??"Olaf Wagner" >To:??jkrell at birch.elego.de >CC:??m3devel at elegosoft.com >Subject:??[M3devel] Re: [M3commit] CVS Update: cm3 >Date:??Wed, 3 Jan 2007 16:38:05 +0100 (CET) > > > >On Sat, December 30, 2006 3:18 am, Jay Krell wrote: > > > CVSROOT: /usr/cvs > > > Changes by: jkrell at birch. 06/12/30 02:18:06 > > > > > > Modified files: > > > cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 > > > > > > Log message: > > > important: fix infinite recursion in Win32 startup > > > correct check for TlsAlloc failure (TLS_OUT_OF_INDEXES instead of < 0) > > > reduce critical sections slightly (esp. to avoid calling out while in >a > > > critical section, including to >DuplicateHandle, CreateThread, VirtualQuery) > > > >I would like to understand this change better (especially the first >item), > >or at least how/why and endless recursion got into the source (as older > >versions have run, haven't they?). > > > >As for critical sections, you seem to have remove one completely and > >reduced another. Are you sure that is correct? (I've only had a short > >look at the diff, and haven't got a comprehensive understanding of the > >CM3 WIN32 runtime currently.) > > > >Olaf > >-- > >Olaf Wagner > >elego Software Solutions GmbH, Berlin, Germany > >_______________________________________________ > >M3devel mailing list > >M3devel at elegosoft.com > >https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel > > Fixing up the home? Live Search can help > >_______________________________________________ >M3devel mailing list >M3devel at elegosoft.com >https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel _________________________________________________________________ Type your favorite song.? Get a customized station.? Try MSN Radio powered by Pandora. http://radio.msn.com/?icid=T002MSN03A07001 From hosking at cs.purdue.edu Sat Jan 6 21:37:27 2007 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 6 Jan 2007 15:37:27 -0500 Subject: [M3devel] Re: [M3commit] CVS Update: cm3 In-Reply-To: References: Message-ID: <2CB0DF20-D498-4DB9-8EFE-1CAF6CA7C29A@cs.purdue.edu> Just a note that my changes to Win32 threading were intended to mirror my changes for pthreads on other platforms. I was in no situation to test the Win32 threading implementation myself as I had no platform on which to test. I will try to take a look at the Win32 threading updates in ThreadWin32.m3 to ensure that they make sense with respect to the invariants that the run-time system (heap, GC, etc.) need. On Jan 3, 2007, at 10:14 PM, j k wrote: >> I didn't look at the history for how the recursion got there. > > Tony has made a bunch of changes here over the past months/years as > part of using pthreads on other platforms. > Revision 1.8 looks suspicious. > It has Init call GetActivation. > GetActivation calls EnterCriticalSection(idleMu) which Init hasn't > yet initialized. > > Where I said "infinite recursion", substitute "entering an > uninitialized critical section". > > That might still lead to infinite recursion, like the access > violation might be caught and code rerun or something. Feel free to > undo my change and run the result. :) > > - Jay > >> From: "j k" >> To: wagner at elegosoft.com, jkrell at birch.elego.de >> CC: m3devel at elegosoft.com >> Subject: RE: [M3devel] Re: [M3commit] CVS Update: cm3 >> Date: Thu, 04 Jan 2007 01:57:26 +0000 >> >> >> >> I didn't look at the history for how the recursion got there. >> I didn't put it in. >> It was definitely there and as it was, ANY attempt to run ANY >> Modula-3 code would crash in startup due to infinite recursion, >> stack overflow. >> >> For the critical sections I just did a local analysis within the >> file which >> proved adequate to me. You can see fairly readily what are local >> variables and what are gobals. >> >> There is a global linked list and the critical sections are used >> to protect it. But you can set up a local before putting it on the >> list without the critical section. >> >> The shorter time you are in a critical section, the better. >> >> The critical sections are still overused or underused, in the >> pthread code too. >> >> Consider this pthread code: >> >> PROCEDURE GetActivation (): Activation = >> (* If not the initial thread and not created by Fork, returns >> NIL *) >> (* LL = 0 *) >> BEGIN >> IF initActivations THEN InitActivations() END; >> RETURN LOOPHOLE(Upthread.getspecific(activations), Activation); >> END GetActivation; >> >> >> PROCEDURE InitActivations () = >> VAR me := NEW(Activation); >> BEGIN >> WITH r = Upthread.key_create(activations, NIL) DO <*ASSERT >> r=0*> END; >> WITH r = Upthread.setspecific(activations, me) DO <*ASSERT >> r=0*> END; >> WITH r = Upthread.mutex_lock(activeMu) DO <*ASSERT r=0*> END; >> <* ASSERT allThreads = NIL *> >> me.handle := Upthread.self(); >> me.next := me; >> me.prev := me; >> allThreads := me; >> initActivations := FALSE; >> WITH r = Upthread.mutex_unlock(activeMu) DO <*ASSERT r=0*> END; >> END InitActivations; >> >> The critical section might need to be expanded to encompass the >> "initActivations" variable. >> >> Possible a "double check" is ok: >> if initActivations >> enter critical section >> if initActivations >> >> In Win32 you can probably get by with a simple spin lock using >> InterlockedIncrement. >> Does pthreads have that? >> In Vista a "once" would be appropriate. I believe pthreads has >> those too. >> Use of simple booleans to implement "onces" is often done >> incorrectly. >> >> The critical section does not need to cover the lines: >> me.next = me; >> me.prev = me; >> me.handle = Upthread.self(); >> >> If this all is in some "startup" code that provides its own >> serialization, then more of this is unnecessary. >> For example on Windows this should be in m3core.dll's DllMain >> (process startup). It probably already is. I'd have to check. >> >> Putting it in main is just about adequate, except that >> someone's .dll's DllMain(process startup) could create a thread >> that ends up in Modula-3 code. (There is the assertion about being >> created by Fork, which is unfortunate -- I should be able to use >> Modula-3 .dlls from non-Modula-3 code and I should be able to >> create threads with the system-native thread creater, CreateThread >> on Windows. Having to go through custom functions to create >> threads is not good. It requires more control of the system than >> you often have -- imagine for example providing a COM object >> implemented in Modula-3...) >> >> It'd be nice to not roll custom linked lists btw, and then for >> there to be a generic ThreadSafeList or such. >> >> - Jay >> >> >> >> >> >> >> >> From: "Olaf Wagner" >> To: jkrell at birch.elego.de >> CC: m3devel at elegosoft.com >> Subject: [M3devel] Re: [M3commit] CVS Update: cm3 >> Date: Wed, 3 Jan 2007 16:38:05 +0100 (CET) >> > >> >On Sat, December 30, 2006 3:18 am, Jay Krell wrote: >> > > CVSROOT: /usr/cvs >> > > Changes by: jkrell at birch. 06/12/30 02:18:06 >> > > >> > > Modified files: >> > > cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 >> > > >> > > Log message: >> > > important: fix infinite recursion in Win32 startup >> > > correct check for TlsAlloc failure (TLS_OUT_OF_INDEXES instead >> of < 0) >> > > reduce critical sections slightly (esp. to avoid calling out >> while in a >> > > critical section, including to >> DuplicateHandle, CreateThread, VirtualQuery) >> > >> >I would like to understand this change better (especially the >> first item), >> >or at least how/why and endless recursion got into the source (as >> older >> >versions have run, haven't they?). >> > >> >As for critical sections, you seem to have remove one completely and >> >reduced another. Are you sure that is correct? (I've only had a >> short >> >look at the diff, and haven't got a comprehensive understanding >> of the >> >CM3 WIN32 runtime currently.) >> > >> >Olaf >> >-- >> >Olaf Wagner >> >elego Software Solutions GmbH, Berlin, Germany >> >_______________________________________________ >> >M3devel mailing list >> >M3devel at elegosoft.com >> >https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel >> >> Fixing up the home? Live Search can help >> > > >> _______________________________________________ >> M3devel mailing list >> M3devel at elegosoft.com >> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel > > _________________________________________________________________ > Type your favorite song. Get a customized station. Try MSN Radio > powered by Pandora. http://radio.msn.com/?icid=T002MSN03A07001 > > _______________________________________________ > M3devel mailing list > M3devel at elegosoft.com > https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel Antony Hosking | Associate Professor Dept of Computer Science | Office: +1 765 494-6001 Purdue University | Mobile: +1 765 427-5484 250 N. University Street | Email: hosking at cs.purdue.edu West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking _--_|\ / \ \_.--._/ ) v / From hosking at cs.purdue.edu Sat Jan 6 21:47:05 2007 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 6 Jan 2007 15:47:05 -0500 Subject: [M3devel] Re: [M3commit] CVS Update: cm3 In-Reply-To: References: Message-ID: <8F08B2F8-CE8E-4177-9B05-25C9EB985F04@cs.purdue.edu> On Jan 3, 2007, at 8:57 PM, j k wrote: > I didn't look at the history for how the recursion got there. > I didn't put it in. > It was definitely there and as it was, ANY attempt to run ANY > Modula-3 code would crash in startup due to infinite recursion, > stack overflow. > > For the critical sections I just did a local analysis within the > file which > proved adequate to me. You can see fairly readily what are local > variables and what are gobals. > > There is a global linked list and the critical sections are used > to protect it. But you can set up a local before putting it on the > list without the critical section. > > The shorter time you are in a critical section, the better. > > The critical sections are still overused or underused, in the > pthread code too. > > Consider this pthread code: > > PROCEDURE GetActivation (): Activation = > (* If not the initial thread and not created by Fork, returns NIL *) > (* LL = 0 *) > BEGIN > IF initActivations THEN InitActivations() END; > RETURN LOOPHOLE(Upthread.getspecific(activations), Activation); > END GetActivation; > > > PROCEDURE InitActivations () = > VAR me := NEW(Activation); > BEGIN > WITH r = Upthread.key_create(activations, NIL) DO <*ASSERT > r=0*> END; > WITH r = Upthread.setspecific(activations, me) DO <*ASSERT > r=0*> END; > WITH r = Upthread.mutex_lock(activeMu) DO <*ASSERT r=0*> END; > <* ASSERT allThreads = NIL *> > me.handle := Upthread.self(); > me.next := me; > me.prev := me; > allThreads := me; > initActivations := FALSE; > WITH r = Upthread.mutex_unlock(activeMu) DO <*ASSERT r=0*> END; > END InitActivations; > > The critical section might need to be expanded to encompass the > "initActivations" variable. > > Possible a "double check" is ok: > if initActivations > enter critical section > if initActivations This is probably not safe either, since double-check will fail for relaxed memory orderings on some SMPs. > In Win32 you can probably get by with a simple spin lock using > InterlockedIncrement. > Does pthreads have that? Need to look into this even for ThreadPosix.m3. > In Vista a "once" would be appropriate. I believe pthreads has > those too. Yes, pthreads has "once". > Use of simple booleans to implement "onces" is often done incorrectly. > > The critical section does not need to cover the lines: > me.next = me; > me.prev = me; > me.handle = Upthread.self(); Indeed. > If this all is in some "startup" code that provides its own > serialization, then more of this is unnecessary. > For example on Windows this should be in m3core.dll's DllMain > (process startup). It probably already is. I'd have to check. > > Putting it in main is just about adequate, except that > someone's .dll's DllMain(process startup) could create a thread > that ends up in Modula-3 code. (There is the assertion about being > created by Fork, which is unfortunate -- I should be able to use > Modula-3 .dlls from non-Modula-3 code and I should be able to > create threads with the system-native thread creater, CreateThread > on Windows. Having to go through custom functions to create threads > is not good. It requires more control of the system than you often > have -- imagine for example providing a COM object implemented in > Modula-3...) Why would you expect the system-native thread creator to be able to create a Modula-3 thread, given that the Modula-3 run-time system needs to know about the threads to be GC'd. I think it is entirely fair that the M3 run-time system know about the threads that are running M3 code. > It'd be nice to not roll custom linked lists btw, and then for > there to be a generic ThreadSafeList or such. > > - Jay > > > > From: "Olaf Wagner" > To: jkrell at birch.elego.de > CC: m3devel at elegosoft.com > Subject: [M3devel] Re: [M3commit] CVS Update: cm3 > Date: Wed, 3 Jan 2007 16:38:05 +0100 (CET) > > > >On Sat, December 30, 2006 3:18 am, Jay Krell wrote: > > > CVSROOT: /usr/cvs > > > Changes by: jkrell at birch. 06/12/30 02:18:06 > > > > > > Modified files: > > > cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 > > > > > > Log message: > > > important: fix infinite recursion in Win32 startup > > > correct check for TlsAlloc failure (TLS_OUT_OF_INDEXES instead > of < 0) > > > reduce critical sections slightly (esp. to avoid calling out > while in a > > > critical section, including to DuplicateHandle, CreateThread, > VirtualQuery) > > > >I would like to understand this change better (especially the > first item), > >or at least how/why and endless recursion got into the source (as > older > >versions have run, haven't they?). > > > >As for critical sections, you seem to have remove one completely and > >reduced another. Are you sure that is correct? (I've only had a short > >look at the diff, and haven't got a comprehensive understanding of > the > >CM3 WIN32 runtime currently.) > > > >Olaf > >-- > >Olaf Wagner > >elego Software Solutions GmbH, Berlin, Germany > >_______________________________________________ > >M3devel mailing list > >M3devel at elegosoft.com > >https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel > > Fixing up the home? Live Search can help > _______________________________________________ > M3devel mailing list > M3devel at elegosoft.com > https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel Antony Hosking | Associate Professor Dept of Computer Science | Office: +1 765 494-6001 Purdue University | Mobile: +1 765 427-5484 250 N. University Street | Email: hosking at cs.purdue.edu West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking _--_|\ / \ \_.--._/ ) v / From hosking at cs.purdue.edu Sat Jan 6 21:50:43 2007 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 6 Jan 2007 15:50:43 -0500 Subject: [M3devel] Re: [M3commit] CVS Update: cm3 In-Reply-To: References: Message-ID: On Jan 3, 2007, at 10:14 PM, j k wrote: >> I didn't look at the history for how the recursion got there. > > Tony has made a bunch of changes here over the past months/years as > part of using pthreads on other platforms. > Revision 1.8 looks suspicious. > It has Init call GetActivation. > GetActivation calls EnterCriticalSection(idleMu) which Init hasn't > yet initialized. > Where I said "infinite recursion", substitute "entering an > uninitialized critical section". I'll need to look again at my thinking on this. As I recall there was a chicken and egg problem where we wanted *not* to run some code until certain parts of the M3 run-time system were ready. Given that one cannot fork a Modula-3 thread until after a given point in initialization of the run-time system, I figured that certain idioms would be safe even if not in the general case. > > That might still lead to infinite recursion, like the access > violation might be caught and code rerun or something. Feel free to > undo my change and run the result. :) > > - Jay > >> From: "j k" >> To: wagner at elegosoft.com, jkrell at birch.elego.de >> CC: m3devel at elegosoft.com >> Subject: RE: [M3devel] Re: [M3commit] CVS Update: cm3 >> Date: Thu, 04 Jan 2007 01:57:26 +0000 >> >> >> >> I didn't look at the history for how the recursion got there. >> I didn't put it in. >> It was definitely there and as it was, ANY attempt to run ANY >> Modula-3 code would crash in startup due to infinite recursion, >> stack overflow. >> >> For the critical sections I just did a local analysis within the >> file which >> proved adequate to me. You can see fairly readily what are local >> variables and what are gobals. >> >> There is a global linked list and the critical sections are used >> to protect it. But you can set up a local before putting it on the >> list without the critical section. >> >> The shorter time you are in a critical section, the better. >> >> The critical sections are still overused or underused, in the >> pthread code too. >> >> Consider this pthread code: >> >> PROCEDURE GetActivation (): Activation = >> (* If not the initial thread and not created by Fork, returns >> NIL *) >> (* LL = 0 *) >> BEGIN >> IF initActivations THEN InitActivations() END; >> RETURN LOOPHOLE(Upthread.getspecific(activations), Activation); >> END GetActivation; >> >> >> PROCEDURE InitActivations () = >> VAR me := NEW(Activation); >> BEGIN >> WITH r = Upthread.key_create(activations, NIL) DO <*ASSERT >> r=0*> END; >> WITH r = Upthread.setspecific(activations, me) DO <*ASSERT >> r=0*> END; >> WITH r = Upthread.mutex_lock(activeMu) DO <*ASSERT r=0*> END; >> <* ASSERT allThreads = NIL *> >> me.handle := Upthread.self(); >> me.next := me; >> me.prev := me; >> allThreads := me; >> initActivations := FALSE; >> WITH r = Upthread.mutex_unlock(activeMu) DO <*ASSERT r=0*> END; >> END InitActivations; >> >> The critical section might need to be expanded to encompass the >> "initActivations" variable. >> >> Possible a "double check" is ok: >> if initActivations >> enter critical section >> if initActivations >> >> In Win32 you can probably get by with a simple spin lock using >> InterlockedIncrement. >> Does pthreads have that? >> In Vista a "once" would be appropriate. I believe pthreads has >> those too. >> Use of simple booleans to implement "onces" is often done >> incorrectly. >> >> The critical section does not need to cover the lines: >> me.next = me; >> me.prev = me; >> me.handle = Upthread.self(); >> >> If this all is in some "startup" code that provides its own >> serialization, then more of this is unnecessary. >> For example on Windows this should be in m3core.dll's DllMain >> (process startup). It probably already is. I'd have to check. >> >> Putting it in main is just about adequate, except that >> someone's .dll's DllMain(process startup) could create a thread >> that ends up in Modula-3 code. (There is the assertion about being >> created by Fork, which is unfortunate -- I should be able to use >> Modula-3 .dlls from non-Modula-3 code and I should be able to >> create threads with the system-native thread creater, CreateThread >> on Windows. Having to go through custom functions to create >> threads is not good. It requires more control of the system than >> you often have -- imagine for example providing a COM object >> implemented in Modula-3...) >> >> It'd be nice to not roll custom linked lists btw, and then for >> there to be a generic ThreadSafeList or such. >> >> - Jay >> >> >> >> >> >> >> >> From: "Olaf Wagner" >> To: jkrell at birch.elego.de >> CC: m3devel at elegosoft.com >> Subject: [M3devel] Re: [M3commit] CVS Update: cm3 >> Date: Wed, 3 Jan 2007 16:38:05 +0100 (CET) >> > >> >On Sat, December 30, 2006 3:18 am, Jay Krell wrote: >> > > CVSROOT: /usr/cvs >> > > Changes by: jkrell at birch. 06/12/30 02:18:06 >> > > >> > > Modified files: >> > > cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 >> > > >> > > Log message: >> > > important: fix infinite recursion in Win32 startup >> > > correct check for TlsAlloc failure (TLS_OUT_OF_INDEXES instead >> of < 0) >> > > reduce critical sections slightly (esp. to avoid calling out >> while in a >> > > critical section, including to >> DuplicateHandle, CreateThread, VirtualQuery) >> > >> >I would like to understand this change better (especially the >> first item), >> >or at least how/why and endless recursion got into the source (as >> older >> >versions have run, haven't they?). >> > >> >As for critical sections, you seem to have remove one completely and >> >reduced another. Are you sure that is correct? (I've only had a >> short >> >look at the diff, and haven't got a comprehensive understanding >> of the >> >CM3 WIN32 runtime currently.) >> > >> >Olaf >> >-- >> >Olaf Wagner >> >elego Software Solutions GmbH, Berlin, Germany >> >_______________________________________________ >> >M3devel mailing list >> >M3devel at elegosoft.com >> >https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel >> >> Fixing up the home? Live Search can help >> > > >> _______________________________________________ >> M3devel mailing list >> M3devel at elegosoft.com >> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel > > _________________________________________________________________ > Type your favorite song. Get a customized station. Try MSN Radio > powered by Pandora. http://radio.msn.com/?icid=T002MSN03A07001 > > _______________________________________________ > M3devel mailing list > M3devel at elegosoft.com > https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel Antony Hosking | Associate Professor Dept of Computer Science | Office: +1 765 494-6001 Purdue University | Mobile: +1 765 427-5484 250 N. University Street | Email: hosking at cs.purdue.edu West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking _--_|\ / \ \_.--._/ ) v / From jayk123 at hotmail.com Sun Jan 7 06:36:58 2007 From: jayk123 at hotmail.com (j k) Date: Sun, 07 Jan 2007 05:36:58 +0000 Subject: [M3devel] Re: [M3commit] CVS Update: cm3 In-Reply-To: <8F08B2F8-CE8E-4177-9B05-25C9EB985F04@cs.purdue.edu> Message-ID: > Why would you expect the system-native thread creator to be able to > create a Modula-3 thread, given that the Modula-3 run-time system needs to > know about the threads to be GC'd. I think it is entirely fair that > the M3 run-time system know about the threads that are running M3 code. It would be a nice interoperability feature, for "native" code to call Modula-3 code and have it "just work". I understand that it might not be easy/doable. DllMain(thread attach) in Win32 makes it a little more doable but still not /always/ trivial. Given that the .exe staticaly directly or indirectly depends on Modula-3 code, and not using build_standalone(), then m3core.dll will get notified of all thread creations and no special thread creater needs to be called. I have in mind a relatively loosely coupled world, where, say, Modula-3 might be little used in a process, but say some sort of "plugin" might use it. In such a loosely coupled world, no special thread creation function can be agreed up except most likely CreateThread (there are others below it -- NtCreateThread, and there are fibers, both bring back this problem) Such a loosely coupled system doesn't work today because m3core.dll might not be loaded until "late". However, at some cost, what could happen is Modula-3 code could "often" check if it has ever run on this thread and if not do the initialization on demand. "Often" could be limited to every time a garbage collected allocation gets done. That may or may not be a significant cost. Most libraries do not foist their custom thread creator on you. > Possible a "double check" is ok: > This is probably not safe either, since double-check will fail for relaxed memory orderings on some SMPs Oh, I forgot: Isn't enter/leave critical section considered a full memory barrier/fence/whatever? Therefore the second read initActivation is guaranteed to not be cached by the compiler/linker? On Win32 I am pretty darn sure and it makes writing such code a fair amount easier. If you want, you can >> full memory barrie if initActivations enter critical section >> MemoryBarrier if initActivations ... initActivations = true; >> MemoryBarrier end leave critical section Win32 has a relatively recent addition -- "MemoryBarrier". It is always inlined and varies per-processor. On x86 it is just an arbitrary interlocked operation I think. On other processors it is a special instruction. Does Modula-3 have an equivalent? - Jay >From: Tony Hosking >To: j k >CC: wagner at elegosoft.com, jkrell at birch.elego.de, m3devel at elegosoft.com >Subject: Re: [M3devel] Re: [M3commit] CVS Update: cm3 >Date: Sat, 6 Jan 2007 15:47:05 -0500 > > >On Jan 3, 2007, at 8:57 PM, j k wrote: > >>I didn't look at the history for how the recursion got there. >>I didn't put it in. >>It was definitely there and as it was, ANY attempt to run ANY Modula-3 >>code would crash in startup due to infinite recursion, stack overflow. >> >>For the critical sections I just did a local analysis within the file >>which >>proved adequate to me. You can see fairly readily what are local >>variables and what are gobals. >> >>There is a global linked list and the critical sections are used >>to protect it. But you can set up a local before putting it on the list >>without the critical section. >> >>The shorter time you are in a critical section, the better. >> >>The critical sections are still overused or underused, in the pthread >>code too. >> >>Consider this pthread code: >> >>PROCEDURE GetActivation (): Activation = >> (* If not the initial thread and not created by Fork, returns NIL *) >> (* LL = 0 *) >> BEGIN >> IF initActivations THEN InitActivations() END; >> RETURN LOOPHOLE(Upthread.getspecific(activations), Activation); >> END GetActivation; >> >> >>PROCEDURE InitActivations () = >> VAR me := NEW(Activation); >> BEGIN >> WITH r = Upthread.key_create(activations, NIL) DO <*ASSERT r=0*> >>END; >> WITH r = Upthread.setspecific(activations, me) DO <*ASSERT r=0*> >>END; >> WITH r = Upthread.mutex_lock(activeMu) DO <*ASSERT r=0*> END; >> <* ASSERT allThreads = NIL *> >> me.handle := Upthread.self(); >> me.next := me; >> me.prev := me; >> allThreads := me; >> initActivations := FALSE; >> WITH r = Upthread.mutex_unlock(activeMu) DO <*ASSERT r=0*> END; >> END InitActivations; >> >>The critical section might need to be expanded to encompass the >>"initActivations" variable. >> >>Possible a "double check" is ok: >> if initActivations >> enter critical section >> if initActivations >This is probably not safe either, since double-check will fail for relaxed >memory orderings on some SMPs. >>In Win32 you can probably get by with a simple spin lock using >>InterlockedIncrement. >>Does pthreads have that? >Need to look into this even for ThreadPosix.m3. >>In Vista a "once" would be appropriate. I believe pthreads has those too. >Yes, pthreads has "once". >>Use of simple booleans to implement "onces" is often done incorrectly. >> >>The critical section does not need to cover the lines: >> me.next = me; >> me.prev = me; >> me.handle = Upthread.self(); > >Indeed. >>If this all is in some "startup" code that provides its own >>serialization, then more of this is unnecessary. >>For example on Windows this should be in m3core.dll's DllMain (process >>startup). It probably already is. I'd have to check. >> >>Putting it in main is just about adequate, except that someone's .dll's >>DllMain(process startup) could create a thread that ends up in Modula-3 >>code. (There is the assertion about being created by Fork, which is >>unfortunate -- I should be able to use Modula-3 .dlls from non-Modula-3 >>code and I should be able to create threads with the system-native thread >>creater, CreateThread on Windows. Having to go through custom functions >>to create threads is not good. It requires more control of the system >>than you often have -- imagine for example providing a COM object >>implemented in Modula-3...) >Why would you expect the system-native thread creator to be able to create >a Modula-3 thread, given that the Modula-3 run-time system needs to know >about the threads to be GC'd. I think it is entirely fair that the M3 >run-time system know about the threads that are running M3 code. >>It'd be nice to not roll custom linked lists btw, and then for there to >>be a generic ThreadSafeList or such. >> >> - Jay >> >> >> >>From: "Olaf Wagner" >>To: jkrell at birch.elego.de >>CC: m3devel at elegosoft.com >>Subject: [M3devel] Re: [M3commit] CVS Update: cm3 >>Date: Wed, 3 Jan 2007 16:38:05 +0100 (CET) >> > >> >On Sat, December 30, 2006 3:18 am, Jay Krell wrote: >> > > CVSROOT: /usr/cvs >> > > Changes by: jkrell at birch. 06/12/30 02:18:06 >> > > >> > > Modified files: >> > > cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 >> > > >> > > Log message: >> > > important: fix infinite recursion in Win32 startup >> > > correct check for TlsAlloc failure (TLS_OUT_OF_INDEXES instead of < >>0) >> > > reduce critical sections slightly (esp. to avoid calling out while >>in a >> > > critical section, including to DuplicateHandle, CreateThread, >>VirtualQuery) >> > >> >I would like to understand this change better (especially the first >>item), >> >or at least how/why and endless recursion got into the source (as older >> >versions have run, haven't they?). >> > >> >As for critical sections, you seem to have remove one completely and >> >reduced another. Are you sure that is correct? (I've only had a short >> >look at the diff, and haven't got a comprehensive understanding of the >> >CM3 WIN32 runtime currently.) >> > >> >Olaf >> >-- >> >Olaf Wagner >> >elego Software Solutions GmbH, Berlin, Germany >> >_______________________________________________ >> >M3devel mailing list >> >M3devel at elegosoft.com >> >https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel >> >>Fixing up the home? Live Search can help >>_______________________________________________ >>M3devel mailing list >>M3devel at elegosoft.com >>https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel > >Antony Hosking | Associate Professor >Dept of Computer Science | Office: +1 765 494-6001 >Purdue University | Mobile: +1 765 427-5484 >250 N. University Street | Email: hosking at cs.purdue.edu >West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking > _--_|\ >/ \ >\_.--._/ ) > v / > > > _________________________________________________________________ Get live scores and news about your team: Add the Live.com Football Page www.live.com/?addtemplate=football&icid=T001MSN30A0701 From hosking at cs.purdue.edu Sun Jan 7 16:18:18 2007 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sun, 7 Jan 2007 10:18:18 -0500 Subject: [M3devel] Re: [M3commit] CVS Update: cm3 In-Reply-To: References: Message-ID: On Jan 7, 2007, at 12:36 AM, j k wrote: > > > Why would you expect the system-native thread creator to be able to > > create a Modula-3 thread, given that the Modula-3 run-time system > needs to > > know about the threads to be GC'd. I think it is entirely fair > that > > the M3 run-time system know about the threads that are running > M3 code. > > It would be a nice interoperability feature, for "native" code to > call Modula-3 code and have it "just work". > I understand that it might not be easy/doable. > > DllMain(thread attach) in Win32 makes it a little more doable but > still not /always/ trivial. > > Given that the .exe staticaly directly or indirectly depends on > Modula-3 code, > and not using build_standalone(), then m3core.dll will get notified > of all thread creations > and no special thread creater needs to be called. > > I have in mind a relatively loosely coupled world, where, say, > Modula-3 might be little used > in a process, but say some sort of "plugin" might use it. > > In such a loosely coupled world, no special thread creation > function can be agreed up except > most likely CreateThread (there are others below it -- > NtCreateThread, and there are fibers, > both bring back this problem) > > Such a loosely coupled system doesn't work today because m3core.dll > might not be loaded until "late". > > However, at some cost, what could happen is Modula-3 code could > "often" check if it has ever > run on this thread and if not do the initialization on demand. > "Often" could be limited to every time > a garbage collected allocation gets done. That may or may not be a > significant cost. Yes, I imagine we could come up with something like this for all targets (win32 and posix). > > Most libraries do not foist their custom thread creator on you. > > > Possible a "double check" is ok: > > This is probably not safe either, since double-check will fail > for relaxed memory orderings on some SMPs > > Oh, I forgot: > > Isn't enter/leave critical section considered a full memory barrier/ > fence/whatever? Yes, it is. > Therefore the second read initActivation is guaranteed to not be > cached by the compiler/linker? Yes, so one would need a second check as you propose below. > On Win32 I am pretty darn sure and it makes writing such code a > fair amount easier. > If you want, you can > > >> full memory barrie > > if initActivations > enter critical section > >> MemoryBarrier > if initActivations > ... > initActivations = true; > >> MemoryBarrier > end > leave critical section > > Win32 has a relatively recent addition -- "MemoryBarrier". > It is always inlined and varies per-processor. On x86 it is just an > arbitrary interlocked operation I think. > On other processors it is a special instruction. > Does Modula-3 have an equivalent? I would hate to expose a memory barrier operation to the programmer in that way. Ideally, we would come up with a memory model for Modula-3 along the lines of that for Java, where use of the thread synchronization primitives of Modula-3 produces well-defined memory orderings among threads. We have behavior like that currently simply by virtue of use of the pthread and win32 thread primitives in the implementation of Modula-3 thread primitives, which impose memory barriers, so everything should work "as expected" for now on most SMPs. > > - Jay > > >> From: Tony Hosking >> To: j k >> CC: wagner at elegosoft.com, jkrell at birch.elego.de, >> m3devel at elegosoft.com >> Subject: Re: [M3devel] Re: [M3commit] CVS Update: cm3 >> Date: Sat, 6 Jan 2007 15:47:05 -0500 >> >> >> On Jan 3, 2007, at 8:57 PM, j k wrote: >> >>> I didn't look at the history for how the recursion got there. >>> I didn't put it in. >>> It was definitely there and as it was, ANY attempt to run ANY >>> Modula-3 code would crash in startup due to infinite recursion, >>> stack overflow. >>> >>> For the critical sections I just did a local analysis within the >>> file which >>> proved adequate to me. You can see fairly readily what are local >>> variables and what are gobals. >>> >>> There is a global linked list and the critical sections are used >>> to protect it. But you can set up a local before putting it on >>> the list without the critical section. >>> >>> The shorter time you are in a critical section, the better. >>> >>> The critical sections are still overused or underused, in the >>> pthread code too. >>> >>> Consider this pthread code: >>> >>> PROCEDURE GetActivation (): Activation = >>> (* If not the initial thread and not created by Fork, returns >>> NIL *) >>> (* LL = 0 *) >>> BEGIN >>> IF initActivations THEN InitActivations() END; >>> RETURN LOOPHOLE(Upthread.getspecific(activations), Activation); >>> END GetActivation; >>> >>> >>> PROCEDURE InitActivations () = >>> VAR me := NEW(Activation); >>> BEGIN >>> WITH r = Upthread.key_create(activations, NIL) DO <*ASSERT >>> r=0*> END; >>> WITH r = Upthread.setspecific(activations, me) DO <*ASSERT >>> r=0*> END; >>> WITH r = Upthread.mutex_lock(activeMu) DO <*ASSERT r=0*> END; >>> <* ASSERT allThreads = NIL *> >>> me.handle := Upthread.self(); >>> me.next := me; >>> me.prev := me; >>> allThreads := me; >>> initActivations := FALSE; >>> WITH r = Upthread.mutex_unlock(activeMu) DO <*ASSERT r=0*> END; >>> END InitActivations; >>> >>> The critical section might need to be expanded to encompass the >>> "initActivations" variable. >>> >>> Possible a "double check" is ok: >>> if initActivations >>> enter critical section >>> if initActivations >> This is probably not safe either, since double-check will fail >> for relaxed memory orderings on some SMPs. >>> In Win32 you can probably get by with a simple spin lock using >>> InterlockedIncrement. >>> Does pthreads have that? >> Need to look into this even for ThreadPosix.m3. >>> In Vista a "once" would be appropriate. I believe pthreads has >>> those too. >> Yes, pthreads has "once". >>> Use of simple booleans to implement "onces" is often done >>> incorrectly. >>> >>> The critical section does not need to cover the lines: >>> me.next = me; >>> me.prev = me; >>> me.handle = Upthread.self(); >> >> Indeed. >>> If this all is in some "startup" code that provides its own >>> serialization, then more of this is unnecessary. >>> For example on Windows this should be in m3core.dll's DllMain >>> (process startup). It probably already is. I'd have to check. >>> >>> Putting it in main is just about adequate, except that >>> someone's .dll's DllMain(process startup) could create a thread >>> that ends up in Modula-3 code. (There is the assertion about >>> being created by Fork, which is unfortunate -- I should be able >>> to use Modula-3 .dlls from non-Modula-3 code and I should be >>> able to create threads with the system-native thread creater, >>> CreateThread on Windows. Having to go through custom functions >>> to create threads is not good. It requires more control of the >>> system than you often have -- imagine for example providing a >>> COM object implemented in Modula-3...) >> Why would you expect the system-native thread creator to be able >> to create a Modula-3 thread, given that the Modula-3 run-time >> system needs to know about the threads to be GC'd. I think it is >> entirely fair that the M3 run-time system know about the threads >> that are running M3 code. >>> It'd be nice to not roll custom linked lists btw, and then for >>> there to be a generic ThreadSafeList or such. >>> >>> - Jay >>> >>> >>> >>> From: "Olaf Wagner" >>> To: jkrell at birch.elego.de >>> CC: m3devel at elegosoft.com >>> Subject: [M3devel] Re: [M3commit] CVS Update: cm3 >>> Date: Wed, 3 Jan 2007 16:38:05 +0100 (CET) >>> > >>> >On Sat, December 30, 2006 3:18 am, Jay Krell wrote: >>> > > CVSROOT: /usr/cvs >>> > > Changes by: jkrell at birch. 06/12/30 02:18:06 >>> > > >>> > > Modified files: >>> > > cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 >>> > > >>> > > Log message: >>> > > important: fix infinite recursion in Win32 startup >>> > > correct check for TlsAlloc failure (TLS_OUT_OF_INDEXES >>> instead of < 0) >>> > > reduce critical sections slightly (esp. to avoid calling out >>> while in a >>> > > critical section, including to DuplicateHandle, >>> CreateThread, VirtualQuery) >>> > >>> >I would like to understand this change better (especially the >>> first item), >>> >or at least how/why and endless recursion got into the source >>> (as older >>> >versions have run, haven't they?). >>> > >>> >As for critical sections, you seem to have remove one completely >>> and >>> >reduced another. Are you sure that is correct? (I've only had a >>> short >>> >look at the diff, and haven't got a comprehensive understanding >>> of the >>> >CM3 WIN32 runtime currently.) >>> > >>> >Olaf >>> >-- >>> >Olaf Wagner >>> >elego Software Solutions GmbH, Berlin, Germany >>> >_______________________________________________ >>> >M3devel mailing list >>> >M3devel at elegosoft.com >>> >https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel >>> >>> Fixing up the home? Live Search can help >>> _______________________________________________ >>> M3devel mailing list >>> M3devel at elegosoft.com >>> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel >> >> Antony Hosking | Associate Professor >> Dept of Computer Science | Office: +1 765 494-6001 >> Purdue University | Mobile: +1 765 427-5484 >> 250 N. University Street | Email: hosking at cs.purdue.edu >> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking >> _--_|\ >> / \ >> \_.--._/ ) >> v / >> >> >> > > _________________________________________________________________ > Get live scores and news about your team: Add the Live.com Football > Page www.live.com/?addtemplate=football&icid=T001MSN30A0701 Antony Hosking | Associate Professor Dept of Computer Science | Office: +1 765 494-6001 Purdue University | Mobile: +1 765 427-5484 250 N. University Street | Email: hosking at cs.purdue.edu West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking _--_|\ / \ \_.--._/ ) v / From hosking at cs.purdue.edu Sun Jan 7 17:36:50 2007 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sun, 7 Jan 2007 11:36:50 -0500 Subject: [M3devel] A GC/compiler/Pickle interaction bug In-Reply-To: <45970723.5070102@wichita.edu> References: <45970723.5070102@wichita.edu> Message-ID: This is definitely a bug in the compiler (dirty bit) guard for CheckStoreTraced. CheckStoreTraced is only supposed to be called for stores through traced references, not untraced. In this case, we have a *unsafe* creation of an UNTRACED REF REFANY. I will fix the compiler to emit the guard and the call to CheckStoreTraced only for traced references. To propagate the fix we will need to bootstrap a new bootstrap compiler (recompile the compiler with the change and then use the new compiler to recompile the libraries the compiler depends on and compile a new bootstrap compiler). This should then be used to rebuild binaries without the bug. On Dec 30, 2006, at 7:41 PM, Rodney M. Bates wrote: > I tracked down a bug unpickling to the following. When executing > in ConvertPacking.Read, at ConvertPacking.m3:327, this code: > > WITH ref = LOOPHOLE(dest, UNTRACED REF REFANY) DO > ref^ := v.readRef(nelem.refType); > END; > > has a compiler-generated call on RTCollector.CheckStoreTraced(ref). > CheckStoreTraced expects ref to be a normal reference to an object, > computes the address of its header (4 bytes less), and sets the > dirty bit. > > But ConvertPacking is reading in to a field of a recently created > object that is not first in the object. It computes ref to point > to the field, and CheckStoreTraced actually steps on the previous > real field instead of the header. > > It looks like the actions of CheckStoreTraced are needed, but I > don't right off hand see how to recode Convert to fix this. It's > use of ref can't be moved. Presumably, there could be other unsafe > code elsewhere using the same technique to store data. > > Does the compiler need a different criterion on when to generate > the call on CheckStoreTraced? ref is an UNTRACED REF here, but it > still is pointing inside a traced object. Maybe people who modify > objects in this way need to explicitly call CheckStoreTraced? > > -- > ------------------------------------------------------------- > Rodney M. Bates, retired assistant professor > Dept. of Computer Science, Wichita State University > Wichita, KS 67260-0083 > 316-978-3922 > rodney.bates at wichita.edu > _______________________________________________ > M3devel mailing list > M3devel at elegosoft.com > https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel Antony Hosking | Associate Professor Dept of Computer Science | Office: +1 765 494-6001 Purdue University | Mobile: +1 765 427-5484 250 N. University Street | Email: hosking at cs.purdue.edu West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking _--_|\ / \ \_.--._/ ) v / From hosking at cs.purdue.edu Sun Jan 7 19:49:15 2007 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sun, 7 Jan 2007 13:49:15 -0500 Subject: [M3devel] A GC/compiler/Pickle interaction bug In-Reply-To: <45970723.5070102@wichita.edu> References: <45970723.5070102@wichita.edu> Message-ID: <16273A56-85C1-4CFA-81B6-402BF6CF036B@cs.purdue.edu> On Dec 30, 2006, at 7:41 PM, Rodney M. Bates wrote: > I tracked down a bug unpickling to the following. When executing > in ConvertPacking.Read, at ConvertPacking.m3:327, this code: > > WITH ref = LOOPHOLE(dest, UNTRACED REF REFANY) DO > ref^ := v.readRef(nelem.refType); > END; > > has a compiler-generated call on RTCollector.CheckStoreTraced(ref). > CheckStoreTraced expects ref to be a normal reference to an object, > computes the address of its header (4 bytes less), and sets the > dirty bit. > > But ConvertPacking is reading in to a field of a recently created > object that is not first in the object. It computes ref to point > to the field, and CheckStoreTraced actually steps on the previous > real field instead of the header. > > It looks like the actions of CheckStoreTraced are needed, but I > don't right off hand see how to recode Convert to fix this. It's > use of ref can't be moved. Presumably, there could be other unsafe > code elsewhere using the same technique to store data. Is CheckStoreTraced strictly needed in this case. According to the language definition, storing a REFANY through an untraced reference can hide the reference from the garbage collector: >> If u is an untraced reference to a traced variable t, then the >> validity of the traced references in t is implementation- >> dependent, since the garbage collector probably will not trace >> them through u. Thus, one should not expect CheckStoreTraced to be invoked in this case. If u aliases traced storage (even though u itself is untraced, which can only occur in UNSAFE code) we should arrange to dirty the traced storage via its tidy reference, using an explicit call to RTHooks.CheckStoreTraced, passing the tidy reference to the traced storage as argument. > > > Does the compiler need a different criterion on when to generate > the call on CheckStoreTraced? ref is an UNTRACED REF here, but it > still is pointing inside a traced object. Maybe people who modify > objects in this way need to explicitly call CheckStoreTraced? > > -- > ------------------------------------------------------------- > Rodney M. Bates, retired assistant professor > Dept. of Computer Science, Wichita State University > Wichita, KS 67260-0083 > 316-978-3922 > rodney.bates at wichita.edu > _______________________________________________ > M3devel mailing list > M3devel at elegosoft.com > https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel Antony Hosking | Associate Professor Dept of Computer Science | Office: +1 765 494-6001 Purdue University | Mobile: +1 765 427-5484 250 N. University Street | Email: hosking at cs.purdue.edu West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking _--_|\ / \ \_.--._/ ) v / From jayk123 at hotmail.com Mon Jan 8 02:08:47 2007 From: jayk123 at hotmail.com (j k) Date: Mon, 08 Jan 2007 01:08:47 +0000 Subject: [M3devel] anyone want to try Windows now? In-Reply-To: <46553.194.138.127.36.1167839743.squirrel@mail.elegosoft.com> Message-ID: 1) The prereqs should just be a C runtime .dll IF the release is built to require one. Which one is required varies among msvcrt20.dll, msvcrt40.dll, msvcrt.dll, msvcr70,dll, msvcr71.dll, msvcr80.dll. The first few are very widely distributed, the last few are redistributable. They can be "bundled" with the cm3 installation. They can be checked into cvs and somenow merged in with the cminstall-based setup. Upgrading existing systems /should/ just require getting the c running and running the upgrade.cmd. 2) It is very likely I broke the old install, and that it is easily fixed. The thing is, as I understand, the install is driven by configurable options in the cm3.cfg file. I removed all of them, reasonably appropriately/ correctly. However one of them is also where to unpack the files, so that is partly needed. The things to do, I think, not to contradict you are: Have folks test: a) install the latest release checkout the latest source build / upgrade run with it, build their own stuff, test whatever I have done this myself essentially so now others should try it. b) build a distribution and have folks test installing it, cminstall and all that A small number of folks, possibly just one, possibly just me, should initially do this, since there's little evidence it will work. I did automate much building a distribution, plus the Unix-based method probably works. See scripts\win\make-dist.cmd c) Folks should probably review what I did for intent, naming, interface, etc., besides actual correctness. In particular, naming and interfaces are kind of hard and I am kind of lazy. I moved the Windows stuff from scripts\*.cmd to scripts\win\*.cmd. For the import .libs I carved out \cm3\m3-win and so far just just cm3\m3-win\import-libs exists. Given that names aren't actually hierarchical in this system, that is probably a bad name, probably it should be sys-libs or win-syslibs or something. I am using "win" in new places to partly resolve the platform naming issue "win" short for "windows" of course, is "win32" and "win64", as I was saying most code is portable between the two, though "win" is kind of unsatisfactorily short d) the threading code still could use some tweaks I think, but it is not terrible, shouldn't block some initial testing e) decisions are needed as to which toolsets are supported and which should be used for a release I can pretty much claim support for any version of Visual C++, 2.0 through 8.0, and I have pretty much all of them installed, except like 4.2. I don't have the C runtime .h/.libs for all of them, since in particular the expression editions are sparse. 7.1 in particular lacks the ability to target the .dll and 8.0 express I forget, at least it is missing lots of windows parts. Therefore, like, if you want to target the .dll from 7.1 Express, you need the platform SDK. 7.1 Express is no longer available for download though, and this isn't quite the name of it. It is somewhat interesting to me to support more toolsets, or maybe just write our own? It looks like a good start was made on eliminating the need for a linker. However supporting static linking is still a good idea if folks are to distribute .dlls/.exes and not just .objs. The decision what to support is a bit of can of worms as there are very many to chose from. It also makes me wonder about a C-generating target in order to support "all" C compilers, etc... sorry, very tired, rambling... - Jay >From: "Olaf Wagner" >To: "j k" >CC: m3devel at elegosoft.com >Subject: Re: [M3devel] anyone want to try Windows now? >Date: Wed, 3 Jan 2007 16:55:43 +0100 (CET) > > >On Tue, January 2, 2007 5:30 pm, j k wrote: > >
Anyone want to try Windows now? > >
 
> >
What should work is installing the latest release -- > > 5.2.6.
> >
Checking out the whole tree, copying > > m3-sys\cminstall\src\config\NT386 to like \cm3\bin\cm3.cfg putting >cm3.exe's > > directory in %PATH%, running vcvars32.bat or simiplar to get a >compiler/linker > > in the path along with %include% and %lib% (sometimes this is done by >Visual > > C++ setup), though %include%/%lib% are hardly used, and running any of > > scripts\win\do* or scripts\win\upgrad or scripts\win\make-dist, or >cd'ing > > around the tree and running cm3, using any of a variety of versions of >Visual > > C++. (Note that sysinfo.cmd puts \cm3\lib in %LIB% and if you just cd >depend, > > and are using a Visual C++ Express Edition, without also the Windows >SDK, then > > you'll get errors -- the Express Editions lack the Win32 import .libs. > > m3-win\import-libs builds them and puts them in \cm3\lib.)
> >
 
> >
\cm3 is computed by cm3.cfg to be the directory above the > > directory that contains cm3.exe. So you don't have to edit cm3.cfg at > > all.
> >
 
> >
Of course probably some >machine/OS/configuration-specificity > > crept in and it probably only works for me.
> >
 
> >
If you build with Visual C++ 8.0, there is a >download/setup > > needed for machines without it installed, see m3-win\vcredist.txt.
> >
 
> >
I only tested on XP but a variety of versions of Windows >should > > work, esp. versions of NT (as opposed to 95/98)
> >
 
> >
Anyone have a bunch of test automation here?
> >
 
> >
The main problem was really just the infinite recursion >in > > startup.
> >
 
> >
Should a release be made soon then?
> >
 
> >Hi Jay, > >you seem to have done a lot of work for CM3 on Windows platforms; thanks >for that! I understand that most things are now working for you; but I'm >unsure about the actual state of the code and meaning of the above >announcement (as I haven't got much Windows experience). I think we should >proceed in two steps: > > 1. write up some documentation about the > > - needed prerequisites > - how to get and install them > - how to install/upgrade and use the system > > which can be understood and used by M3-experienced people. We will > then hopefully get some feedback from M3 users, can fix some problems, > and improve the documentation. We should also pick one or at most two > standard setups. > > 2. write up end-user documentation for installation and use of CM3 > on Windows systems based on the chosen standard setups. This should > be included in the CM3 www and doc packages and bundled with the > official NT386 release for CM3 5.4. We should have some test feedback > before we do that, though. > >Olaf >-- >Olaf Wagner >elego Software Solutions GmbH, Berlin, Germany _________________________________________________________________ Fixing up the home? Live Search can help http://imagine-windowslive.com/search/kits/default.aspx?kit=improve&locale=en-US&source=hmemailtaglinenov06&FORM=WLMTAG From hosking at cs.purdue.edu Tue Jan 9 19:06:46 2007 From: hosking at cs.purdue.edu (Tony Hosking) Date: Tue, 9 Jan 2007 13:06:46 -0500 Subject: [M3devel] A GC/compiler/Pickle interaction bug In-Reply-To: <45970723.5070102@wichita.edu> References: <45970723.5070102@wichita.edu> Message-ID: <924B960D-3F3C-419B-A7D3-3FB74B21C5CC@cs.purdue.edu> Rodney, I've checked in fixes to RTTypeMap and clients that should restore functional pickling support. For some reason my commit messages are awaiting moderator approval (it seems my commit id is not the same as my subscription to the m3commit list) before they can be sent out. Please make sure that unpickling now works for you. Best regards, Tony On Dec 30, 2006, at 7:41 PM, Rodney M. Bates wrote: > I tracked down a bug unpickling to the following. When executing > in ConvertPacking.Read, at ConvertPacking.m3:327, this code: > > WITH ref = LOOPHOLE(dest, UNTRACED REF REFANY) DO > ref^ := v.readRef(nelem.refType); > END; > > has a compiler-generated call on RTCollector.CheckStoreTraced(ref). > CheckStoreTraced expects ref to be a normal reference to an object, > computes the address of its header (4 bytes less), and sets the > dirty bit. > > But ConvertPacking is reading in to a field of a recently created > object that is not first in the object. It computes ref to point > to the field, and CheckStoreTraced actually steps on the previous > real field instead of the header. > > It looks like the actions of CheckStoreTraced are needed, but I > don't right off hand see how to recode Convert to fix this. It's > use of ref can't be moved. Presumably, there could be other unsafe > code elsewhere using the same technique to store data. > > Does the compiler need a different criterion on when to generate > the call on CheckStoreTraced? ref is an UNTRACED REF here, but it > still is pointing inside a traced object. Maybe people who modify > objects in this way need to explicitly call CheckStoreTraced? > > -- > ------------------------------------------------------------- > Rodney M. Bates, retired assistant professor > Dept. of Computer Science, Wichita State University > Wichita, KS 67260-0083 > 316-978-3922 > rodney.bates at wichita.edu > _______________________________________________ > M3devel mailing list > M3devel at elegosoft.com > https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel Antony Hosking | Associate Professor Dept of Computer Science | Office: +1 765 494-6001 Purdue University | Mobile: +1 765 427-5484 250 N. University Street | Email: hosking at cs.purdue.edu West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking _--_|\ / \ \_.--._/ ) v / From rodney.bates at wichita.edu Thu Jan 11 23:40:16 2007 From: rodney.bates at wichita.edu (Rodney M. Bates) Date: Thu, 11 Jan 2007 16:40:16 -0600 Subject: [M3devel] New setjmp/longjmp problem. Message-ID: <45A6BCD0.2000407@wichita.edu> On Mandriva 2007.0, LINUXLIBC6, all dynamically linked executables produced by either the CM3 or PM3 compilers segfault during initialization of the runtime. The problem occurs in longjmp. There is a replacement for setjmp in the cm3 distribution with this comment: # # Setjmp, _setjmp, and __setjmp are broken in glibc 2.0.7. # They share code with sigsetjmp which needs 2 arguments, and # this does not work well on the i386 where the caller must # pop the stack for the arguments when the call returns. # Indeed, their setjmp adds the missing argument and jumps to # sigsetjmp. Upon return, however, the caller pops one argument # and the second argument remains on the stack, making the stack # pointer 4 bytes away from its correct position. # # Below is a very simple reimplementation of _setjmp, the only function # used within the Modula-3 runtime. # The setjmp in glibc contains the line: xor %gs:0x18,%ecx at two places where the stack pointer and the return address are in %ecx. The replacement just stores these registers in the jmpbuf without molesting them. Up at least through libc-2.3.4 (where this problem does not occur), longjmp just reloads the stack and instruction pointers from the jmpbuf. This does not sound like the problem the comment identifies, but it clearly is inconsistent and would cause the setjmp/longjmp pair to fail. As of libc-2.4, the original brokenness of setjmp seems to have been fixed by doing the very same xor operations to these values when reloading them from the jmpbuf, in longjmp. The fault occurs inside RTThreadC.c, function Transfer, which calls setjmp and immediately passes the result to longjmp. Removing the replacement for setjmp and recompiling so that both setjmp and longjmp come from libc makes this segfault go away. Unfortunately, this just causes another segfault almost immediately after, when M3 runtime code attempts to use the contents of these registers from a jmpbuf, supplied by a different call on setjmp, where the values are now garbled by the original xor problem with setjmp. I am looking for suggestions on what to do. Possibilities that have occurred to me: 1. Also add an assembly code replacement for longjmp too, taken from an earlier libc. longjmp is quite a bit longer, and does some tricky stuff I have not dug through yet. 2. Use the libc setjmp for values that are to be passed to longjmp and use the replacement setjmp for values that are to be used by the M3 runtime. This seems cleaner in the long run, but a preliminary grep reveals massive numbers of hits on "setjmp". I had been hoping there would only be a few. The two uses of jmpbuf values may not even be disjoint. This will probably affect other distributions as they go to later libc versions. Any suggestions would be appreciated. P.S: I had some cases where changing the M3 compilation to link statically made the problem go away, but now I can't reproduce them. Instead, bash and ldd claim "executable: No such file or directory", while "ls -l executable" and many other commands find "executable" just fine. -- ------------------------------------------------------------- Rodney M. Bates, retired assistant professor Dept. of Computer Science, Wichita State University Wichita, KS 67260-0083 316-978-3922 rodney.bates at wichita.edu From hosking at cs.purdue.edu Fri Jan 12 00:06:54 2007 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 11 Jan 2007 18:06:54 -0500 Subject: [M3devel] New setjmp/longjmp problem. In-Reply-To: <45A6BCD0.2000407@wichita.edu> References: <45A6BCD0.2000407@wichita.edu> Message-ID: <4F3F0030-3BDE-4F29-937D-486E3BDFBD7C@cs.purdue.edu> Is this with PTHREAD threading or POSIX? On Jan 11, 2007, at 5:40 PM, Rodney M. Bates wrote: > On Mandriva 2007.0, LINUXLIBC6, all dynamically linked executables > produced by > either the CM3 or PM3 compilers segfault during initialization of > the runtime. > The problem occurs in longjmp. There is a replacement for setjmp > in the cm3 > distribution with this comment: > > # > # Setjmp, _setjmp, and __setjmp are broken in glibc 2.0.7. > # They share code with sigsetjmp which needs 2 arguments, and > # this does not work well on the i386 where the caller must > # pop the stack for the arguments when the call returns. > # Indeed, their setjmp adds the missing argument and jumps to > # sigsetjmp. Upon return, however, the caller pops one argument > # and the second argument remains on the stack, making the stack > # pointer 4 bytes away from its correct position. > # > # Below is a very simple reimplementation of _setjmp, the only > function > # used within the Modula-3 runtime. > # > > The setjmp in glibc contains the line: > > xor %gs:0x18,%ecx > > at two places where the stack pointer and the return address are in > %ecx. The > replacement just stores these registers in the jmpbuf without > molesting them. > Up at least through libc-2.3.4 (where this problem does not occur), > longjmp > just reloads the stack and instruction pointers from the jmpbuf. > This does not > sound like the problem the comment identifies, but it clearly is > inconsistent > and would cause the setjmp/longjmp pair to fail. > > As of libc-2.4, the original brokenness of setjmp seems to have > been fixed by > doing the very same xor operations to these values when reloading > them from > the jmpbuf, in longjmp. The fault occurs inside RTThreadC.c, > function Transfer, > which calls setjmp and immediately passes the result to longjmp. > Removing the > replacement for setjmp and recompiling so that both setjmp and > longjmp come from > libc makes this segfault go away. > > Unfortunately, this just causes another segfault almost immediately > after, > when M3 runtime code attempts to use the contents of these > registers from > a jmpbuf, supplied by a different call on setjmp, where the values > are now > garbled by the original xor problem with setjmp. > > I am looking for suggestions on what to do. Possibilities that > have occurred > to me: > > 1. Also add an assembly code replacement for longjmp too, taken > from an earlier > libc. longjmp is quite a bit longer, and does some tricky > stuff I have not > dug through yet. > > 2. Use the libc setjmp for values that are to be passed to longjmp > and use the > replacement setjmp for values that are to be used by the M3 > runtime. This > seems cleaner in the long run, but a preliminary grep reveals > massive numbers > of hits on "setjmp". I had been hoping there would only be a > few. The two > uses of jmpbuf values may not even be disjoint. > > This will probably affect other distributions as they go to later > libc versions. > Any suggestions would be appreciated. > > P.S: I had some cases where changing the M3 compilation to link > statically made > the problem go away, but now I can't reproduce them. Instead, bash > and ldd claim > "executable: No such file or directory", while "ls -l executable" > and many other > commands find "executable" just fine. > > > -- > ------------------------------------------------------------- > Rodney M. Bates, retired assistant professor > Dept. of Computer Science, Wichita State University > Wichita, KS 67260-0083 > 316-978-3922 > rodney.bates at wichita.edu > _______________________________________________ > M3devel mailing list > M3devel at elegosoft.com > https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel Antony Hosking | Associate Professor Dept of Computer Science | Office: +1 765 494-6001 Purdue University | Mobile: +1 765 427-5484 250 N. University Street | Email: hosking at cs.purdue.edu West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking _--_|\ / \ \_.--._/ ) v / From rodney.bates at wichita.edu Fri Jan 12 03:11:45 2007 From: rodney.bates at wichita.edu (Rodney M. Bates) Date: Thu, 11 Jan 2007 20:11:45 -0600 Subject: [M3devel] New setjmp/longjmp problem. In-Reply-To: <4F3F0030-3BDE-4F29-937D-486E3BDFBD7C@cs.purdue.edu> References: <45A6BCD0.2000407@wichita.edu> <4F3F0030-3BDE-4F29-937D-486E3BDFBD7C@cs.purdue.edu> Message-ID: <45A6EE61.40101@wichita.edu> How do I tell? Tony Hosking wrote: > Is this with PTHREAD threading or POSIX? > > On Jan 11, 2007, at 5:40 PM, Rodney M. Bates wrote: > >> On Mandriva 2007.0, LINUXLIBC6, all dynamically linked executables >> produced by >> either the CM3 or PM3 compilers segfault during initialization of the >> runtime. >> The problem occurs in longjmp. There is a replacement for setjmp in >> the cm3 >> distribution with this comment: >> >> # >> # Setjmp, _setjmp, and __setjmp are broken in glibc 2.0.7. >> # They share code with sigsetjmp which needs 2 arguments, and >> # this does not work well on the i386 where the caller must >> # pop the stack for the arguments when the call returns. >> # Indeed, their setjmp adds the missing argument and jumps to >> # sigsetjmp. Upon return, however, the caller pops one argument >> # and the second argument remains on the stack, making the stack >> # pointer 4 bytes away from its correct position. >> # >> # Below is a very simple reimplementation of _setjmp, the only function >> # used within the Modula-3 runtime. >> # >> >> The setjmp in glibc contains the line: >> >> xor %gs:0x18,%ecx >> >> at two places where the stack pointer and the return address are in >> %ecx. The >> replacement just stores these registers in the jmpbuf without >> molesting them. >> Up at least through libc-2.3.4 (where this problem does not occur), >> longjmp >> just reloads the stack and instruction pointers from the jmpbuf. >> This does not >> sound like the problem the comment identifies, but it clearly is >> inconsistent >> and would cause the setjmp/longjmp pair to fail. >> >> As of libc-2.4, the original brokenness of setjmp seems to have been >> fixed by >> doing the very same xor operations to these values when reloading >> them from >> the jmpbuf, in longjmp. The fault occurs inside RTThreadC.c, >> function Transfer, >> which calls setjmp and immediately passes the result to longjmp. >> Removing the >> replacement for setjmp and recompiling so that both setjmp and >> longjmp come from >> libc makes this segfault go away. >> >> Unfortunately, this just causes another segfault almost immediately >> after, >> when M3 runtime code attempts to use the contents of these registers >> from >> a jmpbuf, supplied by a different call on setjmp, where the values >> are now >> garbled by the original xor problem with setjmp. >> >> I am looking for suggestions on what to do. Possibilities that have >> occurred >> to me: >> >> 1. Also add an assembly code replacement for longjmp too, taken from >> an earlier >> libc. longjmp is quite a bit longer, and does some tricky stuff >> I have not >> dug through yet. >> >> 2. Use the libc setjmp for values that are to be passed to longjmp >> and use the >> replacement setjmp for values that are to be used by the M3 >> runtime. This >> seems cleaner in the long run, but a preliminary grep reveals >> massive numbers >> of hits on "setjmp". I had been hoping there would only be a >> few. The two >> uses of jmpbuf values may not even be disjoint. >> >> This will probably affect other distributions as they go to later >> libc versions. >> Any suggestions would be appreciated. >> >> P.S: I had some cases where changing the M3 compilation to link >> statically made >> the problem go away, but now I can't reproduce them. Instead, bash >> and ldd claim >> "executable: No such file or directory", while "ls -l executable" and >> many other >> commands find "executable" just fine. >> >> >> -- >> ------------------------------------------------------------- >> Rodney M. Bates, retired assistant professor >> Dept. of Computer Science, Wichita State University >> Wichita, KS 67260-0083 >> 316-978-3922 >> rodney.bates at wichita.edu >> _______________________________________________ >> M3devel mailing list >> M3devel at elegosoft.com >> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel > > > Antony Hosking | Associate Professor > Dept of Computer Science | Office: +1 765 494-6001 > Purdue University | Mobile: +1 765 427-5484 > 250 N. University Street | Email: hosking at cs.purdue.edu > West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking > _--_|\ > / \ > \_.--._/ ) > v / > > > > -- ------------------------------------------------------------- Rodney M. Bates, retired assistant professor Dept. of Computer Science, Wichita State University Wichita, KS 67260-0083 316-978-3922 rodney.bates at wichita.edu From hosking at cs.purdue.edu Fri Jan 12 03:52:42 2007 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 11 Jan 2007 21:52:42 -0500 Subject: [M3devel] New setjmp/longjmp problem. In-Reply-To: <45A6EE61.40101@wichita.edu> References: <45A6BCD0.2000407@wichita.edu> <4F3F0030-3BDE-4F29-937D-486E3BDFBD7C@cs.purdue.edu> <45A6EE61.40101@wichita.edu> Message-ID: <8D44B3DF-F29F-437C-A49F-14F86D2CAFA2@cs.purdue.edu> Did you build with -DPTHREAD specified as an argument to cm3 when building m3core? On Jan 11, 2007, at 9:11 PM, Rodney M. Bates wrote: > How do I tell? > > Tony Hosking wrote: >> Is this with PTHREAD threading or POSIX? >> On Jan 11, 2007, at 5:40 PM, Rodney M. Bates wrote: >>> On Mandriva 2007.0, LINUXLIBC6, all dynamically linked >>> executables produced by >>> either the CM3 or PM3 compilers segfault during initialization >>> of the runtime. >>> The problem occurs in longjmp. There is a replacement for >>> setjmp in the cm3 >>> distribution with this comment: >>> >>> # >>> # Setjmp, _setjmp, and __setjmp are broken in glibc 2.0.7. >>> # They share code with sigsetjmp which needs 2 arguments, and >>> # this does not work well on the i386 where the caller must >>> # pop the stack for the arguments when the call returns. >>> # Indeed, their setjmp adds the missing argument and jumps to >>> # sigsetjmp. Upon return, however, the caller pops one argument >>> # and the second argument remains on the stack, making the stack >>> # pointer 4 bytes away from its correct position. >>> # >>> # Below is a very simple reimplementation of _setjmp, the only >>> function >>> # used within the Modula-3 runtime. >>> # >>> >>> The setjmp in glibc contains the line: >>> >>> xor %gs:0x18,%ecx >>> >>> at two places where the stack pointer and the return address are >>> in %ecx. The >>> replacement just stores these registers in the jmpbuf without >>> molesting them. >>> Up at least through libc-2.3.4 (where this problem does not >>> occur), longjmp >>> just reloads the stack and instruction pointers from the >>> jmpbuf. This does not >>> sound like the problem the comment identifies, but it clearly is >>> inconsistent >>> and would cause the setjmp/longjmp pair to fail. >>> >>> As of libc-2.4, the original brokenness of setjmp seems to have >>> been fixed by >>> doing the very same xor operations to these values when >>> reloading them from >>> the jmpbuf, in longjmp. The fault occurs inside RTThreadC.c, >>> function Transfer, >>> which calls setjmp and immediately passes the result to >>> longjmp. Removing the >>> replacement for setjmp and recompiling so that both setjmp and >>> longjmp come from >>> libc makes this segfault go away. >>> >>> Unfortunately, this just causes another segfault almost >>> immediately after, >>> when M3 runtime code attempts to use the contents of these >>> registers from >>> a jmpbuf, supplied by a different call on setjmp, where the >>> values are now >>> garbled by the original xor problem with setjmp. >>> >>> I am looking for suggestions on what to do. Possibilities that >>> have occurred >>> to me: >>> >>> 1. Also add an assembly code replacement for longjmp too, taken >>> from an earlier >>> libc. longjmp is quite a bit longer, and does some tricky >>> stuff I have not >>> dug through yet. >>> >>> 2. Use the libc setjmp for values that are to be passed to >>> longjmp and use the >>> replacement setjmp for values that are to be used by the M3 >>> runtime. This >>> seems cleaner in the long run, but a preliminary grep >>> reveals massive numbers >>> of hits on "setjmp". I had been hoping there would only be >>> a few. The two >>> uses of jmpbuf values may not even be disjoint. >>> >>> This will probably affect other distributions as they go to >>> later libc versions. >>> Any suggestions would be appreciated. >>> >>> P.S: I had some cases where changing the M3 compilation to link >>> statically made >>> the problem go away, but now I can't reproduce them. Instead, >>> bash and ldd claim >>> "executable: No such file or directory", while "ls -l >>> executable" and many other >>> commands find "executable" just fine. >>> >>> >>> -- >>> ------------------------------------------------------------- >>> Rodney M. Bates, retired assistant professor >>> Dept. of Computer Science, Wichita State University >>> Wichita, KS 67260-0083 >>> 316-978-3922 >>> rodney.bates at wichita.edu >>> _______________________________________________ >>> M3devel mailing list >>> M3devel at elegosoft.com >>> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel >> Antony Hosking | Associate Professor >> Dept of Computer Science | Office: +1 765 494-6001 >> Purdue University | Mobile: +1 765 427-5484 >> 250 N. University Street | Email: hosking at cs.purdue.edu >> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking >> _--_|\ >> / \ >> \_.--._/ ) >> v / > > -- > ------------------------------------------------------------- > Rodney M. Bates, retired assistant professor > Dept. of Computer Science, Wichita State University > Wichita, KS 67260-0083 > 316-978-3922 > rodney.bates at wichita.edu Antony Hosking | Associate Professor Dept of Computer Science | Office: +1 765 494-6001 Purdue University | Mobile: +1 765 427-5484 250 N. University Street | Email: hosking at cs.purdue.edu West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking _--_|\ / \ \_.--._/ ) v / From vapier at gentoo.org Fri Jan 12 06:04:04 2007 From: vapier at gentoo.org (Mike Frysinger) Date: Fri, 12 Jan 2007 00:04:04 -0500 Subject: [M3devel] New setjmp/longjmp problem. In-Reply-To: <45A6BCD0.2000407@wichita.edu> References: <45A6BCD0.2000407@wichita.edu> Message-ID: <200701120004.12182.vapier@gentoo.org> On Thursday 11 January 2007 17:40, Rodney M. Bates wrote: > The setjmp in glibc contains the line: > > xor %gs:0x18,%ecx glibc has started mangling the thread stack poiner in newer versions ... it's a "feature" see the PTR_MANGLE defines in the i386 dirs -mike -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 827 bytes Desc: not available URL: From vapier at gentoo.org Fri Jan 12 06:04:58 2007 From: vapier at gentoo.org (Mike Frysinger) Date: Fri, 12 Jan 2007 00:04:58 -0500 Subject: [M3devel] New setjmp/longjmp problem. In-Reply-To: <45A6EE61.40101@wichita.edu> References: <45A6BCD0.2000407@wichita.edu> <4F3F0030-3BDE-4F29-937D-486E3BDFBD7C@cs.purdue.edu> <45A6EE61.40101@wichita.edu> Message-ID: <200701120005.09532.vapier@gentoo.org> On Thursday 11 January 2007 21:11, Rodney M. Bates wrote: > How do I tell? the threading implementation doesnt matter, but you can find out by doing: /lib/libc.so.6 it'll tell you whether you're using linuxthreads or nptl (most likely nptl since fedora switched to that sometime ago) -mike -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 827 bytes Desc: not available URL: From hosking at cs.purdue.edu Fri Jan 12 13:59:18 2007 From: hosking at cs.purdue.edu (Antony Hosking) Date: Fri, 12 Jan 2007 07:59:18 -0500 Subject: [M3devel] New setjmp/longjmp problem. In-Reply-To: <200701120004.12182.vapier@gentoo.org> References: <45A6BCD0.2000407@wichita.edu> <200701120004.12182.vapier@gentoo.org> Message-ID: Right, this is the problem I was talking about. We need to fix the old POSIX implementation of Modula-3 threading to use use the makecontext call, and we should be using getcontext/setcontext for thread switching instead of setjmp/longjmp. The new PTHREAD implementation of Modula-3 threading (which marries a Modula-3 thread to a system pthread) should work just fine. I would suggest rebuilding m3core with the -DPTHREAD option to make it use pthread- based threading. On 12/01/2007, at 12:04 AM, Mike Frysinger wrote: > On Thursday 11 January 2007 17:40, Rodney M. Bates wrote: >> The setjmp in glibc contains the line: >> >> xor %gs:0x18,%ecx > > glibc has started mangling the thread stack poiner in newer > versions ... it's > a "feature" > > see the PTR_MANGLE defines in the i386 dirs > -mike > _______________________________________________ > M3devel mailing list > M3devel at elegosoft.com > https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel Antony Hosking | Associate Professor Dept of Computer Sciences | Office: (765) 494-6001 Purdue University | Mobile: (765) 427-5484 250 N. University Street | hosking at cs.purdue.edu West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking _--_|\ / \ \_.--._/ ) v / From hosking at cs.purdue.edu Fri Jan 12 14:00:26 2007 From: hosking at cs.purdue.edu (Antony Hosking) Date: Fri, 12 Jan 2007 08:00:26 -0500 Subject: [M3devel] New setjmp/longjmp problem. In-Reply-To: <200701120005.09532.vapier@gentoo.org> References: <45A6BCD0.2000407@wichita.edu> <4F3F0030-3BDE-4F29-937D-486E3BDFBD7C@cs.purdue.edu> <45A6EE61.40101@wichita.edu> <200701120005.09532.vapier@gentoo.org> Message-ID: <38B49BC4-E681-4785-828B-B98B9EF9162B@cs.purdue.edu> I was talking about the Modula-3 implementation of threads: user- level (POSIX) or on top of system threads (PTHREAD). On 12/01/2007, at 12:04 AM, Mike Frysinger wrote: > On Thursday 11 January 2007 21:11, Rodney M. Bates wrote: >> How do I tell? > > the threading implementation doesnt matter, but you can find out by > doing: > /lib/libc.so.6 > it'll tell you whether you're using linuxthreads or nptl (most > likely nptl > since fedora switched to that sometime ago) > -mike Antony Hosking | Associate Professor Dept of Computer Sciences | Office: (765) 494-6001 Purdue University | Mobile: (765) 427-5484 250 N. University Street | hosking at cs.purdue.edu West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking _--_|\ / \ \_.--._/ ) v / From rodney.bates at wichita.edu Fri Jan 12 18:48:30 2007 From: rodney.bates at wichita.edu (Rodney M. Bates) Date: Fri, 12 Jan 2007 11:48:30 -0600 Subject: [M3devel] New setjmp/longjmp problem. In-Reply-To: <8D44B3DF-F29F-437C-A49F-14F86D2CAFA2@cs.purdue.edu> References: <45A6BCD0.2000407@wichita.edu> <4F3F0030-3BDE-4F29-937D-486E3BDFBD7C@cs.purdue.edu> <45A6EE61.40101@wichita.edu> <8D44B3DF-F29F-437C-A49F-14F86D2CAFA2@cs.purdue.edu> Message-ID: <45A7C9EE.3080402@wichita.edu> Tony Hosking wrote: > Did you build with -DPTHREAD specified as an argument to cm3 when > building m3core? No. I didn't specify it myself, and the string "DPTHREAD" doesn't appear anywhere in the entire distribution, which is almost untouched CVS. I will try rebuilding m3core with -DPTHREAD. > > On Jan 11, 2007, at 9:11 PM, Rodney M. Bates wrote: > >> How do I tell? >> >> Tony Hosking wrote: >> >>> Is this with PTHREAD threading or POSIX? >>> On Jan 11, 2007, at 5:40 PM, Rodney M. Bates wrote: -- ------------------------------------------------------------- Rodney M. Bates, retired assistant professor Dept. of Computer Science, Wichita State University Wichita, KS 67260-0083 316-978-3922 rodney.bates at wichita.edu From hosking at cs.purdue.edu Fri Jan 12 19:09:50 2007 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 12 Jan 2007 13:09:50 -0500 Subject: [M3devel] New setjmp/longjmp problem. In-Reply-To: <45A7C9EE.3080402@wichita.edu> References: <45A6BCD0.2000407@wichita.edu> <4F3F0030-3BDE-4F29-937D-486E3BDFBD7C@cs.purdue.edu> <45A6EE61.40101@wichita.edu> <8D44B3DF-F29F-437C-A49F-14F86D2CAFA2@cs.purdue.edu> <45A7C9EE.3080402@wichita.edu> Message-ID: Yes, -DPTHREAD is not built by default. We should probably do something about that so that for certain targets we do use -DPTHREAD. On Jan 12, 2007, at 12:48 PM, Rodney M. Bates wrote: > > > Tony Hosking wrote: >> Did you build with -DPTHREAD specified as an argument to cm3 when >> building m3core? > > No. I didn't specify it myself, and the string "DPTHREAD" doesn't > appear > anywhere in the entire distribution, which is almost untouched CVS. > > I will try rebuilding m3core with -DPTHREAD. > >> On Jan 11, 2007, at 9:11 PM, Rodney M. Bates wrote: >>> How do I tell? >>> >>> Tony Hosking wrote: >>> >>>> Is this with PTHREAD threading or POSIX? >>>> On Jan 11, 2007, at 5:40 PM, Rodney M. Bates wrote: > > -- > ------------------------------------------------------------- > Rodney M. Bates, retired assistant professor > Dept. of Computer Science, Wichita State University > Wichita, KS 67260-0083 > 316-978-3922 > rodney.bates at wichita.edu Antony Hosking | Associate Professor Dept of Computer Science | Office: +1 765 494-6001 Purdue University | Mobile: +1 765 427-5484 250 N. University Street | Email: hosking at cs.purdue.edu West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking _--_|\ / \ \_.--._/ ) v / From rodney.bates at wichita.edu Fri Jan 12 22:21:01 2007 From: rodney.bates at wichita.edu (Rodney M. Bates) Date: Fri, 12 Jan 2007 15:21:01 -0600 Subject: [M3devel] New setjmp/longjmp problem. In-Reply-To: <45A7C9EE.3080402@wichita.edu> References: <45A6BCD0.2000407@wichita.edu> <4F3F0030-3BDE-4F29-937D-486E3BDFBD7C@cs.purdue.edu> <45A6EE61.40101@wichita.edu> <8D44B3DF-F29F-437C-A49F-14F86D2CAFA2@cs.purdue.edu> <45A7C9EE.3080402@wichita.edu> Message-ID: <45A7FBBD.6030709@wichita.edu> Rodney M. Bates wrote: > > > Tony Hosking wrote: > >> Did you build with -DPTHREAD specified as an argument to cm3 when >> building m3core? > > > No. I didn't specify it myself, and the string "DPTHREAD" doesn't appear > anywhere in the entire distribution, which is almost untouched CVS. > > I will try rebuilding m3core with -DPTHREAD. Something is missing in my setup: rodney at runnymede:~/proj/m3/exp/format5/cm3$ rm -f LINUXLIBC6/* rodney at runnymede:~/proj/m3/exp/format5/cm3$ cm3 --- building in LINUXLIBC6 --- inhale test.mx inhale /usr/local/cm3/pkg/m3core/LINUXLIBC6/libm3core.a inhale /usr/local/cm3/pkg/libm3/LINUXLIBC6/libm3.a new source -> compiling Format.i3 m3front ../src/Format.i3 -w1 /usr/local/cm3/bin/cm3cg -quiet Format.ic -o Format.is -fPIC -gstabs+ /usr/bin/as Format.is -o Format.io new source -> compiling Format.m3 m3front ../src/Format.m3 -w1 "../src/Format.m3", line 65: warning: not used (LRec) "../src/Format.m3", line 62: warning: not used (GRec) 2 warnings encountered /usr/local/cm3/bin/cm3cg -quiet Format.mc -o Format.ms -fPIC -gstabs+ /usr/bin/as Format.ms -o Format.mo new source -> compiling Test.m3 m3front ../src/Test.m3 -w1 /usr/local/cm3/bin/cm3cg -quiet Test.mc -o Test.ms -fPIC -gstabs+ /usr/bin/as Test.ms -o Test.mo exhale test.mx -> linking test Fatal Error: incomplete program ThreadPosix.i3: missing object types: _t1541f475 imported by: WrClass.i3 rm m3make.args cd .. rodney at runnymede:~/proj/m3/exp/format5/cm3$ This is after recompiling m3core with cm3 -DPHTREAD and cm3 -DPHTEAD ship, with the changes to cm3.cfg given below. I have two versions of libpthread: rodney at runnymede:~/proj/m3/cm3-fresh/cm3-5.4/m3-libs/m3core$ find /lib -name "*pthread*" /lib/i686/libpthread-2.4.so /lib/i686/libpthread.so.0 /lib/libpthread-2.4.so /lib/libpthread.so.0 rodney at runnymede:~/proj/m3/cm3-fresh/cm3-5.4/m3-libs/m3core$ ll /lib/libpthread* -rwxr-xr-x 1 root root 86345 Jul 24 15:20 /lib/libpthread-2.4.so lrwxrwxrwx 1 root root 17 Sep 28 18:37 /lib/libpthread.so.0 -> libpthread-2.4.so rodney at runnymede:~/proj/m3/cm3-fresh/cm3-5.4/m3-libs/m3core$ ll /lib/i686/libpthread* -rw-r--r-- 1 root root 90680 Jul 24 15:20 /lib/i686/libpthread-2.4.so lrwxrwxrwx 1 root root 17 Sep 28 18:37 /lib/i686/libpthread.so.0 -> libpthread-2.4.so I tried both versions with the same result. I edited my cm3.cfg to add PTHREAD to SYSTEM_LIBS: %------------------------------------------------ external system libraries --- % SYSTEM_LIBS provides a mapping from Modula-3 names for the common % external libraries to site-dependent information about how they % are accessed. If SYSTEM_LIBS{x} is defined it should be a list % of linker arguments that are used when linking against that library. % If SYSTEM_LIBS{x} is not defined, the Modula-3 system will assume % that the library is not available. SYSTEM_LIBS = { "LIBC" : [ "-lm" ], %-- not on most Linux platforms % "LEX-YACC" : [ "-Xlinker", "-Bdynamic", BEGIN_CONFIG % "Where are the lex/yacc libraries?" % 11 "libl.so" % 12 "/usr/lib" % 12 "/usr/local/lib" % 12 "/usr/local/gnu/lib" % 13 "/usr/lib" % END_CONFIG, "-ll" ], "FLEX-BISON" : [ "-L/usr/lib", "-lfl" ], "POSTGRES95" : [ "-Xlinker", "-Bdynamic", "-L/usr/lib", "-lpq" ], "OPENGL" : [ "-Xlinker", "-Bdynamic", "-L/usr/lib", "-lGLU", "-lGL", "-lXext" ], "ODBC" : [ "-Xlinker", "-Bdynamic", "-L/usr/local/lib", "-lodbc" ], "MOTIF" : [ "-Xlinker", "-Bdynamic", "-L/usr/lib", "-lXm" ], "X11" : [ "-Xlinker", "-Bdynamic", "-L/usr/lib", "-lXaw", "-lXmu", "-lXext", "-lXt", "-lSM", "-lICE", "-lX11" ], "TCP" : [ ], "PTHREAD" : [ "-Xlinker", "-Bdynamic", "-L/lib", "-lpthread" ] } % SYSTEM_LIBORDER defines the order in which SYSTEM_LIBS should be % scanned by the linker. SYSTEM_LIBORDER = [ "OPENGL", "DECPEX", "MOTIF", "X11", "TCP", "ODBC", "POSTGRES95", "FLEX-BISON", "LEX-YACC", "LIBC", "PTHREAD" ] Anybody have any clues? -- ------------------------------------------------------------- Rodney M. Bates, retired assistant professor Dept. of Computer Science, Wichita State University Wichita, KS 67260-0083 316-978-3922 rodney.bates at wichita.edu From jayk123 at hotmail.com Sun Jan 14 02:10:39 2007 From: jayk123 at hotmail.com (j k) Date: Sun, 14 Jan 2007 01:10:39 +0000 Subject: [M3devel] crash in released cminstall on win32, minor.. Message-ID: crash in cminstall the latest release 5.2.6 or so, like if you just press return here without typing something, not sure it repros consistently, not sure I'll get to it, since I removed most of the need for configuration...: What directory contains the Microsoft Visual C++ libraries? *** *** runtime error: *** Attempt to reference an illegal memory location. *** pc = 0x445d24 = Length + 0x24 in ..\src\text\Text.m3 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x12fcc0 0x456040 SystemError + 0x66 in ..\src\runtime\NT386\RTSignal.m3 0x12fcf4 0x445d24 Length + 0x24 in ..\src\text\Text.m3 0x12fd24 0x406aa8 FindChars + 0x16 in ..\src\Text2.m3 0x12fdcc 0x408080 FilenameWithoutSpaces + 0x65 in ..\src\OSWIN32.m3 0x12fe64 0x40a80d GenConfig + 0xf51 in ..\src\Main.m3 0x12fe98 0x408e1d DoIt + 0x51d in ..\src\Main.m3 0x12feb0 0x40c222 Main_M3 + 0x48 in ..\src\Main.m3 _________________________________________________________________ Find sales, coupons, and free shipping, all in one place! ?MSN Shopping Sales & Deals http://shopping.msn.com/content/shp/?ctid=198,ptnrid=176,ptnrdata=200639 From jayk123 at hotmail.com Sun Jan 14 17:39:43 2007 From: jayk123 at hotmail.com (j k) Date: Sun, 14 Jan 2007 16:39:43 +0000 Subject: [M3devel] crash in released cminstall on win32, minor.. In-Reply-To: <45A9A771020000D700013820@SRCMAIL.scires.com> Message-ID: Randy, I changed cm3.cfg to not use full paths. To just run cl, link, pass kernel32.lib on the command line. What you do is first run vcvars32.bat or such that set %path%, %lib%, and %include%. The path to the Modula-3 installation itself, like to find mklib.exe, can be found via path()\.. in Quake, no need to hardcode it. As long as cm3.exe is in the path and the "normal" layout is used. Environment variables can be used to override, making a new distribution might use that, to use the mklib from a previous build to make a new from-scratch build (or could just copy mklib and the compiler over). Thus, no configuration is needed. There are pluses and minuses to this approach. Should a particular CM3 install be "bound" to a particular Visual C++ compiler/linker? Or should be allowed to "float" as the environment changes? Plus cminstall still needs to prompt for where to install. I don't know if that depends on the configuration stuff I removed. I'll be trying it out soon. My CM3 install works with a variety of Visual C++ / Platform SDK installs. Including Visual C++ 2.0, 4.0, 5.0, 7.0, 7.1, 8.0, including the free 7.1 and 8.0 downloads, I think without a dependency on the Platform SDK, since I regenerated import .libs. I was just working on "make-dist.cmd", need to do a bit more end-to-end-from-scratch testing and will put a distribution up on m3.elegosoft.com for people to try. Just have to automate the tar commands and try running cminstall, trivial stuff. I'm aware of the 7.1 and 8.0 and SDK downloads. 7.1 is no longer available. I test it out though. Oh, right, it is the one that lacks msvcrt.lib. So for that I use the Platform SDK. 8.0 seems to expire after a month, at least the IDE, not sure about the command line, maybe not. (unless you register it) - Jay >From: "Randy Coleburn" >To: ,"j k" >Subject: Re: [M3devel] crash in released cminstall on win32, minor.. >Date: Sun, 14 Jan 2007 03:45:53 -0500 > >Hi Jay: > >I've been out of the M3 loop for awhile, but I'm not sure why you are >trying not to deal with configuration on Windows. My recollection is >that the cm3.cfg has to be set to know where you've installed stuff on >your Windows machine. Microsoft now makes available for FREE a version >of their C++ compiler and linker along with a FREE Windows SDK that >allows for native mode (non .NET) compilation and linking. I've used >these with success on my old version of cm3. I have not yet tried to >install a new version. > >The free C++ is at: http://msdn.microsoft.com/vstudio/express/ >The free SDK is at: >http://www.microsoft.com/downloads/details.aspx?familyid=0BAF2B35-C656-4969-ACE8-E4C0C0716ADB&displaylang=en >Directions on how to install the SDK are at: >http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/default.aspx > >Regards, >Randy > >Randy C. Coleburn >Senior Systems Engineer, Communications, Networks, & Electronics >Division (CNE) >Corporate & Atlanta Information Systems Security Manager (ISSM) >Scientific Research Corporation >2300 Windy Ridge Parkway, Suite 400 South, Atlanta, Georgia 30339 >voice: (770) 989-9464, email: RColeburn at SciRes.com, fax: (770) >989-9497 > >Quality Policy: "SRC CNE Division is committed to delivering >continually improving research & engineering excellence that meets or >exceeds customer requirements." > > >>> "j k" 1/13/2007 8:10 PM >>> > >crash in cminstall the latest release 5.2.6 or so, like if you just >press >return here without typing something, not sure it repros consistently, >not >sure I'll get to it, since I removed most of the need for >configuration...: > >What directory contains the Microsoft Visual C++ libraries? > > >*** >*** runtime error: >*** Attempt to reference an illegal memory location. >*** pc = 0x445d24 = Length + 0x24 in ..\src\text\Text.m3 >*** > >Stack trace: > FP PC Procedure >--------- --------- ------------------------------- >0x12fcc0 0x456040 SystemError + 0x66 in >..\src\runtime\NT386\RTSignal.m3 >0x12fcf4 0x445d24 Length + 0x24 in ..\src\text\Text.m3 >0x12fd24 0x406aa8 FindChars + 0x16 in ..\src\Text2.m3 >0x12fdcc 0x408080 FilenameWithoutSpaces + 0x65 in ..\src\OSWIN32.m3 >0x12fe64 0x40a80d GenConfig + 0xf51 in ..\src\Main.m3 >0x12fe98 0x408e1d DoIt + 0x51d in ..\src\Main.m3 >0x12feb0 0x40c222 Main_M3 + 0x48 in ..\src\Main.m3 > >_________________________________________________________________ >Find sales, coupons, and free shipping, all in one place! MSN Shopping > >Sales & Deals >http://shopping.msn.com/content/shp/?ctid=198,ptnrid=176,ptnrdata=200639 > >_______________________________________________ >M3devel mailing list >M3devel at elegosoft.com >https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel > > _________________________________________________________________ Communicate instantly! Use your Hotmail address to sign into Windows Live Messenger now. http://get.live.com/messenger/overview From jayk123 at hotmail.com Sun Jan 14 17:45:52 2007 From: jayk123 at hotmail.com (j k) Date: Sun, 14 Jan 2007 16:45:52 +0000 Subject: [M3devel] foreign threads Message-ID: I was just mentioning here the need to create threads with the Modula-3 libraries vs. "native" thread creation. I happened upon this related note: http://www.mono-project.com/Compacting_GC To perform the garbage collection, it is important that all the running threads are stopped,..... The Mono runtime will automatically register all threads that are created from the managed world with the garbage collector. But it is important that any threads that will communicate with the Mono runtime to register these threads with the garbage collector, so they can be stopped during a collection, developers embedding the Mono runtime must call the mono_gc_register_thread. I still think at least on Windows it tends to be easier -- you can rely on m3core.dll's DllMain(thread attach) notification to at least know about threads created after m3core.dll is loaded. That still leaves knowing about threads created before it was loaded. That's easy to handle inefficiently, hard to do efficiently. - Jay _________________________________________________________________ Find sales, coupons, and free shipping, all in one place! ?MSN Shopping Sales & Deals http://shopping.msn.com/content/shp/?ctid=198,ptnrid=176,ptnrdata=200639 From jayk123 at hotmail.com Sun Jan 14 17:53:47 2007 From: jayk123 at hotmail.com (j k) Date: Sun, 14 Jan 2007 16:53:47 +0000 Subject: [M3devel] crash in released cminstall on win32, minor.. In-Reply-To: Message-ID: Interesting article though. I haven't been using the IDE, just the command line and older IDEs for editors. I've been kind of stuck a while on Visual C++ 5/6 for an editor. It doesn't actually require a hefty per-machine install, you can just copy a few files around or run it from the network, and it has always worked on IA64 and AMD64, no matter the "installer blocks" in newer versions... Too bad it doesn't have replace-in-files or support Unicode though. - Jay >From: "j k" >To: rcoleburn at scires.com, m3devel at elegosoft.com >Subject: Re: [M3devel] crash in released cminstall on win32, minor.. >Date: Sun, 14 Jan 2007 16:39:43 +0000 > >Randy, > >I changed cm3.cfg to not use full paths. >To just run cl, link, pass kernel32.lib on the command line. >What you do is first run vcvars32.bat or such that set %path%, %lib%, and >%include%. > >The path to the Modula-3 installation itself, like to find mklib.exe, can >be found via path()\.. in Quake, no need to hardcode it. As long as cm3.exe >is in the path and the "normal" layout is used. Environment variables can >be used to override, making a new distribution might use that, to use the >mklib from a previous build to make a new from-scratch build (or could just >copy mklib and the compiler over). > >Thus, no configuration is needed. >There are pluses and minuses to this approach. > >Should a particular CM3 install be "bound" to a particular Visual C++ >compiler/linker? Or should be allowed to "float" as the environment >changes? > >Plus cminstall still needs to prompt for where to install. >I don't know if that depends on the configuration stuff I removed. >I'll be trying it out soon. > >My CM3 install works with a variety of Visual C++ / Platform SDK installs. >Including Visual C++ 2.0, 4.0, 5.0, 7.0, 7.1, 8.0, including the free 7.1 >and 8.0 downloads, I think without a dependency on the Platform SDK, since >I regenerated import .libs. > >I was just working on "make-dist.cmd", need to do a bit more >end-to-end-from-scratch testing and will put a distribution up on >m3.elegosoft.com for people to try. Just have to automate the tar commands >and try running cminstall, trivial stuff. > >I'm aware of the 7.1 and 8.0 and SDK downloads. 7.1 is no longer available. >I test it out though. Oh, right, it is the one that lacks msvcrt.lib. So >for that I use the Platform SDK. >8.0 seems to expire after a month, at least the IDE, not sure about the >command line, maybe not. (unless you register it) > >- Jay > > >>From: "Randy Coleburn" >>To: ,"j k" >>Subject: Re: [M3devel] crash in released cminstall on win32, minor.. >>Date: Sun, 14 Jan 2007 03:45:53 -0500 >> >>Hi Jay: >> >>I've been out of the M3 loop for awhile, but I'm not sure why you are >>trying not to deal with configuration on Windows. My recollection is >>that the cm3.cfg has to be set to know where you've installed stuff on >>your Windows machine. Microsoft now makes available for FREE a version >>of their C++ compiler and linker along with a FREE Windows SDK that >>allows for native mode (non .NET) compilation and linking. I've used >>these with success on my old version of cm3. I have not yet tried to >>install a new version. >> >>The free C++ is at: http://msdn.microsoft.com/vstudio/express/ >>The free SDK is at: >>http://www.microsoft.com/downloads/details.aspx?familyid=0BAF2B35-C656-4969-ACE8-E4C0C0716ADB&displaylang=en >>Directions on how to install the SDK are at: >>http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/default.aspx >> >>Regards, >>Randy >> >>Randy C. Coleburn >>Senior Systems Engineer, Communications, Networks, & Electronics >>Division (CNE) >>Corporate & Atlanta Information Systems Security Manager (ISSM) >>Scientific Research Corporation >>2300 Windy Ridge Parkway, Suite 400 South, Atlanta, Georgia 30339 >>voice: (770) 989-9464, email: RColeburn at SciRes.com, fax: (770) >>989-9497 >> >>Quality Policy: "SRC CNE Division is committed to delivering >>continually improving research & engineering excellence that meets or >>exceeds customer requirements." >> >> >>> "j k" 1/13/2007 8:10 PM >>> >> >>crash in cminstall the latest release 5.2.6 or so, like if you just >>press >>return here without typing something, not sure it repros consistently, >>not >>sure I'll get to it, since I removed most of the need for >>configuration...: >> >>What directory contains the Microsoft Visual C++ libraries? >> >> >>*** >>*** runtime error: >>*** Attempt to reference an illegal memory location. >>*** pc = 0x445d24 = Length + 0x24 in ..\src\text\Text.m3 >>*** >> >>Stack trace: >> FP PC Procedure >>--------- --------- ------------------------------- >>0x12fcc0 0x456040 SystemError + 0x66 in >>..\src\runtime\NT386\RTSignal.m3 >>0x12fcf4 0x445d24 Length + 0x24 in ..\src\text\Text.m3 >>0x12fd24 0x406aa8 FindChars + 0x16 in ..\src\Text2.m3 >>0x12fdcc 0x408080 FilenameWithoutSpaces + 0x65 in ..\src\OSWIN32.m3 >>0x12fe64 0x40a80d GenConfig + 0xf51 in ..\src\Main.m3 >>0x12fe98 0x408e1d DoIt + 0x51d in ..\src\Main.m3 >>0x12feb0 0x40c222 Main_M3 + 0x48 in ..\src\Main.m3 >> >>_________________________________________________________________ >>Find sales, coupons, and free shipping, all in one place! MSN Shopping >> >>Sales & Deals >>http://shopping.msn.com/content/shp/?ctid=198,ptnrid=176,ptnrdata=200639 >> >>_______________________________________________ >>M3devel mailing list >>M3devel at elegosoft.com >>https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel >> >> > >_________________________________________________________________ >Communicate instantly! Use your Hotmail address to sign into Windows Live >Messenger now. http://get.live.com/messenger/overview > >_______________________________________________ >M3devel mailing list >M3devel at elegosoft.com >https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel _________________________________________________________________ >From photos to predictions, The MSN Entertainment Guide to Golden Globes has it all. http://tv.msn.com/tv/globes2007/?icid=nctagline1 From dabenavidesd at yahoo.es Sun Jan 14 20:05:24 2007 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Sun, 14 Jan 2007 20:05:24 +0100 (CET) Subject: [M3devel] cm3-5.4 building on NT386 cat not recognized command Message-ID: <771939.15934.qm@web86908.mail.ukl.yahoo.com> Hi all: Im trynig to get build with the bootstrap of 5.2.6, do-cm3-base.cmd works well. Just got an error in about file C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs\src\m3makefile C:\cm3-5.4\cm3-cvs\cm3\scripts\win>do-cm3-base.cmd INSTALLROOT=C:\cm3 LIB=%INSTALLROOT%\LIB;%LIB% CM3ROOT=C:\\cm3-5.4\\cm3-cvs\\cm3 making C:\cm3-5.4\cm3-cvs\cm3\scripts\win\PKGS with C:\cm3-5.4\cm3-cvs\cm3\scripts\win\find-packages call C:\cm3-5.4\cm3-cvs\cm3\scripts\win\pkgmap -c "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" import-libs m3core libm3 m3middle m3quake m3scanner m3tools m3cgcat m3cggen m3bundle mklib dll2lib fix_nl libdump bitvector digraph parseparams realgeometry set slisp sortedtableextras table-list tempfiles tcp tapi === package C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs === +++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ unable to read ..\src\m3overrides, options "-override" and "-x" ignored. "C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs\src\m3makefile", line 178: quake runtime error: undefined variable: file_exists --procedure-- -line- -file--- include_dir 178 C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs\src\m3makefile 5 C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs\NT386\m3make.args Fatal Error: package build failed *** execution of cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3 failed with 0 *** I just commented the whole if of line 178 and it worked well. Then I tried the do-cm3-std.cmd, and it works well until formsview package, but when in m3-obliq got an error because a missing cat: -> linking vocgi.exe === package C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\voquery === +++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ new source -> compiling Main.m3 -> linking voquery.exe === package C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vorun === +++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ C:\cm3-5.4\cm3-cvs\cm3\m3-tools\m3bundle\NT386\m3bundle -name VORunBundle -FC:\D OCUME~1\LUISCA~1\CONFIG~1\Temp\qk new source -> compiling VORunBundle.i3 new source -> compiling VORunBundle.m3 new source -> compiling Main.m3 -> linking vorun.exe cat ..\src\vostart >> vostart "cat" is not recognized as an internal or external command, operable program or batch file. "C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vorun\src\m3makefile", line 33: quake runtime error: exit 1: cat ..\src\vostart >> vostart --procedure-- -line- -file--- exec -- include_dir 33 C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vorun\src\m3makefile 6 C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vorun\NT386\m3make.args Fatal Error: package build failed *** execution of cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3 failed with 0 *** error : call C:\cm3-5.4\cm3-cvs\cm3\scripts\win\pkgmap -c "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" import-libs m3core libm3 m3core m3middle m3quake m3scanner m3tools m3cgcat m3cggen m3bundle mklib dll2lib fix_nl libdump bitvector digraph parseparams realgeometry set slisp sortedtableextras table-list tempfiles tcl tcp udp libsio libbuf debug listfuncs patternmatching embutils m3tk-misc http binIO deepcopy sgml tapi serial m3tk mtex m3totex m3tohtml m3scan m3markup m3browser cmpdir cmpfp dirfp uniq netobj netobjd stubgen events rdwr sharedobj sharedobjgen odbc postgres95 db smalldb stable stablegen X11R4 ui PEX vbtkit cmvbt jvideo videovbt web formsvbtpixmaps formsvbt formsview formsedit codeview mg mgkit opengl anim3D zeus m3zume synloc synex metasyn obliqrt obliqparse obliq print obliq obliqlibemb obliqlibm3 obliqlibui obliqlibanim obliqsrvstd obliqsrvu i obliqbinmin obliqbinstd obliqbinui obliqbinanim visualobliq vocgi voquery voru n webvbt recordheap rehearsecode replayheap showheap shownew showthread pkl-fonts juno-machine juno-compiler juno-app cube calculator fisheye mentor failed C:\cm3-5.4\cm3-cvs\cm3\scripts\win> Can we use a native port of cat, or bunddle in the distro? Thanks, Daniel Benavides --------------------------------- LLama Gratis a cualquier PC del Mundo. Llamadas a fijos y m?viles desde 1 c?ntimo por minuto. http://es.voice.yahoo.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From jayk123 at hotmail.com Sun Jan 14 20:38:03 2007 From: jayk123 at hotmail.com (j k) Date: Sun, 14 Jan 2007 19:38:03 +0000 Subject: [M3devel] cm3-5.4 building on NT386 cat not recognized command In-Reply-To: <771939.15934.qm@web86908.mail.ukl.yahoo.com> Message-ID: Good! The problems in obliq I know about. They are old. Getting this far in "std" I think is pretty good. I'm sure we can just switch on M3_OSTYPE and use type or echo instead of cat, or add more builtins to quake. Question: M3_OSTYPE, this it meant to be a query about the target and not the host, right? My suspected anwer: Cross builds aren't actually factored into the build system right. There is not a way to check one vs. the other. That is, host is mostly assumed to be target. Not completely broken, since cross builds are doable, in a way I am not familiar with but is documented. file_exists should be either in that m3makefile or the global cm3.cfg. it is defined by me as like: proc file_exists(a) is return stale(a, a) end I thought the use of "stale(a,a)" in places kind of obscure and worthy of a name. In order to work with whatever global cm3.cfg someone has, let's just put in a local definition. Some of the history in the import-libs directory is it did not initially build incrementally, just always clean, so my changes for incrementality have less time under their belt, so to speak. - Jay >From: "Daniel Alejandro Benavides D." >To: m3devel at elegosoft.com >Subject: [M3devel] cm3-5.4 building on NT386 cat not recognized command >Date: Sun, 14 Jan 2007 20:05:24 +0100 (CET) > >Hi all: >Im trynig to get build with the bootstrap of 5.2.6, do-cm3-base.cmd >works well. Just got an error in about file >C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs\src\m3makefile > >C:\cm3-5.4\cm3-cvs\cm3\scripts\win>do-cm3-base.cmd >INSTALLROOT=C:\cm3 >LIB=%INSTALLROOT%\LIB;%LIB% >CM3ROOT=C:\\cm3-5.4\\cm3-cvs\\cm3 > >making C:\cm3-5.4\cm3-cvs\cm3\scripts\win\PKGS with >C:\cm3-5.4\cm3-cvs\cm3\scripts\win\find-packages >call C:\cm3-5.4\cm3-cvs\cm3\scripts\win\pkgmap -c "cm3 -build -override >-DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" import-libs m3core libm3 m3middle m3quake >m3scanner m3tools m3cgcat m3cggen m3bundle mklib dll2lib fix_nl libdump >bitvector digraph parseparams realgeometry set slisp sortedtableextras >table-list tempfiles tcp tapi > >=== package C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs === >+++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ >unable to read ..\src\m3overrides, options "-override" and "-x" ignored. >"C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs\src\m3makefile", line 178: quake >runtime error: undefined variable: file_exists > >--procedure-- -line- -file--- > >include_dir 178 >C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs\src\m3makefile > 5 >C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs\NT386\m3make.args >Fatal Error: package build failed > >*** execution of cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3 >failed with 0 *** > > I just commented the whole if of line 178 and it worked well. Then I >tried the do-cm3-std.cmd, and it works well until formsview package, but >when in m3-obliq got an error because a missing cat: > > -> linking vocgi.exe >=== package C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\voquery === >+++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ >new source -> compiling Main.m3 > -> linking voquery.exe >=== package C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vorun === >+++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ >C:\cm3-5.4\cm3-cvs\cm3\m3-tools\m3bundle\NT386\m3bundle -name VORunBundle >-FC:\D >OCUME~1\LUISCA~1\CONFIG~1\Temp\qk >new source -> compiling VORunBundle.i3 >new source -> compiling VORunBundle.m3 >new source -> compiling Main.m3 > -> linking vorun.exe >cat ..\src\vostart >> vostart >"cat" is not recognized as an internal or external command, operable >program or batch file. > >"C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vorun\src\m3makefile", line 33: quake >runtime error: exit 1: cat ..\src\vostart >> vostart > >--procedure-- -line- -file--- >exec -- >include_dir 33 C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vorun\src\m3makefile > 6 >C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vorun\NT386\m3make.args > >Fatal Error: package build failed >*** execution of cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3 >failed with 0 *** >error : call C:\cm3-5.4\cm3-cvs\cm3\scripts\win\pkgmap -c "cm3 -build >-override >-DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" import-libs m3core libm3 m3core m3middle >m3quake m3scanner m3tools m3cgcat m3cggen m3bundle mklib dll2lib fix_nl >libdump bitvector digraph parseparams realgeometry set slisp >sortedtableextras table-list tempfiles tcl tcp udp libsio libbuf debug >listfuncs patternmatching embutils m3tk-misc http binIO deepcopy sgml tapi >serial m3tk mtex m3totex m3tohtml m3scan m3markup m3browser cmpdir cmpfp >dirfp uniq netobj netobjd stubgen events rdwr sharedobj sharedobjgen odbc >postgres95 db smalldb stable stablegen X11R4 ui PEX vbtkit cmvbt jvideo >videovbt web formsvbtpixmaps formsvbt formsview formsedit codeview mg mgkit >opengl anim3D zeus m3zume synloc synex metasyn obliqrt obliqparse obliq >print obliq obliqlibemb obliqlibm3 obliqlibui obliqlibanim obliqsrvstd >obliqsrvu >i obliqbinmin obliqbinstd obliqbinui obliqbinanim visualobliq vocgi voquery >voru >n webvbt recordheap rehearsecode replayheap showheap shownew showthread >pkl-fonts juno-machine juno-compiler juno-app cube calculator fisheye >mentor failed > >C:\cm3-5.4\cm3-cvs\cm3\scripts\win> > >Can we use a native port of cat, or bunddle in the distro? > >Thanks, >Daniel Benavides > > >--------------------------------- > >LLama Gratis a cualquier PC del Mundo. >Llamadas a fijos y m?viles desde 1 c?ntimo por minuto. >http://es.voice.yahoo.com >_______________________________________________ >M3devel mailing list >M3devel at elegosoft.com >https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel _________________________________________________________________ Get FREE Web site and company branded e-mail from Microsoft Office Live http://clk.atdmt.com/MRT/go/mcrssaub0050001411mrt/direct/01/ From dabenavidesd at yahoo.es Sun Jan 14 23:26:11 2007 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Sun, 14 Jan 2007 23:26:11 +0100 (CET) Subject: [M3devel] cm3-5.4 building on NT386 cat not recognized command In-Reply-To: Message-ID: <244321.27877.qm@web86902.mail.ukl.yahoo.com> Hi, I succesfully used type instead of cat, so obliq was built. I also added file_exists in cm3.cfg. Thanks. I have tested m3browser, It runs just fine, congratulations !! So I continued with do-cm3-std.cmd built but I found that m3-libs\m3core\src\thread is not built in any of the implementations (which must be src\thread\WIN32 according to the thread\m3makefile wich has OS_TYPE variable if not PTHREAD), but this directory has no built nothing , so I was wondering if the variable M3_OSTYPE you mentioned is the same? Do you think is possible to use the Pthread part, with the pthread port on Windows? C:\cm3-5.4\cm3-cvs\cm3\m3-tools\m3bundle\NT386\m3bundle -name RehearseCodeBundle -element RehearseCode.fv ..\src\RehearseCode.fv new source -> compiling RehearseCodeBundle.i3 new source -> compiling RehearseCode.m3 new source -> compiling RehearseCodeBundle.m3 -> linking RehearseCode.exe === package C:\cm3-5.4\cm3-cvs\cm3\m3-tools\replayheap === +++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ new source -> compiling Main.m3 -> linking replayheap.exe === package C:\cm3-5.4\cm3-cvs\cm3\m3-tools\showheap === +++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ new source -> compiling ShowHeap.m3 -> linking showheap.exe === package C:\cm3-5.4\cm3-cvs\cm3\m3-tools\shownew === +++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ new source -> compiling ZIO.i3 new source -> compiling ZIO.m3 new source -> compiling ShowNew.m3 -> linking shownew.exe === package C:\cm3-5.4\cm3-cvs\cm3\m3-tools\showthread === +++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ new source -> compiling Main.m3 "..\src\Main.m3", line 12: unable to find interface (ThreadEvent) 1 error encountered compilation failed => not building program "showthread.exe" Fatal Error: package build failed *** execution of cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3 failed with 0 *** .... By the way, the above ThreadEvent missing interface is not in the WIN32 directory, can be copied? Thanks, Daniel Benavides ---------- >j k wrote: >Good! >The problems in obliq I know about. >They are old. Getting this far in "std" I think is pretty good. >I'm sure we can just switch on M3_OSTYPE and use type or echo instead of >cat, or add more builtins to quake. >Question: M3_OSTYPE, this it meant to be a query about the target and not >the host, right? >My suspected anwer: Cross builds aren't actually factored into the build >system right. There is not a way to check one vs. the other. That is, host >is mostly assumed to be target. Not completely broken, since cross builds >are doable, in a way I am not familiar with but is documented. >file_exists should be either in that m3makefile or the global cm3.cfg. >it is defined by me as like: >proc file_exists(a) is >return stale(a, a) >end >I thought the use of "stale(a,a)" in places kind of obscure and worthy of a >name. >In order to work with whatever global cm3.cfg someone has, let's just put >in a local definition. Some of the history in the import-libs directory is >it did not initially build incrementally, just always clean, so my changes >for incrementality have less time under their belt, so to speak. >- Jay >>From: "Daniel Alejandro Benavides D." >>To: m3devel at elegosoft.com >>Subject: [M3devel] cm3-5.4 building on NT386 cat not recognized command >>Date: Sun, 14 Jan 2007 20:05:24 +0100 (CET) >> >>Hi all: >>Im trynig to get build with the bootstrap of 5.2.6, do-cm3-base.cmd >>works well. Just got an error in about file >>C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs\src\m3makefile >> >>C:\cm3-5.4\cm3-cvs\cm3\scripts\win>do-cm3-base.cmd >>INSTALLROOT=C:\cm3 >>LIB=%INSTALLROOT%\LIB;%LIB% >>CM3ROOT=C:\\cm3-5.4\\cm3-cvs\\cm3 >> >>making C:\cm3-5.4\cm3-cvs\cm3\scripts\win\PKGS with >>C:\cm3-5.4\cm3-cvs\cm3\scripts\win\find-packages >>call C:\cm3-5.4\cm3-cvs\cm3\scripts\win\pkgmap -c "cm3 -build -override >>-DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" import-libs m3core libm3 m3middle m3quake >>m3scanner m3tools m3cgcat m3cggen m3bundle mklib dll2lib fix_nl libdump >>bitvector digraph parseparams realgeometry set slisp sortedtableextras >>table-list tempfiles tcp tapi >> >>=== package C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs === >>+++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ >>unable to read ..\src\m3overrides, options "-override" and "-x" ignored. >>"C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs\src\m3makefile", line 178: quake >>runtime error: undefined variable: file_exists >> >>--procedure-- -line- -file--- >> >>include_dir 178 >>C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs\src\m3makefile >> 5 >>C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs\NT386\m3make.args >>Fatal Error: package build failed >> >>*** execution of cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3 >>failed with 0 *** >> >> I just commented the whole if of line 178 and it worked well. Then I >>tried the do-cm3-std.cmd, and it works well until formsview package, but >>when in m3-obliq got an error because a missing cat: >> >> -> linking vocgi.exe >>=== package C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\voquery === >>+++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ >>new source -> compiling Main.m3 >> -> linking voquery.exe >>=== package C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vorun === >>+++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ >>C:\cm3-5.4\cm3-cvs\cm3\m3-tools\m3bundle\NT386\m3bundle -name VORunBundle >>-FC:\D >>OCUME~1\LUISCA~1\CONFIG~1\Temp\qk >>new source -> compiling VORunBundle.i3 >>new source -> compiling VORunBundle.m3 >>new source -> compiling Main.m3 >> -> linking vorun.exe >>cat ..\src\vostart >> vostart >>"cat" is not recognized as an internal or external command, operable >>program or batch file. >> >>"C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vorun\src\m3makefile", line 33: quake >>runtime error: exit 1: cat ..\src\vostart >> vostart >> >>--procedure-- -line- -file--- >>exec -- >>include_dir 33 C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vorun\src\m3makefile >> 6 >>C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vorun\NT386\m3make.args >> >>Fatal Error: package build failed >>*** execution of cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3 >>failed with 0 *** >>error : call C:\cm3-5.4\cm3-cvs\cm3\scripts\win\pkgmap -c "cm3 -build >>-override >>-DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" import-libs m3core libm3 m3core m3middle >>m3quake m3scanner m3tools m3cgcat m3cggen m3bundle mklib dll2lib fix_nl >>libdump bitvector digraph parseparams realgeometry set slisp >>sortedtableextras table-list tempfiles tcl tcp udp libsio libbuf debug >>listfuncs patternmatching embutils m3tk-misc http binIO deepcopy sgml tapi >>serial m3tk mtex m3totex m3tohtml m3scan m3markup m3browser cmpdir cmpfp >>dirfp uniq netobj netobjd stubgen events rdwr sharedobj sharedobjgen odbc >>postgres95 db smalldb stable stablegen X11R4 ui PEX vbtkit cmvbt jvideo >>videovbt web formsvbtpixmaps formsvbt formsview formsedit codeview mg mgkit >>opengl anim3D zeus m3zume synloc synex metasyn obliqrt obliqparse obliq >>print obliq obliqlibemb obliqlibm3 obliqlibui obliqlibanim obliqsrvstd >>obliqsrvui obliqbinmin obliqbinstd obliqbinui obliqbinanim visualobliq vocgi >>voquery vorun webvbt recordheap rehearsecode replayheap showheap shownew >>showthread pkl-fonts juno-machine juno-compiler juno-app cube calculator fisheye >>mentor failed >> >>C:\cm3-5.4\cm3-cvs\cm3\scripts\win> >> >>Can we use a native port of cat, or bunddle in the distro? >> >>Thanks, >>Daniel Benavides --------------------------------- LLama Gratis a cualquier PC del Mundo. Llamadas a fijos y m?viles desde 1 c?ntimo por minuto. http://es.voice.yahoo.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Mon Jan 15 00:10:38 2007 From: hosking at cs.purdue.edu (Antony Hosking) Date: Sun, 14 Jan 2007 18:10:38 -0500 Subject: [M3devel] cm3-5.4 building on NT386 cat not recognized command In-Reply-To: <244321.27877.qm@web86902.mail.ukl.yahoo.com> References: <244321.27877.qm@web86902.mail.ukl.yahoo.com> Message-ID: The PTHREAD port is not complete for Windows -- I would hesitate to use pthreads on Windows anyway, but perhaps it is doable. WIN32 threads are the preferred route. On 14/01/2007, at 5:26 PM, Daniel Alejandro Benavides D. wrote: > Hi, > I succesfully used type instead of cat, so obliq was built. I also > added file_exists in cm3.cfg. Thanks. > I have tested m3browser, It runs just fine, congratulations !! > > So I continued with do-cm3-std.cmd built but I found that m3-libs > \m3core\src\thread is not built in any of the implementations > (which must be src\thread\WIN32 according to the thread\m3makefile > wich has OS_TYPE variable if not PTHREAD), but this directory has > no built nothing , so I was wondering if the variable M3_OSTYPE you > mentioned is the same? > Do you think is possible to use the Pthread part, with the pthread > port on Windows? > > C:\cm3-5.4\cm3-cvs\cm3\m3-tools\m3bundle\NT386\m3bundle -name > RehearseCodeBundle > -element RehearseCode.fv ..\src\RehearseCode.fv > new source -> compiling RehearseCodeBundle.i3 > new source -> compiling RehearseCode.m3 > new source -> compiling RehearseCodeBundle.m3 > -> linking RehearseCode.exe > === package C:\cm3-5.4\cm3-cvs\cm3\m3-tools\replayheap === > +++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ > new source -> compiling Main.m3 > -> linking replayheap.exe > === package C:\cm3-5.4\cm3-cvs\cm3\m3-tools\showheap === > +++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ > new source -> compiling ShowHeap.m3 > -> linking showheap.exe > === package C:\cm3-5.4\cm3-cvs\cm3\m3-tools\shownew === > +++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ > new source -> compiling ZIO.i3 > new source -> compiling ZIO.m3 > new source -> compiling ShowNew.m3 > -> linking shownew.exe > === package C:\cm3-5.4\cm3-cvs\cm3\m3-tools\showthread === > +++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ > new source -> compiling Main.m3 > "..\src\Main.m3", line 12: unable to find interface (ThreadEvent) > 1 error encountered > compilation failed => not building program "showthread.exe" > Fatal Error: package build failed > *** execution of cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\ > \cm3 failed with 0 *** > .... > > By the way, the above ThreadEvent missing interface is not in the > WIN32 directory, can be copied? > > Thanks, > Daniel Benavides > > ---------- > >j k wrote: > > >Good! > > >The problems in obliq I know about. > >They are old. Getting this far in "std" I think is pretty good. > > >I'm sure we can just switch on M3_OSTYPE and use type or echo > instead of > >cat, or add more builtins to quake. > > >Question: M3_OSTYPE, this it meant to be a query about the target > and not > >the host, right? > >My suspected anwer: Cross builds aren't actually factored into the > build > >system right. There is not a way to check one vs. the other. That > is, host > >is mostly assumed to be target. Not completely broken, since cross > builds > >are doable, in a way I am not familiar with but is documented. > > >file_exists should be either in that m3makefile or the global > cm3.cfg. > >it is defined by me as like: > > >proc file_exists(a) is > >return stale(a, a) > >end > > >I thought the use of "stale(a,a)" in places kind of obscure and > worthy of a > >name. > > >In order to work with whatever global cm3.cfg someone has, let's > just put > >in a local definition. Some of the history in the import-libs > directory is > >it did not initially build incrementally, just always clean, so my > changes > >for incrementality have less time under their belt, so to speak. > > >- Jay > > > >>From: "Daniel Alejandro Benavides D." > >>To: m3devel at elegosoft.com > >>Subject: [M3devel] cm3-5.4 building on NT386 cat not recognized > command > >>Date: Sun, 14 Jan 2007 20:05:24 +0100 (CET) > >> > >>Hi all: > >>Im trynig to get build with the bootstrap of 5.2.6, do-cm3-base.cmd > >>works well. Just got an error in about file > >>C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs\src\m3makefile > >> > >>C:\cm3-5.4\cm3-cvs\cm3\scripts\win>do-cm3-base.cmd > >>INSTALLROOT=C:\cm3 > >>LIB=%INSTALLROOT%\LIB;%LIB% > >>CM3ROOT=C:\\cm3-5.4\\cm3-cvs\\cm3 > >> > >>making C:\cm3-5.4\cm3-cvs\cm3\scripts\win\PKGS with > >>C:\cm3-5.4\cm3-cvs\cm3\scripts\win\find-packages > >>call C:\cm3-5.4\cm3-cvs\cm3\scripts\win\pkgmap -c "cm3 -build - > override > >>-DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" import-libs m3core libm3 > m3middle m3quake > >>m3scanner m3tools m3cgcat m3cggen m3bundle mklib dll2lib fix_nl > libdump > >>bitvector digraph parseparams realgeometry set slisp > sortedtableextras > >>table-list tempfiles tcp tapi > >> > >>=== package C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs === > >>+++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ > >>unable to read ..\src\m3overrides, options "-override" and "-x" > ignored. > >>"C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs\src\m3makefile", line > 178: quake > >>runtime error: undefined variable: file_exists > >> > >>--procedure-- -line- -file--- > >> > >>include_dir 178 > >>C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs\src\m3makefile > >> 5 > >>C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs\NT386\m3make.args > >>Fatal Error: package build failed > >> > >>*** execution of cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\ > \cm3 > >>failed with 0 *** > >> > >> I just commented the whole if of line 178 and it worked well. > Then I > >>tried the do-cm3-std.cmd, and it works well until formsview > package, but > >>when in m3-obliq got an error because a missing cat: > >> > >> -> linking vocgi.exe > >>=== package C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\voquery === > >>+++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ > >>new source -> compiling Main.m3 > >> -> linking voquery.exe > >>=== package C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vorun === > >>+++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ > >>C:\cm3-5.4\cm3-cvs\cm3\m3-tools\m3bundle\NT386\m3bundle -name > VORunBundle > >>-FC:\D > >>OCUME~1\LUISCA~1\CONFIG~1\Temp\qk > >>new source -> compiling VORunBundle.i3 > >>new source -> compiling VORunBundle.m3 > >>new source -> compiling Main.m3 > >> -> linking vorun.exe > >>cat ..\src\vostart >> vostart > >>"cat" is not recognized as an internal or external command, operable > >>program or batch file. > >> > >>"C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vorun\src\m3makefile", line 33: > quake > >>runtime error: exit 1: cat ..\src\vostart >> vostart > >> > >>--procedure-- -line- -file--- > >>exec -- > >>include_dir 33 C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vorun\src\m3makefile > >> 6 > >>C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vorun\NT386\m3make.args > >> > >>Fatal Error: package build failed > >>*** execution of cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\ > \cm3 > >>failed with 0 *** > >>error : call C:\cm3-5.4\cm3-cvs\cm3\scripts\win\pkgmap -c "cm3 - > build > >>-override > >>-DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" import-libs m3core libm3 m3core > m3middle > >>m3quake m3scanner m3tools m3cgcat m3cggen m3bundle mklib dll2lib > fix_nl > >>libdump bitvector digraph parseparams realgeometry set slisp > >>sortedtableextras table-list tempfiles tcl tcp udp libsio libbuf > debug > >>listfuncs patternmatching embutils m3tk-misc http binIO deepcopy > sgml tapi > >>serial m3tk mtex m3totex m3tohtml m3scan m3markup m3browser > cmpdir cmpfp > >>dirfp uniq netobj netobjd stubgen events rdwr sharedobj > sharedobjgen odbc > >>postgres95 db smalldb stable stablegen X11R4 ui PEX vbtkit cmvbt > jvideo > >>videovbt web formsvbtpixmaps formsvbt formsview formsedit > codeview mg mgkit > >>opengl anim3D zeus m3zume synloc synex metasyn obliqrt obliqparse > obliq > >>print obliq obliqlibemb obliqlibm3 obliqlibui obliqlibanim > obliqsrvstd > >>obliqsrvui obliqbinmin obliqbinstd obliqbinui obliqbinanim > visualobliq vocgi >>voquery vorun webvbt recordheap rehearsecode > replayheap showheap shownew >>showthread pkl-fonts juno-machine > juno-compiler juno-app cube calculator fisheye > >>mentor failed > >> > >>C:\cm3-5.4\cm3-cvs\cm3\scripts\win> > >> > >>Can we use a native port of cat, or bunddle in the distro? > >> > >>Thanks, > >>Daniel Benavides > > > > LLama Gratis a cualquier PC del Mundo. > Llamadas a fijos y m?viles desde 1 c?ntimo por minuto. > http://es.voice.yahoo.com > _______________________________________________ > M3devel mailing list > M3devel at elegosoft.com > https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel Antony Hosking | Associate Professor Dept of Computer Sciences | Office: (765) 494-6001 Purdue University | Mobile: (765) 427-5484 250 N. University Street | hosking at cs.purdue.edu West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking _--_|\ / \ \_.--._/ ) v / -------------- next part -------------- An HTML attachment was scrubbed... URL: From jayk123 at hotmail.com Mon Jan 15 01:34:46 2007 From: jayk123 at hotmail.com (j k) Date: Mon, 15 Jan 2007 00:34:46 +0000 Subject: [M3devel] cm3-5.4 building on NT386 cat not recognized command In-Reply-To: <244321.27877.qm@web86902.mail.ukl.yahoo.com> Message-ID: I commited fixes for the vostart and import-libs problems. vostart starts up. I left the m3makefile configurable as to if vostart (and vorun) are in in the bin directory so would tend to be in the path, or in the pkg\vorun\nt386 directory as the original author seemed to intend. The documention mentions export_program and hide_program, but they do not exist. What is the right way to install a checked in file to c:\cm3\pkg\foo\nt386? I put in install_derived ("..\\src\\vostart") % This isn't derived, but it gets it to the pkg\target directory. which feels wrong. What are people's thoughts on relatively flat directories that are in %path%, i.e.: c:\cm3\bin\vorun.exe vs. hierarchy c:\cm3\pkg\nt386\vorun.exe and having to run somewhat private .exes by full path? There are pluses and minuses either way of course. If you flatten the hierarchy, you get global namespace pollution but flexibility of layout. I like the flexibility. But I realize then..well, I have all these \env\vc20.cmd \env\vc40.cmd \env\perl.cmd \env\cm3.cmd \env\cm3.2.cmd scripts and my machine has no set configuration, just whatever I happened to set in the command line I'm at. It is good both to bind something to particular versions of things, and to leave it flexible if it is indeed compatible with multiple versions. You don't want to build cross products -- cm3 against that compiler/linker, or against another, etc. So then I guess folks usually have environment variables to represent roots, one per changable root? This makes me think I should back the full paths stuff in cm3.cfg.... (and then of course there is pollution regarding chosing variable names for the root, and when it gets bad enough you end up with a hierarchical system like the Windows registry which everyone dislikes but solves real problems...) I might look into the other problems later, but of course, volunteering and all that. :) - Jay >From: "Daniel Alejandro Benavides D." >To: jayk123 at hotmail.com, m3devel at elegosoft.com >Subject: RE: [M3devel] cm3-5.4 building on NT386 cat not recognized command >Date: Sun, 14 Jan 2007 23:26:11 +0100 (CET) > > Hi, >I succesfully used type instead of cat, so obliq was built. I also added >file_exists in cm3.cfg. Thanks. >I have tested m3browser, It runs just fine, congratulations !! > >So I continued with do-cm3-std.cmd built but I found that >m3-libs\m3core\src\thread is not built in any of the implementations (which >must be src\thread\WIN32 according to the thread\m3makefile wich has >OS_TYPE variable if not PTHREAD), but this directory has no built nothing , >so I was wondering if the variable M3_OSTYPE you mentioned is the same? >Do you think is possible to use the Pthread part, with the pthread port on >Windows? > >C:\cm3-5.4\cm3-cvs\cm3\m3-tools\m3bundle\NT386\m3bundle -name >RehearseCodeBundle > -element RehearseCode.fv ..\src\RehearseCode.fv > new source -> compiling RehearseCodeBundle.i3 > new source -> compiling RehearseCode.m3 > new source -> compiling RehearseCodeBundle.m3 > -> linking RehearseCode.exe > === package C:\cm3-5.4\cm3-cvs\cm3\m3-tools\replayheap === > +++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ > new source -> compiling Main.m3 > -> linking replayheap.exe > === package C:\cm3-5.4\cm3-cvs\cm3\m3-tools\showheap === > +++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ > new source -> compiling ShowHeap.m3 > -> linking showheap.exe > === package C:\cm3-5.4\cm3-cvs\cm3\m3-tools\shownew === > +++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ > new source -> compiling ZIO.i3 > new source -> compiling ZIO.m3 > new source -> compiling ShowNew.m3 > -> linking shownew.exe > === package C:\cm3-5.4\cm3-cvs\cm3\m3-tools\showthread === > +++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ > new source -> compiling Main.m3 > "..\src\Main.m3", line 12: unable to find interface (ThreadEvent) > 1 error encountered > compilation failed => not building program "showthread.exe" > Fatal Error: package build failed > *** execution of cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3 >failed with 0 *** > .... > >By the way, the above ThreadEvent missing interface is not in the WIN32 >directory, can be copied? > >Thanks, >Daniel Benavides > >---------- > >j k wrote: > > >Good! > > >The problems in obliq I know about. > >They are old. Getting this far in "std" I think is pretty good. > > >I'm sure we can just switch on M3_OSTYPE and use type or echo instead of > >cat, or add more builtins to quake. > > >Question: M3_OSTYPE, this it meant to be a query about the target and not > >the host, right? > >My suspected anwer: Cross builds aren't actually factored into the build > >system right. There is not a way to check one vs. the other. That is, >host > >is mostly assumed to be target. Not completely broken, since cross builds > >are doable, in a way I am not familiar with but is documented. > > >file_exists should be either in that m3makefile or the global cm3.cfg. > >it is defined by me as like: > > >proc file_exists(a) is > >return stale(a, a) > >end > > >I thought the use of "stale(a,a)" in places kind of obscure and worthy of >a > >name. > > >In order to work with whatever global cm3.cfg someone has, let's just put > >in a local definition. Some of the history in the import-libs directory >is > >it did not initially build incrementally, just always clean, so my >changes > >for incrementality have less time under their belt, so to speak. > > >- Jay > > > >>From: "Daniel Alejandro Benavides D." > >>To: m3devel at elegosoft.com > >>Subject: [M3devel] cm3-5.4 building on NT386 cat not recognized command > >>Date: Sun, 14 Jan 2007 20:05:24 +0100 (CET) > >> > >>Hi all: > >>Im trynig to get build with the bootstrap of 5.2.6, do-cm3-base.cmd > >>works well. Just got an error in about file > >>C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs\src\m3makefile > >> > >>C:\cm3-5.4\cm3-cvs\cm3\scripts\win>do-cm3-base.cmd > >>INSTALLROOT=C:\cm3 > >>LIB=%INSTALLROOT%\LIB;%LIB% > >>CM3ROOT=C:\\cm3-5.4\\cm3-cvs\\cm3 > >> > >>making C:\cm3-5.4\cm3-cvs\cm3\scripts\win\PKGS with > >>C:\cm3-5.4\cm3-cvs\cm3\scripts\win\find-packages > >>call C:\cm3-5.4\cm3-cvs\cm3\scripts\win\pkgmap -c "cm3 -build -override > >>-DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" import-libs m3core libm3 m3middle >m3quake > >>m3scanner m3tools m3cgcat m3cggen m3bundle mklib dll2lib fix_nl libdump > >>bitvector digraph parseparams realgeometry set slisp sortedtableextras > >>table-list tempfiles tcp tapi > >> > >>=== package C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs === > >>+++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ > >>unable to read ..\src\m3overrides, options "-override" and "-x" ignored. > >>"C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs\src\m3makefile", line 178: >quake > >>runtime error: undefined variable: file_exists > >> > >>--procedure-- -line- -file--- > >> > >>include_dir 178 > >>C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs\src\m3makefile > >> 5 > >>C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs\NT386\m3make.args > >>Fatal Error: package build failed > >> > >>*** execution of cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3 > >>failed with 0 *** > >> > >> I just commented the whole if of line 178 and it worked well. Then I > >>tried the do-cm3-std.cmd, and it works well until formsview package, but > >>when in m3-obliq got an error because a missing cat: > >> > >> -> linking vocgi.exe > >>=== package C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\voquery === > >>+++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ > >>new source -> compiling Main.m3 > >> -> linking voquery.exe > >>=== package C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vorun === > >>+++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ > >>C:\cm3-5.4\cm3-cvs\cm3\m3-tools\m3bundle\NT386\m3bundle -name >VORunBundle > >>-FC:\D > >>OCUME~1\LUISCA~1\CONFIG~1\Temp\qk > >>new source -> compiling VORunBundle.i3 > >>new source -> compiling VORunBundle.m3 > >>new source -> compiling Main.m3 > >> -> linking vorun.exe > >>cat ..\src\vostart >> vostart > >>"cat" is not recognized as an internal or external command, operable > >>program or batch file. > >> > >>"C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vorun\src\m3makefile", line 33: quake > >>runtime error: exit 1: cat ..\src\vostart >> vostart > >> > >>--procedure-- -line- -file--- > >>exec -- > >>include_dir 33 C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vorun\src\m3makefile > >> 6 > >>C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vorun\NT386\m3make.args > >> > >>Fatal Error: package build failed > >>*** execution of cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3 > >>failed with 0 *** > >>error : call C:\cm3-5.4\cm3-cvs\cm3\scripts\win\pkgmap -c "cm3 -build > >>-override > >>-DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" import-libs m3core libm3 m3core >m3middle > >>m3quake m3scanner m3tools m3cgcat m3cggen m3bundle mklib dll2lib fix_nl > >>libdump bitvector digraph parseparams realgeometry set slisp > >>sortedtableextras table-list tempfiles tcl tcp udp libsio libbuf debug > >>listfuncs patternmatching embutils m3tk-misc http binIO deepcopy sgml >tapi > >>serial m3tk mtex m3totex m3tohtml m3scan m3markup m3browser cmpdir cmpfp > >>dirfp uniq netobj netobjd stubgen events rdwr sharedobj sharedobjgen >odbc > >>postgres95 db smalldb stable stablegen X11R4 ui PEX vbtkit cmvbt jvideo > >>videovbt web formsvbtpixmaps formsvbt formsview formsedit codeview mg >mgkit > >>opengl anim3D zeus m3zume synloc synex metasyn obliqrt obliqparse obliq > >>print obliq obliqlibemb obliqlibm3 obliqlibui obliqlibanim obliqsrvstd > >>obliqsrvui obliqbinmin obliqbinstd obliqbinui obliqbinanim visualobliq >vocgi >>voquery vorun webvbt recordheap rehearsecode replayheap showheap >shownew >>showthread pkl-fonts juno-machine juno-compiler juno-app cube >calculator fisheye > >>mentor failed > >> > >>C:\cm3-5.4\cm3-cvs\cm3\scripts\win> > >> > >>Can we use a native port of cat, or bunddle in the distro? > >> > >>Thanks, > >>Daniel Benavides > > > >--------------------------------- > >LLama Gratis a cualquier PC del Mundo. >Llamadas a fijos y m?viles desde 1 c?ntimo por minuto. >http://es.voice.yahoo.com _________________________________________________________________ Type your favorite song.? Get a customized station.? Try MSN Radio powered by Pandora. http://radio.msn.com/?icid=T002MSN03A07001 From dabenavidesd at yahoo.es Mon Jan 15 05:14:16 2007 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Mon, 15 Jan 2007 05:14:16 +0100 (CET) Subject: [M3devel] cm3-5.4 building on NT386 cat not recognized command Message-ID: <428129.19084.qm@web86902.mail.ukl.yahoo.com> Hello, I got an error about procedures duplicated on m3-libs\libm3\src\list\list.tmpl . That .tmpl was getting compiled in the pm3-1.1.15 on Windows. readonly proc List (nm, elt) is readonly proc list (nm, elt) is readonly proc List_sort (nm, elt) is readonly proc list_sort (nm, elt) is +++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ === package C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vocgi === +++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ === package C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\voquery === +++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ === package C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vorun === +++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ "C:\cm3-5.4\cm3-cvs\cm3/m3-libs\libm3\src\list\list.tmpl", line 11: quake runtim e error: cannot redefine readonly global symbol: List --procedure-- -line- -file--- _import_template 11 C:\cm3-5.4\cm3-cvs\cm3/m3-libs\libm3\src\list\list.tmpl import 97 C:\cm3-5.4\cm3-cvs\cm3/m3-libs\libm3\NT386\.M3EXPORTS include_dir 51 C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vorun\src\m3makefile 6 C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vorun\NT386\m3make.args Fatal Error: package build failed *** execution of cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3 failed with 0 *** Thanks, Daniel Benavides ----- original message ----- De: "Daniel Alejandro Benavides D." Fecha: Domingo, Enero 14, 2007 10:52 pm Asunto: RV: RE: [M3devel] cm3-5.4 building on NT386 cat not recognized command > > > j k wrote: De: "j k" > to: dabenavidesd at yahoo.es, m3devel at elegosoft.com > subject: RE: [M3devel] cm3-5.4 building on NT386 cat not recognized > commandFecha: Mon, 15 Jan 2007 00:34:46 +0000 > > I commited fixes for the vostart and import-libs problems. > vostart starts up. > I left the m3makefile configurable as to if vostart (and vorun) > are in in > the bin directory so would tend to be in the path, or in the > pkg\vorun\nt386 > directory as the original author seemed to intend. > > The documention mentions export_program and hide_program, but they > do not > exist. > > What is the right way to install a checked in file to > c:\cm3\pkg\foo\nt386?I put in > install_derived ("..\\src\\vostart") % This isn't derived, but > it gets it > to the pkg\target directory. > > which feels wrong. > > What are people's thoughts on relatively flat directories that are > in > %path%, i.e.: > c:\cm3\bin\vorun.exe > > vs. hierarchy c:\cm3\pkg\nt386\vorun.exe > and having to run somewhat private .exes by full path? > > There are pluses and minuses either way of course. If you flatten > the > hierarchy, you get global namespace pollution but flexibility of > layout. I > like the flexibility. But I realize then..well, I have all these > \env\vc20.cmd \env\vc40.cmd \env\perl.cmd \env\cm3.cmd > \env\cm3.2.cmd > scripts and my machine has no set configuration, just whatever I > happened to > set in the command line I'm at. > > It is good both to bind something to particular versions of > things, and to > leave it flexible if it is indeed compatible with multiple > versions. You > don't want to build cross products -- cm3 against that > compiler/linker, or > against another, etc. So then I guess folks usually have > environment > variables to represent roots, one per changable root? This makes > me think I > should back the full paths stuff in cm3.cfg.... (and then of > course there is > pollution regarding chosing variable names for the root, and when > it gets > bad enough you end up with a hierarchical system like the Windows > registry > which everyone dislikes but solves real problems...) > > I might look into the other problems later, but of course, > volunteering and > all that. :) > > - Jay > > >From: "Daniel Alejandro Benavides D." > >To: jayk123 at hotmail.com, m3devel at elegosoft.com > >Subject: RE: [M3devel] cm3-5.4 building on NT386 cat not > recognized command > >Date: Sun, 14 Jan 2007 23:26:11 +0100 (CET) > > > > Hi, > >I succesfully used type instead of cat, so obliq was built. I > also added > >file_exists in cm3.cfg. Thanks. > >I have tested m3browser, It runs just fine, congratulations !! > > > >So I continued with do-cm3-std.cmd built but I found that > >m3-libs\m3core\src\thread is not built in any of the > implementations (which > >must be src\thread\WIN32 according to the thread\m3makefile wich > has > >OS_TYPE variable if not PTHREAD), but this directory has no built > nothing , > >so I was wondering if the variable M3_OSTYPE you mentioned is the > same?>Do you think is possible to use the Pthread part, with the > pthread port on > >Windows? > > > >C:\cm3-5.4\cm3-cvs\cm3\m3-tools\m3bundle\NT386\m3bundle -name > >RehearseCodeBundle > > -element RehearseCode.fv ..\src\RehearseCode.fv > > new source -> compiling RehearseCodeBundle.i3 > > new source -> compiling RehearseCode.m3 > > new source -> compiling RehearseCodeBundle.m3 > > -> linking RehearseCode.exe > > === package C:\cm3-5.4\cm3-cvs\cm3\m3-tools\replayheap === > > +++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ > > new source -> compiling Main.m3 > > -> linking replayheap.exe > > === package C:\cm3-5.4\cm3-cvs\cm3\m3-tools\showheap === > > +++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ > > new source -> compiling ShowHeap.m3 > > -> linking showheap.exe > > === package C:\cm3-5.4\cm3-cvs\cm3\m3-tools\shownew === > > +++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ > > new source -> compiling ZIO.i3 > > new source -> compiling ZIO.m3 > > new source -> compiling ShowNew.m3 > > -> linking shownew.exe > > === package C:\cm3-5.4\cm3-cvs\cm3\m3-tools\showthread === > > +++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ > > new source -> compiling Main.m3 > > "..\src\Main.m3", line 12: unable to find interface (ThreadEvent) > > 1 error encountered > > compilation failed => not building program "showthread.exe" > > Fatal Error: package build failed > > *** execution of cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3- > cvs\\cm3 > >failed with 0 *** > > .... > > > >By the way, the above ThreadEvent missing interface is not in the > WIN32 > >directory, can be copied? > > > >Thanks, > >Daniel Benavides > > > >---------- > > >j k wrote: > > > > >Good! > > > > >The problems in obliq I know about. > > >They are old. Getting this far in "std" I think is pretty good. > > > > >I'm sure we can just switch on M3_OSTYPE and use type or echo > instead of > > >cat, or add more builtins to quake. > > > > >Question: M3_OSTYPE, this it meant to be a query about the > target and not > > >the host, right? > > >My suspected anwer: Cross builds aren't actually factored into > the build > > >system right. There is not a way to check one vs. the other. > That is, > >host > > >is mostly assumed to be target. Not completely broken, since > cross builds > > >are doable, in a way I am not familiar with but is documented. > > > > >file_exists should be either in that m3makefile or the global > cm3.cfg.> >it is defined by me as like: > > > > >proc file_exists(a) is > > >return stale(a, a) > > >end > > > > >I thought the use of "stale(a,a)" in places kind of obscure and > worthy of > >a > > >name. > > > > >In order to work with whatever global cm3.cfg someone has, > let's just put > > >in a local definition. Some of the history in the import-libs > directory > >is > > >it did not initially build incrementally, just always clean, so > my > >changes > > >for incrementality have less time under their belt, so to speak. > > > > >- Jay > > > > > > >>From: "Daniel Alejandro Benavides D." > > >>To: m3devel at elegosoft.com > > >>Subject: [M3devel] cm3-5.4 building on NT386 cat not > recognized command > > >>Date: Sun, 14 Jan 2007 20:05:24 +0100 (CET) > > >> > > >>Hi all: > > >>Im trynig to get build with the bootstrap of 5.2.6, do-cm3- > base.cmd> >>works well. Just got an error in about file > > >>C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs\src\m3makefile > > >> > > >>C:\cm3-5.4\cm3-cvs\cm3\scripts\win>do-cm3-base.cmd > > >>INSTALLROOT=C:\cm3 > > >>LIB=%INSTALLROOT%\LIB;%LIB% > > >>CM3ROOT=C:\\cm3-5.4\\cm3-cvs\\cm3 > > >> > > >>making C:\cm3-5.4\cm3-cvs\cm3\scripts\win\PKGS with > > >>C:\cm3-5.4\cm3-cvs\cm3\scripts\win\find-packages > > >>call C:\cm3-5.4\cm3-cvs\cm3\scripts\win\pkgmap -c "cm3 -build - > override> >>-DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" import-libs m3core > libm3 m3middle m3quake m3scanner m3tools m3cgcat m3cggen m3bundle mklib dll2lib fix_nl libdump bitvector digraph parseparams realgeometry set slisp > sortedtableextras table-list tempfiles tcp tapi > > >> > > >>=== package C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs === > > >>+++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ > > >>unable to read ..\src\m3overrides, options "-override" and "- > x" ignored. > > >>"C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs\src\m3makefile", > line 178: quake runtime error: undefined variable: file_exists > > >> > > >>--procedure-- -line- -file--- > > >> > > >>include_dir 178 > > >>C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs\src\m3makefile > > >> 5 C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs\NT386\m3make.args > > >>Fatal Error: package build failed > > >> > > >>*** execution of cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3- > cvs\\cm3> >>failed with 0 *** > > >> > > >> I just commented the whole if of line 178 and it worked well. > Then I tried the do-cm3-std.cmd, and it works well until formsview > package, but when in m3-obliq got an error because a missing cat: > > >> > > >> -> linking vocgi.exe > > >>=== package C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\voquery === > > >>+++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ > > >>new source -> compiling Main.m3 > > >> -> linking voquery.exe > > >>=== package C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vorun === > > >>+++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ > > >>C:\cm3-5.4\cm3-cvs\cm3\m3-tools\m3bundle\NT386\m3bundle -name > >VORunBundle > > >>-FC:\D > > >>OCUME~1\LUISCA~1\CONFIG~1\Temp\qk > > >>new source -> compiling VORunBundle.i3 > > >>new source -> compiling VORunBundle.m3 > > >>new source -> compiling Main.m3 > > >> -> linking vorun.exe > > >>cat ..\src\vostart >> vostart > > >>"cat" is not recognized as an internal or external command, > operable> >>program or batch file. > > >> > > >>"C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vorun\src\m3makefile", line > 33: quake > > >>runtime error: exit 1: cat ..\src\vostart >> vostart > > >> > > >>--procedure-- -line- -file--- > > >>exec -- > > >>include_dir 33 C:\cm3-5.4\cm3-cvs\cm3\m3- > obliq\vorun\src\m3makefile> >> 6 > > >>C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vorun\NT386\m3make.args > > >> > > >>Fatal Error: package build failed > > >>*** execution of cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3- > cvs\\cm3> >>failed with 0 *** > > >>error : call C:\cm3-5.4\cm3-cvs\cm3\scripts\win\pkgmap -c "cm3 > -build > > >>-override > > >>-DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" import-libs m3core libm3 > m3core m3middle m3quake m3scanner m3tools m3cgcat m3cggen m3bundle mklib dll2lib fix_nl libdump bitvector digraph parseparams realgeometry set slisp > > >>sortedtableextras table-list tempfiles tcl tcp udp libsio libbuf debug > > >>listfuncs patternmatching embutils m3tk-misc http binIO deepcopy sgml > >tapi serial m3tk mtex m3totex m3tohtml m3scan m3markup m3browser > cmpdir cmpfp dirfp uniq netobj netobjd stubgen events rdwr sharedobj > sharedobjgen odbc postgres95 db smalldb stable stablegen X11R4 ui PEX vbtkit cmvbt jvideo videovbt web formsvbtpixmaps formsvbt formsview formsedit > codeview mg mgkit opengl anim3D zeus m3zume synloc synex metasyn obliqrt obliqparse obliq print obliq obliqlibemb obliqlibm3 obliqlibui obliqlibanim > obliqsrvstd obliqsrvui obliqbinmin obliqbinstd obliqbinui > obliqbinanim visualobliq vocgi >>voquery vorun webvbt recordheap rehearsecode replayheap showheap shownew >>showthread pkl-fonts juno-machine juno-compiler juno- app cube calculator fisheyementor failed > > >> > > >>C:\cm3-5.4\cm3-cvs\cm3\scripts\win> > > >> > > >>Can we use a native port of cat, or bunddle in the distro? > > >> > > >>Thanks, > > >>Daniel Benavides > > > > > > > >--------------------------------- --------------------------------- LLama Gratis a cualquier PC del Mundo. Llamadas a fijos y m?viles desde 1 c?ntimo por minuto. http://es.voice.yahoo.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From jayk123 at hotmail.com Mon Jan 15 05:49:35 2007 From: jayk123 at hotmail.com (j k) Date: Mon, 15 Jan 2007 04:49:35 +0000 Subject: [M3devel] cm3-5.4 building on NT386 cat not recognized command In-Reply-To: <244321.27877.qm@web86902.mail.ukl.yahoo.com> Message-ID: I commited some showthread support. I just looked at the pthread code and made the Win32 code similar. mentor @M3showthreads brings up an extra window with a start menu and some colored stripes. The display doesn't make sense to me but it might be right. So I can build all of "std" now. Maybe also be good to see how this used to work. I made a third identical copy of ThreadEvent.i3. Is that really the right way? Can the file be moved in cvs without losing history? (In Perforce you would "integrate" the file, which is a kind of funny term they usually use for merge across branches but also for arbitrary move/copy-with-history). - Jay >From: "Daniel Alejandro Benavides D." >To: jayk123 at hotmail.com, m3devel at elegosoft.com >Subject: RE: [M3devel] cm3-5.4 building on NT386 cat not recognized command >Date: Sun, 14 Jan 2007 23:26:11 +0100 (CET) > > Hi, >I succesfully used type instead of cat, so obliq was built. I also added >file_exists in cm3.cfg. Thanks. >I have tested m3browser, It runs just fine, congratulations !! > >So I continued with do-cm3-std.cmd built but I found that >m3-libs\m3core\src\thread is not built in any of the implementations (which >must be src\thread\WIN32 according to the thread\m3makefile wich has >OS_TYPE variable if not PTHREAD), but this directory has no built nothing , >so I was wondering if the variable M3_OSTYPE you mentioned is the same? >Do you think is possible to use the Pthread part, with the pthread port on >Windows? > >C:\cm3-5.4\cm3-cvs\cm3\m3-tools\m3bundle\NT386\m3bundle -name >RehearseCodeBundle > -element RehearseCode.fv ..\src\RehearseCode.fv > new source -> compiling RehearseCodeBundle.i3 > new source -> compiling RehearseCode.m3 > new source -> compiling RehearseCodeBundle.m3 > -> linking RehearseCode.exe > === package C:\cm3-5.4\cm3-cvs\cm3\m3-tools\replayheap === > +++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ > new source -> compiling Main.m3 > -> linking replayheap.exe > === package C:\cm3-5.4\cm3-cvs\cm3\m3-tools\showheap === > +++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ > new source -> compiling ShowHeap.m3 > -> linking showheap.exe > === package C:\cm3-5.4\cm3-cvs\cm3\m3-tools\shownew === > +++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ > new source -> compiling ZIO.i3 > new source -> compiling ZIO.m3 > new source -> compiling ShowNew.m3 > -> linking shownew.exe > === package C:\cm3-5.4\cm3-cvs\cm3\m3-tools\showthread === > +++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ > new source -> compiling Main.m3 > "..\src\Main.m3", line 12: unable to find interface (ThreadEvent) > 1 error encountered > compilation failed => not building program "showthread.exe" > Fatal Error: package build failed > *** execution of cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3 >failed with 0 *** > .... > >By the way, the above ThreadEvent missing interface is not in the WIN32 >directory, can be copied? > >Thanks, >Daniel Benavides > >---------- > >j k wrote: > > >Good! > > >The problems in obliq I know about. > >They are old. Getting this far in "std" I think is pretty good. > > >I'm sure we can just switch on M3_OSTYPE and use type or echo instead of > >cat, or add more builtins to quake. > > >Question: M3_OSTYPE, this it meant to be a query about the target and not > >the host, right? > >My suspected anwer: Cross builds aren't actually factored into the build > >system right. There is not a way to check one vs. the other. That is, >host > >is mostly assumed to be target. Not completely broken, since cross builds > >are doable, in a way I am not familiar with but is documented. > > >file_exists should be either in that m3makefile or the global cm3.cfg. > >it is defined by me as like: > > >proc file_exists(a) is > >return stale(a, a) > >end > > >I thought the use of "stale(a,a)" in places kind of obscure and worthy of >a > >name. > > >In order to work with whatever global cm3.cfg someone has, let's just put > >in a local definition. Some of the history in the import-libs directory >is > >it did not initially build incrementally, just always clean, so my >changes > >for incrementality have less time under their belt, so to speak. > > >- Jay > > > >>From: "Daniel Alejandro Benavides D." > >>To: m3devel at elegosoft.com > >>Subject: [M3devel] cm3-5.4 building on NT386 cat not recognized command > >>Date: Sun, 14 Jan 2007 20:05:24 +0100 (CET) > >> > >>Hi all: > >>Im trynig to get build with the bootstrap of 5.2.6, do-cm3-base.cmd > >>works well. Just got an error in about file > >>C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs\src\m3makefile > >> > >>C:\cm3-5.4\cm3-cvs\cm3\scripts\win>do-cm3-base.cmd > >>INSTALLROOT=C:\cm3 > >>LIB=%INSTALLROOT%\LIB;%LIB% > >>CM3ROOT=C:\\cm3-5.4\\cm3-cvs\\cm3 > >> > >>making C:\cm3-5.4\cm3-cvs\cm3\scripts\win\PKGS with > >>C:\cm3-5.4\cm3-cvs\cm3\scripts\win\find-packages > >>call C:\cm3-5.4\cm3-cvs\cm3\scripts\win\pkgmap -c "cm3 -build -override > >>-DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" import-libs m3core libm3 m3middle >m3quake > >>m3scanner m3tools m3cgcat m3cggen m3bundle mklib dll2lib fix_nl libdump > >>bitvector digraph parseparams realgeometry set slisp sortedtableextras > >>table-list tempfiles tcp tapi > >> > >>=== package C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs === > >>+++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ > >>unable to read ..\src\m3overrides, options "-override" and "-x" ignored. > >>"C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs\src\m3makefile", line 178: >quake > >>runtime error: undefined variable: file_exists > >> > >>--procedure-- -line- -file--- > >> > >>include_dir 178 > >>C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs\src\m3makefile > >> 5 > >>C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs\NT386\m3make.args > >>Fatal Error: package build failed > >> > >>*** execution of cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3 > >>failed with 0 *** > >> > >> I just commented the whole if of line 178 and it worked well. Then I > >>tried the do-cm3-std.cmd, and it works well until formsview package, but > >>when in m3-obliq got an error because a missing cat: > >> > >> -> linking vocgi.exe > >>=== package C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\voquery === > >>+++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ > >>new source -> compiling Main.m3 > >> -> linking voquery.exe > >>=== package C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vorun === > >>+++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ > >>C:\cm3-5.4\cm3-cvs\cm3\m3-tools\m3bundle\NT386\m3bundle -name >VORunBundle > >>-FC:\D > >>OCUME~1\LUISCA~1\CONFIG~1\Temp\qk > >>new source -> compiling VORunBundle.i3 > >>new source -> compiling VORunBundle.m3 > >>new source -> compiling Main.m3 > >> -> linking vorun.exe > >>cat ..\src\vostart >> vostart > >>"cat" is not recognized as an internal or external command, operable > >>program or batch file. > >> > >>"C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vorun\src\m3makefile", line 33: quake > >>runtime error: exit 1: cat ..\src\vostart >> vostart > >> > >>--procedure-- -line- -file--- > >>exec -- > >>include_dir 33 C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vorun\src\m3makefile > >> 6 > >>C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vorun\NT386\m3make.args > >> > >>Fatal Error: package build failed > >>*** execution of cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3 > >>failed with 0 *** > >>error : call C:\cm3-5.4\cm3-cvs\cm3\scripts\win\pkgmap -c "cm3 -build > >>-override > >>-DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" import-libs m3core libm3 m3core >m3middle > >>m3quake m3scanner m3tools m3cgcat m3cggen m3bundle mklib dll2lib fix_nl > >>libdump bitvector digraph parseparams realgeometry set slisp > >>sortedtableextras table-list tempfiles tcl tcp udp libsio libbuf debug > >>listfuncs patternmatching embutils m3tk-misc http binIO deepcopy sgml >tapi > >>serial m3tk mtex m3totex m3tohtml m3scan m3markup m3browser cmpdir cmpfp > >>dirfp uniq netobj netobjd stubgen events rdwr sharedobj sharedobjgen >odbc > >>postgres95 db smalldb stable stablegen X11R4 ui PEX vbtkit cmvbt jvideo > >>videovbt web formsvbtpixmaps formsvbt formsview formsedit codeview mg >mgkit > >>opengl anim3D zeus m3zume synloc synex metasyn obliqrt obliqparse obliq > >>print obliq obliqlibemb obliqlibm3 obliqlibui obliqlibanim obliqsrvstd > >>obliqsrvui obliqbinmin obliqbinstd obliqbinui obliqbinanim visualobliq >vocgi >>voquery vorun webvbt recordheap rehearsecode replayheap showheap >shownew >>showthread pkl-fonts juno-machine juno-compiler juno-app cube >calculator fisheye > >>mentor failed > >> > >>C:\cm3-5.4\cm3-cvs\cm3\scripts\win> > >> > >>Can we use a native port of cat, or bunddle in the distro? > >> > >>Thanks, > >>Daniel Benavides > > > >--------------------------------- > >LLama Gratis a cualquier PC del Mundo. >Llamadas a fijos y m?viles desde 1 c?ntimo por minuto. >http://es.voice.yahoo.com _________________________________________________________________ The MSN Entertainment Guide to Golden Globes is here. Get all the scoop. http://tv.msn.com/tv/globes2007/?icid=nctagline2 From rodney.bates at wichita.edu Mon Jan 15 16:21:42 2007 From: rodney.bates at wichita.edu (Rodney M. Bates) Date: Mon, 15 Jan 2007 09:21:42 -0600 Subject: [M3devel] ROOT undefined Message-ID: <45AB9C06.8050503@wichita.edu> I did a fresh checkout of cm3 from CVS and did a couple of rounds of do-cm3-min.sh and do-cm3-core.sh, build and ship. Then I tried to compile a small test program, with this result: [rodney at selkirk cm3]$ cm3 --- building in LINUXLIBC6 --- "/usr/local/cm3/pkg/libm3/src/bundleintf/bundle-ov.tmpl", line 4: quake runtime error: undefined variable: ROOT --procedure-- -line- -file--- _import_template 4 /usr/local/cm3/pkg/libm3/src/bundleintf/bundle-ov.tmpl _import_template 4 /usr/local/cm3/pkg/libm3/src/bundleintf/bundle-ov.tmpl import 269 /usr/local/cm3/pkg/libm3/LINUXLIBC6/.M3EXPORTS include_dir 8 /home/rodney/proj/m3/exp/format5/cm3/src/m3makefile 4 /home/rodney/proj/m3/exp/format5/cm3/LINUXLIBC6/m3make.args Fatal Error: package build failed rm m3make.args cd .. [rodney at selkirk cm3]$ more /usr/local/cm3/pkg/libm3/src/bundleintf/bundle-ov.tmpl if defined("M3BUNDLE") _M3BUNDLE = M3BUNDLE else _M3BUNDLE = format(ROOT & SL & "m3-tools" & SL & "m3bundle" & SL & "%s" & SL & "m3bundle", BUILD_DIR) M3BUNDLE = _M3BUNDLE end FWIW, I backed up but did not clean out /usr/local/cm3 before building. -- ------------------------------------------------------------- Rodney M. Bates, retired assistant professor Dept. of Computer Science, Wichita State University Wichita, KS 67260-0083 316-978-3922 rodney.bates at wichita.edu From jayk123 at hotmail.com Mon Jan 15 16:40:10 2007 From: jayk123 at hotmail.com (j k) Date: Mon, 15 Jan 2007 15:40:10 +0000 Subject: [M3devel] ROOT undefined In-Reply-To: <45AB9C06.8050503@wichita.edu> Message-ID: ROOT is "normally", when you use do-cm3*.sh, defined by sysinfo.sh. There is obvious danger of stuff working there but not outside there -- it defines so many environment variables. It does get shipped next to cm3.exe/cm3, so just run it from the %path%/$path? - Jay >From: "Rodney M. Bates" >To: Modula-3 developers >Subject: [M3devel] ROOT undefined >Date: Mon, 15 Jan 2007 09:21:42 -0600 > >I did a fresh checkout of cm3 from CVS and did a couple of rounds of >do-cm3-min.sh and do-cm3-core.sh, build and ship. Then I tried to >compile a small test program, with this result: > >[rodney at selkirk cm3]$ cm3 >--- building in LINUXLIBC6 --- > >"/usr/local/cm3/pkg/libm3/src/bundleintf/bundle-ov.tmpl", line 4: quake >runtime error: undefined variable: ROOT > >--procedure-- -line- -file--- >_import_template 4 >/usr/local/cm3/pkg/libm3/src/bundleintf/bundle-ov.tmpl >_import_template 4 >/usr/local/cm3/pkg/libm3/src/bundleintf/bundle-ov.tmpl >import 269 /usr/local/cm3/pkg/libm3/LINUXLIBC6/.M3EXPORTS >include_dir 8 /home/rodney/proj/m3/exp/format5/cm3/src/m3makefile > 4 >/home/rodney/proj/m3/exp/format5/cm3/LINUXLIBC6/m3make.args > >Fatal Error: package build failed >rm m3make.args >cd .. >[rodney at selkirk cm3]$ more >/usr/local/cm3/pkg/libm3/src/bundleintf/bundle-ov.tmpl >if defined("M3BUNDLE") > _M3BUNDLE = M3BUNDLE >else > _M3BUNDLE = format(ROOT & SL & "m3-tools" & SL & "m3bundle" & SL & "%s" >& > SL & "m3bundle", BUILD_DIR) > M3BUNDLE = _M3BUNDLE >end > >FWIW, I backed up but did not clean out /usr/local/cm3 before building. > >-- >------------------------------------------------------------- >Rodney M. Bates, retired assistant professor >Dept. of Computer Science, Wichita State University >Wichita, KS 67260-0083 >316-978-3922 >rodney.bates at wichita.edu >_______________________________________________ >M3devel mailing list >M3devel at elegosoft.com >https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel _________________________________________________________________ Get FREE Web site and company branded e-mail from Microsoft Office Live http://clk.atdmt.com/MRT/go/mcrssaub0050001411mrt/direct/01/ From rodney.bates at wichita.edu Mon Jan 15 16:41:50 2007 From: rodney.bates at wichita.edu (Rodney M. Bates) Date: Mon, 15 Jan 2007 09:41:50 -0600 Subject: [M3devel] Re: ROOT undefined Message-ID: <45ABA0BE.3040106@wichita.edu> Running do-cm3-std.sh buildship (even though it failed trying to link formsview, with a library version problem) made this problem go away. -- ------------------------------------------------------------- Rodney M. Bates, retired assistant professor Dept. of Computer Science, Wichita State University Wichita, KS 67260-0083 316-978-3922 rodney.bates at wichita.edu From wagner at elegosoft.com Mon Jan 15 16:56:37 2007 From: wagner at elegosoft.com (Olaf Wagner) Date: Mon, 15 Jan 2007 16:56:37 +0100 (CET) Subject: [M3devel] ROOT undefined In-Reply-To: <45AB9C06.8050503@wichita.edu> References: <45AB9C06.8050503@wichita.edu> Message-ID: <62815.194.138.127.36.1168876597.squirrel@mail.elegosoft.com> On Mon, January 15, 2007 4:21 pm, Rodney M. Bates wrote: > I did a fresh checkout of cm3 from CVS and did a couple of rounds of > do-cm3-min.sh and do-cm3-core.sh, build and ship. Then I tried to > compile a small test program, with this result: > > [rodney at selkirk cm3]$ cm3 > --- building in LINUXLIBC6 --- > > "/usr/local/cm3/pkg/libm3/src/bundleintf/bundle-ov.tmpl", line 4: quake > runtime error: undefined > variable: ROOT > > --procedure-- -line- -file--- > _import_template 4 > /usr/local/cm3/pkg/libm3/src/bundleintf/bundle-ov.tmpl > _import_template 4 > /usr/local/cm3/pkg/libm3/src/bundleintf/bundle-ov.tmpl > import 269 /usr/local/cm3/pkg/libm3/LINUXLIBC6/.M3EXPORTS > include_dir 8 /home/rodney/proj/m3/exp/format5/cm3/src/m3makefile > 4 > /home/rodney/proj/m3/exp/format5/cm3/LINUXLIBC6/m3make.args > > Fatal Error: package build failed > rm m3make.args > cd .. > [rodney at selkirk cm3]$ more > /usr/local/cm3/pkg/libm3/src/bundleintf/bundle-ov.tmpl > if defined("M3BUNDLE") > _M3BUNDLE = M3BUNDLE > else > _M3BUNDLE = format(ROOT & SL & "m3-tools" & SL & "m3bundle" & SL & "%s" & > SL & "m3bundle", BUILD_DIR) > M3BUNDLE = _M3BUNDLE > end > > FWIW, I backed up but did not clean out /usr/local/cm3 before building. This has been there for many years; the else part should only be used if you are compiling with overrides. Using the scripts in cm3/scripts, ROOT will always be defined then. I cannot really explain what is going wrong with the given information; it may be your installation is broken, or maybe Jay Krell has accidentally changed something with his attempt to use only relative paths for Windows environments. The command line above seems to indicate that you are _not_ using overrides, so m3bundle should be expected in e.g. /usr/local/cm3/bin/m3bundle. Olaf -- Olaf Wagner elego Software Solutions GmbH, Berlin, Germany From rodney.bates at wichita.edu Mon Jan 15 22:21:36 2007 From: rodney.bates at wichita.edu (Rodney M. Bates) Date: Mon, 15 Jan 2007 15:21:36 -0600 Subject: [M3devel] More CVS advice needed, on merging Message-ID: <45ABF060.6080807@wichita.edu> I went back to work on a problem deferred since last fall and eventually reconstructed this scenario, which I think is accurate. I had a modified version of one source file from the CVS repository, a part of the gcc back end code generator. Before I was ready to check it in, I needed updated files in some other place, so did a cvs update (on all of cm3). The CVS copy of the one I had modified had changed drastically, (because of a switch to a newer version of gcc). CVS helpfully merged my changes into the new version, but didn't leave me any kind of backup. Because the changes in the repository were so extensive, the merged version was a long way from being useful. I was quite difficult to reconstruct what I had changed. I eventually located files on a mirrored computer that helped, though not the modified file I really would have liked. So, is there a way to get CVS to either 1) make a backup of a local copy when it merges it with updates from the repository, or 2) do an update but refuse altogether to merge. -- ------------------------------------------------------------- Rodney M. Bates, retired assistant professor Dept. of Computer Science, Wichita State University Wichita, KS 67260-0083 316-978-3922 rodney.bates at wichita.edu From dabenavidesd at yahoo.es Mon Jan 15 22:40:09 2007 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Mon, 15 Jan 2007 22:40:09 +0100 (CET) Subject: [M3devel] cm3-5.4 built on NT386 Message-ID: <20070115214009.1171.qmail@web86906.mail.ukl.yahoo.com> Hello all: I finally succesfully built do-cm3-std.cmd buildship with the latest changes in the cm3 cvs. I have used Win xp+sp2 and Visual Studio 6 libraries and compiler. Thanks, Daniel Benavides --------------------------------- LLama Gratis a cualquier PC del Mundo. Llamadas a fijos y m?viles desde 1 c?ntimo por minuto. http://es.voice.yahoo.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From wagner at plane.elego.de Tue Jan 16 08:51:48 2007 From: wagner at plane.elego.de (Olaf Wagner) Date: Tue, 16 Jan 2007 08:51:48 +0100 Subject: [M3devel] More CVS advice needed, on merging In-Reply-To: <45ABF060.6080807@wichita.edu> References: <45ABF060.6080807@wichita.edu> Message-ID: <20070116075148.GA18148@elegosoft.com> On Mon, Jan 15, 2007 at 03:21:36PM -0600, Rodney M. Bates wrote: > Because the changes in the repository were so extensive, the merged > version was a long way from being useful. I was quite difficult to > reconstruct what I had changed. I eventually located files on a > mirrored computer that helped, though not the modified file I really > would have liked. > > So, is there a way to get CVS to either > 1) make a backup of a local copy when it merges it with updates from > the repository, or > 2) do an update but refuse altogether to merge. If CVS merges in your workspace, the old versions should always be available. Look for files named .#.. The problem is that ls will show them only with option -a. You can also always update to the original base version of your file (if you know it). Olaf -- elego Software Solutions GmbH HRB 77719 Olaf Wagner E-Mail: wagner(at)elego.de Ohmstra?e 9 Tel: +49 30 40 04 19 29 10179 Berlin Fax: +49 30 23 45 86 95 Cranachstra?e 7 Tel: +49 30 85 58 01 81 12157 Berlin Fax: +49 30 85 58 01 88 ------------------> WWW: http://www.elego-software-solutions.com From wagner at plane.elego.de Sat Jan 20 17:41:28 2007 From: wagner at plane.elego.de (Olaf Wagner) Date: Sat, 20 Jan 2007 17:41:28 +0100 Subject: [M3devel] Re: porting m3 on intel mac In-Reply-To: <8A58B35B-22CD-42D5-BA19-5FBF5D3CF5CD@dsi.unive.it> References: <8A58B35B-22CD-42D5-BA19-5FBF5D3CF5CD@dsi.unive.it> Message-ID: <20070120164128.GA27790@elegosoft.com> On Sat, Jan 20, 2007 at 03:05:55PM +0100, Renzo Orsini wrote: > Hello, > > I installed cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz on an intel mac, then > tried to a compile a Hello world program, but the compilation failed > with the following message: > > pborsini:~/ProveModula3 orsini$ cm3 > --- building in PPC_DARWIN --- > > new source -> compiling Main.m3 > "../Main.m3", line 4: warning: potentially unhandled exception: IO.Error > 1 warning encountered > Main.ms:12:no such instruction: `mflr r0' > Main.ms:13:no such instruction: `stmw r30,-8(r1)' > Main.ms:14:no such instruction: `stw r0,8(r1)' > Main.ms:15:no such instruction: `stwu r1,-96(r1)' > Main.ms:16:no such instruction: `mr r30,r1' > Main.ms:17:no such instruction: `bcl 20,31,"L00000000001$pb"' > ... > .... > > So I suppose there is PPC code to assemble and the Rosetta emulator > for PPC on intel macs cannot do anything for this! > > Since I would like to port the Fibonacci language for databases, > which is written in Modula-3, if I understand well the situation I > should port the Modula-3 compiler by cross compiling it on a PPC mac, > or something like that. > > I am asking you if you know about some effort of porting Modula-3 on > intel macs, or at least if you let me know if this operation is > possible (and also reasonably feasible in terms of time and > expertise, given my teaching duties and my difficulties with > assembler languages!), and, if so, if you can point me to the correct > documentation to start with. Of course I will be very glad to give > back to the community the result if I succeed! > > Thank you very much for your attention. > > Cordially > > Renzo Orsini > Associate Professor > Dipartimento di Informatica > Universita' Ca' Foscari di Venezia Well, I wouldn't have thought that you were even able to install the cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz system on an Intel machine; it's surely not supposed to run on one. It shouldn't be too difficult to get a port of the latest CM3 for Darwin on Intel processors; I even think somebody was already working on it, but I don't really remember who, so I forward your mail to the m3devel list, in case others have already started such an effort. Olaf -- elego Software Solutions GmbH HRB 77719 Olaf Wagner E-Mail: wagner(at)elego.de Ohmstra?e 9 Tel: +49 30 40 04 19 29 10179 Berlin Fax: +49 30 23 45 86 95 Cranachstra?e 7 Tel: +49 30 85 58 01 81 12157 Berlin Fax: +49 30 85 58 01 88 ------------------> WWW: http://www.elego-software-solutions.com From darko at darko.org Sat Jan 20 19:02:26 2007 From: darko at darko.org (Darko) Date: Sun, 21 Jan 2007 03:02:26 +0900 Subject: [M3devel] Re: porting m3 on intel mac In-Reply-To: <20070120164128.GA27790@elegosoft.com> References: <8A58B35B-22CD-42D5-BA19-5FBF5D3CF5CD@dsi.unive.it> <20070120164128.GA27790@elegosoft.com> Message-ID: <52EA8FC9-4E33-40FF-B041-5CEAE83BBDE7@darko.org> Have a look here: ftp://ftp.cs.purdue.edu/pub/hosking/m3/I386_DARWIN/ There you'll find the bits you need for Mac Intel. Replace your existing cm3, cmcg and cm3.cfg with the ones there, then you can compile the basic libraries you need like m3core and libm3, but make sure you have the latest sources. I think they're the latest but Tony may have something more to say about that. Darko. On 21/01/2007, at 1:41 AM, Olaf Wagner wrote: > On Sat, Jan 20, 2007 at 03:05:55PM +0100, Renzo Orsini wrote: >> Hello, >> >> I installed cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz on an intel mac, then >> tried to a compile a Hello world program, but the compilation failed >> with the following message: >> >> pborsini:~/ProveModula3 orsini$ cm3 >> --- building in PPC_DARWIN --- >> >> new source -> compiling Main.m3 >> "../Main.m3", line 4: warning: potentially unhandled exception: >> IO.Error >> 1 warning encountered >> Main.ms:12:no such instruction: `mflr r0' >> Main.ms:13:no such instruction: `stmw r30,-8(r1)' >> Main.ms:14:no such instruction: `stw r0,8(r1)' >> Main.ms:15:no such instruction: `stwu r1,-96(r1)' >> Main.ms:16:no such instruction: `mr r30,r1' >> Main.ms:17:no such instruction: `bcl 20,31,"L00000000001$pb"' >> ... >> .... >> >> So I suppose there is PPC code to assemble and the Rosetta emulator >> for PPC on intel macs cannot do anything for this! >> >> Since I would like to port the Fibonacci language for databases, >> which is written in Modula-3, if I understand well the situation I >> should port the Modula-3 compiler by cross compiling it on a PPC mac, >> or something like that. >> >> I am asking you if you know about some effort of porting Modula-3 on >> intel macs, or at least if you let me know if this operation is >> possible (and also reasonably feasible in terms of time and >> expertise, given my teaching duties and my difficulties with >> assembler languages!), and, if so, if you can point me to the correct >> documentation to start with. Of course I will be very glad to give >> back to the community the result if I succeed! >> >> Thank you very much for your attention. >> >> Cordially >> >> Renzo Orsini >> Associate Professor >> Dipartimento di Informatica >> Universita' Ca' Foscari di Venezia > > Well, I wouldn't have thought that you were even able to install > the cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz system on an Intel machine; > it's surely not supposed to run on one. It shouldn't be too > difficult to get a port of the latest CM3 for Darwin on Intel > processors; I even think somebody was already working on it, > but I don't really remember who, so I forward your mail to > the m3devel list, in case others have already started such an > effort. > > Olaf > -- > elego Software Solutions GmbH HRB 77719 > Olaf Wagner E-Mail: wagner(at)elego.de > Ohmstra?e 9 Tel: +49 30 40 04 19 29 > 10179 Berlin Fax: +49 30 23 45 86 95 > Cranachstra?e 7 Tel: +49 30 85 58 01 81 > 12157 Berlin Fax: +49 30 85 58 01 88 > ------------------> WWW: http://www.elego-software-solutions.com > _______________________________________________ > M3devel mailing list > M3devel at elegosoft.com > https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel From hosking at cs.purdue.edu Sat Jan 20 23:18:16 2007 From: hosking at cs.purdue.edu (Antony Hosking) Date: Sat, 20 Jan 2007 17:18:16 -0500 Subject: [M3devel] Re: porting m3 on intel mac In-Reply-To: <52EA8FC9-4E33-40FF-B041-5CEAE83BBDE7@darko.org> References: <8A58B35B-22CD-42D5-BA19-5FBF5D3CF5CD@dsi.unive.it> <20070120164128.GA27790@elegosoft.com> <52EA8FC9-4E33-40FF-B041-5CEAE83BBDE7@darko.org> Message-ID: Only issue is that the bootstrap compiler there still has the bug that breaks pickling. I'm building an update. On 20/01/2007, at 1:02 PM, Darko wrote: > Have a look here: ftp://ftp.cs.purdue.edu/pub/hosking/m3/I386_DARWIN/ > > There you'll find the bits you need for Mac Intel. Replace your > existing cm3, cmcg and cm3.cfg with the ones there, then you can > compile the basic libraries you need like m3core and libm3, but > make sure you have the latest sources. > > I think they're the latest but Tony may have something more to say > about that. > > Darko. > > > > On 21/01/2007, at 1:41 AM, Olaf Wagner wrote: > >> On Sat, Jan 20, 2007 at 03:05:55PM +0100, Renzo Orsini wrote: >>> Hello, >>> >>> I installed cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz on an intel mac, >>> then >>> tried to a compile a Hello world program, but the compilation failed >>> with the following message: >>> >>> pborsini:~/ProveModula3 orsini$ cm3 >>> --- building in PPC_DARWIN --- >>> >>> new source -> compiling Main.m3 >>> "../Main.m3", line 4: warning: potentially unhandled exception: >>> IO.Error >>> 1 warning encountered >>> Main.ms:12:no such instruction: `mflr r0' >>> Main.ms:13:no such instruction: `stmw r30,-8(r1)' >>> Main.ms:14:no such instruction: `stw r0,8(r1)' >>> Main.ms:15:no such instruction: `stwu r1,-96(r1)' >>> Main.ms:16:no such instruction: `mr r30,r1' >>> Main.ms:17:no such instruction: `bcl 20,31,"L00000000001$pb"' >>> ... >>> .... >>> >>> So I suppose there is PPC code to assemble and the Rosetta emulator >>> for PPC on intel macs cannot do anything for this! >>> >>> Since I would like to port the Fibonacci language for databases, >>> which is written in Modula-3, if I understand well the situation I >>> should port the Modula-3 compiler by cross compiling it on a PPC >>> mac, >>> or something like that. >>> >>> I am asking you if you know about some effort of porting Modula-3 on >>> intel macs, or at least if you let me know if this operation is >>> possible (and also reasonably feasible in terms of time and >>> expertise, given my teaching duties and my difficulties with >>> assembler languages!), and, if so, if you can point me to the >>> correct >>> documentation to start with. Of course I will be very glad to give >>> back to the community the result if I succeed! >>> >>> Thank you very much for your attention. >>> >>> Cordially >>> >>> Renzo Orsini >>> Associate Professor >>> Dipartimento di Informatica >>> Universita' Ca' Foscari di Venezia >> >> Well, I wouldn't have thought that you were even able to install >> the cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz system on an Intel machine; >> it's surely not supposed to run on one. It shouldn't be too >> difficult to get a port of the latest CM3 for Darwin on Intel >> processors; I even think somebody was already working on it, >> but I don't really remember who, so I forward your mail to >> the m3devel list, in case others have already started such an >> effort. >> >> Olaf >> -- >> elego Software Solutions GmbH HRB 77719 >> Olaf Wagner E-Mail: wagner(at)elego.de >> Ohmstra?e 9 Tel: +49 30 40 04 19 29 >> 10179 Berlin Fax: +49 30 23 45 86 95 >> Cranachstra?e 7 Tel: +49 30 85 58 01 81 >> 12157 Berlin Fax: +49 30 85 58 01 88 >> ------------------> WWW: http://www.elego-software-solutions.com >> _______________________________________________ >> M3devel mailing list >> M3devel at elegosoft.com >> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel > > > _______________________________________________ > M3devel mailing list > M3devel at elegosoft.com > https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel Antony Hosking | Associate Professor Dept of Computer Sciences | Office: (765) 494-6001 Purdue University | Mobile: (765) 427-5484 250 N. University Street | hosking at cs.purdue.edu West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking _--_|\ / \ \_.--._/ ) v / From hosking at cs.purdue.edu Sat Jan 20 23:20:07 2007 From: hosking at cs.purdue.edu (Antony Hosking) Date: Sat, 20 Jan 2007 17:20:07 -0500 Subject: [M3devel] Re: porting m3 on intel mac In-Reply-To: <20070120164128.GA27790@elegosoft.com> References: <8A58B35B-22CD-42D5-BA19-5FBF5D3CF5CD@dsi.unive.it> <20070120164128.GA27790@elegosoft.com> Message-ID: It's actually not that surprising that you got part way. I did the initial bootstrap on Darwin/Intel by cross-compiling with a PPC_DARWIN binary running under Rosetta. On 20/01/2007, at 11:41 AM, Olaf Wagner wrote: > On Sat, Jan 20, 2007 at 03:05:55PM +0100, Renzo Orsini wrote: >> Hello, >> >> I installed cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz on an intel mac, then >> tried to a compile a Hello world program, but the compilation failed >> with the following message: >> >> pborsini:~/ProveModula3 orsini$ cm3 >> --- building in PPC_DARWIN --- >> >> new source -> compiling Main.m3 >> "../Main.m3", line 4: warning: potentially unhandled exception: >> IO.Error >> 1 warning encountered >> Main.ms:12:no such instruction: `mflr r0' >> Main.ms:13:no such instruction: `stmw r30,-8(r1)' >> Main.ms:14:no such instruction: `stw r0,8(r1)' >> Main.ms:15:no such instruction: `stwu r1,-96(r1)' >> Main.ms:16:no such instruction: `mr r30,r1' >> Main.ms:17:no such instruction: `bcl 20,31,"L00000000001$pb"' >> ... >> .... >> >> So I suppose there is PPC code to assemble and the Rosetta emulator >> for PPC on intel macs cannot do anything for this! >> >> Since I would like to port the Fibonacci language for databases, >> which is written in Modula-3, if I understand well the situation I >> should port the Modula-3 compiler by cross compiling it on a PPC mac, >> or something like that. >> >> I am asking you if you know about some effort of porting Modula-3 on >> intel macs, or at least if you let me know if this operation is >> possible (and also reasonably feasible in terms of time and >> expertise, given my teaching duties and my difficulties with >> assembler languages!), and, if so, if you can point me to the correct >> documentation to start with. Of course I will be very glad to give >> back to the community the result if I succeed! >> >> Thank you very much for your attention. >> >> Cordially >> >> Renzo Orsini >> Associate Professor >> Dipartimento di Informatica >> Universita' Ca' Foscari di Venezia > > Well, I wouldn't have thought that you were even able to install > the cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz system on an Intel machine; > it's surely not supposed to run on one. It shouldn't be too > difficult to get a port of the latest CM3 for Darwin on Intel > processors; I even think somebody was already working on it, > but I don't really remember who, so I forward your mail to > the m3devel list, in case others have already started such an > effort. > > Olaf > -- > elego Software Solutions GmbH HRB 77719 > Olaf Wagner E-Mail: wagner(at)elego.de > Ohmstra?e 9 Tel: +49 30 40 04 19 29 > 10179 Berlin Fax: +49 30 23 45 86 95 > Cranachstra?e 7 Tel: +49 30 85 58 01 81 > 12157 Berlin Fax: +49 30 85 58 01 88 > ------------------> WWW: http://www.elego-software-solutions.com > _______________________________________________ > M3devel mailing list > M3devel at elegosoft.com > https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel Antony Hosking | Associate Professor Dept of Computer Sciences | Office: (765) 494-6001 Purdue University | Mobile: (765) 427-5484 250 N. University Street | hosking at cs.purdue.edu West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking _--_|\ / \ \_.--._/ ) v / From darko at darko.org Sat Jan 20 23:49:10 2007 From: darko at darko.org (Darko) Date: Sun, 21 Jan 2007 07:49:10 +0900 Subject: [M3devel] Re: porting m3 on intel mac In-Reply-To: References: <8A58B35B-22CD-42D5-BA19-5FBF5D3CF5CD@dsi.unive.it> <20070120164128.GA27790@elegosoft.com> <52EA8FC9-4E33-40FF-B041-5CEAE83BBDE7@darko.org> Message-ID: <6307E3CC-8E5F-4317-8A8E-7EADE20FEE54@darko.org> No worries. I'm not familiar at all with those scripts. The problem you are having may be to do with not having the latest source, but it most probably has to do with the version of gcc that is active on your machine. C files are not compiled by cm3 but rather call gcc directly. I can't remember which version of gcc is the correct one, but mine currently is i686-apple-darwin8-gcc-4.0.1; also I can't remember the command line for changing gcc versions. Tony may be able to help re the correct version if 4.0.1 doesn't work. You may need to install the latest XCode from http://developer.apple.com if you don't have 4.01. I've cc'd the list because they're actually very helpful and my knowledge is limited... - Darko On 21/01/2007, at 6:58 AM, Renzo Orsini wrote: > First of all, thank you very much for your immediate help! > > I downloaded the files and replaced the corresponding /usr/local/ > cm3/bin files, > modified cm3.cfg by replacing INSTALL_ROOT = "/usr/local/cm3-i386/" > with INSTALL_ROOT = "/usr/local/cm3/" > then in the full source (last version, 5.4.0) I did: scripts/do-cm3- > core.sh buildship > this is the result: > > root#./do-cm3-core.sh buildship > CM3C = > /Users/orsini/cm3/cm3-src-all-5.4.0/scripts/pkgmap.sh -c "cm3 - > build -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' && cm3 -ship - > DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' " m3gc-simple m3core > libm3 patternmatching m3middle m3linker m3front m3quake m3cc cm3 > m3scanner m3tools m3cgcat m3cggen m3bundle bitvector digraph > parseparams realgeometry set slisp sortedtableextras table-list > tempfiles > === package /Users/orsini/cm3/cm3-src-all-5.4.0/m3-libs/m3gc-simple > === > +++ cm3 -build -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' && > cm3 -ship -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' +++ > --- building in I386_DARWIN --- > > new source -> compiling RTVM.c > new source -> compiling sysdeps.c > new source -> compiling accept.c > ../src/runtime/I386_DARWIN/accept.c: In function 'm3_accept': > ../src/runtime/I386_DARWIN/accept.c:13: warning: pointer targets in > passing argument 3 of 'accept' differ in signedness > new source -> compiling bind.c > new source -> compiling close.c > new source -> compiling connect.c > new source -> compiling dup.c > new source -> compiling dup2.c > new source -> compiling gethostbyaddr.c > new source -> compiling gethostbyname.c > new source -> compiling getpeername.c > ../src/runtime/I386_DARWIN/getpeername.c: In function > 'm3_getpeername': > ../src/runtime/I386_DARWIN/getpeername.c:13: warning: pointer > targets in passing argument 3 of 'getpeername' differ in signedness > new source -> compiling getsockname.c > ../src/runtime/I386_DARWIN/getsockname.c: In function > 'm3_getsockname': > ../src/runtime/I386_DARWIN/getsockname.c:13: warning: pointer > targets in passing argument 3 of 'getsockname' differ in signedness > new source -> compiling listen.c > new source -> compiling read.c > new source -> compiling recv.c > new source -> compiling recvfrom.c > ../src/runtime/I386_DARWIN/recvfrom.c: In function 'm3_recvfrom': > ../src/runtime/I386_DARWIN/recvfrom.c:15: warning: pointer targets > in passing argument 6 of 'recvfrom' differ in signedness > new source -> compiling select.c > new source -> compiling send.c > new source -> compiling sendto.c > new source -> compiling shutdown.c > new source -> compiling socket.c > new source -> compiling write.c > -> archiving libm3gcdefs.a > ld: common symbols not allowed with MH_DYLIB output format with the > -multi_module option > sysdeps.o definition of common _RTCSRC_FinishVM (size 16) > sysdeps.o definition of common _RTHeapRep_Fault (size 16) > /usr/bin/libtool: internal link edit command failed > --- shipping from I386_DARWIN --- > > . => /usr/local/cm3/pkg/m3gc-simple/I386_DARWIN > .M3EXPORTS libm3gcdefs.5.2.dylib"/Users/orsini/cm3/cm3-src- > all-5.4.0/m3-libs/m3gc-simple/I386_DARWIN/.M3SHIP", line 3: quake > runtime error: unable to copy "libm3gcdefs.5.2.dylib" to "/usr/ > local/cm3/pkg/m3gc-simple/I386_DARWIN/libm3gcdefs.5.2.dylib": errno=2 > > --procedure-- -line- -file--- > install_file -- > 3 /Users/orsini/cm3/cm3-src-all-5.4.0/m3-libs/ > m3gc-simple/I386_DARWIN/.M3SHIP > > Fatal Error: package build failed > *** execution of failed *** > > ====== > > > I noticed that not all the .c files in .../m3-libs/m3gc-simple/src/ > runtime/I386_DARWIN/ where compiled, but I do not know if this is a > normal behaviour. > > Thanks in advance for your time and patience! > > Cordially > > Renzo Orsini > > > On Jan 20, 2007, at 19:02, Darko wrote: > >> Have a look here: ftp://ftp.cs.purdue.edu/pub/hosking/m3/I386_DARWIN/ >> >> There you'll find the bits you need for Mac Intel. Replace your >> existing cm3, cmcg and cm3.cfg with the ones there, then you can >> compile the basic libraries you need like m3core and libm3, but >> make sure you have the latest sources. >> >> I think they're the latest but Tony may have something more to say >> about that. >> >> Darko. >> >> >> >> On 21/01/2007, at 1:41 AM, Olaf Wagner wrote: >> >>> On Sat, Jan 20, 2007 at 03:05:55PM +0100, Renzo Orsini wrote: >>>> Hello, >>>> >>>> I installed cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz on an intel mac, >>>> then >>>> tried to a compile a Hello world program, but the compilation >>>> failed >>>> with the following message: >>>> >>>> pborsini:~/ProveModula3 orsini$ cm3 >>>> --- building in PPC_DARWIN --- >>>> >>>> new source -> compiling Main.m3 >>>> "../Main.m3", line 4: warning: potentially unhandled exception: >>>> IO.Error >>>> 1 warning encountered >>>> Main.ms:12:no such instruction: `mflr r0' >>>> Main.ms:13:no such instruction: `stmw r30,-8(r1)' >>>> Main.ms:14:no such instruction: `stw r0,8(r1)' >>>> Main.ms:15:no such instruction: `stwu r1,-96(r1)' >>>> Main.ms:16:no such instruction: `mr r30,r1' >>>> Main.ms:17:no such instruction: `bcl 20,31,"L00000000001$pb"' >>>> ... >>>> .... >>>> >>>> So I suppose there is PPC code to assemble and the Rosetta emulator >>>> for PPC on intel macs cannot do anything for this! >>>> >>>> Since I would like to port the Fibonacci language for databases, >>>> which is written in Modula-3, if I understand well the situation I >>>> should port the Modula-3 compiler by cross compiling it on a PPC >>>> mac, >>>> or something like that. >>>> >>>> I am asking you if you know about some effort of porting >>>> Modula-3 on >>>> intel macs, or at least if you let me know if this operation is >>>> possible (and also reasonably feasible in terms of time and >>>> expertise, given my teaching duties and my difficulties with >>>> assembler languages!), and, if so, if you can point me to the >>>> correct >>>> documentation to start with. Of course I will be very glad to give >>>> back to the community the result if I succeed! >>>> >>>> Thank you very much for your attention. >>>> >>>> Cordially >>>> >>>> Renzo Orsini >>>> Associate Professor >>>> Dipartimento di Informatica >>>> Universita' Ca' Foscari di Venezia >>> >>> Well, I wouldn't have thought that you were even able to install >>> the cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz system on an Intel machine; >>> it's surely not supposed to run on one. It shouldn't be too >>> difficult to get a port of the latest CM3 for Darwin on Intel >>> processors; I even think somebody was already working on it, >>> but I don't really remember who, so I forward your mail to >>> the m3devel list, in case others have already started such an >>> effort. >>> >>> Olaf >>> -- >>> elego Software Solutions GmbH HRB 77719 >>> Olaf Wagner E-Mail: wagner(at)elego.de >>> Ohmstra?e 9 Tel: +49 30 40 04 19 29 >>> 10179 Berlin Fax: +49 30 23 45 86 95 >>> Cranachstra?e 7 Tel: +49 30 85 58 01 81 >>> 12157 Berlin Fax: +49 30 85 58 01 88 >>> ------------------> WWW: http://www.elego-software-solutions.com >>> _______________________________________________ >>> M3devel mailing list >>> M3devel at elegosoft.com >>> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel > From hosking at cs.purdue.edu Sat Jan 20 23:58:20 2007 From: hosking at cs.purdue.edu (Antony Hosking) Date: Sat, 20 Jan 2007 17:58:20 -0500 Subject: [M3devel] Re: porting m3 on intel mac In-Reply-To: <6307E3CC-8E5F-4317-8A8E-7EADE20FEE54@darko.org> References: <8A58B35B-22CD-42D5-BA19-5FBF5D3CF5CD@dsi.unive.it> <20070120164128.GA27790@elegosoft.com> <52EA8FC9-4E33-40FF-B041-5CEAE83BBDE7@darko.org> <6307E3CC-8E5F-4317-8A8E-7EADE20FEE54@darko.org> Message-ID: <1521F74A-AF0F-48C4-B0AA-4E7DB321DA62@cs.purdue.edu> What version of OSX are you using? On 20/01/2007, at 5:49 PM, Darko wrote: > No worries. I'm not familiar at all with those scripts. The problem > you are having may be to do with not having the latest source, but > it most probably has to do with the version of gcc that is active > on your machine. C files are not compiled by cm3 but rather call > gcc directly. I can't remember which version of gcc is the correct > one, but mine currently is i686-apple-darwin8-gcc-4.0.1; also I > can't remember the command line for changing gcc versions. Tony may > be able to help re the correct version if 4.0.1 doesn't work. You > may need to install the latest XCode from http:// > developer.apple.com if you don't have 4.01. > > I've cc'd the list because they're actually very helpful and my > knowledge is limited... > > - Darko > > > On 21/01/2007, at 6:58 AM, Renzo Orsini wrote: > >> First of all, thank you very much for your immediate help! >> >> I downloaded the files and replaced the corresponding /usr/local/ >> cm3/bin files, >> modified cm3.cfg by replacing INSTALL_ROOT = "/usr/local/cm3- >> i386/" with INSTALL_ROOT = "/usr/local/cm3/" >> then in the full source (last version, 5.4.0) I did: scripts/do- >> cm3-core.sh buildship >> this is the result: >> >> root#./do-cm3-core.sh buildship >> CM3C = >> /Users/orsini/cm3/cm3-src-all-5.4.0/scripts/pkgmap.sh -c "cm3 - >> build -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' && cm3 -ship - >> DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' " m3gc-simple m3core >> libm3 patternmatching m3middle m3linker m3front m3quake m3cc cm3 >> m3scanner m3tools m3cgcat m3cggen m3bundle bitvector digraph >> parseparams realgeometry set slisp sortedtableextras table-list >> tempfiles >> === package /Users/orsini/cm3/cm3-src-all-5.4.0/m3-libs/m3gc- >> simple === >> +++ cm3 -build -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' && >> cm3 -ship -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' +++ >> --- building in I386_DARWIN --- >> >> new source -> compiling RTVM.c >> new source -> compiling sysdeps.c >> new source -> compiling accept.c >> ../src/runtime/I386_DARWIN/accept.c: In function 'm3_accept': >> ../src/runtime/I386_DARWIN/accept.c:13: warning: pointer targets >> in passing argument 3 of 'accept' differ in signedness >> new source -> compiling bind.c >> new source -> compiling close.c >> new source -> compiling connect.c >> new source -> compiling dup.c >> new source -> compiling dup2.c >> new source -> compiling gethostbyaddr.c >> new source -> compiling gethostbyname.c >> new source -> compiling getpeername.c >> ../src/runtime/I386_DARWIN/getpeername.c: In function >> 'm3_getpeername': >> ../src/runtime/I386_DARWIN/getpeername.c:13: warning: pointer >> targets in passing argument 3 of 'getpeername' differ in signedness >> new source -> compiling getsockname.c >> ../src/runtime/I386_DARWIN/getsockname.c: In function >> 'm3_getsockname': >> ../src/runtime/I386_DARWIN/getsockname.c:13: warning: pointer >> targets in passing argument 3 of 'getsockname' differ in signedness >> new source -> compiling listen.c >> new source -> compiling read.c >> new source -> compiling recv.c >> new source -> compiling recvfrom.c >> ../src/runtime/I386_DARWIN/recvfrom.c: In function 'm3_recvfrom': >> ../src/runtime/I386_DARWIN/recvfrom.c:15: warning: pointer targets >> in passing argument 6 of 'recvfrom' differ in signedness >> new source -> compiling select.c >> new source -> compiling send.c >> new source -> compiling sendto.c >> new source -> compiling shutdown.c >> new source -> compiling socket.c >> new source -> compiling write.c >> -> archiving libm3gcdefs.a >> ld: common symbols not allowed with MH_DYLIB output format with >> the -multi_module option >> sysdeps.o definition of common _RTCSRC_FinishVM (size 16) >> sysdeps.o definition of common _RTHeapRep_Fault (size 16) >> /usr/bin/libtool: internal link edit command failed >> --- shipping from I386_DARWIN --- >> >> . => /usr/local/cm3/pkg/m3gc-simple/I386_DARWIN >> .M3EXPORTS libm3gcdefs.5.2.dylib"/Users/orsini/cm3/cm3- >> src-all-5.4.0/m3-libs/m3gc-simple/I386_DARWIN/.M3SHIP", line 3: >> quake runtime error: unable to copy "libm3gcdefs.5.2.dylib" to "/ >> usr/local/cm3/pkg/m3gc-simple/I386_DARWIN/libm3gcdefs.5.2.dylib": >> errno=2 >> >> --procedure-- -line- -file--- >> install_file -- >> 3 /Users/orsini/cm3/cm3-src-all-5.4.0/m3-libs/ >> m3gc-simple/I386_DARWIN/.M3SHIP >> >> Fatal Error: package build failed >> *** execution of failed *** >> >> ====== >> >> >> I noticed that not all the .c files in .../m3-libs/m3gc-simple/src/ >> runtime/I386_DARWIN/ where compiled, but I do not know if this is >> a normal behaviour. >> >> Thanks in advance for your time and patience! >> >> Cordially >> >> Renzo Orsini >> >> >> On Jan 20, 2007, at 19:02, Darko wrote: >> >>> Have a look here: ftp://ftp.cs.purdue.edu/pub/hosking/m3/ >>> I386_DARWIN/ >>> >>> There you'll find the bits you need for Mac Intel. Replace your >>> existing cm3, cmcg and cm3.cfg with the ones there, then you can >>> compile the basic libraries you need like m3core and libm3, but >>> make sure you have the latest sources. >>> >>> I think they're the latest but Tony may have something more to >>> say about that. >>> >>> Darko. >>> >>> >>> >>> On 21/01/2007, at 1:41 AM, Olaf Wagner wrote: >>> >>>> On Sat, Jan 20, 2007 at 03:05:55PM +0100, Renzo Orsini wrote: >>>>> Hello, >>>>> >>>>> I installed cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz on an intel >>>>> mac, then >>>>> tried to a compile a Hello world program, but the compilation >>>>> failed >>>>> with the following message: >>>>> >>>>> pborsini:~/ProveModula3 orsini$ cm3 >>>>> --- building in PPC_DARWIN --- >>>>> >>>>> new source -> compiling Main.m3 >>>>> "../Main.m3", line 4: warning: potentially unhandled exception: >>>>> IO.Error >>>>> 1 warning encountered >>>>> Main.ms:12:no such instruction: `mflr r0' >>>>> Main.ms:13:no such instruction: `stmw r30,-8(r1)' >>>>> Main.ms:14:no such instruction: `stw r0,8(r1)' >>>>> Main.ms:15:no such instruction: `stwu r1,-96(r1)' >>>>> Main.ms:16:no such instruction: `mr r30,r1' >>>>> Main.ms:17:no such instruction: `bcl 20,31,"L00000000001$pb"' >>>>> ... >>>>> .... >>>>> >>>>> So I suppose there is PPC code to assemble and the Rosetta >>>>> emulator >>>>> for PPC on intel macs cannot do anything for this! >>>>> >>>>> Since I would like to port the Fibonacci language for databases, >>>>> which is written in Modula-3, if I understand well the situation I >>>>> should port the Modula-3 compiler by cross compiling it on a >>>>> PPC mac, >>>>> or something like that. >>>>> >>>>> I am asking you if you know about some effort of porting >>>>> Modula-3 on >>>>> intel macs, or at least if you let me know if this operation is >>>>> possible (and also reasonably feasible in terms of time and >>>>> expertise, given my teaching duties and my difficulties with >>>>> assembler languages!), and, if so, if you can point me to the >>>>> correct >>>>> documentation to start with. Of course I will be very glad to give >>>>> back to the community the result if I succeed! >>>>> >>>>> Thank you very much for your attention. >>>>> >>>>> Cordially >>>>> >>>>> Renzo Orsini >>>>> Associate Professor >>>>> Dipartimento di Informatica >>>>> Universita' Ca' Foscari di Venezia >>>> >>>> Well, I wouldn't have thought that you were even able to install >>>> the cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz system on an Intel machine; >>>> it's surely not supposed to run on one. It shouldn't be too >>>> difficult to get a port of the latest CM3 for Darwin on Intel >>>> processors; I even think somebody was already working on it, >>>> but I don't really remember who, so I forward your mail to >>>> the m3devel list, in case others have already started such an >>>> effort. >>>> >>>> Olaf >>>> -- >>>> elego Software Solutions GmbH HRB 77719 >>>> Olaf Wagner E-Mail: wagner(at)elego.de >>>> Ohmstra?e 9 Tel: +49 30 40 04 19 29 >>>> 10179 Berlin Fax: +49 30 23 45 86 95 >>>> Cranachstra?e 7 Tel: +49 30 85 58 01 81 >>>> 12157 Berlin Fax: +49 30 85 58 01 88 >>>> ------------------> WWW: http://www.elego-software-solutions.com >>>> _______________________________________________ >>>> M3devel mailing list >>>> M3devel at elegosoft.com >>>> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel >> > > > _______________________________________________ > M3devel mailing list > M3devel at elegosoft.com > https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel Antony Hosking | Associate Professor Dept of Computer Sciences | Office: (765) 494-6001 Purdue University | Mobile: (765) 427-5484 250 N. University Street | hosking at cs.purdue.edu West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking _--_|\ / \ \_.--._/ ) v / From hosking at cs.purdue.edu Sun Jan 21 00:01:06 2007 From: hosking at cs.purdue.edu (Antony Hosking) Date: Sat, 20 Jan 2007 18:01:06 -0500 Subject: [M3devel] Re: porting m3 on intel mac In-Reply-To: <6307E3CC-8E5F-4317-8A8E-7EADE20FEE54@darko.org> References: <8A58B35B-22CD-42D5-BA19-5FBF5D3CF5CD@dsi.unive.it> <20070120164128.GA27790@elegosoft.com> <52EA8FC9-4E33-40FF-B041-5CEAE83BBDE7@darko.org> <6307E3CC-8E5F-4317-8A8E-7EADE20FEE54@darko.org> Message-ID: PS I use the latest version of XCode. On 20/01/2007, at 5:49 PM, Darko wrote: > No worries. I'm not familiar at all with those scripts. The problem > you are having may be to do with not having the latest source, but > it most probably has to do with the version of gcc that is active > on your machine. C files are not compiled by cm3 but rather call > gcc directly. I can't remember which version of gcc is the correct > one, but mine currently is i686-apple-darwin8-gcc-4.0.1; also I > can't remember the command line for changing gcc versions. Tony may > be able to help re the correct version if 4.0.1 doesn't work. You > may need to install the latest XCode from http:// > developer.apple.com if you don't have 4.01. > > I've cc'd the list because they're actually very helpful and my > knowledge is limited... > > - Darko > > > On 21/01/2007, at 6:58 AM, Renzo Orsini wrote: > >> First of all, thank you very much for your immediate help! >> >> I downloaded the files and replaced the corresponding /usr/local/ >> cm3/bin files, >> modified cm3.cfg by replacing INSTALL_ROOT = "/usr/local/cm3- >> i386/" with INSTALL_ROOT = "/usr/local/cm3/" >> then in the full source (last version, 5.4.0) I did: scripts/do- >> cm3-core.sh buildship >> this is the result: >> >> root#./do-cm3-core.sh buildship >> CM3C = >> /Users/orsini/cm3/cm3-src-all-5.4.0/scripts/pkgmap.sh -c "cm3 - >> build -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' && cm3 -ship - >> DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' " m3gc-simple m3core >> libm3 patternmatching m3middle m3linker m3front m3quake m3cc cm3 >> m3scanner m3tools m3cgcat m3cggen m3bundle bitvector digraph >> parseparams realgeometry set slisp sortedtableextras table-list >> tempfiles >> === package /Users/orsini/cm3/cm3-src-all-5.4.0/m3-libs/m3gc- >> simple === >> +++ cm3 -build -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' && >> cm3 -ship -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' +++ >> --- building in I386_DARWIN --- >> >> new source -> compiling RTVM.c >> new source -> compiling sysdeps.c >> new source -> compiling accept.c >> ../src/runtime/I386_DARWIN/accept.c: In function 'm3_accept': >> ../src/runtime/I386_DARWIN/accept.c:13: warning: pointer targets >> in passing argument 3 of 'accept' differ in signedness >> new source -> compiling bind.c >> new source -> compiling close.c >> new source -> compiling connect.c >> new source -> compiling dup.c >> new source -> compiling dup2.c >> new source -> compiling gethostbyaddr.c >> new source -> compiling gethostbyname.c >> new source -> compiling getpeername.c >> ../src/runtime/I386_DARWIN/getpeername.c: In function >> 'm3_getpeername': >> ../src/runtime/I386_DARWIN/getpeername.c:13: warning: pointer >> targets in passing argument 3 of 'getpeername' differ in signedness >> new source -> compiling getsockname.c >> ../src/runtime/I386_DARWIN/getsockname.c: In function >> 'm3_getsockname': >> ../src/runtime/I386_DARWIN/getsockname.c:13: warning: pointer >> targets in passing argument 3 of 'getsockname' differ in signedness >> new source -> compiling listen.c >> new source -> compiling read.c >> new source -> compiling recv.c >> new source -> compiling recvfrom.c >> ../src/runtime/I386_DARWIN/recvfrom.c: In function 'm3_recvfrom': >> ../src/runtime/I386_DARWIN/recvfrom.c:15: warning: pointer targets >> in passing argument 6 of 'recvfrom' differ in signedness >> new source -> compiling select.c >> new source -> compiling send.c >> new source -> compiling sendto.c >> new source -> compiling shutdown.c >> new source -> compiling socket.c >> new source -> compiling write.c >> -> archiving libm3gcdefs.a >> ld: common symbols not allowed with MH_DYLIB output format with >> the -multi_module option >> sysdeps.o definition of common _RTCSRC_FinishVM (size 16) >> sysdeps.o definition of common _RTHeapRep_Fault (size 16) >> /usr/bin/libtool: internal link edit command failed >> --- shipping from I386_DARWIN --- >> >> . => /usr/local/cm3/pkg/m3gc-simple/I386_DARWIN >> .M3EXPORTS libm3gcdefs.5.2.dylib"/Users/orsini/cm3/cm3- >> src-all-5.4.0/m3-libs/m3gc-simple/I386_DARWIN/.M3SHIP", line 3: >> quake runtime error: unable to copy "libm3gcdefs.5.2.dylib" to "/ >> usr/local/cm3/pkg/m3gc-simple/I386_DARWIN/libm3gcdefs.5.2.dylib": >> errno=2 >> >> --procedure-- -line- -file--- >> install_file -- >> 3 /Users/orsini/cm3/cm3-src-all-5.4.0/m3-libs/ >> m3gc-simple/I386_DARWIN/.M3SHIP >> >> Fatal Error: package build failed >> *** execution of failed *** >> >> ====== >> >> >> I noticed that not all the .c files in .../m3-libs/m3gc-simple/src/ >> runtime/I386_DARWIN/ where compiled, but I do not know if this is >> a normal behaviour. >> >> Thanks in advance for your time and patience! >> >> Cordially >> >> Renzo Orsini >> >> >> On Jan 20, 2007, at 19:02, Darko wrote: >> >>> Have a look here: ftp://ftp.cs.purdue.edu/pub/hosking/m3/ >>> I386_DARWIN/ >>> >>> There you'll find the bits you need for Mac Intel. Replace your >>> existing cm3, cmcg and cm3.cfg with the ones there, then you can >>> compile the basic libraries you need like m3core and libm3, but >>> make sure you have the latest sources. >>> >>> I think they're the latest but Tony may have something more to >>> say about that. >>> >>> Darko. >>> >>> >>> >>> On 21/01/2007, at 1:41 AM, Olaf Wagner wrote: >>> >>>> On Sat, Jan 20, 2007 at 03:05:55PM +0100, Renzo Orsini wrote: >>>>> Hello, >>>>> >>>>> I installed cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz on an intel >>>>> mac, then >>>>> tried to a compile a Hello world program, but the compilation >>>>> failed >>>>> with the following message: >>>>> >>>>> pborsini:~/ProveModula3 orsini$ cm3 >>>>> --- building in PPC_DARWIN --- >>>>> >>>>> new source -> compiling Main.m3 >>>>> "../Main.m3", line 4: warning: potentially unhandled exception: >>>>> IO.Error >>>>> 1 warning encountered >>>>> Main.ms:12:no such instruction: `mflr r0' >>>>> Main.ms:13:no such instruction: `stmw r30,-8(r1)' >>>>> Main.ms:14:no such instruction: `stw r0,8(r1)' >>>>> Main.ms:15:no such instruction: `stwu r1,-96(r1)' >>>>> Main.ms:16:no such instruction: `mr r30,r1' >>>>> Main.ms:17:no such instruction: `bcl 20,31,"L00000000001$pb"' >>>>> ... >>>>> .... >>>>> >>>>> So I suppose there is PPC code to assemble and the Rosetta >>>>> emulator >>>>> for PPC on intel macs cannot do anything for this! >>>>> >>>>> Since I would like to port the Fibonacci language for databases, >>>>> which is written in Modula-3, if I understand well the situation I >>>>> should port the Modula-3 compiler by cross compiling it on a >>>>> PPC mac, >>>>> or something like that. >>>>> >>>>> I am asking you if you know about some effort of porting >>>>> Modula-3 on >>>>> intel macs, or at least if you let me know if this operation is >>>>> possible (and also reasonably feasible in terms of time and >>>>> expertise, given my teaching duties and my difficulties with >>>>> assembler languages!), and, if so, if you can point me to the >>>>> correct >>>>> documentation to start with. Of course I will be very glad to give >>>>> back to the community the result if I succeed! >>>>> >>>>> Thank you very much for your attention. >>>>> >>>>> Cordially >>>>> >>>>> Renzo Orsini >>>>> Associate Professor >>>>> Dipartimento di Informatica >>>>> Universita' Ca' Foscari di Venezia >>>> >>>> Well, I wouldn't have thought that you were even able to install >>>> the cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz system on an Intel machine; >>>> it's surely not supposed to run on one. It shouldn't be too >>>> difficult to get a port of the latest CM3 for Darwin on Intel >>>> processors; I even think somebody was already working on it, >>>> but I don't really remember who, so I forward your mail to >>>> the m3devel list, in case others have already started such an >>>> effort. >>>> >>>> Olaf >>>> -- >>>> elego Software Solutions GmbH HRB 77719 >>>> Olaf Wagner E-Mail: wagner(at)elego.de >>>> Ohmstra?e 9 Tel: +49 30 40 04 19 29 >>>> 10179 Berlin Fax: +49 30 23 45 86 95 >>>> Cranachstra?e 7 Tel: +49 30 85 58 01 81 >>>> 12157 Berlin Fax: +49 30 85 58 01 88 >>>> ------------------> WWW: http://www.elego-software-solutions.com >>>> _______________________________________________ >>>> M3devel mailing list >>>> M3devel at elegosoft.com >>>> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel >> > > > _______________________________________________ > M3devel mailing list > M3devel at elegosoft.com > https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel Antony Hosking | Associate Professor Dept of Computer Sciences | Office: (765) 494-6001 Purdue University | Mobile: (765) 427-5484 250 N. University Street | hosking at cs.purdue.edu West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking _--_|\ / \ \_.--._/ ) v / From hosking at cs.purdue.edu Sun Jan 21 00:02:08 2007 From: hosking at cs.purdue.edu (Antony Hosking) Date: Sat, 20 Jan 2007 18:02:08 -0500 Subject: [M3devel] Re: porting m3 on intel mac In-Reply-To: <6307E3CC-8E5F-4317-8A8E-7EADE20FEE54@darko.org> References: <8A58B35B-22CD-42D5-BA19-5FBF5D3CF5CD@dsi.unive.it> <20070120164128.GA27790@elegosoft.com> <52EA8FC9-4E33-40FF-B041-5CEAE83BBDE7@darko.org> <6307E3CC-8E5F-4317-8A8E-7EADE20FEE54@darko.org> Message-ID: <6E136872-8841-4447-8C60-513FDC90F59C@cs.purdue.edu> Also, you may need to be up-to-date with CM3 source from the CVS tree. 5.4.0 did not support I386_DARWIN. On 20/01/2007, at 5:49 PM, Darko wrote: > No worries. I'm not familiar at all with those scripts. The problem > you are having may be to do with not having the latest source, but > it most probably has to do with the version of gcc that is active > on your machine. C files are not compiled by cm3 but rather call > gcc directly. I can't remember which version of gcc is the correct > one, but mine currently is i686-apple-darwin8-gcc-4.0.1; also I > can't remember the command line for changing gcc versions. Tony may > be able to help re the correct version if 4.0.1 doesn't work. You > may need to install the latest XCode from http:// > developer.apple.com if you don't have 4.01. > > I've cc'd the list because they're actually very helpful and my > knowledge is limited... > > - Darko > > > On 21/01/2007, at 6:58 AM, Renzo Orsini wrote: > >> First of all, thank you very much for your immediate help! >> >> I downloaded the files and replaced the corresponding /usr/local/ >> cm3/bin files, >> modified cm3.cfg by replacing INSTALL_ROOT = "/usr/local/cm3- >> i386/" with INSTALL_ROOT = "/usr/local/cm3/" >> then in the full source (last version, 5.4.0) I did: scripts/do- >> cm3-core.sh buildship >> this is the result: >> >> root#./do-cm3-core.sh buildship >> CM3C = >> /Users/orsini/cm3/cm3-src-all-5.4.0/scripts/pkgmap.sh -c "cm3 - >> build -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' && cm3 -ship - >> DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' " m3gc-simple m3core >> libm3 patternmatching m3middle m3linker m3front m3quake m3cc cm3 >> m3scanner m3tools m3cgcat m3cggen m3bundle bitvector digraph >> parseparams realgeometry set slisp sortedtableextras table-list >> tempfiles >> === package /Users/orsini/cm3/cm3-src-all-5.4.0/m3-libs/m3gc- >> simple === >> +++ cm3 -build -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' && >> cm3 -ship -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' +++ >> --- building in I386_DARWIN --- >> >> new source -> compiling RTVM.c >> new source -> compiling sysdeps.c >> new source -> compiling accept.c >> ../src/runtime/I386_DARWIN/accept.c: In function 'm3_accept': >> ../src/runtime/I386_DARWIN/accept.c:13: warning: pointer targets >> in passing argument 3 of 'accept' differ in signedness >> new source -> compiling bind.c >> new source -> compiling close.c >> new source -> compiling connect.c >> new source -> compiling dup.c >> new source -> compiling dup2.c >> new source -> compiling gethostbyaddr.c >> new source -> compiling gethostbyname.c >> new source -> compiling getpeername.c >> ../src/runtime/I386_DARWIN/getpeername.c: In function >> 'm3_getpeername': >> ../src/runtime/I386_DARWIN/getpeername.c:13: warning: pointer >> targets in passing argument 3 of 'getpeername' differ in signedness >> new source -> compiling getsockname.c >> ../src/runtime/I386_DARWIN/getsockname.c: In function >> 'm3_getsockname': >> ../src/runtime/I386_DARWIN/getsockname.c:13: warning: pointer >> targets in passing argument 3 of 'getsockname' differ in signedness >> new source -> compiling listen.c >> new source -> compiling read.c >> new source -> compiling recv.c >> new source -> compiling recvfrom.c >> ../src/runtime/I386_DARWIN/recvfrom.c: In function 'm3_recvfrom': >> ../src/runtime/I386_DARWIN/recvfrom.c:15: warning: pointer targets >> in passing argument 6 of 'recvfrom' differ in signedness >> new source -> compiling select.c >> new source -> compiling send.c >> new source -> compiling sendto.c >> new source -> compiling shutdown.c >> new source -> compiling socket.c >> new source -> compiling write.c >> -> archiving libm3gcdefs.a >> ld: common symbols not allowed with MH_DYLIB output format with >> the -multi_module option >> sysdeps.o definition of common _RTCSRC_FinishVM (size 16) >> sysdeps.o definition of common _RTHeapRep_Fault (size 16) >> /usr/bin/libtool: internal link edit command failed >> --- shipping from I386_DARWIN --- >> >> . => /usr/local/cm3/pkg/m3gc-simple/I386_DARWIN >> .M3EXPORTS libm3gcdefs.5.2.dylib"/Users/orsini/cm3/cm3- >> src-all-5.4.0/m3-libs/m3gc-simple/I386_DARWIN/.M3SHIP", line 3: >> quake runtime error: unable to copy "libm3gcdefs.5.2.dylib" to "/ >> usr/local/cm3/pkg/m3gc-simple/I386_DARWIN/libm3gcdefs.5.2.dylib": >> errno=2 >> >> --procedure-- -line- -file--- >> install_file -- >> 3 /Users/orsini/cm3/cm3-src-all-5.4.0/m3-libs/ >> m3gc-simple/I386_DARWIN/.M3SHIP >> >> Fatal Error: package build failed >> *** execution of failed *** >> >> ====== >> >> >> I noticed that not all the .c files in .../m3-libs/m3gc-simple/src/ >> runtime/I386_DARWIN/ where compiled, but I do not know if this is >> a normal behaviour. >> >> Thanks in advance for your time and patience! >> >> Cordially >> >> Renzo Orsini >> >> >> On Jan 20, 2007, at 19:02, Darko wrote: >> >>> Have a look here: ftp://ftp.cs.purdue.edu/pub/hosking/m3/ >>> I386_DARWIN/ >>> >>> There you'll find the bits you need for Mac Intel. Replace your >>> existing cm3, cmcg and cm3.cfg with the ones there, then you can >>> compile the basic libraries you need like m3core and libm3, but >>> make sure you have the latest sources. >>> >>> I think they're the latest but Tony may have something more to >>> say about that. >>> >>> Darko. >>> >>> >>> >>> On 21/01/2007, at 1:41 AM, Olaf Wagner wrote: >>> >>>> On Sat, Jan 20, 2007 at 03:05:55PM +0100, Renzo Orsini wrote: >>>>> Hello, >>>>> >>>>> I installed cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz on an intel >>>>> mac, then >>>>> tried to a compile a Hello world program, but the compilation >>>>> failed >>>>> with the following message: >>>>> >>>>> pborsini:~/ProveModula3 orsini$ cm3 >>>>> --- building in PPC_DARWIN --- >>>>> >>>>> new source -> compiling Main.m3 >>>>> "../Main.m3", line 4: warning: potentially unhandled exception: >>>>> IO.Error >>>>> 1 warning encountered >>>>> Main.ms:12:no such instruction: `mflr r0' >>>>> Main.ms:13:no such instruction: `stmw r30,-8(r1)' >>>>> Main.ms:14:no such instruction: `stw r0,8(r1)' >>>>> Main.ms:15:no such instruction: `stwu r1,-96(r1)' >>>>> Main.ms:16:no such instruction: `mr r30,r1' >>>>> Main.ms:17:no such instruction: `bcl 20,31,"L00000000001$pb"' >>>>> ... >>>>> .... >>>>> >>>>> So I suppose there is PPC code to assemble and the Rosetta >>>>> emulator >>>>> for PPC on intel macs cannot do anything for this! >>>>> >>>>> Since I would like to port the Fibonacci language for databases, >>>>> which is written in Modula-3, if I understand well the situation I >>>>> should port the Modula-3 compiler by cross compiling it on a >>>>> PPC mac, >>>>> or something like that. >>>>> >>>>> I am asking you if you know about some effort of porting >>>>> Modula-3 on >>>>> intel macs, or at least if you let me know if this operation is >>>>> possible (and also reasonably feasible in terms of time and >>>>> expertise, given my teaching duties and my difficulties with >>>>> assembler languages!), and, if so, if you can point me to the >>>>> correct >>>>> documentation to start with. Of course I will be very glad to give >>>>> back to the community the result if I succeed! >>>>> >>>>> Thank you very much for your attention. >>>>> >>>>> Cordially >>>>> >>>>> Renzo Orsini >>>>> Associate Professor >>>>> Dipartimento di Informatica >>>>> Universita' Ca' Foscari di Venezia >>>> >>>> Well, I wouldn't have thought that you were even able to install >>>> the cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz system on an Intel machine; >>>> it's surely not supposed to run on one. It shouldn't be too >>>> difficult to get a port of the latest CM3 for Darwin on Intel >>>> processors; I even think somebody was already working on it, >>>> but I don't really remember who, so I forward your mail to >>>> the m3devel list, in case others have already started such an >>>> effort. >>>> >>>> Olaf >>>> -- >>>> elego Software Solutions GmbH HRB 77719 >>>> Olaf Wagner E-Mail: wagner(at)elego.de >>>> Ohmstra?e 9 Tel: +49 30 40 04 19 29 >>>> 10179 Berlin Fax: +49 30 23 45 86 95 >>>> Cranachstra?e 7 Tel: +49 30 85 58 01 81 >>>> 12157 Berlin Fax: +49 30 85 58 01 88 >>>> ------------------> WWW: http://www.elego-software-solutions.com >>>> _______________________________________________ >>>> M3devel mailing list >>>> M3devel at elegosoft.com >>>> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel >> > > > _______________________________________________ > M3devel mailing list > M3devel at elegosoft.com > https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel Antony Hosking | Associate Professor Dept of Computer Sciences | Office: (765) 494-6001 Purdue University | Mobile: (765) 427-5484 250 N. University Street | hosking at cs.purdue.edu West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking _--_|\ / \ \_.--._/ ) v / From hosking at cs.purdue.edu Sun Jan 21 00:13:16 2007 From: hosking at cs.purdue.edu (Antony Hosking) Date: Sat, 20 Jan 2007 18:13:16 -0500 Subject: [M3devel] Re: porting m3 on intel mac In-Reply-To: <6307E3CC-8E5F-4317-8A8E-7EADE20FEE54@darko.org> References: <8A58B35B-22CD-42D5-BA19-5FBF5D3CF5CD@dsi.unive.it> <20070120164128.GA27790@elegosoft.com> <52EA8FC9-4E33-40FF-B041-5CEAE83BBDE7@darko.org> <6307E3CC-8E5F-4317-8A8E-7EADE20FEE54@darko.org> Message-ID: The ftp site ftp://ftp.cs.purdue.edu/pub/hosking/I386_DARWIN now contains up-to-date bootstrap files. I just built using the command "do-cm3-std.sh buildship" without problems. On 20/01/2007, at 5:49 PM, Darko wrote: > No worries. I'm not familiar at all with those scripts. The problem > you are having may be to do with not having the latest source, but > it most probably has to do with the version of gcc that is active > on your machine. C files are not compiled by cm3 but rather call > gcc directly. I can't remember which version of gcc is the correct > one, but mine currently is i686-apple-darwin8-gcc-4.0.1; also I > can't remember the command line for changing gcc versions. Tony may > be able to help re the correct version if 4.0.1 doesn't work. You > may need to install the latest XCode from http:// > developer.apple.com if you don't have 4.01. > > I've cc'd the list because they're actually very helpful and my > knowledge is limited... > > - Darko > > > On 21/01/2007, at 6:58 AM, Renzo Orsini wrote: > >> First of all, thank you very much for your immediate help! >> >> I downloaded the files and replaced the corresponding /usr/local/ >> cm3/bin files, >> modified cm3.cfg by replacing INSTALL_ROOT = "/usr/local/cm3- >> i386/" with INSTALL_ROOT = "/usr/local/cm3/" >> then in the full source (last version, 5.4.0) I did: scripts/do- >> cm3-core.sh buildship >> this is the result: >> >> root#./do-cm3-core.sh buildship >> CM3C = >> /Users/orsini/cm3/cm3-src-all-5.4.0/scripts/pkgmap.sh -c "cm3 - >> build -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' && cm3 -ship - >> DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' " m3gc-simple m3core >> libm3 patternmatching m3middle m3linker m3front m3quake m3cc cm3 >> m3scanner m3tools m3cgcat m3cggen m3bundle bitvector digraph >> parseparams realgeometry set slisp sortedtableextras table-list >> tempfiles >> === package /Users/orsini/cm3/cm3-src-all-5.4.0/m3-libs/m3gc- >> simple === >> +++ cm3 -build -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' && >> cm3 -ship -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' +++ >> --- building in I386_DARWIN --- >> >> new source -> compiling RTVM.c >> new source -> compiling sysdeps.c >> new source -> compiling accept.c >> ../src/runtime/I386_DARWIN/accept.c: In function 'm3_accept': >> ../src/runtime/I386_DARWIN/accept.c:13: warning: pointer targets >> in passing argument 3 of 'accept' differ in signedness >> new source -> compiling bind.c >> new source -> compiling close.c >> new source -> compiling connect.c >> new source -> compiling dup.c >> new source -> compiling dup2.c >> new source -> compiling gethostbyaddr.c >> new source -> compiling gethostbyname.c >> new source -> compiling getpeername.c >> ../src/runtime/I386_DARWIN/getpeername.c: In function >> 'm3_getpeername': >> ../src/runtime/I386_DARWIN/getpeername.c:13: warning: pointer >> targets in passing argument 3 of 'getpeername' differ in signedness >> new source -> compiling getsockname.c >> ../src/runtime/I386_DARWIN/getsockname.c: In function >> 'm3_getsockname': >> ../src/runtime/I386_DARWIN/getsockname.c:13: warning: pointer >> targets in passing argument 3 of 'getsockname' differ in signedness >> new source -> compiling listen.c >> new source -> compiling read.c >> new source -> compiling recv.c >> new source -> compiling recvfrom.c >> ../src/runtime/I386_DARWIN/recvfrom.c: In function 'm3_recvfrom': >> ../src/runtime/I386_DARWIN/recvfrom.c:15: warning: pointer targets >> in passing argument 6 of 'recvfrom' differ in signedness >> new source -> compiling select.c >> new source -> compiling send.c >> new source -> compiling sendto.c >> new source -> compiling shutdown.c >> new source -> compiling socket.c >> new source -> compiling write.c >> -> archiving libm3gcdefs.a >> ld: common symbols not allowed with MH_DYLIB output format with >> the -multi_module option >> sysdeps.o definition of common _RTCSRC_FinishVM (size 16) >> sysdeps.o definition of common _RTHeapRep_Fault (size 16) >> /usr/bin/libtool: internal link edit command failed >> --- shipping from I386_DARWIN --- >> >> . => /usr/local/cm3/pkg/m3gc-simple/I386_DARWIN >> .M3EXPORTS libm3gcdefs.5.2.dylib"/Users/orsini/cm3/cm3- >> src-all-5.4.0/m3-libs/m3gc-simple/I386_DARWIN/.M3SHIP", line 3: >> quake runtime error: unable to copy "libm3gcdefs.5.2.dylib" to "/ >> usr/local/cm3/pkg/m3gc-simple/I386_DARWIN/libm3gcdefs.5.2.dylib": >> errno=2 >> >> --procedure-- -line- -file--- >> install_file -- >> 3 /Users/orsini/cm3/cm3-src-all-5.4.0/m3-libs/ >> m3gc-simple/I386_DARWIN/.M3SHIP >> >> Fatal Error: package build failed >> *** execution of failed *** >> >> ====== >> >> >> I noticed that not all the .c files in .../m3-libs/m3gc-simple/src/ >> runtime/I386_DARWIN/ where compiled, but I do not know if this is >> a normal behaviour. >> >> Thanks in advance for your time and patience! >> >> Cordially >> >> Renzo Orsini >> >> >> On Jan 20, 2007, at 19:02, Darko wrote: >> >>> Have a look here: ftp://ftp.cs.purdue.edu/pub/hosking/m3/ >>> I386_DARWIN/ >>> >>> There you'll find the bits you need for Mac Intel. Replace your >>> existing cm3, cmcg and cm3.cfg with the ones there, then you can >>> compile the basic libraries you need like m3core and libm3, but >>> make sure you have the latest sources. >>> >>> I think they're the latest but Tony may have something more to >>> say about that. >>> >>> Darko. >>> >>> >>> >>> On 21/01/2007, at 1:41 AM, Olaf Wagner wrote: >>> >>>> On Sat, Jan 20, 2007 at 03:05:55PM +0100, Renzo Orsini wrote: >>>>> Hello, >>>>> >>>>> I installed cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz on an intel >>>>> mac, then >>>>> tried to a compile a Hello world program, but the compilation >>>>> failed >>>>> with the following message: >>>>> >>>>> pborsini:~/ProveModula3 orsini$ cm3 >>>>> --- building in PPC_DARWIN --- >>>>> >>>>> new source -> compiling Main.m3 >>>>> "../Main.m3", line 4: warning: potentially unhandled exception: >>>>> IO.Error >>>>> 1 warning encountered >>>>> Main.ms:12:no such instruction: `mflr r0' >>>>> Main.ms:13:no such instruction: `stmw r30,-8(r1)' >>>>> Main.ms:14:no such instruction: `stw r0,8(r1)' >>>>> Main.ms:15:no such instruction: `stwu r1,-96(r1)' >>>>> Main.ms:16:no such instruction: `mr r30,r1' >>>>> Main.ms:17:no such instruction: `bcl 20,31,"L00000000001$pb"' >>>>> ... >>>>> .... >>>>> >>>>> So I suppose there is PPC code to assemble and the Rosetta >>>>> emulator >>>>> for PPC on intel macs cannot do anything for this! >>>>> >>>>> Since I would like to port the Fibonacci language for databases, >>>>> which is written in Modula-3, if I understand well the situation I >>>>> should port the Modula-3 compiler by cross compiling it on a >>>>> PPC mac, >>>>> or something like that. >>>>> >>>>> I am asking you if you know about some effort of porting >>>>> Modula-3 on >>>>> intel macs, or at least if you let me know if this operation is >>>>> possible (and also reasonably feasible in terms of time and >>>>> expertise, given my teaching duties and my difficulties with >>>>> assembler languages!), and, if so, if you can point me to the >>>>> correct >>>>> documentation to start with. Of course I will be very glad to give >>>>> back to the community the result if I succeed! >>>>> >>>>> Thank you very much for your attention. >>>>> >>>>> Cordially >>>>> >>>>> Renzo Orsini >>>>> Associate Professor >>>>> Dipartimento di Informatica >>>>> Universita' Ca' Foscari di Venezia >>>> >>>> Well, I wouldn't have thought that you were even able to install >>>> the cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz system on an Intel machine; >>>> it's surely not supposed to run on one. It shouldn't be too >>>> difficult to get a port of the latest CM3 for Darwin on Intel >>>> processors; I even think somebody was already working on it, >>>> but I don't really remember who, so I forward your mail to >>>> the m3devel list, in case others have already started such an >>>> effort. >>>> >>>> Olaf >>>> -- >>>> elego Software Solutions GmbH HRB 77719 >>>> Olaf Wagner E-Mail: wagner(at)elego.de >>>> Ohmstra?e 9 Tel: +49 30 40 04 19 29 >>>> 10179 Berlin Fax: +49 30 23 45 86 95 >>>> Cranachstra?e 7 Tel: +49 30 85 58 01 81 >>>> 12157 Berlin Fax: +49 30 85 58 01 88 >>>> ------------------> WWW: http://www.elego-software-solutions.com >>>> _______________________________________________ >>>> M3devel mailing list >>>> M3devel at elegosoft.com >>>> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel >> > > > _______________________________________________ > M3devel mailing list > M3devel at elegosoft.com > https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel Antony Hosking | Associate Professor Dept of Computer Sciences | Office: (765) 494-6001 Purdue University | Mobile: (765) 427-5484 250 N. University Street | hosking at cs.purdue.edu West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking _--_|\ / \ \_.--._/ ) v / From jayk123 at hotmail.com Sun Jan 21 00:26:12 2007 From: jayk123 at hotmail.com (j k) Date: Sat, 20 Jan 2007 23:26:12 +0000 Subject: [M3devel] Re: porting m3 on intel mac In-Reply-To: Message-ID: Gcc on Mac OS X has this great "arch" flag. They support four values for it and you can pass any number of them on the command line: ROUGHLY: echo int main() { printf("hello\n"; return 0;} > hello.c gcc -arch ppc -arch i386 -arch pp64 -arch x86_64 hello.c otool a.out => quad fat (this is from memory) ld has a similar flag. Sometimes I gather gcc is looping, calling tools multiple times, or multiple tools, sometimes maybe the tools have their own loops. I think it is more gcc looping. I've always wanted compilers/lnkers to work this way. :) It eliminates or hides one axis in the two dimensional cross build matrix. (and really, each back end should be a .lib/.dll/.so, nicely integrated so you have one front end per host, n backends per host, not some big n x m matrix...) Of course when you have, say, syntax or type errors, it is a waste to attempt more than one build at a time. - Jay >From: Antony Hosking >To: Darko >CC: m3devel at elegosoft.com, Renzo Orsini >Subject: Re: [M3devel] Re: porting m3 on intel mac >Date: Sat, 20 Jan 2007 18:13:16 -0500 > >The ftp site ftp://ftp.cs.purdue.edu/pub/hosking/I386_DARWIN now contains >up-to-date bootstrap files. I just built using the command "do-cm3-std.sh >buildship" without problems. > >On 20/01/2007, at 5:49 PM, Darko wrote: > >>No worries. I'm not familiar at all with those scripts. The problem you >>are having may be to do with not having the latest source, but it most >>probably has to do with the version of gcc that is active on your >>machine. C files are not compiled by cm3 but rather call gcc directly. I >>can't remember which version of gcc is the correct one, but mine >>currently is i686-apple-darwin8-gcc-4.0.1; also I can't remember the >>command line for changing gcc versions. Tony may be able to help re the >>correct version if 4.0.1 doesn't work. You may need to install the latest >>XCode from http:// developer.apple.com if you don't have 4.01. >> >>I've cc'd the list because they're actually very helpful and my knowledge >>is limited... >> >>- Darko >> >> >>On 21/01/2007, at 6:58 AM, Renzo Orsini wrote: >> >>>First of all, thank you very much for your immediate help! >>> >>>I downloaded the files and replaced the corresponding /usr/local/ cm3/bin >>>files, >>>modified cm3.cfg by replacing INSTALL_ROOT = "/usr/local/cm3- i386/" with >>>INSTALL_ROOT = "/usr/local/cm3/" >>>then in the full source (last version, 5.4.0) I did: scripts/do- >>>cm3-core.sh buildship >>>this is the result: >>> >>> root#./do-cm3-core.sh buildship >>>CM3C = >>>/Users/orsini/cm3/cm3-src-all-5.4.0/scripts/pkgmap.sh -c "cm3 - build >>>-DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' && cm3 -ship - >>>DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' " m3gc-simple m3core libm3 >>>patternmatching m3middle m3linker m3front m3quake m3cc cm3 m3scanner >>>m3tools m3cgcat m3cggen m3bundle bitvector digraph parseparams >>>realgeometry set slisp sortedtableextras table-list tempfiles >>>=== package /Users/orsini/cm3/cm3-src-all-5.4.0/m3-libs/m3gc- simple === >>>+++ cm3 -build -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' && cm3 >>>-ship -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' +++ >>>--- building in I386_DARWIN --- >>> >>>new source -> compiling RTVM.c >>>new source -> compiling sysdeps.c >>>new source -> compiling accept.c >>>../src/runtime/I386_DARWIN/accept.c: In function 'm3_accept': >>>../src/runtime/I386_DARWIN/accept.c:13: warning: pointer targets in >>>passing argument 3 of 'accept' differ in signedness >>>new source -> compiling bind.c >>>new source -> compiling close.c >>>new source -> compiling connect.c >>>new source -> compiling dup.c >>>new source -> compiling dup2.c >>>new source -> compiling gethostbyaddr.c >>>new source -> compiling gethostbyname.c >>>new source -> compiling getpeername.c >>>../src/runtime/I386_DARWIN/getpeername.c: In function 'm3_getpeername': >>>../src/runtime/I386_DARWIN/getpeername.c:13: warning: pointer targets in >>>passing argument 3 of 'getpeername' differ in signedness >>>new source -> compiling getsockname.c >>>../src/runtime/I386_DARWIN/getsockname.c: In function 'm3_getsockname': >>>../src/runtime/I386_DARWIN/getsockname.c:13: warning: pointer targets in >>>passing argument 3 of 'getsockname' differ in signedness >>>new source -> compiling listen.c >>>new source -> compiling read.c >>>new source -> compiling recv.c >>>new source -> compiling recvfrom.c >>>../src/runtime/I386_DARWIN/recvfrom.c: In function 'm3_recvfrom': >>>../src/runtime/I386_DARWIN/recvfrom.c:15: warning: pointer targets in >>>passing argument 6 of 'recvfrom' differ in signedness >>>new source -> compiling select.c >>>new source -> compiling send.c >>>new source -> compiling sendto.c >>>new source -> compiling shutdown.c >>>new source -> compiling socket.c >>>new source -> compiling write.c >>>-> archiving libm3gcdefs.a >>>ld: common symbols not allowed with MH_DYLIB output format with the >>>-multi_module option >>>sysdeps.o definition of common _RTCSRC_FinishVM (size 16) >>>sysdeps.o definition of common _RTHeapRep_Fault (size 16) >>>/usr/bin/libtool: internal link edit command failed >>>--- shipping from I386_DARWIN --- >>> >>>. => /usr/local/cm3/pkg/m3gc-simple/I386_DARWIN >>> .M3EXPORTS libm3gcdefs.5.2.dylib"/Users/orsini/cm3/cm3- >>>src-all-5.4.0/m3-libs/m3gc-simple/I386_DARWIN/.M3SHIP", line 3: quake >>>runtime error: unable to copy "libm3gcdefs.5.2.dylib" to "/ >>>usr/local/cm3/pkg/m3gc-simple/I386_DARWIN/libm3gcdefs.5.2.dylib": >>>errno=2 >>> >>>--procedure-- -line- -file--- >>>install_file -- >>> 3 /Users/orsini/cm3/cm3-src-all-5.4.0/m3-libs/ >>>m3gc-simple/I386_DARWIN/.M3SHIP >>> >>>Fatal Error: package build failed >>>*** execution of failed *** >>> >>>====== >>> >>> >>>I noticed that not all the .c files in .../m3-libs/m3gc-simple/src/ >>>runtime/I386_DARWIN/ where compiled, but I do not know if this is a >>>normal behaviour. >>> >>>Thanks in advance for your time and patience! >>> >>>Cordially >>> >>>Renzo Orsini >>> >>> >>>On Jan 20, 2007, at 19:02, Darko wrote: >>> >>>>Have a look here: ftp://ftp.cs.purdue.edu/pub/hosking/m3/ I386_DARWIN/ >>>> >>>>There you'll find the bits you need for Mac Intel. Replace your >>>>existing cm3, cmcg and cm3.cfg with the ones there, then you can >>>>compile the basic libraries you need like m3core and libm3, but make >>>>sure you have the latest sources. >>>> >>>>I think they're the latest but Tony may have something more to say >>>>about that. >>>> >>>>Darko. >>>> >>>> >>>> >>>>On 21/01/2007, at 1:41 AM, Olaf Wagner wrote: >>>> >>>>>On Sat, Jan 20, 2007 at 03:05:55PM +0100, Renzo Orsini wrote: >>>>>>Hello, >>>>>> >>>>>>I installed cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz on an intel mac, then >>>>>>tried to a compile a Hello world program, but the compilation failed >>>>>>with the following message: >>>>>> >>>>>>pborsini:~/ProveModula3 orsini$ cm3 >>>>>>--- building in PPC_DARWIN --- >>>>>> >>>>>>new source -> compiling Main.m3 >>>>>>"../Main.m3", line 4: warning: potentially unhandled exception: >>>>>>IO.Error >>>>>>1 warning encountered >>>>>>Main.ms:12:no such instruction: `mflr r0' >>>>>>Main.ms:13:no such instruction: `stmw r30,-8(r1)' >>>>>>Main.ms:14:no such instruction: `stw r0,8(r1)' >>>>>>Main.ms:15:no such instruction: `stwu r1,-96(r1)' >>>>>>Main.ms:16:no such instruction: `mr r30,r1' >>>>>>Main.ms:17:no such instruction: `bcl 20,31,"L00000000001$pb"' >>>>>>... >>>>>>.... >>>>>> >>>>>>So I suppose there is PPC code to assemble and the Rosetta emulator >>>>>>for PPC on intel macs cannot do anything for this! >>>>>> >>>>>>Since I would like to port the Fibonacci language for databases, >>>>>>which is written in Modula-3, if I understand well the situation I >>>>>>should port the Modula-3 compiler by cross compiling it on a PPC mac, >>>>>>or something like that. >>>>>> >>>>>>I am asking you if you know about some effort of porting Modula-3 on >>>>>>intel macs, or at least if you let me know if this operation is >>>>>>possible (and also reasonably feasible in terms of time and >>>>>>expertise, given my teaching duties and my difficulties with >>>>>>assembler languages!), and, if so, if you can point me to the correct >>>>>>documentation to start with. Of course I will be very glad to give >>>>>>back to the community the result if I succeed! >>>>>> >>>>>>Thank you very much for your attention. >>>>>> >>>>>>Cordially >>>>>> >>>>>>Renzo Orsini >>>>>>Associate Professor >>>>>>Dipartimento di Informatica >>>>>>Universita' Ca' Foscari di Venezia >>>>> >>>>>Well, I wouldn't have thought that you were even able to install >>>>>the cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz system on an Intel machine; >>>>>it's surely not supposed to run on one. It shouldn't be too >>>>>difficult to get a port of the latest CM3 for Darwin on Intel >>>>>processors; I even think somebody was already working on it, >>>>>but I don't really remember who, so I forward your mail to >>>>>the m3devel list, in case others have already started such an >>>>>effort. >>>>> >>>>>Olaf >>>>>-- >>>>>elego Software Solutions GmbH HRB 77719 >>>>>Olaf Wagner E-Mail: wagner(at)elego.de >>>>>Ohmstra?e 9 Tel: +49 30 40 04 19 29 >>>>>10179 Berlin Fax: +49 30 23 45 86 95 >>>>>Cranachstra?e 7 Tel: +49 30 85 58 01 81 >>>>>12157 Berlin Fax: +49 30 85 58 01 88 >>>>> ------------------> WWW: http://www.elego-software-solutions.com >>>>>_______________________________________________ >>>>>M3devel mailing list >>>>>M3devel at elegosoft.com >>>>>https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel >>> >> >> >>_______________________________________________ >>M3devel mailing list >>M3devel at elegosoft.com >>https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel > >Antony Hosking | Associate Professor >Dept of Computer Sciences | Office: (765) 494-6001 >Purdue University | Mobile: (765) 427-5484 >250 N. University Street | hosking at cs.purdue.edu >West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking > _--_|\ > / \ > \_.--._/ ) > v / > > > >_______________________________________________ >M3devel mailing list >M3devel at elegosoft.com >https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel _________________________________________________________________ Get in the mood for Valentine's Day. View photos, recipes and more on your Live.com page. http://www.live.com/?addTemplate=ValentinesDay&ocid=T001MSN30A0701 From darko at darko.org Sun Jan 21 00:33:01 2007 From: darko at darko.org (Darko) Date: Sun, 21 Jan 2007 08:33:01 +0900 Subject: [M3devel] Re: porting m3 on intel mac In-Reply-To: <1521F74A-AF0F-48C4-B0AA-4E7DB321DA62@cs.purdue.edu> References: <8A58B35B-22CD-42D5-BA19-5FBF5D3CF5CD@dsi.unive.it> <20070120164128.GA27790@elegosoft.com> <52EA8FC9-4E33-40FF-B041-5CEAE83BBDE7@darko.org> <6307E3CC-8E5F-4317-8A8E-7EADE20FEE54@darko.org> <1521F74A-AF0F-48C4-B0AA-4E7DB321DA62@cs.purdue.edu> Message-ID: <23B90155-784C-4A47-8EAD-1451AEC4C1B9@darko.org> The latest, 10.4.8, also the latest XCode, which I think updates gcc. You were addressing me weren't you? But Renzo might like to answer that question too. XCode weighs in at about 1G, by the way. On 21/01/2007, at 7:58 AM, Antony Hosking wrote: > What version of OSX are you using? > > On 20/01/2007, at 5:49 PM, Darko wrote: > >> No worries. I'm not familiar at all with those scripts. The >> problem you are having may be to do with not having the latest >> source, but it most probably has to do with the version of gcc >> that is active on your machine. C files are not compiled by cm3 >> but rather call gcc directly. I can't remember which version of >> gcc is the correct one, but mine currently is i686-apple-darwin8- >> gcc-4.0.1; also I can't remember the command line for changing gcc >> versions. Tony may be able to help re the correct version if 4.0.1 >> doesn't work. You may need to install the latest XCode from http:// >> developer.apple.com if you don't have 4.01. >> >> I've cc'd the list because they're actually very helpful and my >> knowledge is limited... >> >> - Darko >> >> >> On 21/01/2007, at 6:58 AM, Renzo Orsini wrote: >> >>> First of all, thank you very much for your immediate help! >>> >>> I downloaded the files and replaced the corresponding /usr/local/ >>> cm3/bin files, >>> modified cm3.cfg by replacing INSTALL_ROOT = "/usr/local/cm3- >>> i386/" with INSTALL_ROOT = "/usr/local/cm3/" >>> then in the full source (last version, 5.4.0) I did: scripts/do- >>> cm3-core.sh buildship >>> this is the result: >>> >>> root#./do-cm3-core.sh buildship >>> CM3C = >>> /Users/orsini/cm3/cm3-src-all-5.4.0/scripts/pkgmap.sh -c "cm3 - >>> build -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' && cm3 -ship >>> -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' " m3gc-simple m3core >>> libm3 patternmatching m3middle m3linker m3front m3quake m3cc cm3 >>> m3scanner m3tools m3cgcat m3cggen m3bundle bitvector digraph >>> parseparams realgeometry set slisp sortedtableextras table-list >>> tempfiles >>> === package /Users/orsini/cm3/cm3-src-all-5.4.0/m3-libs/m3gc- >>> simple === >>> +++ cm3 -build -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' && >>> cm3 -ship -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' +++ >>> --- building in I386_DARWIN --- >>> >>> new source -> compiling RTVM.c >>> new source -> compiling sysdeps.c >>> new source -> compiling accept.c >>> ../src/runtime/I386_DARWIN/accept.c: In function 'm3_accept': >>> ../src/runtime/I386_DARWIN/accept.c:13: warning: pointer targets >>> in passing argument 3 of 'accept' differ in signedness >>> new source -> compiling bind.c >>> new source -> compiling close.c >>> new source -> compiling connect.c >>> new source -> compiling dup.c >>> new source -> compiling dup2.c >>> new source -> compiling gethostbyaddr.c >>> new source -> compiling gethostbyname.c >>> new source -> compiling getpeername.c >>> ../src/runtime/I386_DARWIN/getpeername.c: In function >>> 'm3_getpeername': >>> ../src/runtime/I386_DARWIN/getpeername.c:13: warning: pointer >>> targets in passing argument 3 of 'getpeername' differ in signedness >>> new source -> compiling getsockname.c >>> ../src/runtime/I386_DARWIN/getsockname.c: In function >>> 'm3_getsockname': >>> ../src/runtime/I386_DARWIN/getsockname.c:13: warning: pointer >>> targets in passing argument 3 of 'getsockname' differ in signedness >>> new source -> compiling listen.c >>> new source -> compiling read.c >>> new source -> compiling recv.c >>> new source -> compiling recvfrom.c >>> ../src/runtime/I386_DARWIN/recvfrom.c: In function 'm3_recvfrom': >>> ../src/runtime/I386_DARWIN/recvfrom.c:15: warning: pointer >>> targets in passing argument 6 of 'recvfrom' differ in signedness >>> new source -> compiling select.c >>> new source -> compiling send.c >>> new source -> compiling sendto.c >>> new source -> compiling shutdown.c >>> new source -> compiling socket.c >>> new source -> compiling write.c >>> -> archiving libm3gcdefs.a >>> ld: common symbols not allowed with MH_DYLIB output format with >>> the -multi_module option >>> sysdeps.o definition of common _RTCSRC_FinishVM (size 16) >>> sysdeps.o definition of common _RTHeapRep_Fault (size 16) >>> /usr/bin/libtool: internal link edit command failed >>> --- shipping from I386_DARWIN --- >>> >>> . => /usr/local/cm3/pkg/m3gc-simple/I386_DARWIN >>> .M3EXPORTS libm3gcdefs.5.2.dylib"/Users/orsini/cm3/cm3- >>> src-all-5.4.0/m3-libs/m3gc-simple/I386_DARWIN/.M3SHIP", line 3: >>> quake runtime error: unable to copy "libm3gcdefs.5.2.dylib" to "/ >>> usr/local/cm3/pkg/m3gc-simple/I386_DARWIN/libm3gcdefs.5.2.dylib": >>> errno=2 >>> >>> --procedure-- -line- -file--- >>> install_file -- >>> 3 /Users/orsini/cm3/cm3-src-all-5.4.0/m3- >>> libs/m3gc-simple/I386_DARWIN/.M3SHIP >>> >>> Fatal Error: package build failed >>> *** execution of failed *** >>> >>> ====== >>> >>> >>> I noticed that not all the .c files in .../m3-libs/m3gc-simple/ >>> src/runtime/I386_DARWIN/ where compiled, but I do not know if >>> this is a normal behaviour. >>> >>> Thanks in advance for your time and patience! >>> >>> Cordially >>> >>> Renzo Orsini >>> >>> >>> On Jan 20, 2007, at 19:02, Darko wrote: >>> >>>> Have a look here: ftp://ftp.cs.purdue.edu/pub/hosking/m3/ >>>> I386_DARWIN/ >>>> >>>> There you'll find the bits you need for Mac Intel. Replace your >>>> existing cm3, cmcg and cm3.cfg with the ones there, then you can >>>> compile the basic libraries you need like m3core and libm3, but >>>> make sure you have the latest sources. >>>> >>>> I think they're the latest but Tony may have something more to >>>> say about that. >>>> >>>> Darko. >>>> >>>> >>>> >>>> On 21/01/2007, at 1:41 AM, Olaf Wagner wrote: >>>> >>>>> On Sat, Jan 20, 2007 at 03:05:55PM +0100, Renzo Orsini wrote: >>>>>> Hello, >>>>>> >>>>>> I installed cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz on an intel >>>>>> mac, then >>>>>> tried to a compile a Hello world program, but the compilation >>>>>> failed >>>>>> with the following message: >>>>>> >>>>>> pborsini:~/ProveModula3 orsini$ cm3 >>>>>> --- building in PPC_DARWIN --- >>>>>> >>>>>> new source -> compiling Main.m3 >>>>>> "../Main.m3", line 4: warning: potentially unhandled >>>>>> exception: IO.Error >>>>>> 1 warning encountered >>>>>> Main.ms:12:no such instruction: `mflr r0' >>>>>> Main.ms:13:no such instruction: `stmw r30,-8(r1)' >>>>>> Main.ms:14:no such instruction: `stw r0,8(r1)' >>>>>> Main.ms:15:no such instruction: `stwu r1,-96(r1)' >>>>>> Main.ms:16:no such instruction: `mr r30,r1' >>>>>> Main.ms:17:no such instruction: `bcl 20,31,"L00000000001$pb"' >>>>>> ... >>>>>> .... >>>>>> >>>>>> So I suppose there is PPC code to assemble and the Rosetta >>>>>> emulator >>>>>> for PPC on intel macs cannot do anything for this! >>>>>> >>>>>> Since I would like to port the Fibonacci language for databases, >>>>>> which is written in Modula-3, if I understand well the >>>>>> situation I >>>>>> should port the Modula-3 compiler by cross compiling it on a >>>>>> PPC mac, >>>>>> or something like that. >>>>>> >>>>>> I am asking you if you know about some effort of porting >>>>>> Modula-3 on >>>>>> intel macs, or at least if you let me know if this operation is >>>>>> possible (and also reasonably feasible in terms of time and >>>>>> expertise, given my teaching duties and my difficulties with >>>>>> assembler languages!), and, if so, if you can point me to the >>>>>> correct >>>>>> documentation to start with. Of course I will be very glad to >>>>>> give >>>>>> back to the community the result if I succeed! >>>>>> >>>>>> Thank you very much for your attention. >>>>>> >>>>>> Cordially >>>>>> >>>>>> Renzo Orsini >>>>>> Associate Professor >>>>>> Dipartimento di Informatica >>>>>> Universita' Ca' Foscari di Venezia >>>>> >>>>> Well, I wouldn't have thought that you were even able to install >>>>> the cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz system on an Intel machine; >>>>> it's surely not supposed to run on one. It shouldn't be too >>>>> difficult to get a port of the latest CM3 for Darwin on Intel >>>>> processors; I even think somebody was already working on it, >>>>> but I don't really remember who, so I forward your mail to >>>>> the m3devel list, in case others have already started such an >>>>> effort. >>>>> >>>>> Olaf >>>>> -- >>>>> elego Software Solutions GmbH HRB 77719 >>>>> Olaf Wagner E-Mail: wagner(at)elego.de >>>>> Ohmstra?e 9 Tel: +49 30 40 04 19 29 >>>>> 10179 Berlin Fax: +49 30 23 45 86 95 >>>>> Cranachstra?e 7 Tel: +49 30 85 58 01 81 >>>>> 12157 Berlin Fax: +49 30 85 58 01 88 >>>>> ------------------> WWW: http://www.elego-software-solutions.com >>>>> _______________________________________________ >>>>> M3devel mailing list >>>>> M3devel at elegosoft.com >>>>> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel >>> >> >> >> _______________________________________________ >> M3devel mailing list >> M3devel at elegosoft.com >> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel > > Antony Hosking | Associate Professor > Dept of Computer Sciences | Office: (765) 494-6001 > Purdue University | Mobile: (765) 427-5484 > 250 N. University Street | hosking at cs.purdue.edu > West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking > _--_|\ > / \ > \_.--._/ ) > v / > > From jayk123 at hotmail.com Sun Jan 21 05:18:38 2007 From: jayk123 at hotmail.com (j k) Date: Sun, 21 Jan 2007 04:18:38 +0000 Subject: [M3devel] Modula-3 on Windows and the C runtime? Message-ID: There are some issues with the C runtime on Windows. I don't have all the information but some. For example is msvcr80.dll redistributable? By folks only with a non-Express Edition? Install it next to every .exe or centrally? Using an .msi or the .exe that Microsoft provides? Do folks mind a solution where any use/install of Modula-3 first requires a quick free download/install from Microsoft? This is the easiest option and work well, except for the next point: Like even possibly cminstall.exe will fail with a cryptic error if the download/install isn't first done? Do folks mind using the static C runtime? That seems not good. It causes bloat and Microsoft can no longer bug-fix it. Are folks interested in eliminating the C runtime dependency? It is not super difficult but also not super trivial. Compiler intrinsics get you most of the functions including most/all of the floating point (not sure yet about ldexp), memcmp, memcpy. At least with the 8.0 compiler. I haven't experimented as much here with older compilers. setjmp is tricky. setjmp could/should be eliminated imho in favor of using the "structured exception handling" which is documented enough, but not trivial. The download in question is: http://www.microsoft.com/downloads/details.aspx?familyid=32BC1BEE-A3F9-4C13-9C99-220B62A191EE This is what is holding me back from making a "release" available. - Jay _________________________________________________________________ Invite your Hotmail contacts to join your friends list with Windows Live Spaces http://clk.atdmt.com/MSN/go/msnnkwsp0070000001msn/direct/01/?href=http://spaces.live.com/spacesapi.aspx?wx_action=create&wx_url=/friends.aspx&mkt=en-us From darko at darko.org Sun Jan 21 15:17:38 2007 From: darko at darko.org (Darko) Date: Sun, 21 Jan 2007 23:17:38 +0900 Subject: [M3devel] Re: porting m3 on intel mac In-Reply-To: <69645CDA-E215-4B81-BAEE-C45EC496E4C6@dsi.unive.it> References: <8A58B35B-22CD-42D5-BA19-5FBF5D3CF5CD@dsi.unive.it> <20070120164128.GA27790@elegosoft.com> <52EA8FC9-4E33-40FF-B041-5CEAE83BBDE7@darko.org> <6307E3CC-8E5F-4317-8A8E-7EADE20FEE54@darko.org> <1521F74A-AF0F-48C4-B0AA-4E7DB321DA62@cs.purdue.edu> <23B90155-784C-4A47-8EAD-1451AEC4C1B9@darko.org> <69645CDA-E215-4B81-BAEE-C45EC496E4C6@dsi.unive.it> Message-ID: <94308270-AE01-4839-989B-DE3C8EF47EE5@darko.org> I vaguely remember tweaking my config file because of something like that, if you diff my file with yours and find some differences they may get rid of those messages - I don't get them. Darko. -------------- next part -------------- A non-text attachment was scrubbed... Name: cm3.cfg Type: application/octet-stream Size: 12591 bytes Desc: not available URL: -------------- next part -------------- On 21/01/2007, at 9:59 PM, Renzo Orsini wrote: > Hello and lot of thanks! > > Everything is working really fine! > The configuration: MacBookPro, MacOSX 10.4.8, XCode 2.4.1 (gcc > 4.0.1), X11 installed, latest cm3 sources (with anonymous CVS), > The process: > 1. unpacked cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz > 2. installed as super-user (every answer left as default, the only > problem is the fact that motif is missing, ignoring) > 3. replacing cm3, cm3.cfg, cm3cg from ftp://ftp.cs.purdue.edu/pub/ > hosking/m3/I386_DARWIN > 3. running as su: > do-cm3-core.sh buildship > install-cm3-compiler.sh upgrade > do-cm3-std.sh buildship > everything is ok a part from producing about a zillion of assembler > (?) warnings ("xxx.ms:nnn:indirect jmp without `*'), > and failing at the end the compilation of package zeus (which I > suppose is an old issue) > > So, thank again to all and each of you, I am now very happy and > busy by bringing our old modula-3 software to the new century! > > Cordially, > > Renzo Orsini > > On Jan 21, 2007, at 0:33, Darko wrote: > >> The latest, 10.4.8, also the latest XCode, which I think updates >> gcc. You were addressing me weren't you? But Renzo might like to >> answer that question too. XCode weighs in at about 1G, by the way. >> >> On 21/01/2007, at 7:58 AM, Antony Hosking wrote: >> >>> What version of OSX are you using? >>> >>> On 20/01/2007, at 5:49 PM, Darko wrote: >>> >>>> No worries. I'm not familiar at all with those scripts. The >>>> problem you are having may be to do with not having the latest >>>> source, but it most probably has to do with the version of gcc >>>> that is active on your machine. C files are not compiled by cm3 >>>> but rather call gcc directly. I can't remember which version of >>>> gcc is the correct one, but mine currently is i686-apple-darwin8- >>>> gcc-4.0.1; also I can't remember the command line for changing >>>> gcc versions. Tony may be able to help re the correct version if >>>> 4.0.1 doesn't work. You may need to install the latest XCode >>>> from http://developer.apple.com if you don't have 4.01. >>>> >>>> I've cc'd the list because they're actually very helpful and my >>>> knowledge is limited... >>>> >>>> - Darko >>>> >>>> >>>> On 21/01/2007, at 6:58 AM, Renzo Orsini wrote: >>>> >>>>> First of all, thank you very much for your immediate help! >>>>> >>>>> I downloaded the files and replaced the corresponding /usr/ >>>>> local/cm3/bin files, >>>>> modified cm3.cfg by replacing INSTALL_ROOT = "/usr/local/cm3- >>>>> i386/" with INSTALL_ROOT = "/usr/local/cm3/" >>>>> then in the full source (last version, 5.4.0) I did: scripts/do- >>>>> cm3-core.sh buildship >>>>> this is the result: >>>>> >>>>> root#./do-cm3-core.sh buildship >>>>> CM3C = >>>>> /Users/orsini/cm3/cm3-src-all-5.4.0/scripts/pkgmap.sh -c "cm3 - >>>>> build -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' && cm3 - >>>>> ship -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' " m3gc-simple >>>>> m3core libm3 patternmatching m3middle m3linker m3front m3quake >>>>> m3cc cm3 m3scanner m3tools m3cgcat m3cggen m3bundle bitvector >>>>> digraph parseparams realgeometry set slisp sortedtableextras >>>>> table-list tempfiles >>>>> === package /Users/orsini/cm3/cm3-src-all-5.4.0/m3-libs/m3gc- >>>>> simple === >>>>> +++ cm3 -build -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' >>>>> && cm3 -ship -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' +++ >>>>> --- building in I386_DARWIN --- >>>>> >>>>> new source -> compiling RTVM.c >>>>> new source -> compiling sysdeps.c >>>>> new source -> compiling accept.c >>>>> ../src/runtime/I386_DARWIN/accept.c: In function 'm3_accept': >>>>> ../src/runtime/I386_DARWIN/accept.c:13: warning: pointer >>>>> targets in passing argument 3 of 'accept' differ in signedness >>>>> new source -> compiling bind.c >>>>> new source -> compiling close.c >>>>> new source -> compiling connect.c >>>>> new source -> compiling dup.c >>>>> new source -> compiling dup2.c >>>>> new source -> compiling gethostbyaddr.c >>>>> new source -> compiling gethostbyname.c >>>>> new source -> compiling getpeername.c >>>>> ../src/runtime/I386_DARWIN/getpeername.c: In function >>>>> 'm3_getpeername': >>>>> ../src/runtime/I386_DARWIN/getpeername.c:13: warning: pointer >>>>> targets in passing argument 3 of 'getpeername' differ in >>>>> signedness >>>>> new source -> compiling getsockname.c >>>>> ../src/runtime/I386_DARWIN/getsockname.c: In function >>>>> 'm3_getsockname': >>>>> ../src/runtime/I386_DARWIN/getsockname.c:13: warning: pointer >>>>> targets in passing argument 3 of 'getsockname' differ in >>>>> signedness >>>>> new source -> compiling listen.c >>>>> new source -> compiling read.c >>>>> new source -> compiling recv.c >>>>> new source -> compiling recvfrom.c >>>>> ../src/runtime/I386_DARWIN/recvfrom.c: In function 'm3_recvfrom': >>>>> ../src/runtime/I386_DARWIN/recvfrom.c:15: warning: pointer >>>>> targets in passing argument 6 of 'recvfrom' differ in signedness >>>>> new source -> compiling select.c >>>>> new source -> compiling send.c >>>>> new source -> compiling sendto.c >>>>> new source -> compiling shutdown.c >>>>> new source -> compiling socket.c >>>>> new source -> compiling write.c >>>>> -> archiving libm3gcdefs.a >>>>> ld: common symbols not allowed with MH_DYLIB output format with >>>>> the -multi_module option >>>>> sysdeps.o definition of common _RTCSRC_FinishVM (size 16) >>>>> sysdeps.o definition of common _RTHeapRep_Fault (size 16) >>>>> /usr/bin/libtool: internal link edit command failed >>>>> --- shipping from I386_DARWIN --- >>>>> >>>>> . => /usr/local/cm3/pkg/m3gc-simple/I386_DARWIN >>>>> .M3EXPORTS libm3gcdefs.5.2.dylib"/Users/orsini/cm3/cm3- >>>>> src-all-5.4.0/m3-libs/m3gc-simple/I386_DARWIN/.M3SHIP", line 3: >>>>> quake runtime error: unable to copy "libm3gcdefs.5.2.dylib" to >>>>> "/usr/local/cm3/pkg/m3gc-simple/I386_DARWIN/libm3gcdefs. >>>>> 5.2.dylib": errno=2 >>>>> >>>>> --procedure-- -line- -file--- >>>>> install_file -- >>>>> 3 /Users/orsini/cm3/cm3-src-all-5.4.0/m3- >>>>> libs/m3gc-simple/I386_DARWIN/.M3SHIP >>>>> >>>>> Fatal Error: package build failed >>>>> *** execution of failed *** >>>>> >>>>> ====== >>>>> >>>>> >>>>> I noticed that not all the .c files in .../m3-libs/m3gc-simple/ >>>>> src/runtime/I386_DARWIN/ where compiled, but I do not know if >>>>> this is a normal behaviour. >>>>> >>>>> Thanks in advance for your time and patience! >>>>> >>>>> Cordially >>>>> >>>>> Renzo Orsini >>>>> >>>>> >>>>> On Jan 20, 2007, at 19:02, Darko wrote: >>>>> >>>>>> Have a look here: ftp://ftp.cs.purdue.edu/pub/hosking/m3/ >>>>>> I386_DARWIN/ >>>>>> >>>>>> There you'll find the bits you need for Mac Intel. Replace >>>>>> your existing cm3, cmcg and cm3.cfg with the ones there, then >>>>>> you can compile the basic libraries you need like m3core and >>>>>> libm3, but make sure you have the latest sources. >>>>>> >>>>>> I think they're the latest but Tony may have something more to >>>>>> say about that. >>>>>> >>>>>> Darko. >>>>>> >>>>>> >>>>>> >>>>>> On 21/01/2007, at 1:41 AM, Olaf Wagner wrote: >>>>>> >>>>>>> On Sat, Jan 20, 2007 at 03:05:55PM +0100, Renzo Orsini wrote: >>>>>>>> Hello, >>>>>>>> >>>>>>>> I installed cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz on an intel >>>>>>>> mac, then >>>>>>>> tried to a compile a Hello world program, but the >>>>>>>> compilation failed >>>>>>>> with the following message: >>>>>>>> >>>>>>>> pborsini:~/ProveModula3 orsini$ cm3 >>>>>>>> --- building in PPC_DARWIN --- >>>>>>>> >>>>>>>> new source -> compiling Main.m3 >>>>>>>> "../Main.m3", line 4: warning: potentially unhandled >>>>>>>> exception: IO.Error >>>>>>>> 1 warning encountered >>>>>>>> Main.ms:12:no such instruction: `mflr r0' >>>>>>>> Main.ms:13:no such instruction: `stmw r30,-8(r1)' >>>>>>>> Main.ms:14:no such instruction: `stw r0,8(r1)' >>>>>>>> Main.ms:15:no such instruction: `stwu r1,-96(r1)' >>>>>>>> Main.ms:16:no such instruction: `mr r30,r1' >>>>>>>> Main.ms:17:no such instruction: `bcl 20,31,"L00000000001$pb"' >>>>>>>> ... >>>>>>>> .... >>>>>>>> >>>>>>>> So I suppose there is PPC code to assemble and the Rosetta >>>>>>>> emulator >>>>>>>> for PPC on intel macs cannot do anything for this! >>>>>>>> >>>>>>>> Since I would like to port the Fibonacci language for >>>>>>>> databases, >>>>>>>> which is written in Modula-3, if I understand well the >>>>>>>> situation I >>>>>>>> should port the Modula-3 compiler by cross compiling it on a >>>>>>>> PPC mac, >>>>>>>> or something like that. >>>>>>>> >>>>>>>> I am asking you if you know about some effort of porting >>>>>>>> Modula-3 on >>>>>>>> intel macs, or at least if you let me know if this operation is >>>>>>>> possible (and also reasonably feasible in terms of time and >>>>>>>> expertise, given my teaching duties and my difficulties with >>>>>>>> assembler languages!), and, if so, if you can point me to >>>>>>>> the correct >>>>>>>> documentation to start with. Of course I will be very glad >>>>>>>> to give >>>>>>>> back to the community the result if I succeed! >>>>>>>> >>>>>>>> Thank you very much for your attention. >>>>>>>> >>>>>>>> Cordially >>>>>>>> >>>>>>>> Renzo Orsini >>>>>>>> Associate Professor >>>>>>>> Dipartimento di Informatica >>>>>>>> Universita' Ca' Foscari di Venezia >>>>>>> >>>>>>> Well, I wouldn't have thought that you were even able to install >>>>>>> the cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz system on an Intel >>>>>>> machine; >>>>>>> it's surely not supposed to run on one. It shouldn't be too >>>>>>> difficult to get a port of the latest CM3 for Darwin on Intel >>>>>>> processors; I even think somebody was already working on it, >>>>>>> but I don't really remember who, so I forward your mail to >>>>>>> the m3devel list, in case others have already started such an >>>>>>> effort. >>>>>>> >>>>>>> Olaf >>>>>>> -- >>>>>>> elego Software Solutions GmbH HRB >>>>>>> 77719 >>>>>>> Olaf Wagner E-Mail: wagner(at) >>>>>>> elego.de >>>>>>> Ohmstra?e 9 Tel: +49 30 40 04 >>>>>>> 19 29 >>>>>>> 10179 Berlin Fax: +49 30 23 45 >>>>>>> 86 95 >>>>>>> Cranachstra?e 7 Tel: +49 30 85 58 >>>>>>> 01 81 >>>>>>> 12157 Berlin Fax: +49 30 85 58 >>>>>>> 01 88 >>>>>>> ------------------> WWW: http://www.elego-software- >>>>>>> solutions.com >>>>>>> _______________________________________________ >>>>>>> M3devel mailing list >>>>>>> M3devel at elegosoft.com >>>>>>> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel >>>>> >>>> >>>> >>>> _______________________________________________ >>>> M3devel mailing list >>>> M3devel at elegosoft.com >>>> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel >>> >>> Antony Hosking | Associate Professor >>> Dept of Computer Sciences | Office: (765) 494-6001 >>> Purdue University | Mobile: (765) 427-5484 >>> 250 N. University Street | hosking at cs.purdue.edu >>> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking >>> _--_|\ >>> / \ >>> \_.--._/ ) >>> v / >>> >>> > From hosking at cs.purdue.edu Sun Jan 21 21:49:42 2007 From: hosking at cs.purdue.edu (Antony Hosking) Date: Sun, 21 Jan 2007 15:49:42 -0500 Subject: [M3devel] Re: porting m3 on intel mac In-Reply-To: <69645CDA-E215-4B81-BAEE-C45EC496E4C6@dsi.unive.it> References: <8A58B35B-22CD-42D5-BA19-5FBF5D3CF5CD@dsi.unive.it> <20070120164128.GA27790@elegosoft.com> <52EA8FC9-4E33-40FF-B041-5CEAE83BBDE7@darko.org> <6307E3CC-8E5F-4317-8A8E-7EADE20FEE54@darko.org> <1521F74A-AF0F-48C4-B0AA-4E7DB321DA62@cs.purdue.edu> <23B90155-784C-4A47-8EAD-1451AEC4C1B9@darko.org> <69645CDA-E215-4B81-BAEE-C45EC496E4C6@dsi.unive.it> Message-ID: On 21/01/2007, at 7:59 AM, Renzo Orsini wrote: > Hello and lot of thanks! > > Everything is working really fine! > The configuration: MacBookPro, MacOSX 10.4.8, XCode 2.4.1 (gcc > 4.0.1), X11 installed, latest cm3 sources (with anonymous CVS), > The process: > 1. unpacked cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz > 2. installed as super-user (every answer left as default, the only > problem is the fact that motif is missing, ignoring) > 3. replacing cm3, cm3.cfg, cm3cg from ftp://ftp.cs.purdue.edu/pub/ > hosking/m3/I386_DARWIN > 3. running as su: > do-cm3-core.sh buildship > install-cm3-compiler.sh upgrade > do-cm3-std.sh buildship > everything is ok a part from producing about a zillion of assembler > (?) warnings ("xxx.ms:nnn:indirect jmp without `*'), > and failing at the end the compilation of package zeus (which I > suppose is an old issue) That's odd since my builds go through cleanly. > > So, thank again to all and each of you, I am now very happy and > busy by bringing our old modula-3 software to the new century! > > Cordially, > > Renzo Orsini > > On Jan 21, 2007, at 0:33, Darko wrote: > >> The latest, 10.4.8, also the latest XCode, which I think updates >> gcc. You were addressing me weren't you? But Renzo might like to >> answer that question too. XCode weighs in at about 1G, by the way. >> >> On 21/01/2007, at 7:58 AM, Antony Hosking wrote: >> >>> What version of OSX are you using? >>> >>> On 20/01/2007, at 5:49 PM, Darko wrote: >>> >>>> No worries. I'm not familiar at all with those scripts. The >>>> problem you are having may be to do with not having the latest >>>> source, but it most probably has to do with the version of gcc >>>> that is active on your machine. C files are not compiled by cm3 >>>> but rather call gcc directly. I can't remember which version of >>>> gcc is the correct one, but mine currently is i686-apple-darwin8- >>>> gcc-4.0.1; also I can't remember the command line for changing >>>> gcc versions. Tony may be able to help re the correct version if >>>> 4.0.1 doesn't work. You may need to install the latest XCode >>>> from http://developer.apple.com if you don't have 4.01. >>>> >>>> I've cc'd the list because they're actually very helpful and my >>>> knowledge is limited... >>>> >>>> - Darko >>>> >>>> >>>> On 21/01/2007, at 6:58 AM, Renzo Orsini wrote: >>>> >>>>> First of all, thank you very much for your immediate help! >>>>> >>>>> I downloaded the files and replaced the corresponding /usr/ >>>>> local/cm3/bin files, >>>>> modified cm3.cfg by replacing INSTALL_ROOT = "/usr/local/cm3- >>>>> i386/" with INSTALL_ROOT = "/usr/local/cm3/" >>>>> then in the full source (last version, 5.4.0) I did: scripts/do- >>>>> cm3-core.sh buildship >>>>> this is the result: >>>>> >>>>> root#./do-cm3-core.sh buildship >>>>> CM3C = >>>>> /Users/orsini/cm3/cm3-src-all-5.4.0/scripts/pkgmap.sh -c "cm3 - >>>>> build -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' && cm3 - >>>>> ship -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' " m3gc-simple >>>>> m3core libm3 patternmatching m3middle m3linker m3front m3quake >>>>> m3cc cm3 m3scanner m3tools m3cgcat m3cggen m3bundle bitvector >>>>> digraph parseparams realgeometry set slisp sortedtableextras >>>>> table-list tempfiles >>>>> === package /Users/orsini/cm3/cm3-src-all-5.4.0/m3-libs/m3gc- >>>>> simple === >>>>> +++ cm3 -build -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' >>>>> && cm3 -ship -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' +++ >>>>> --- building in I386_DARWIN --- >>>>> >>>>> new source -> compiling RTVM.c >>>>> new source -> compiling sysdeps.c >>>>> new source -> compiling accept.c >>>>> ../src/runtime/I386_DARWIN/accept.c: In function 'm3_accept': >>>>> ../src/runtime/I386_DARWIN/accept.c:13: warning: pointer >>>>> targets in passing argument 3 of 'accept' differ in signedness >>>>> new source -> compiling bind.c >>>>> new source -> compiling close.c >>>>> new source -> compiling connect.c >>>>> new source -> compiling dup.c >>>>> new source -> compiling dup2.c >>>>> new source -> compiling gethostbyaddr.c >>>>> new source -> compiling gethostbyname.c >>>>> new source -> compiling getpeername.c >>>>> ../src/runtime/I386_DARWIN/getpeername.c: In function >>>>> 'm3_getpeername': >>>>> ../src/runtime/I386_DARWIN/getpeername.c:13: warning: pointer >>>>> targets in passing argument 3 of 'getpeername' differ in >>>>> signedness >>>>> new source -> compiling getsockname.c >>>>> ../src/runtime/I386_DARWIN/getsockname.c: In function >>>>> 'm3_getsockname': >>>>> ../src/runtime/I386_DARWIN/getsockname.c:13: warning: pointer >>>>> targets in passing argument 3 of 'getsockname' differ in >>>>> signedness >>>>> new source -> compiling listen.c >>>>> new source -> compiling read.c >>>>> new source -> compiling recv.c >>>>> new source -> compiling recvfrom.c >>>>> ../src/runtime/I386_DARWIN/recvfrom.c: In function 'm3_recvfrom': >>>>> ../src/runtime/I386_DARWIN/recvfrom.c:15: warning: pointer >>>>> targets in passing argument 6 of 'recvfrom' differ in signedness >>>>> new source -> compiling select.c >>>>> new source -> compiling send.c >>>>> new source -> compiling sendto.c >>>>> new source -> compiling shutdown.c >>>>> new source -> compiling socket.c >>>>> new source -> compiling write.c >>>>> -> archiving libm3gcdefs.a >>>>> ld: common symbols not allowed with MH_DYLIB output format with >>>>> the -multi_module option >>>>> sysdeps.o definition of common _RTCSRC_FinishVM (size 16) >>>>> sysdeps.o definition of common _RTHeapRep_Fault (size 16) >>>>> /usr/bin/libtool: internal link edit command failed >>>>> --- shipping from I386_DARWIN --- >>>>> >>>>> . => /usr/local/cm3/pkg/m3gc-simple/I386_DARWIN >>>>> .M3EXPORTS libm3gcdefs.5.2.dylib"/Users/orsini/cm3/cm3- >>>>> src-all-5.4.0/m3-libs/m3gc-simple/I386_DARWIN/.M3SHIP", line 3: >>>>> quake runtime error: unable to copy "libm3gcdefs.5.2.dylib" to >>>>> "/usr/local/cm3/pkg/m3gc-simple/I386_DARWIN/libm3gcdefs. >>>>> 5.2.dylib": errno=2 >>>>> >>>>> --procedure-- -line- -file--- >>>>> install_file -- >>>>> 3 /Users/orsini/cm3/cm3-src-all-5.4.0/m3- >>>>> libs/m3gc-simple/I386_DARWIN/.M3SHIP >>>>> >>>>> Fatal Error: package build failed >>>>> *** execution of failed *** >>>>> >>>>> ====== >>>>> >>>>> >>>>> I noticed that not all the .c files in .../m3-libs/m3gc-simple/ >>>>> src/runtime/I386_DARWIN/ where compiled, but I do not know if >>>>> this is a normal behaviour. >>>>> >>>>> Thanks in advance for your time and patience! >>>>> >>>>> Cordially >>>>> >>>>> Renzo Orsini >>>>> >>>>> >>>>> On Jan 20, 2007, at 19:02, Darko wrote: >>>>> >>>>>> Have a look here: ftp://ftp.cs.purdue.edu/pub/hosking/m3/ >>>>>> I386_DARWIN/ >>>>>> >>>>>> There you'll find the bits you need for Mac Intel. Replace >>>>>> your existing cm3, cmcg and cm3.cfg with the ones there, then >>>>>> you can compile the basic libraries you need like m3core and >>>>>> libm3, but make sure you have the latest sources. >>>>>> >>>>>> I think they're the latest but Tony may have something more to >>>>>> say about that. >>>>>> >>>>>> Darko. >>>>>> >>>>>> >>>>>> >>>>>> On 21/01/2007, at 1:41 AM, Olaf Wagner wrote: >>>>>> >>>>>>> On Sat, Jan 20, 2007 at 03:05:55PM +0100, Renzo Orsini wrote: >>>>>>>> Hello, >>>>>>>> >>>>>>>> I installed cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz on an intel >>>>>>>> mac, then >>>>>>>> tried to a compile a Hello world program, but the >>>>>>>> compilation failed >>>>>>>> with the following message: >>>>>>>> >>>>>>>> pborsini:~/ProveModula3 orsini$ cm3 >>>>>>>> --- building in PPC_DARWIN --- >>>>>>>> >>>>>>>> new source -> compiling Main.m3 >>>>>>>> "../Main.m3", line 4: warning: potentially unhandled >>>>>>>> exception: IO.Error >>>>>>>> 1 warning encountered >>>>>>>> Main.ms:12:no such instruction: `mflr r0' >>>>>>>> Main.ms:13:no such instruction: `stmw r30,-8(r1)' >>>>>>>> Main.ms:14:no such instruction: `stw r0,8(r1)' >>>>>>>> Main.ms:15:no such instruction: `stwu r1,-96(r1)' >>>>>>>> Main.ms:16:no such instruction: `mr r30,r1' >>>>>>>> Main.ms:17:no such instruction: `bcl 20,31,"L00000000001$pb"' >>>>>>>> ... >>>>>>>> .... >>>>>>>> >>>>>>>> So I suppose there is PPC code to assemble and the Rosetta >>>>>>>> emulator >>>>>>>> for PPC on intel macs cannot do anything for this! >>>>>>>> >>>>>>>> Since I would like to port the Fibonacci language for >>>>>>>> databases, >>>>>>>> which is written in Modula-3, if I understand well the >>>>>>>> situation I >>>>>>>> should port the Modula-3 compiler by cross compiling it on a >>>>>>>> PPC mac, >>>>>>>> or something like that. >>>>>>>> >>>>>>>> I am asking you if you know about some effort of porting >>>>>>>> Modula-3 on >>>>>>>> intel macs, or at least if you let me know if this operation is >>>>>>>> possible (and also reasonably feasible in terms of time and >>>>>>>> expertise, given my teaching duties and my difficulties with >>>>>>>> assembler languages!), and, if so, if you can point me to >>>>>>>> the correct >>>>>>>> documentation to start with. Of course I will be very glad >>>>>>>> to give >>>>>>>> back to the community the result if I succeed! >>>>>>>> >>>>>>>> Thank you very much for your attention. >>>>>>>> >>>>>>>> Cordially >>>>>>>> >>>>>>>> Renzo Orsini >>>>>>>> Associate Professor >>>>>>>> Dipartimento di Informatica >>>>>>>> Universita' Ca' Foscari di Venezia >>>>>>> >>>>>>> Well, I wouldn't have thought that you were even able to install >>>>>>> the cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz system on an Intel >>>>>>> machine; >>>>>>> it's surely not supposed to run on one. It shouldn't be too >>>>>>> difficult to get a port of the latest CM3 for Darwin on Intel >>>>>>> processors; I even think somebody was already working on it, >>>>>>> but I don't really remember who, so I forward your mail to >>>>>>> the m3devel list, in case others have already started such an >>>>>>> effort. >>>>>>> >>>>>>> Olaf >>>>>>> -- >>>>>>> elego Software Solutions GmbH HRB >>>>>>> 77719 >>>>>>> Olaf Wagner E-Mail: wagner(at) >>>>>>> elego.de >>>>>>> Ohmstra?e 9 Tel: +49 30 40 04 >>>>>>> 19 29 >>>>>>> 10179 Berlin Fax: +49 30 23 45 >>>>>>> 86 95 >>>>>>> Cranachstra?e 7 Tel: +49 30 85 58 >>>>>>> 01 81 >>>>>>> 12157 Berlin Fax: +49 30 85 58 >>>>>>> 01 88 >>>>>>> ------------------> WWW: http://www.elego-software- >>>>>>> solutions.com >>>>>>> _______________________________________________ >>>>>>> M3devel mailing list >>>>>>> M3devel at elegosoft.com >>>>>>> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel >>>>> >>>> >>>> >>>> _______________________________________________ >>>> M3devel mailing list >>>> M3devel at elegosoft.com >>>> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel >>> >>> Antony Hosking | Associate Professor >>> Dept of Computer Sciences | Office: (765) 494-6001 >>> Purdue University | Mobile: (765) 427-5484 >>> 250 N. University Street | hosking at cs.purdue.edu >>> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking >>> _--_|\ >>> / \ >>> \_.--._/ ) >>> v / >>> >>> > Antony Hosking | Associate Professor Dept of Computer Sciences | Office: (765) 494-6001 Purdue University | Mobile: (765) 427-5484 250 N. University Street | hosking at cs.purdue.edu West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking _--_|\ / \ \_.--._/ ) v / From hosking at cs.purdue.edu Sun Jan 21 22:57:41 2007 From: hosking at cs.purdue.edu (Antony Hosking) Date: Sun, 21 Jan 2007 16:57:41 -0500 Subject: [M3devel] Re: porting m3 on intel mac In-Reply-To: <4206B526-A4CF-430B-AE8C-086D27615A79@dsi.unive.it> References: <8A58B35B-22CD-42D5-BA19-5FBF5D3CF5CD@dsi.unive.it> <20070120164128.GA27790@elegosoft.com> <52EA8FC9-4E33-40FF-B041-5CEAE83BBDE7@darko.org> <6307E3CC-8E5F-4317-8A8E-7EADE20FEE54@darko.org> <1521F74A-AF0F-48C4-B0AA-4E7DB321DA62@cs.purdue.edu> <23B90155-784C-4A47-8EAD-1451AEC4C1B9@darko.org> <69645CDA-E215-4B81-BAEE-C45EC496E4C6@dsi.unive.it> <5C13EB47-D241-438A-BE6F-BBD30AF002A4@dsi.unive.it> <9125FF3E-5D5D-4DE0-95DC-DCD997D198C1@cs.purdue.edu> <4206B526-A4CF-430B-AE8C-086D27615A79@dsi.unive.it> Message-ID: <722DDD36-2973-44B2-91BF-8487DA744D6C@cs.purdue.edu> For some reason your .stabs entries are different than mine, but otherwise the assembler files are the same. Are you using the cm3cg and cm3.cfg from my ftp site? Here is the version of the assembler that I have on my Intel Mac: Apple Computer, Inc. version cctools-590.42.1.obj~1, GNU assembler version 1.38 With respect to zeus, can you build with -verbose in the zeus directory and send me the output? Sounds like one of the tools is not getting built properly. On 21/01/2007, at 4:47 PM, Renzo Orsini wrote: > You can find in the attachment the program and the compilation. > > Renzo > > > > On Jan 21, 2007, at 22:34, Antony Hosking wrote: > >> >> On 21/01/2007, at 4:27 PM, Renzo Orsini wrote: >> >>> On Jan 21, 2007, at 21:49, Antony Hosking wrote: >>> >>>> >>>> On 21/01/2007, at 7:59 AM, Renzo Orsini wrote: >>>> >>>>> Hello and lot of thanks! >>>>> >>>>> Everything is working really fine! >>>>> The configuration: MacBookPro, MacOSX 10.4.8, XCode 2.4.1 (gcc >>>>> 4.0.1), X11 installed, latest cm3 sources (with anonymous CVS), >>>>> The process: >>>>> 1. unpacked cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz >>>>> 2. installed as super-user (every answer left as default, the >>>>> only problem is the fact that motif is missing, ignoring) >>>>> 3. replacing cm3, cm3.cfg, cm3cg from ftp://ftp.cs.purdue.edu/ >>>>> pub/hosking/m3/I386_DARWIN >>>>> 3. running as su: >>>>> do-cm3-core.sh buildship >>>>> install-cm3-compiler.sh upgrade >>>>> do-cm3-std.sh buildship >>>>> everything is ok a part from producing about a zillion of >>>>> assembler (?) warnings ("xxx.ms:nnn:indirect jmp without `*'), >>>>> and failing at the end the compilation of package zeus (which I >>>>> suppose is an old issue) >>>> >>>> That's odd since my builds go through cleanly. >>> >>> This is an example of the strange "indirect jump" message: >>> >>> pborsini:~/ProveModula3 orsini$ cat Main.m3 >>> MODULE Main; IMPORT IO; BEGIN IO.Put("Hello World\n"); END Main. >>> pborsini:~/ProveModula3 orsini$ cm3 >>> --- building in I386_DARWIN --- >>> new source -> compiling Main.m3 >>> Main.ms:101:indirect jmp without `*' >>> -> linking prog >>> _m3main.ms:74:indirect jmp without `*' >>> _m3main.ms:89:indirect jmp without `*' >>> _m3main.ms:108:indirect jmp without `*' >>> pborsini:~/ProveModula3 orsini$ ./I386_DARWIN/prog >>> Hello World >>> >>> maybe there is some problem with the linker parameters, however >>> the progrum runs ok. >> >> Can you compile with "-keep" and send me the relevant .ms file? I >> can compare with mine. >> >>> >>> For what concerns zeus: the following is the output of cm3: >>> >>> === package /Users/orsini/modula3/cvsstuff/cm3/m3-ui/zeus === >>> +++ cm3 -build -override -DROOT='/Users/orsini/modula3/cvsstuff/ >>> cm3' +++ >>> --- building in I386_DARWIN --- >>> >>> new source -> compiling RemoteView_T_v1.i3 >>> "../I386_DARWIN/RemoteView_T_v1.i3", line 1: syntax error: >>> missing INTERFACE or MODULE keyword >>> "../I386_DARWIN/RemoteView_T_v1.i3", line 1: unable to find >>> interface () >>> "../I386_DARWIN/RemoteView_T_v1.i3", line 1: warning: file name >>> (RemoteView_T_v1.i3) doesn't match module name () >>> 2 errors and 1 warning encountered >>> new source -> compiling RemoteView_T_v1.m3 >>> "../I386_DARWIN/RemoteView_T_v1.m3", line 1: syntax error: >>> missing INTERFACE or MODULE keyword >>> "../I386_DARWIN/RemoteView_T_v1.m3", line 1: unable to find >>> interface () >>> "../I386_DARWIN/RemoteView_T_v1.m3", line 1: warning: file name >>> (RemoteView_T_v1.m3) doesn't match module name () >>> 2 errors and 1 warning encountered >>> compilation failed => not building library "libm3zeus.a" >>> Fatal Error: package build failed >>> *** execution of failed *** >>> >>> (and the files RemoteView_T_v1.i3 and RemoteView_T_v1.m3 are >>> empty in I386_DARWIN, and they do not exists in src) >>> >>> Several other packages cannot be compiled, like many obliq ones, >>> webvt, June and mentor. >>> >>> However the compiler seems to work for compiling my stuff, >>> altough I have to make a few corrections and debugging. >> >> This sounds problematic since it implies that the generators for >> those files are not working correctly. (If you run with "- >> commands" you'll see which generator programs are being used. >> >>> >>> Thanks, >>> >>> Renzo >>> >>>> >>>>> >>>>> So, thank again to all and each of you, I am now very happy and >>>>> busy by bringing our old modula-3 software to the new century! >>>>> >>>>> Cordially, >>>>> >>>>> Renzo Orsini >>>>> >>>>> On Jan 21, 2007, at 0:33, Darko wrote: >>>>> >>>>>> The latest, 10.4.8, also the latest XCode, which I think >>>>>> updates gcc. You were addressing me weren't you? But Renzo >>>>>> might like to answer that question too. XCode weighs in at >>>>>> about 1G, by the way. >>>>>> >>>>>> On 21/01/2007, at 7:58 AM, Antony Hosking wrote: >>>>>> >>>>>>> What version of OSX are you using? >>>>>>> >>>>>>> On 20/01/2007, at 5:49 PM, Darko wrote: >>>>>>> >>>>>>>> No worries. I'm not familiar at all with those scripts. The >>>>>>>> problem you are having may be to do with not having the >>>>>>>> latest source, but it most probably has to do with the >>>>>>>> version of gcc that is active on your machine. C files are >>>>>>>> not compiled by cm3 but rather call gcc directly. I can't >>>>>>>> remember which version of gcc is the correct one, but mine >>>>>>>> currently is i686-apple-darwin8-gcc-4.0.1; also I can't >>>>>>>> remember the command line for changing gcc versions. Tony >>>>>>>> may be able to help re the correct version if 4.0.1 doesn't >>>>>>>> work. You may need to install the latest XCode from http:// >>>>>>>> developer.apple.com if you don't have 4.01. >>>>>>>> >>>>>>>> I've cc'd the list because they're actually very helpful and >>>>>>>> my knowledge is limited... >>>>>>>> >>>>>>>> - Darko >>>>>>>> >>>>>>>> >>>>>>>> On 21/01/2007, at 6:58 AM, Renzo Orsini wrote: >>>>>>>> >>>>>>>>> First of all, thank you very much for your immediate help! >>>>>>>>> >>>>>>>>> I downloaded the files and replaced the corresponding /usr/ >>>>>>>>> local/cm3/bin files, >>>>>>>>> modified cm3.cfg by replacing INSTALL_ROOT = "/usr/local/ >>>>>>>>> cm3-i386/" with INSTALL_ROOT = "/usr/local/cm3/" >>>>>>>>> then in the full source (last version, 5.4.0) I did: >>>>>>>>> scripts/do-cm3-core.sh buildship >>>>>>>>> this is the result: >>>>>>>>> >>>>>>>>> root#./do-cm3-core.sh buildship >>>>>>>>> CM3C = >>>>>>>>> /Users/orsini/cm3/cm3-src-all-5.4.0/scripts/pkgmap.sh -c >>>>>>>>> "cm3 -build -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' >>>>>>>>> && cm3 -ship -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' " >>>>>>>>> m3gc-simple m3core libm3 patternmatching m3middle m3linker >>>>>>>>> m3front m3quake m3cc cm3 m3scanner m3tools m3cgcat m3cggen >>>>>>>>> m3bundle bitvector digraph parseparams realgeometry set >>>>>>>>> slisp sortedtableextras table-list tempfiles >>>>>>>>> === package /Users/orsini/cm3/cm3-src-all-5.4.0/m3-libs/ >>>>>>>>> m3gc-simple === >>>>>>>>> +++ cm3 -build -DROOT='/Users/orsini/cm3/cm3-src- >>>>>>>>> all-5.4.0' && cm3 -ship -DROOT='/Users/orsini/cm3/cm3-src- >>>>>>>>> all-5.4.0' +++ >>>>>>>>> --- building in I386_DARWIN --- >>>>>>>>> >>>>>>>>> new source -> compiling RTVM.c >>>>>>>>> new source -> compiling sysdeps.c >>>>>>>>> new source -> compiling accept.c >>>>>>>>> ../src/runtime/I386_DARWIN/accept.c: In function 'm3_accept': >>>>>>>>> ../src/runtime/I386_DARWIN/accept.c:13: warning: pointer >>>>>>>>> targets in passing argument 3 of 'accept' differ in signedness >>>>>>>>> new source -> compiling bind.c >>>>>>>>> new source -> compiling close.c >>>>>>>>> new source -> compiling connect.c >>>>>>>>> new source -> compiling dup.c >>>>>>>>> new source -> compiling dup2.c >>>>>>>>> new source -> compiling gethostbyaddr.c >>>>>>>>> new source -> compiling gethostbyname.c >>>>>>>>> new source -> compiling getpeername.c >>>>>>>>> ../src/runtime/I386_DARWIN/getpeername.c: In function >>>>>>>>> 'm3_getpeername': >>>>>>>>> ../src/runtime/I386_DARWIN/getpeername.c:13: warning: >>>>>>>>> pointer targets in passing argument 3 of 'getpeername' >>>>>>>>> differ in signedness >>>>>>>>> new source -> compiling getsockname.c >>>>>>>>> ../src/runtime/I386_DARWIN/getsockname.c: In function >>>>>>>>> 'm3_getsockname': >>>>>>>>> ../src/runtime/I386_DARWIN/getsockname.c:13: warning: >>>>>>>>> pointer targets in passing argument 3 of 'getsockname' >>>>>>>>> differ in signedness >>>>>>>>> new source -> compiling listen.c >>>>>>>>> new source -> compiling read.c >>>>>>>>> new source -> compiling recv.c >>>>>>>>> new source -> compiling recvfrom.c >>>>>>>>> ../src/runtime/I386_DARWIN/recvfrom.c: In function >>>>>>>>> 'm3_recvfrom': >>>>>>>>> ../src/runtime/I386_DARWIN/recvfrom.c:15: warning: pointer >>>>>>>>> targets in passing argument 6 of 'recvfrom' differ in >>>>>>>>> signedness >>>>>>>>> new source -> compiling select.c >>>>>>>>> new source -> compiling send.c >>>>>>>>> new source -> compiling sendto.c >>>>>>>>> new source -> compiling shutdown.c >>>>>>>>> new source -> compiling socket.c >>>>>>>>> new source -> compiling write.c >>>>>>>>> -> archiving libm3gcdefs.a >>>>>>>>> ld: common symbols not allowed with MH_DYLIB output format >>>>>>>>> with the -multi_module option >>>>>>>>> sysdeps.o definition of common _RTCSRC_FinishVM (size 16) >>>>>>>>> sysdeps.o definition of common _RTHeapRep_Fault (size 16) >>>>>>>>> /usr/bin/libtool: internal link edit command failed >>>>>>>>> --- shipping from I386_DARWIN --- >>>>>>>>> >>>>>>>>> . => /usr/local/cm3/pkg/m3gc-simple/I386_DARWIN >>>>>>>>> .M3EXPORTS libm3gcdefs.5.2.dylib"/Users/orsini/cm3/ >>>>>>>>> cm3-src-all-5.4.0/m3-libs/m3gc-simple/I386_DARWIN/.M3SHIP", >>>>>>>>> line 3: quake runtime error: unable to copy "libm3gcdefs. >>>>>>>>> 5.2.dylib" to "/usr/local/cm3/pkg/m3gc-simple/I386_DARWIN/ >>>>>>>>> libm3gcdefs.5.2.dylib": errno=2 >>>>>>>>> >>>>>>>>> --procedure-- -line- -file--- >>>>>>>>> install_file -- >>>>>>>>> 3 /Users/orsini/cm3/cm3-src-all-5.4.0/ >>>>>>>>> m3-libs/m3gc-simple/I386_DARWIN/.M3SHIP >>>>>>>>> >>>>>>>>> Fatal Error: package build failed >>>>>>>>> *** execution of failed *** >>>>>>>>> >>>>>>>>> ====== >>>>>>>>> >>>>>>>>> >>>>>>>>> I noticed that not all the .c files in .../m3-libs/m3gc- >>>>>>>>> simple/src/runtime/I386_DARWIN/ where compiled, but I do >>>>>>>>> not know if this is a normal behaviour. >>>>>>>>> >>>>>>>>> Thanks in advance for your time and patience! >>>>>>>>> >>>>>>>>> Cordially >>>>>>>>> >>>>>>>>> Renzo Orsini >>>>>>>>> >>>>>>>>> >>>>>>>>> On Jan 20, 2007, at 19:02, Darko wrote: >>>>>>>>> >>>>>>>>>> Have a look here: ftp://ftp.cs.purdue.edu/pub/hosking/m3/ >>>>>>>>>> I386_DARWIN/ >>>>>>>>>> >>>>>>>>>> There you'll find the bits you need for Mac Intel. Replace >>>>>>>>>> your existing cm3, cmcg and cm3.cfg with the ones there, >>>>>>>>>> then you can compile the basic libraries you need like >>>>>>>>>> m3core and libm3, but make sure you have the latest sources. >>>>>>>>>> >>>>>>>>>> I think they're the latest but Tony may have something >>>>>>>>>> more to say about that. >>>>>>>>>> >>>>>>>>>> Darko. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On 21/01/2007, at 1:41 AM, Olaf Wagner wrote: >>>>>>>>>> >>>>>>>>>>> On Sat, Jan 20, 2007 at 03:05:55PM +0100, Renzo Orsini >>>>>>>>>>> wrote: >>>>>>>>>>>> Hello, >>>>>>>>>>>> >>>>>>>>>>>> I installed cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz on an >>>>>>>>>>>> intel mac, then >>>>>>>>>>>> tried to a compile a Hello world program, but the >>>>>>>>>>>> compilation failed >>>>>>>>>>>> with the following message: >>>>>>>>>>>> >>>>>>>>>>>> pborsini:~/ProveModula3 orsini$ cm3 >>>>>>>>>>>> --- building in PPC_DARWIN --- >>>>>>>>>>>> >>>>>>>>>>>> new source -> compiling Main.m3 >>>>>>>>>>>> "../Main.m3", line 4: warning: potentially unhandled >>>>>>>>>>>> exception: IO.Error >>>>>>>>>>>> 1 warning encountered >>>>>>>>>>>> Main.ms:12:no such instruction: `mflr r0' >>>>>>>>>>>> Main.ms:13:no such instruction: `stmw r30,-8(r1)' >>>>>>>>>>>> Main.ms:14:no such instruction: `stw r0,8(r1)' >>>>>>>>>>>> Main.ms:15:no such instruction: `stwu r1,-96(r1)' >>>>>>>>>>>> Main.ms:16:no such instruction: `mr r30,r1' >>>>>>>>>>>> Main.ms:17:no such instruction: `bcl 20,31,"L00000000001 >>>>>>>>>>>> $pb"' >>>>>>>>>>>> ... >>>>>>>>>>>> .... >>>>>>>>>>>> >>>>>>>>>>>> So I suppose there is PPC code to assemble and the >>>>>>>>>>>> Rosetta emulator >>>>>>>>>>>> for PPC on intel macs cannot do anything for this! >>>>>>>>>>>> >>>>>>>>>>>> Since I would like to port the Fibonacci language for >>>>>>>>>>>> databases, >>>>>>>>>>>> which is written in Modula-3, if I understand well the >>>>>>>>>>>> situation I >>>>>>>>>>>> should port the Modula-3 compiler by cross compiling it >>>>>>>>>>>> on a PPC mac, >>>>>>>>>>>> or something like that. >>>>>>>>>>>> >>>>>>>>>>>> I am asking you if you know about some effort of porting >>>>>>>>>>>> Modula-3 on >>>>>>>>>>>> intel macs, or at least if you let me know if this >>>>>>>>>>>> operation is >>>>>>>>>>>> possible (and also reasonably feasible in terms of time and >>>>>>>>>>>> expertise, given my teaching duties and my difficulties >>>>>>>>>>>> with >>>>>>>>>>>> assembler languages!), and, if so, if you can point me >>>>>>>>>>>> to the correct >>>>>>>>>>>> documentation to start with. Of course I will be very >>>>>>>>>>>> glad to give >>>>>>>>>>>> back to the community the result if I succeed! >>>>>>>>>>>> >>>>>>>>>>>> Thank you very much for your attention. >>>>>>>>>>>> >>>>>>>>>>>> Cordially >>>>>>>>>>>> >>>>>>>>>>>> Renzo Orsini >>>>>>>>>>>> Associate Professor >>>>>>>>>>>> Dipartimento di Informatica >>>>>>>>>>>> Universita' Ca' Foscari di Venezia >>>>>>>>>>> >>>>>>>>>>> Well, I wouldn't have thought that you were even able to >>>>>>>>>>> install >>>>>>>>>>> the cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz system on an Intel >>>>>>>>>>> machine; >>>>>>>>>>> it's surely not supposed to run on one. It shouldn't be too >>>>>>>>>>> difficult to get a port of the latest CM3 for Darwin on >>>>>>>>>>> Intel >>>>>>>>>>> processors; I even think somebody was already working on it, >>>>>>>>>>> but I don't really remember who, so I forward your mail to >>>>>>>>>>> the m3devel list, in case others have already started >>>>>>>>>>> such an >>>>>>>>>>> effort. >>>>>>>>>>> >>>>>>>>>>> Olaf >>>>>>>>>>> -- >>>>>>>>>>> elego Software Solutions GmbH >>>>>>>>>>> HRB 77719 >>>>>>>>>>> Olaf Wagner E-Mail: wagner(at) >>>>>>>>>>> elego.de >>>>>>>>>>> Ohmstra?e 9 Tel: +49 30 40 >>>>>>>>>>> 04 19 29 >>>>>>>>>>> 10179 Berlin Fax: +49 30 23 >>>>>>>>>>> 45 86 95 >>>>>>>>>>> Cranachstra?e 7 Tel: +49 30 85 >>>>>>>>>>> 58 01 81 >>>>>>>>>>> 12157 Berlin Fax: +49 30 85 >>>>>>>>>>> 58 01 88 >>>>>>>>>>> ------------------> WWW: http://www.elego-software- >>>>>>>>>>> solutions.com >>>>>>>>>>> _______________________________________________ >>>>>>>>>>> M3devel mailing list >>>>>>>>>>> M3devel at elegosoft.com >>>>>>>>>>> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> _______________________________________________ >>>>>>>> M3devel mailing list >>>>>>>> M3devel at elegosoft.com >>>>>>>> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel >>>>>>> >>>>>>> Antony Hosking | Associate Professor >>>>>>> Dept of Computer Sciences | Office: (765) 494-6001 >>>>>>> Purdue University | Mobile: (765) 427-5484 >>>>>>> 250 N. University Street | hosking at cs.purdue.edu >>>>>>> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/ >>>>>>> ~hosking >>>>>>> _--_|\ >>>>>>> / \ >>>>>>> \_.--._/ ) >>>>>>> v / >>>>>>> >>>>>>> >>>>> >>>> >>>> Antony Hosking | Associate Professor >>>> Dept of Computer Sciences | Office: (765) 494-6001 >>>> Purdue University | Mobile: (765) 427-5484 >>>> 250 N. University Street | hosking at cs.purdue.edu >>>> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking >>>> _--_|\ >>>> / \ >>>> \_.--._/ ) >>>> v / >>>> >>> >> >> Antony Hosking | Associate Professor >> Dept of Computer Sciences | Office: (765) 494-6001 >> Purdue University | Mobile: (765) 427-5484 >> 250 N. University Street | hosking at cs.purdue.edu >> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking >> _--_|\ >> / \ >> \_.--._/ ) >> v / >> > Antony Hosking | Associate Professor Dept of Computer Sciences | Office: (765) 494-6001 Purdue University | Mobile: (765) 427-5484 250 N. University Street | hosking at cs.purdue.edu West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking _--_|\ / \ \_.--._/ ) v / From hosking at cs.purdue.edu Sun Jan 21 23:32:51 2007 From: hosking at cs.purdue.edu (Antony Hosking) Date: Sun, 21 Jan 2007 17:32:51 -0500 Subject: [M3devel] Re: porting m3 on intel mac In-Reply-To: References: <8A58B35B-22CD-42D5-BA19-5FBF5D3CF5CD@dsi.unive.it> <20070120164128.GA27790@elegosoft.com> <52EA8FC9-4E33-40FF-B041-5CEAE83BBDE7@darko.org> <6307E3CC-8E5F-4317-8A8E-7EADE20FEE54@darko.org> <1521F74A-AF0F-48C4-B0AA-4E7DB321DA62@cs.purdue.edu> <23B90155-784C-4A47-8EAD-1451AEC4C1B9@darko.org> <69645CDA-E215-4B81-BAEE-C45EC496E4C6@dsi.unive.it> <5C13EB47-D241-438A-BE6F-BBD30AF002A4@dsi.unive.it> <9125FF3E-5D5D-4DE0-95DC-DCD997D198C1@cs.purdue.edu> <4206B526-A4CF-430B-AE8C-086D27615A79@dsi.unive.it> <722DDD36-2973-44B2-91BF-8487DA744D6C@cs.purdue.edu> Message-ID: <6607A270-8264-4419-AAF2-323833523695@cs.purdue.edu> On 21/01/2007, at 5:06 PM, Renzo Orsini wrote: > > On Jan 21, 2007, at 22:57, Antony Hosking wrote: > >> For some reason your .stabs entries are different than mine, but >> otherwise the assembler files are the same. Are you using the >> cm3cg and cm3.cfg from my ftp site? > > Yes, downloaded a few hours ago. > > >> Here is the version of the assembler that I have on my Intel Mac: >> >> Apple Computer, Inc. version cctools-590.42.1.obj~1, GNU assembler >> version 1.38 > > The mine is: > > Apple Computer, Inc. version cctools-622.5.obj~13, GNU assembler > version 1.38 > (If it useful, my Xcode is 2.4.1, with Xcode IDE: 762.0, Xcode > Core: 762.0, ToolSupport: 764.0, [From About XCode menu]) > Hmmm -- different versions of the assembler. Probably some flag needs adjusting. > > >> >> With respect to zeus, can you build with -verbose in the zeus >> directory and send me the output? Sounds like one of the tools is >> not getting built properly. >> > > Ok, I am sending it as attachment > > > Sorry, wrong option. Please run with -commands. I suspect stubgen is failing for you. > Renzo > > >> On 21/01/2007, at 4:47 PM, Renzo Orsini wrote: >> >>> You can find in the attachment the program and the compilation. >>> >>> Renzo >>> >>> >>> >>> On Jan 21, 2007, at 22:34, Antony Hosking wrote: >>> >>>> >>>> On 21/01/2007, at 4:27 PM, Renzo Orsini wrote: >>>> >>>>> On Jan 21, 2007, at 21:49, Antony Hosking wrote: >>>>> >>>>>> >>>>>> On 21/01/2007, at 7:59 AM, Renzo Orsini wrote: >>>>>> >>>>>>> Hello and lot of thanks! >>>>>>> >>>>>>> Everything is working really fine! >>>>>>> The configuration: MacBookPro, MacOSX 10.4.8, XCode 2.4.1 >>>>>>> (gcc 4.0.1), X11 installed, latest cm3 sources (with >>>>>>> anonymous CVS), >>>>>>> The process: >>>>>>> 1. unpacked cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz >>>>>>> 2. installed as super-user (every answer left as default, the >>>>>>> only problem is the fact that motif is missing, ignoring) >>>>>>> 3. replacing cm3, cm3.cfg, cm3cg from ftp://ftp.cs.purdue.edu/ >>>>>>> pub/hosking/m3/I386_DARWIN >>>>>>> 3. running as su: >>>>>>> do-cm3-core.sh buildship >>>>>>> install-cm3-compiler.sh upgrade >>>>>>> do-cm3-std.sh buildship >>>>>>> everything is ok a part from producing about a zillion of >>>>>>> assembler (?) warnings ("xxx.ms:nnn:indirect jmp without `*'), >>>>>>> and failing at the end the compilation of package zeus (which >>>>>>> I suppose is an old issue) >>>>>> >>>>>> That's odd since my builds go through cleanly. >>>>> >>>>> This is an example of the strange "indirect jump" message: >>>>> >>>>> pborsini:~/ProveModula3 orsini$ cat Main.m3 >>>>> MODULE Main; IMPORT IO; BEGIN IO.Put("Hello World\n"); END Main. >>>>> pborsini:~/ProveModula3 orsini$ cm3 >>>>> --- building in I386_DARWIN --- >>>>> new source -> compiling Main.m3 >>>>> Main.ms:101:indirect jmp without `*' >>>>> -> linking prog >>>>> _m3main.ms:74:indirect jmp without `*' >>>>> _m3main.ms:89:indirect jmp without `*' >>>>> _m3main.ms:108:indirect jmp without `*' >>>>> pborsini:~/ProveModula3 orsini$ ./I386_DARWIN/prog >>>>> Hello World >>>>> >>>>> maybe there is some problem with the linker parameters, however >>>>> the progrum runs ok. >>>> >>>> Can you compile with "-keep" and send me the relevant .ms file? >>>> I can compare with mine. >>>> >>>>> >>>>> For what concerns zeus: the following is the output of cm3: >>>>> >>>>> === package /Users/orsini/modula3/cvsstuff/cm3/m3-ui/zeus === >>>>> +++ cm3 -build -override -DROOT='/Users/orsini/modula3/cvsstuff/ >>>>> cm3' +++ >>>>> --- building in I386_DARWIN --- >>>>> >>>>> new source -> compiling RemoteView_T_v1.i3 >>>>> "../I386_DARWIN/RemoteView_T_v1.i3", line 1: syntax error: >>>>> missing INTERFACE or MODULE keyword >>>>> "../I386_DARWIN/RemoteView_T_v1.i3", line 1: unable to find >>>>> interface () >>>>> "../I386_DARWIN/RemoteView_T_v1.i3", line 1: warning: file name >>>>> (RemoteView_T_v1.i3) doesn't match module name () >>>>> 2 errors and 1 warning encountered >>>>> new source -> compiling RemoteView_T_v1.m3 >>>>> "../I386_DARWIN/RemoteView_T_v1.m3", line 1: syntax error: >>>>> missing INTERFACE or MODULE keyword >>>>> "../I386_DARWIN/RemoteView_T_v1.m3", line 1: unable to find >>>>> interface () >>>>> "../I386_DARWIN/RemoteView_T_v1.m3", line 1: warning: file name >>>>> (RemoteView_T_v1.m3) doesn't match module name () >>>>> 2 errors and 1 warning encountered >>>>> compilation failed => not building library "libm3zeus.a" >>>>> Fatal Error: package build failed >>>>> *** execution of failed *** >>>>> >>>>> (and the files RemoteView_T_v1.i3 and RemoteView_T_v1.m3 are >>>>> empty in I386_DARWIN, and they do not exists in src) >>>>> >>>>> Several other packages cannot be compiled, like many obliq >>>>> ones, webvt, June and mentor. >>>>> >>>>> However the compiler seems to work for compiling my stuff, >>>>> altough I have to make a few corrections and debugging. >>>> >>>> This sounds problematic since it implies that the generators for >>>> those files are not working correctly. (If you run with "- >>>> commands" you'll see which generator programs are being used. >>>> >>>>> >>>>> Thanks, >>>>> >>>>> Renzo >>>>> >>>>>> >>>>>>> >>>>>>> So, thank again to all and each of you, I am now very happy >>>>>>> and busy by bringing our old modula-3 software to the new >>>>>>> century! >>>>>>> >>>>>>> Cordially, >>>>>>> >>>>>>> Renzo Orsini >>>>>>> >>>>>>> On Jan 21, 2007, at 0:33, Darko wrote: >>>>>>> >>>>>>>> The latest, 10.4.8, also the latest XCode, which I think >>>>>>>> updates gcc. You were addressing me weren't you? But Renzo >>>>>>>> might like to answer that question too. XCode weighs in at >>>>>>>> about 1G, by the way. >>>>>>>> >>>>>>>> On 21/01/2007, at 7:58 AM, Antony Hosking wrote: >>>>>>>> >>>>>>>>> What version of OSX are you using? >>>>>>>>> >>>>>>>>> On 20/01/2007, at 5:49 PM, Darko wrote: >>>>>>>>> >>>>>>>>>> No worries. I'm not familiar at all with those scripts. >>>>>>>>>> The problem you are having may be to do with not having >>>>>>>>>> the latest source, but it most probably has to do with the >>>>>>>>>> version of gcc that is active on your machine. C files are >>>>>>>>>> not compiled by cm3 but rather call gcc directly. I can't >>>>>>>>>> remember which version of gcc is the correct one, but mine >>>>>>>>>> currently is i686-apple-darwin8-gcc-4.0.1; also I can't >>>>>>>>>> remember the command line for changing gcc versions. Tony >>>>>>>>>> may be able to help re the correct version if 4.0.1 >>>>>>>>>> doesn't work. You may need to install the latest XCode >>>>>>>>>> from http://developer.apple.com if you don't have 4.01. >>>>>>>>>> >>>>>>>>>> I've cc'd the list because they're actually very helpful >>>>>>>>>> and my knowledge is limited... >>>>>>>>>> >>>>>>>>>> - Darko >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On 21/01/2007, at 6:58 AM, Renzo Orsini wrote: >>>>>>>>>> >>>>>>>>>>> First of all, thank you very much for your immediate help! >>>>>>>>>>> >>>>>>>>>>> I downloaded the files and replaced the corresponding / >>>>>>>>>>> usr/local/cm3/bin files, >>>>>>>>>>> modified cm3.cfg by replacing INSTALL_ROOT = "/usr/local/ >>>>>>>>>>> cm3-i386/" with INSTALL_ROOT = "/usr/local/cm3/" >>>>>>>>>>> then in the full source (last version, 5.4.0) I did: >>>>>>>>>>> scripts/do-cm3-core.sh buildship >>>>>>>>>>> this is the result: >>>>>>>>>>> >>>>>>>>>>> root#./do-cm3-core.sh buildship >>>>>>>>>>> CM3C = >>>>>>>>>>> /Users/orsini/cm3/cm3-src-all-5.4.0/scripts/pkgmap.sh -c >>>>>>>>>>> "cm3 -build -DROOT='/Users/orsini/cm3/cm3-src- >>>>>>>>>>> all-5.4.0' && cm3 -ship -DROOT='/Users/orsini/cm3/cm3- >>>>>>>>>>> src-all-5.4.0' " m3gc-simple m3core libm3 patternmatching >>>>>>>>>>> m3middle m3linker m3front m3quake m3cc cm3 m3scanner >>>>>>>>>>> m3tools m3cgcat m3cggen m3bundle bitvector digraph >>>>>>>>>>> parseparams realgeometry set slisp sortedtableextras >>>>>>>>>>> table-list tempfiles >>>>>>>>>>> === package /Users/orsini/cm3/cm3-src-all-5.4.0/m3-libs/ >>>>>>>>>>> m3gc-simple === >>>>>>>>>>> +++ cm3 -build -DROOT='/Users/orsini/cm3/cm3-src- >>>>>>>>>>> all-5.4.0' && cm3 -ship -DROOT='/Users/orsini/cm3/cm3- >>>>>>>>>>> src-all-5.4.0' +++ >>>>>>>>>>> --- building in I386_DARWIN --- >>>>>>>>>>> >>>>>>>>>>> new source -> compiling RTVM.c >>>>>>>>>>> new source -> compiling sysdeps.c >>>>>>>>>>> new source -> compiling accept.c >>>>>>>>>>> ../src/runtime/I386_DARWIN/accept.c: In function >>>>>>>>>>> 'm3_accept': >>>>>>>>>>> ../src/runtime/I386_DARWIN/accept.c:13: warning: pointer >>>>>>>>>>> targets in passing argument 3 of 'accept' differ in >>>>>>>>>>> signedness >>>>>>>>>>> new source -> compiling bind.c >>>>>>>>>>> new source -> compiling close.c >>>>>>>>>>> new source -> compiling connect.c >>>>>>>>>>> new source -> compiling dup.c >>>>>>>>>>> new source -> compiling dup2.c >>>>>>>>>>> new source -> compiling gethostbyaddr.c >>>>>>>>>>> new source -> compiling gethostbyname.c >>>>>>>>>>> new source -> compiling getpeername.c >>>>>>>>>>> ../src/runtime/I386_DARWIN/getpeername.c: In function >>>>>>>>>>> 'm3_getpeername': >>>>>>>>>>> ../src/runtime/I386_DARWIN/getpeername.c:13: warning: >>>>>>>>>>> pointer targets in passing argument 3 of 'getpeername' >>>>>>>>>>> differ in signedness >>>>>>>>>>> new source -> compiling getsockname.c >>>>>>>>>>> ../src/runtime/I386_DARWIN/getsockname.c: In function >>>>>>>>>>> 'm3_getsockname': >>>>>>>>>>> ../src/runtime/I386_DARWIN/getsockname.c:13: warning: >>>>>>>>>>> pointer targets in passing argument 3 of 'getsockname' >>>>>>>>>>> differ in signedness >>>>>>>>>>> new source -> compiling listen.c >>>>>>>>>>> new source -> compiling read.c >>>>>>>>>>> new source -> compiling recv.c >>>>>>>>>>> new source -> compiling recvfrom.c >>>>>>>>>>> ../src/runtime/I386_DARWIN/recvfrom.c: In function >>>>>>>>>>> 'm3_recvfrom': >>>>>>>>>>> ../src/runtime/I386_DARWIN/recvfrom.c:15: warning: >>>>>>>>>>> pointer targets in passing argument 6 of 'recvfrom' >>>>>>>>>>> differ in signedness >>>>>>>>>>> new source -> compiling select.c >>>>>>>>>>> new source -> compiling send.c >>>>>>>>>>> new source -> compiling sendto.c >>>>>>>>>>> new source -> compiling shutdown.c >>>>>>>>>>> new source -> compiling socket.c >>>>>>>>>>> new source -> compiling write.c >>>>>>>>>>> -> archiving libm3gcdefs.a >>>>>>>>>>> ld: common symbols not allowed with MH_DYLIB output >>>>>>>>>>> format with the -multi_module option >>>>>>>>>>> sysdeps.o definition of common _RTCSRC_FinishVM (size 16) >>>>>>>>>>> sysdeps.o definition of common _RTHeapRep_Fault (size 16) >>>>>>>>>>> /usr/bin/libtool: internal link edit command failed >>>>>>>>>>> --- shipping from I386_DARWIN --- >>>>>>>>>>> >>>>>>>>>>> . => /usr/local/cm3/pkg/m3gc-simple/I386_DARWIN >>>>>>>>>>> .M3EXPORTS libm3gcdefs.5.2.dylib"/Users/orsini/ >>>>>>>>>>> cm3/cm3-src-all-5.4.0/m3-libs/m3gc-simple/ >>>>>>>>>>> I386_DARWIN/.M3SHIP", line 3: quake runtime error: unable >>>>>>>>>>> to copy "libm3gcdefs.5.2.dylib" to "/usr/local/cm3/pkg/ >>>>>>>>>>> m3gc-simple/I386_DARWIN/libm3gcdefs.5.2.dylib": errno=2 >>>>>>>>>>> >>>>>>>>>>> --procedure-- -line- -file--- >>>>>>>>>>> install_file -- >>>>>>>>>>> 3 /Users/orsini/cm3/cm3-src- >>>>>>>>>>> all-5.4.0/m3-libs/m3gc-simple/I386_DARWIN/.M3SHIP >>>>>>>>>>> >>>>>>>>>>> Fatal Error: package build failed >>>>>>>>>>> *** execution of failed *** >>>>>>>>>>> >>>>>>>>>>> ====== >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> I noticed that not all the .c files in .../m3-libs/m3gc- >>>>>>>>>>> simple/src/runtime/I386_DARWIN/ where compiled, but I do >>>>>>>>>>> not know if this is a normal behaviour. >>>>>>>>>>> >>>>>>>>>>> Thanks in advance for your time and patience! >>>>>>>>>>> >>>>>>>>>>> Cordially >>>>>>>>>>> >>>>>>>>>>> Renzo Orsini >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> On Jan 20, 2007, at 19:02, Darko wrote: >>>>>>>>>>> >>>>>>>>>>>> Have a look here: ftp://ftp.cs.purdue.edu/pub/hosking/m3/ >>>>>>>>>>>> I386_DARWIN/ >>>>>>>>>>>> >>>>>>>>>>>> There you'll find the bits you need for Mac Intel. >>>>>>>>>>>> Replace your existing cm3, cmcg and cm3.cfg with the >>>>>>>>>>>> ones there, then you can compile the basic libraries you >>>>>>>>>>>> need like m3core and libm3, but make sure you have the >>>>>>>>>>>> latest sources. >>>>>>>>>>>> >>>>>>>>>>>> I think they're the latest but Tony may have something >>>>>>>>>>>> more to say about that. >>>>>>>>>>>> >>>>>>>>>>>> Darko. >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> On 21/01/2007, at 1:41 AM, Olaf Wagner wrote: >>>>>>>>>>>> >>>>>>>>>>>>> On Sat, Jan 20, 2007 at 03:05:55PM +0100, Renzo Orsini >>>>>>>>>>>>> wrote: >>>>>>>>>>>>>> Hello, >>>>>>>>>>>>>> >>>>>>>>>>>>>> I installed cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz on an >>>>>>>>>>>>>> intel mac, then >>>>>>>>>>>>>> tried to a compile a Hello world program, but the >>>>>>>>>>>>>> compilation failed >>>>>>>>>>>>>> with the following message: >>>>>>>>>>>>>> >>>>>>>>>>>>>> pborsini:~/ProveModula3 orsini$ cm3 >>>>>>>>>>>>>> --- building in PPC_DARWIN --- >>>>>>>>>>>>>> >>>>>>>>>>>>>> new source -> compiling Main.m3 >>>>>>>>>>>>>> "../Main.m3", line 4: warning: potentially unhandled >>>>>>>>>>>>>> exception: IO.Error >>>>>>>>>>>>>> 1 warning encountered >>>>>>>>>>>>>> Main.ms:12:no such instruction: `mflr r0' >>>>>>>>>>>>>> Main.ms:13:no such instruction: `stmw r30,-8(r1)' >>>>>>>>>>>>>> Main.ms:14:no such instruction: `stw r0,8(r1)' >>>>>>>>>>>>>> Main.ms:15:no such instruction: `stwu r1,-96(r1)' >>>>>>>>>>>>>> Main.ms:16:no such instruction: `mr r30,r1' >>>>>>>>>>>>>> Main.ms:17:no such instruction: `bcl >>>>>>>>>>>>>> 20,31,"L00000000001$pb"' >>>>>>>>>>>>>> ... >>>>>>>>>>>>>> .... >>>>>>>>>>>>>> >>>>>>>>>>>>>> So I suppose there is PPC code to assemble and the >>>>>>>>>>>>>> Rosetta emulator >>>>>>>>>>>>>> for PPC on intel macs cannot do anything for this! >>>>>>>>>>>>>> >>>>>>>>>>>>>> Since I would like to port the Fibonacci language for >>>>>>>>>>>>>> databases, >>>>>>>>>>>>>> which is written in Modula-3, if I understand well the >>>>>>>>>>>>>> situation I >>>>>>>>>>>>>> should port the Modula-3 compiler by cross compiling >>>>>>>>>>>>>> it on a PPC mac, >>>>>>>>>>>>>> or something like that. >>>>>>>>>>>>>> >>>>>>>>>>>>>> I am asking you if you know about some effort of >>>>>>>>>>>>>> porting Modula-3 on >>>>>>>>>>>>>> intel macs, or at least if you let me know if this >>>>>>>>>>>>>> operation is >>>>>>>>>>>>>> possible (and also reasonably feasible in terms of >>>>>>>>>>>>>> time and >>>>>>>>>>>>>> expertise, given my teaching duties and my >>>>>>>>>>>>>> difficulties with >>>>>>>>>>>>>> assembler languages!), and, if so, if you can point me >>>>>>>>>>>>>> to the correct >>>>>>>>>>>>>> documentation to start with. Of course I will be very >>>>>>>>>>>>>> glad to give >>>>>>>>>>>>>> back to the community the result if I succeed! >>>>>>>>>>>>>> >>>>>>>>>>>>>> Thank you very much for your attention. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Cordially >>>>>>>>>>>>>> >>>>>>>>>>>>>> Renzo Orsini >>>>>>>>>>>>>> Associate Professor >>>>>>>>>>>>>> Dipartimento di Informatica >>>>>>>>>>>>>> Universita' Ca' Foscari di Venezia >>>>>>>>>>>>> >>>>>>>>>>>>> Well, I wouldn't have thought that you were even able >>>>>>>>>>>>> to install >>>>>>>>>>>>> the cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz system on an >>>>>>>>>>>>> Intel machine; >>>>>>>>>>>>> it's surely not supposed to run on one. It shouldn't be >>>>>>>>>>>>> too >>>>>>>>>>>>> difficult to get a port of the latest CM3 for Darwin on >>>>>>>>>>>>> Intel >>>>>>>>>>>>> processors; I even think somebody was already working >>>>>>>>>>>>> on it, >>>>>>>>>>>>> but I don't really remember who, so I forward your mail to >>>>>>>>>>>>> the m3devel list, in case others have already started >>>>>>>>>>>>> such an >>>>>>>>>>>>> effort. >>>>>>>>>>>>> >>>>>>>>>>>>> Olaf >>>>>>>>>>>>> -- >>>>>>>>>>>>> elego Software Solutions GmbH >>>>>>>>>>>>> HRB 77719 >>>>>>>>>>>>> Olaf Wagner E-Mail: wagner >>>>>>>>>>>>> (at)elego.de >>>>>>>>>>>>> Ohmstra?e 9 Tel: +49 30 >>>>>>>>>>>>> 40 04 19 29 >>>>>>>>>>>>> 10179 Berlin Fax: +49 30 >>>>>>>>>>>>> 23 45 86 95 >>>>>>>>>>>>> Cranachstra?e 7 Tel: +49 30 >>>>>>>>>>>>> 85 58 01 81 >>>>>>>>>>>>> 12157 Berlin Fax: +49 30 >>>>>>>>>>>>> 85 58 01 88 >>>>>>>>>>>>> ------------------> WWW: http://www.elego-software- >>>>>>>>>>>>> solutions.com >>>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>>> M3devel mailing list >>>>>>>>>>>>> M3devel at elegosoft.com >>>>>>>>>>>>> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/ >>>>>>>>>>>>> m3devel >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> _______________________________________________ >>>>>>>>>> M3devel mailing list >>>>>>>>>> M3devel at elegosoft.com >>>>>>>>>> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel >>>>>>>>> >>>>>>>>> Antony Hosking | Associate Professor >>>>>>>>> Dept of Computer Sciences | Office: (765) 494-6001 >>>>>>>>> Purdue University | Mobile: (765) 427-5484 >>>>>>>>> 250 N. University Street | hosking at cs.purdue.edu >>>>>>>>> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/ >>>>>>>>> ~hosking >>>>>>>>> _--_|\ >>>>>>>>> / \ >>>>>>>>> \_.--._/ ) >>>>>>>>> v / >>>>>>>>> >>>>>>>>> >>>>>>> >>>>>> >>>>>> Antony Hosking | Associate Professor >>>>>> Dept of Computer Sciences | Office: (765) 494-6001 >>>>>> Purdue University | Mobile: (765) 427-5484 >>>>>> 250 N. University Street | hosking at cs.purdue.edu >>>>>> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking >>>>>> _--_|\ >>>>>> / \ >>>>>> \_.--._/ ) >>>>>> v / >>>>>> >>>>> >>>> >>>> Antony Hosking | Associate Professor >>>> Dept of Computer Sciences | Office: (765) 494-6001 >>>> Purdue University | Mobile: (765) 427-5484 >>>> 250 N. University Street | hosking at cs.purdue.edu >>>> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking >>>> _--_|\ >>>> / \ >>>> \_.--._/ ) >>>> v / >>>> >>> >> >> Antony Hosking | Associate Professor >> Dept of Computer Sciences | Office: (765) 494-6001 >> Purdue University | Mobile: (765) 427-5484 >> 250 N. University Street | hosking at cs.purdue.edu >> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking >> _--_|\ >> / \ >> \_.--._/ ) >> v / >> > Antony Hosking | Associate Professor Dept of Computer Sciences | Office: (765) 494-6001 Purdue University | Mobile: (765) 427-5484 250 N. University Street | hosking at cs.purdue.edu West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking _--_|\ / \ \_.--._/ ) v / From hosking at cs.purdue.edu Sun Jan 21 23:40:34 2007 From: hosking at cs.purdue.edu (Antony Hosking) Date: Sun, 21 Jan 2007 17:40:34 -0500 Subject: [M3devel] Re: porting m3 on intel mac In-Reply-To: <6607A270-8264-4419-AAF2-323833523695@cs.purdue.edu> References: <8A58B35B-22CD-42D5-BA19-5FBF5D3CF5CD@dsi.unive.it> <20070120164128.GA27790@elegosoft.com> <52EA8FC9-4E33-40FF-B041-5CEAE83BBDE7@darko.org> <6307E3CC-8E5F-4317-8A8E-7EADE20FEE54@darko.org> <1521F74A-AF0F-48C4-B0AA-4E7DB321DA62@cs.purdue.edu> <23B90155-784C-4A47-8EAD-1451AEC4C1B9@darko.org> <69645CDA-E215-4B81-BAEE-C45EC496E4C6@dsi.unive.it> <5C13EB47-D241-438A-BE6F-BBD30AF002A4@dsi.unive.it> <9125FF3E-5D5D-4DE0-95DC-DCD997D198C1@cs.purdue.edu> <4206B526-A4CF-430B-AE8C-086D27615A79@dsi.unive.it> <722DDD36-2973-44B2-91BF-8487DA744D6C@cs.purdue.edu> <6607A270-8264-4419-AAF2-323833523695@cs.purdue.edu> Message-ID: <70415358-BF8A-45E8-9CA8-89DBDDA24148@cs.purdue.edu> PS: It looks like there are issues with the XCode 2.4.x assembler: http://www.mail-archive.com/fink-devel at lists.sourceforge.net/ msg14326.html Let me see what else I can dig up. On 21/01/2007, at 5:32 PM, Antony Hosking wrote: > On 21/01/2007, at 5:06 PM, Renzo Orsini wrote: > >> >> On Jan 21, 2007, at 22:57, Antony Hosking wrote: >> >>> For some reason your .stabs entries are different than mine, but >>> otherwise the assembler files are the same. Are you using the >>> cm3cg and cm3.cfg from my ftp site? >> >> Yes, downloaded a few hours ago. >> >> >>> Here is the version of the assembler that I have on my Intel Mac: >>> >>> Apple Computer, Inc. version cctools-590.42.1.obj~1, GNU >>> assembler version 1.38 >> >> The mine is: >> >> Apple Computer, Inc. version cctools-622.5.obj~13, GNU assembler >> version 1.38 >> (If it useful, my Xcode is 2.4.1, with Xcode IDE: 762.0, Xcode >> Core: 762.0, ToolSupport: 764.0, [From About XCode menu]) >> > > Hmmm -- different versions of the assembler. Probably some flag > needs adjusting. > >> >> >>> >>> With respect to zeus, can you build with -verbose in the zeus >>> directory and send me the output? Sounds like one of the tools >>> is not getting built properly. >>> >> >> Ok, I am sending it as attachment >> >> >> > > Sorry, wrong option. Please run with -commands. I suspect stubgen > is failing for you. > > >> Renzo >> >> >>> On 21/01/2007, at 4:47 PM, Renzo Orsini wrote: >>> >>>> You can find in the attachment the program and the compilation. >>>> >>>> Renzo >>>> >>>> >>>> >>>> On Jan 21, 2007, at 22:34, Antony Hosking wrote: >>>> >>>>> >>>>> On 21/01/2007, at 4:27 PM, Renzo Orsini wrote: >>>>> >>>>>> On Jan 21, 2007, at 21:49, Antony Hosking wrote: >>>>>> >>>>>>> >>>>>>> On 21/01/2007, at 7:59 AM, Renzo Orsini wrote: >>>>>>> >>>>>>>> Hello and lot of thanks! >>>>>>>> >>>>>>>> Everything is working really fine! >>>>>>>> The configuration: MacBookPro, MacOSX 10.4.8, XCode 2.4.1 >>>>>>>> (gcc 4.0.1), X11 installed, latest cm3 sources (with >>>>>>>> anonymous CVS), >>>>>>>> The process: >>>>>>>> 1. unpacked cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz >>>>>>>> 2. installed as super-user (every answer left as default, >>>>>>>> the only problem is the fact that motif is missing, ignoring) >>>>>>>> 3. replacing cm3, cm3.cfg, cm3cg from ftp:// >>>>>>>> ftp.cs.purdue.edu/pub/hosking/m3/I386_DARWIN >>>>>>>> 3. running as su: >>>>>>>> do-cm3-core.sh buildship >>>>>>>> install-cm3-compiler.sh upgrade >>>>>>>> do-cm3-std.sh buildship >>>>>>>> everything is ok a part from producing about a zillion of >>>>>>>> assembler (?) warnings ("xxx.ms:nnn:indirect jmp without `*'), >>>>>>>> and failing at the end the compilation of package zeus >>>>>>>> (which I suppose is an old issue) >>>>>>> >>>>>>> That's odd since my builds go through cleanly. >>>>>> >>>>>> This is an example of the strange "indirect jump" message: >>>>>> >>>>>> pborsini:~/ProveModula3 orsini$ cat Main.m3 >>>>>> MODULE Main; IMPORT IO; BEGIN IO.Put("Hello World\n"); END Main. >>>>>> pborsini:~/ProveModula3 orsini$ cm3 >>>>>> --- building in I386_DARWIN --- >>>>>> new source -> compiling Main.m3 >>>>>> Main.ms:101:indirect jmp without `*' >>>>>> -> linking prog >>>>>> _m3main.ms:74:indirect jmp without `*' >>>>>> _m3main.ms:89:indirect jmp without `*' >>>>>> _m3main.ms:108:indirect jmp without `*' >>>>>> pborsini:~/ProveModula3 orsini$ ./I386_DARWIN/prog >>>>>> Hello World >>>>>> >>>>>> maybe there is some problem with the linker parameters, >>>>>> however the progrum runs ok. >>>>> >>>>> Can you compile with "-keep" and send me the relevant .ms >>>>> file? I can compare with mine. >>>>> >>>>>> >>>>>> For what concerns zeus: the following is the output of cm3: >>>>>> >>>>>> === package /Users/orsini/modula3/cvsstuff/cm3/m3-ui/zeus === >>>>>> +++ cm3 -build -override -DROOT='/Users/orsini/modula3/ >>>>>> cvsstuff/cm3' +++ >>>>>> --- building in I386_DARWIN --- >>>>>> >>>>>> new source -> compiling RemoteView_T_v1.i3 >>>>>> "../I386_DARWIN/RemoteView_T_v1.i3", line 1: syntax error: >>>>>> missing INTERFACE or MODULE keyword >>>>>> "../I386_DARWIN/RemoteView_T_v1.i3", line 1: unable to find >>>>>> interface () >>>>>> "../I386_DARWIN/RemoteView_T_v1.i3", line 1: warning: file >>>>>> name (RemoteView_T_v1.i3) doesn't match module name (>>>>> id>) >>>>>> 2 errors and 1 warning encountered >>>>>> new source -> compiling RemoteView_T_v1.m3 >>>>>> "../I386_DARWIN/RemoteView_T_v1.m3", line 1: syntax error: >>>>>> missing INTERFACE or MODULE keyword >>>>>> "../I386_DARWIN/RemoteView_T_v1.m3", line 1: unable to find >>>>>> interface () >>>>>> "../I386_DARWIN/RemoteView_T_v1.m3", line 1: warning: file >>>>>> name (RemoteView_T_v1.m3) doesn't match module name (>>>>> id>) >>>>>> 2 errors and 1 warning encountered >>>>>> compilation failed => not building library "libm3zeus.a" >>>>>> Fatal Error: package build failed >>>>>> *** execution of failed *** >>>>>> >>>>>> (and the files RemoteView_T_v1.i3 and RemoteView_T_v1.m3 are >>>>>> empty in I386_DARWIN, and they do not exists in src) >>>>>> >>>>>> Several other packages cannot be compiled, like many obliq >>>>>> ones, webvt, June and mentor. >>>>>> >>>>>> However the compiler seems to work for compiling my stuff, >>>>>> altough I have to make a few corrections and debugging. >>>>> >>>>> This sounds problematic since it implies that the generators >>>>> for those files are not working correctly. (If you run with "- >>>>> commands" you'll see which generator programs are being used. >>>>> >>>>>> >>>>>> Thanks, >>>>>> >>>>>> Renzo >>>>>> >>>>>>> >>>>>>>> >>>>>>>> So, thank again to all and each of you, I am now very happy >>>>>>>> and busy by bringing our old modula-3 software to the new >>>>>>>> century! >>>>>>>> >>>>>>>> Cordially, >>>>>>>> >>>>>>>> Renzo Orsini >>>>>>>> >>>>>>>> On Jan 21, 2007, at 0:33, Darko wrote: >>>>>>>> >>>>>>>>> The latest, 10.4.8, also the latest XCode, which I think >>>>>>>>> updates gcc. You were addressing me weren't you? But Renzo >>>>>>>>> might like to answer that question too. XCode weighs in at >>>>>>>>> about 1G, by the way. >>>>>>>>> >>>>>>>>> On 21/01/2007, at 7:58 AM, Antony Hosking wrote: >>>>>>>>> >>>>>>>>>> What version of OSX are you using? >>>>>>>>>> >>>>>>>>>> On 20/01/2007, at 5:49 PM, Darko wrote: >>>>>>>>>> >>>>>>>>>>> No worries. I'm not familiar at all with those scripts. >>>>>>>>>>> The problem you are having may be to do with not having >>>>>>>>>>> the latest source, but it most probably has to do with >>>>>>>>>>> the version of gcc that is active on your machine. C >>>>>>>>>>> files are not compiled by cm3 but rather call gcc >>>>>>>>>>> directly. I can't remember which version of gcc is the >>>>>>>>>>> correct one, but mine currently is i686-apple-darwin8- >>>>>>>>>>> gcc-4.0.1; also I can't remember the command line for >>>>>>>>>>> changing gcc versions. Tony may be able to help re the >>>>>>>>>>> correct version if 4.0.1 doesn't work. You may need to >>>>>>>>>>> install the latest XCode from http://developer.apple.com >>>>>>>>>>> if you don't have 4.01. >>>>>>>>>>> >>>>>>>>>>> I've cc'd the list because they're actually very helpful >>>>>>>>>>> and my knowledge is limited... >>>>>>>>>>> >>>>>>>>>>> - Darko >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> On 21/01/2007, at 6:58 AM, Renzo Orsini wrote: >>>>>>>>>>> >>>>>>>>>>>> First of all, thank you very much for your immediate help! >>>>>>>>>>>> >>>>>>>>>>>> I downloaded the files and replaced the corresponding / >>>>>>>>>>>> usr/local/cm3/bin files, >>>>>>>>>>>> modified cm3.cfg by replacing INSTALL_ROOT = "/usr/local/ >>>>>>>>>>>> cm3-i386/" with INSTALL_ROOT = "/usr/local/cm3/" >>>>>>>>>>>> then in the full source (last version, 5.4.0) I did: >>>>>>>>>>>> scripts/do-cm3-core.sh buildship >>>>>>>>>>>> this is the result: >>>>>>>>>>>> >>>>>>>>>>>> root#./do-cm3-core.sh buildship >>>>>>>>>>>> CM3C = >>>>>>>>>>>> /Users/orsini/cm3/cm3-src-all-5.4.0/scripts/pkgmap.sh -c >>>>>>>>>>>> "cm3 -build -DROOT='/Users/orsini/cm3/cm3-src- >>>>>>>>>>>> all-5.4.0' && cm3 -ship -DROOT='/Users/orsini/cm3/cm3- >>>>>>>>>>>> src-all-5.4.0' " m3gc-simple m3core libm3 >>>>>>>>>>>> patternmatching m3middle m3linker m3front m3quake m3cc >>>>>>>>>>>> cm3 m3scanner m3tools m3cgcat m3cggen m3bundle bitvector >>>>>>>>>>>> digraph parseparams realgeometry set slisp >>>>>>>>>>>> sortedtableextras table-list tempfiles >>>>>>>>>>>> === package /Users/orsini/cm3/cm3-src-all-5.4.0/m3-libs/ >>>>>>>>>>>> m3gc-simple === >>>>>>>>>>>> +++ cm3 -build -DROOT='/Users/orsini/cm3/cm3-src- >>>>>>>>>>>> all-5.4.0' && cm3 -ship -DROOT='/Users/orsini/cm3/cm3- >>>>>>>>>>>> src-all-5.4.0' +++ >>>>>>>>>>>> --- building in I386_DARWIN --- >>>>>>>>>>>> >>>>>>>>>>>> new source -> compiling RTVM.c >>>>>>>>>>>> new source -> compiling sysdeps.c >>>>>>>>>>>> new source -> compiling accept.c >>>>>>>>>>>> ../src/runtime/I386_DARWIN/accept.c: In function >>>>>>>>>>>> 'm3_accept': >>>>>>>>>>>> ../src/runtime/I386_DARWIN/accept.c:13: warning: pointer >>>>>>>>>>>> targets in passing argument 3 of 'accept' differ in >>>>>>>>>>>> signedness >>>>>>>>>>>> new source -> compiling bind.c >>>>>>>>>>>> new source -> compiling close.c >>>>>>>>>>>> new source -> compiling connect.c >>>>>>>>>>>> new source -> compiling dup.c >>>>>>>>>>>> new source -> compiling dup2.c >>>>>>>>>>>> new source -> compiling gethostbyaddr.c >>>>>>>>>>>> new source -> compiling gethostbyname.c >>>>>>>>>>>> new source -> compiling getpeername.c >>>>>>>>>>>> ../src/runtime/I386_DARWIN/getpeername.c: In function >>>>>>>>>>>> 'm3_getpeername': >>>>>>>>>>>> ../src/runtime/I386_DARWIN/getpeername.c:13: warning: >>>>>>>>>>>> pointer targets in passing argument 3 of 'getpeername' >>>>>>>>>>>> differ in signedness >>>>>>>>>>>> new source -> compiling getsockname.c >>>>>>>>>>>> ../src/runtime/I386_DARWIN/getsockname.c: In function >>>>>>>>>>>> 'm3_getsockname': >>>>>>>>>>>> ../src/runtime/I386_DARWIN/getsockname.c:13: warning: >>>>>>>>>>>> pointer targets in passing argument 3 of 'getsockname' >>>>>>>>>>>> differ in signedness >>>>>>>>>>>> new source -> compiling listen.c >>>>>>>>>>>> new source -> compiling read.c >>>>>>>>>>>> new source -> compiling recv.c >>>>>>>>>>>> new source -> compiling recvfrom.c >>>>>>>>>>>> ../src/runtime/I386_DARWIN/recvfrom.c: In function >>>>>>>>>>>> 'm3_recvfrom': >>>>>>>>>>>> ../src/runtime/I386_DARWIN/recvfrom.c:15: warning: >>>>>>>>>>>> pointer targets in passing argument 6 of 'recvfrom' >>>>>>>>>>>> differ in signedness >>>>>>>>>>>> new source -> compiling select.c >>>>>>>>>>>> new source -> compiling send.c >>>>>>>>>>>> new source -> compiling sendto.c >>>>>>>>>>>> new source -> compiling shutdown.c >>>>>>>>>>>> new source -> compiling socket.c >>>>>>>>>>>> new source -> compiling write.c >>>>>>>>>>>> -> archiving libm3gcdefs.a >>>>>>>>>>>> ld: common symbols not allowed with MH_DYLIB output >>>>>>>>>>>> format with the -multi_module option >>>>>>>>>>>> sysdeps.o definition of common _RTCSRC_FinishVM (size 16) >>>>>>>>>>>> sysdeps.o definition of common _RTHeapRep_Fault (size 16) >>>>>>>>>>>> /usr/bin/libtool: internal link edit command failed >>>>>>>>>>>> --- shipping from I386_DARWIN --- >>>>>>>>>>>> >>>>>>>>>>>> . => /usr/local/cm3/pkg/m3gc-simple/I386_DARWIN >>>>>>>>>>>> .M3EXPORTS libm3gcdefs.5.2.dylib"/Users/orsini/ >>>>>>>>>>>> cm3/cm3-src-all-5.4.0/m3-libs/m3gc-simple/ >>>>>>>>>>>> I386_DARWIN/.M3SHIP", line 3: quake runtime error: >>>>>>>>>>>> unable to copy "libm3gcdefs.5.2.dylib" to "/usr/local/ >>>>>>>>>>>> cm3/pkg/m3gc-simple/I386_DARWIN/libm3gcdefs.5.2.dylib": >>>>>>>>>>>> errno=2 >>>>>>>>>>>> >>>>>>>>>>>> --procedure-- -line- -file--- >>>>>>>>>>>> install_file -- >>>>>>>>>>>> 3 /Users/orsini/cm3/cm3-src- >>>>>>>>>>>> all-5.4.0/m3-libs/m3gc-simple/I386_DARWIN/.M3SHIP >>>>>>>>>>>> >>>>>>>>>>>> Fatal Error: package build failed >>>>>>>>>>>> *** execution of failed *** >>>>>>>>>>>> >>>>>>>>>>>> ====== >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> I noticed that not all the .c files in .../m3-libs/m3gc- >>>>>>>>>>>> simple/src/runtime/I386_DARWIN/ where compiled, but I do >>>>>>>>>>>> not know if this is a normal behaviour. >>>>>>>>>>>> >>>>>>>>>>>> Thanks in advance for your time and patience! >>>>>>>>>>>> >>>>>>>>>>>> Cordially >>>>>>>>>>>> >>>>>>>>>>>> Renzo Orsini >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> On Jan 20, 2007, at 19:02, Darko wrote: >>>>>>>>>>>> >>>>>>>>>>>>> Have a look here: ftp://ftp.cs.purdue.edu/pub/hosking/ >>>>>>>>>>>>> m3/I386_DARWIN/ >>>>>>>>>>>>> >>>>>>>>>>>>> There you'll find the bits you need for Mac Intel. >>>>>>>>>>>>> Replace your existing cm3, cmcg and cm3.cfg with the >>>>>>>>>>>>> ones there, then you can compile the basic libraries >>>>>>>>>>>>> you need like m3core and libm3, but make sure you have >>>>>>>>>>>>> the latest sources. >>>>>>>>>>>>> >>>>>>>>>>>>> I think they're the latest but Tony may have something >>>>>>>>>>>>> more to say about that. >>>>>>>>>>>>> >>>>>>>>>>>>> Darko. >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> On 21/01/2007, at 1:41 AM, Olaf Wagner wrote: >>>>>>>>>>>>> >>>>>>>>>>>>>> On Sat, Jan 20, 2007 at 03:05:55PM +0100, Renzo Orsini >>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>> Hello, >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> I installed cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz on an >>>>>>>>>>>>>>> intel mac, then >>>>>>>>>>>>>>> tried to a compile a Hello world program, but the >>>>>>>>>>>>>>> compilation failed >>>>>>>>>>>>>>> with the following message: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> pborsini:~/ProveModula3 orsini$ cm3 >>>>>>>>>>>>>>> --- building in PPC_DARWIN --- >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> new source -> compiling Main.m3 >>>>>>>>>>>>>>> "../Main.m3", line 4: warning: potentially unhandled >>>>>>>>>>>>>>> exception: IO.Error >>>>>>>>>>>>>>> 1 warning encountered >>>>>>>>>>>>>>> Main.ms:12:no such instruction: `mflr r0' >>>>>>>>>>>>>>> Main.ms:13:no such instruction: `stmw r30,-8(r1)' >>>>>>>>>>>>>>> Main.ms:14:no such instruction: `stw r0,8(r1)' >>>>>>>>>>>>>>> Main.ms:15:no such instruction: `stwu r1,-96(r1)' >>>>>>>>>>>>>>> Main.ms:16:no such instruction: `mr r30,r1' >>>>>>>>>>>>>>> Main.ms:17:no such instruction: `bcl >>>>>>>>>>>>>>> 20,31,"L00000000001$pb"' >>>>>>>>>>>>>>> ... >>>>>>>>>>>>>>> .... >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> So I suppose there is PPC code to assemble and the >>>>>>>>>>>>>>> Rosetta emulator >>>>>>>>>>>>>>> for PPC on intel macs cannot do anything for this! >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Since I would like to port the Fibonacci language for >>>>>>>>>>>>>>> databases, >>>>>>>>>>>>>>> which is written in Modula-3, if I understand well >>>>>>>>>>>>>>> the situation I >>>>>>>>>>>>>>> should port the Modula-3 compiler by cross compiling >>>>>>>>>>>>>>> it on a PPC mac, >>>>>>>>>>>>>>> or something like that. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> I am asking you if you know about some effort of >>>>>>>>>>>>>>> porting Modula-3 on >>>>>>>>>>>>>>> intel macs, or at least if you let me know if this >>>>>>>>>>>>>>> operation is >>>>>>>>>>>>>>> possible (and also reasonably feasible in terms of >>>>>>>>>>>>>>> time and >>>>>>>>>>>>>>> expertise, given my teaching duties and my >>>>>>>>>>>>>>> difficulties with >>>>>>>>>>>>>>> assembler languages!), and, if so, if you can point >>>>>>>>>>>>>>> me to the correct >>>>>>>>>>>>>>> documentation to start with. Of course I will be very >>>>>>>>>>>>>>> glad to give >>>>>>>>>>>>>>> back to the community the result if I succeed! >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Thank you very much for your attention. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Cordially >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Renzo Orsini >>>>>>>>>>>>>>> Associate Professor >>>>>>>>>>>>>>> Dipartimento di Informatica >>>>>>>>>>>>>>> Universita' Ca' Foscari di Venezia >>>>>>>>>>>>>> >>>>>>>>>>>>>> Well, I wouldn't have thought that you were even able >>>>>>>>>>>>>> to install >>>>>>>>>>>>>> the cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz system on an >>>>>>>>>>>>>> Intel machine; >>>>>>>>>>>>>> it's surely not supposed to run on one. It shouldn't >>>>>>>>>>>>>> be too >>>>>>>>>>>>>> difficult to get a port of the latest CM3 for Darwin >>>>>>>>>>>>>> on Intel >>>>>>>>>>>>>> processors; I even think somebody was already working >>>>>>>>>>>>>> on it, >>>>>>>>>>>>>> but I don't really remember who, so I forward your >>>>>>>>>>>>>> mail to >>>>>>>>>>>>>> the m3devel list, in case others have already started >>>>>>>>>>>>>> such an >>>>>>>>>>>>>> effort. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Olaf >>>>>>>>>>>>>> -- >>>>>>>>>>>>>> elego Software Solutions >>>>>>>>>>>>>> GmbH HRB 77719 >>>>>>>>>>>>>> Olaf Wagner E-Mail: wagner >>>>>>>>>>>>>> (at)elego.de >>>>>>>>>>>>>> Ohmstra?e 9 Tel: +49 30 >>>>>>>>>>>>>> 40 04 19 29 >>>>>>>>>>>>>> 10179 Berlin Fax: +49 30 >>>>>>>>>>>>>> 23 45 86 95 >>>>>>>>>>>>>> Cranachstra?e 7 Tel: +49 30 >>>>>>>>>>>>>> 85 58 01 81 >>>>>>>>>>>>>> 12157 Berlin Fax: +49 30 >>>>>>>>>>>>>> 85 58 01 88 >>>>>>>>>>>>>> ------------------> WWW: http://www.elego-software- >>>>>>>>>>>>>> solutions.com >>>>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>>>> M3devel mailing list >>>>>>>>>>>>>> M3devel at elegosoft.com >>>>>>>>>>>>>> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/ >>>>>>>>>>>>>> m3devel >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> _______________________________________________ >>>>>>>>>>> M3devel mailing list >>>>>>>>>>> M3devel at elegosoft.com >>>>>>>>>>> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel >>>>>>>>>> >>>>>>>>>> Antony Hosking | Associate Professor >>>>>>>>>> Dept of Computer Sciences | Office: (765) 494-6001 >>>>>>>>>> Purdue University | Mobile: (765) 427-5484 >>>>>>>>>> 250 N. University Street | hosking at cs.purdue.edu >>>>>>>>>> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/ >>>>>>>>>> ~hosking >>>>>>>>>> _--_|\ >>>>>>>>>> / \ >>>>>>>>>> \_.--._/ ) >>>>>>>>>> v / >>>>>>>>>> >>>>>>>>>> >>>>>>>> >>>>>>> >>>>>>> Antony Hosking | Associate Professor >>>>>>> Dept of Computer Sciences | Office: (765) 494-6001 >>>>>>> Purdue University | Mobile: (765) 427-5484 >>>>>>> 250 N. University Street | hosking at cs.purdue.edu >>>>>>> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/ >>>>>>> ~hosking >>>>>>> _--_|\ >>>>>>> / \ >>>>>>> \_.--._/ ) >>>>>>> v / >>>>>>> >>>>>> >>>>> >>>>> Antony Hosking | Associate Professor >>>>> Dept of Computer Sciences | Office: (765) 494-6001 >>>>> Purdue University | Mobile: (765) 427-5484 >>>>> 250 N. University Street | hosking at cs.purdue.edu >>>>> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking >>>>> _--_|\ >>>>> / \ >>>>> \_.--._/ ) >>>>> v / >>>>> >>>> >>> >>> Antony Hosking | Associate Professor >>> Dept of Computer Sciences | Office: (765) 494-6001 >>> Purdue University | Mobile: (765) 427-5484 >>> 250 N. University Street | hosking at cs.purdue.edu >>> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking >>> _--_|\ >>> / \ >>> \_.--._/ ) >>> v / >>> >> > > Antony Hosking | Associate Professor > Dept of Computer Sciences | Office: (765) 494-6001 > Purdue University | Mobile: (765) 427-5484 > 250 N. University Street | hosking at cs.purdue.edu > West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking > _--_|\ > / \ > \_.--._/ ) > v / > > > > _______________________________________________ > M3devel mailing list > M3devel at elegosoft.com > https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel Antony Hosking | Associate Professor Dept of Computer Sciences | Office: (765) 494-6001 Purdue University | Mobile: (765) 427-5484 250 N. University Street | hosking at cs.purdue.edu West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking _--_|\ / \ \_.--._/ ) v / From hosking at cs.purdue.edu Sun Jan 21 23:55:59 2007 From: hosking at cs.purdue.edu (Antony Hosking) Date: Sun, 21 Jan 2007 17:55:59 -0500 Subject: [M3devel] Re: porting m3 on intel mac In-Reply-To: <70415358-BF8A-45E8-9CA8-89DBDDA24148@cs.purdue.edu> References: <8A58B35B-22CD-42D5-BA19-5FBF5D3CF5CD@dsi.unive.it> <20070120164128.GA27790@elegosoft.com> <52EA8FC9-4E33-40FF-B041-5CEAE83BBDE7@darko.org> <6307E3CC-8E5F-4317-8A8E-7EADE20FEE54@darko.org> <1521F74A-AF0F-48C4-B0AA-4E7DB321DA62@cs.purdue.edu> <23B90155-784C-4A47-8EAD-1451AEC4C1B9@darko.org> <69645CDA-E215-4B81-BAEE-C45EC496E4C6@dsi.unive.it> <5C13EB47-D241-438A-BE6F-BBD30AF002A4@dsi.unive.it> <9125FF3E-5D5D-4DE0-95DC-DCD997D198C1@cs.purdue.edu> <4206B526-A4CF-430B-AE8C-086D27615A79@dsi.unive.it> <722DDD36-2973-44B2-91BF-8487DA744D6C@cs.purdue.edu> <6607A270-8264-4419-AAF2-323833523695@cs.purdue.edu> <70415358-BF8A-45E8-9CA8-89DBDDA24148@cs.purdue.edu> Message-ID: <8AB408E5-F32F-4209-910D-537508CB0F6B@cs.purdue.edu> Can you try downgrading to an older version of XCode and see how things go? I am using a version of 2.3.x. I am worried about the failure of stubgen in your build of zeus, which points to a possible problem with your installation. On 21/01/2007, at 5:40 PM, Antony Hosking wrote: > PS: It looks like there are issues with the XCode 2.4.x assembler: > > http://www.mail-archive.com/fink-devel at lists.sourceforge.net/ > msg14326.html > > Let me see what else I can dig up. > > On 21/01/2007, at 5:32 PM, Antony Hosking wrote: > >> On 21/01/2007, at 5:06 PM, Renzo Orsini wrote: >> >>> >>> On Jan 21, 2007, at 22:57, Antony Hosking wrote: >>> >>>> For some reason your .stabs entries are different than mine, but >>>> otherwise the assembler files are the same. Are you using the >>>> cm3cg and cm3.cfg from my ftp site? >>> >>> Yes, downloaded a few hours ago. >>> >>> >>>> Here is the version of the assembler that I have on my Intel Mac: >>>> >>>> Apple Computer, Inc. version cctools-590.42.1.obj~1, GNU >>>> assembler version 1.38 >>> >>> The mine is: >>> >>> Apple Computer, Inc. version cctools-622.5.obj~13, GNU assembler >>> version 1.38 >>> (If it useful, my Xcode is 2.4.1, with Xcode IDE: 762.0, Xcode >>> Core: 762.0, ToolSupport: 764.0, [From About XCode menu]) >>> >> >> Hmmm -- different versions of the assembler. Probably some flag >> needs adjusting. >> >>> >>> >>>> >>>> With respect to zeus, can you build with -verbose in the zeus >>>> directory and send me the output? Sounds like one of the tools >>>> is not getting built properly. >>>> >>> >>> Ok, I am sending it as attachment >>> >>> >>> >> >> Sorry, wrong option. Please run with -commands. I suspect >> stubgen is failing for you. >> >> >>> Renzo >>> >>> >>>> On 21/01/2007, at 4:47 PM, Renzo Orsini wrote: >>>> >>>>> You can find in the attachment the program and the compilation. >>>>> >>>>> Renzo >>>>> >>>>> >>>>> >>>>> On Jan 21, 2007, at 22:34, Antony Hosking wrote: >>>>> >>>>>> >>>>>> On 21/01/2007, at 4:27 PM, Renzo Orsini wrote: >>>>>> >>>>>>> On Jan 21, 2007, at 21:49, Antony Hosking wrote: >>>>>>> >>>>>>>> >>>>>>>> On 21/01/2007, at 7:59 AM, Renzo Orsini wrote: >>>>>>>> >>>>>>>>> Hello and lot of thanks! >>>>>>>>> >>>>>>>>> Everything is working really fine! >>>>>>>>> The configuration: MacBookPro, MacOSX 10.4.8, XCode 2.4.1 >>>>>>>>> (gcc 4.0.1), X11 installed, latest cm3 sources (with >>>>>>>>> anonymous CVS), >>>>>>>>> The process: >>>>>>>>> 1. unpacked cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz >>>>>>>>> 2. installed as super-user (every answer left as default, >>>>>>>>> the only problem is the fact that motif is missing, ignoring) >>>>>>>>> 3. replacing cm3, cm3.cfg, cm3cg from ftp:// >>>>>>>>> ftp.cs.purdue.edu/pub/hosking/m3/I386_DARWIN >>>>>>>>> 3. running as su: >>>>>>>>> do-cm3-core.sh buildship >>>>>>>>> install-cm3-compiler.sh upgrade >>>>>>>>> do-cm3-std.sh buildship >>>>>>>>> everything is ok a part from producing about a zillion of >>>>>>>>> assembler (?) warnings ("xxx.ms:nnn:indirect jmp without `*'), >>>>>>>>> and failing at the end the compilation of package zeus >>>>>>>>> (which I suppose is an old issue) >>>>>>>> >>>>>>>> That's odd since my builds go through cleanly. >>>>>>> >>>>>>> This is an example of the strange "indirect jump" message: >>>>>>> >>>>>>> pborsini:~/ProveModula3 orsini$ cat Main.m3 >>>>>>> MODULE Main; IMPORT IO; BEGIN IO.Put("Hello World\n"); END Main. >>>>>>> pborsini:~/ProveModula3 orsini$ cm3 >>>>>>> --- building in I386_DARWIN --- >>>>>>> new source -> compiling Main.m3 >>>>>>> Main.ms:101:indirect jmp without `*' >>>>>>> -> linking prog >>>>>>> _m3main.ms:74:indirect jmp without `*' >>>>>>> _m3main.ms:89:indirect jmp without `*' >>>>>>> _m3main.ms:108:indirect jmp without `*' >>>>>>> pborsini:~/ProveModula3 orsini$ ./I386_DARWIN/prog >>>>>>> Hello World >>>>>>> >>>>>>> maybe there is some problem with the linker parameters, >>>>>>> however the progrum runs ok. >>>>>> >>>>>> Can you compile with "-keep" and send me the relevant .ms >>>>>> file? I can compare with mine. >>>>>> >>>>>>> >>>>>>> For what concerns zeus: the following is the output of cm3: >>>>>>> >>>>>>> === package /Users/orsini/modula3/cvsstuff/cm3/m3-ui/zeus === >>>>>>> +++ cm3 -build -override -DROOT='/Users/orsini/modula3/ >>>>>>> cvsstuff/cm3' +++ >>>>>>> --- building in I386_DARWIN --- >>>>>>> >>>>>>> new source -> compiling RemoteView_T_v1.i3 >>>>>>> "../I386_DARWIN/RemoteView_T_v1.i3", line 1: syntax error: >>>>>>> missing INTERFACE or MODULE keyword >>>>>>> "../I386_DARWIN/RemoteView_T_v1.i3", line 1: unable to find >>>>>>> interface () >>>>>>> "../I386_DARWIN/RemoteView_T_v1.i3", line 1: warning: file >>>>>>> name (RemoteView_T_v1.i3) doesn't match module name (>>>>>> id>) >>>>>>> 2 errors and 1 warning encountered >>>>>>> new source -> compiling RemoteView_T_v1.m3 >>>>>>> "../I386_DARWIN/RemoteView_T_v1.m3", line 1: syntax error: >>>>>>> missing INTERFACE or MODULE keyword >>>>>>> "../I386_DARWIN/RemoteView_T_v1.m3", line 1: unable to find >>>>>>> interface () >>>>>>> "../I386_DARWIN/RemoteView_T_v1.m3", line 1: warning: file >>>>>>> name (RemoteView_T_v1.m3) doesn't match module name (>>>>>> id>) >>>>>>> 2 errors and 1 warning encountered >>>>>>> compilation failed => not building library "libm3zeus.a" >>>>>>> Fatal Error: package build failed >>>>>>> *** execution of failed *** >>>>>>> >>>>>>> (and the files RemoteView_T_v1.i3 and RemoteView_T_v1.m3 are >>>>>>> empty in I386_DARWIN, and they do not exists in src) >>>>>>> >>>>>>> Several other packages cannot be compiled, like many obliq >>>>>>> ones, webvt, June and mentor. >>>>>>> >>>>>>> However the compiler seems to work for compiling my stuff, >>>>>>> altough I have to make a few corrections and debugging. >>>>>> >>>>>> This sounds problematic since it implies that the generators >>>>>> for those files are not working correctly. (If you run with "- >>>>>> commands" you'll see which generator programs are being used. >>>>>> >>>>>>> >>>>>>> Thanks, >>>>>>> >>>>>>> Renzo >>>>>>> >>>>>>>> >>>>>>>>> >>>>>>>>> So, thank again to all and each of you, I am now very happy >>>>>>>>> and busy by bringing our old modula-3 software to the new >>>>>>>>> century! >>>>>>>>> >>>>>>>>> Cordially, >>>>>>>>> >>>>>>>>> Renzo Orsini >>>>>>>>> >>>>>>>>> On Jan 21, 2007, at 0:33, Darko wrote: >>>>>>>>> >>>>>>>>>> The latest, 10.4.8, also the latest XCode, which I think >>>>>>>>>> updates gcc. You were addressing me weren't you? But Renzo >>>>>>>>>> might like to answer that question too. XCode weighs in at >>>>>>>>>> about 1G, by the way. >>>>>>>>>> >>>>>>>>>> On 21/01/2007, at 7:58 AM, Antony Hosking wrote: >>>>>>>>>> >>>>>>>>>>> What version of OSX are you using? >>>>>>>>>>> >>>>>>>>>>> On 20/01/2007, at 5:49 PM, Darko wrote: >>>>>>>>>>> >>>>>>>>>>>> No worries. I'm not familiar at all with those scripts. >>>>>>>>>>>> The problem you are having may be to do with not having >>>>>>>>>>>> the latest source, but it most probably has to do with >>>>>>>>>>>> the version of gcc that is active on your machine. C >>>>>>>>>>>> files are not compiled by cm3 but rather call gcc >>>>>>>>>>>> directly. I can't remember which version of gcc is the >>>>>>>>>>>> correct one, but mine currently is i686-apple-darwin8- >>>>>>>>>>>> gcc-4.0.1; also I can't remember the command line for >>>>>>>>>>>> changing gcc versions. Tony may be able to help re the >>>>>>>>>>>> correct version if 4.0.1 doesn't work. You may need to >>>>>>>>>>>> install the latest XCode from http://developer.apple.com >>>>>>>>>>>> if you don't have 4.01. >>>>>>>>>>>> >>>>>>>>>>>> I've cc'd the list because they're actually very helpful >>>>>>>>>>>> and my knowledge is limited... >>>>>>>>>>>> >>>>>>>>>>>> - Darko >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> On 21/01/2007, at 6:58 AM, Renzo Orsini wrote: >>>>>>>>>>>> >>>>>>>>>>>>> First of all, thank you very much for your immediate help! >>>>>>>>>>>>> >>>>>>>>>>>>> I downloaded the files and replaced the corresponding / >>>>>>>>>>>>> usr/local/cm3/bin files, >>>>>>>>>>>>> modified cm3.cfg by replacing INSTALL_ROOT = "/usr/ >>>>>>>>>>>>> local/cm3-i386/" with INSTALL_ROOT = "/usr/local/cm3/" >>>>>>>>>>>>> then in the full source (last version, 5.4.0) I did: >>>>>>>>>>>>> scripts/do-cm3-core.sh buildship >>>>>>>>>>>>> this is the result: >>>>>>>>>>>>> >>>>>>>>>>>>> root#./do-cm3-core.sh buildship >>>>>>>>>>>>> CM3C = >>>>>>>>>>>>> /Users/orsini/cm3/cm3-src-all-5.4.0/scripts/pkgmap.sh - >>>>>>>>>>>>> c "cm3 -build -DROOT='/Users/orsini/cm3/cm3-src- >>>>>>>>>>>>> all-5.4.0' && cm3 -ship -DROOT='/Users/orsini/cm3/cm3- >>>>>>>>>>>>> src-all-5.4.0' " m3gc-simple m3core libm3 >>>>>>>>>>>>> patternmatching m3middle m3linker m3front m3quake m3cc >>>>>>>>>>>>> cm3 m3scanner m3tools m3cgcat m3cggen m3bundle >>>>>>>>>>>>> bitvector digraph parseparams realgeometry set slisp >>>>>>>>>>>>> sortedtableextras table-list tempfiles >>>>>>>>>>>>> === package /Users/orsini/cm3/cm3-src-all-5.4.0/m3-libs/ >>>>>>>>>>>>> m3gc-simple === >>>>>>>>>>>>> +++ cm3 -build -DROOT='/Users/orsini/cm3/cm3-src- >>>>>>>>>>>>> all-5.4.0' && cm3 -ship -DROOT='/Users/orsini/cm3/cm3- >>>>>>>>>>>>> src-all-5.4.0' +++ >>>>>>>>>>>>> --- building in I386_DARWIN --- >>>>>>>>>>>>> >>>>>>>>>>>>> new source -> compiling RTVM.c >>>>>>>>>>>>> new source -> compiling sysdeps.c >>>>>>>>>>>>> new source -> compiling accept.c >>>>>>>>>>>>> ../src/runtime/I386_DARWIN/accept.c: In function >>>>>>>>>>>>> 'm3_accept': >>>>>>>>>>>>> ../src/runtime/I386_DARWIN/accept.c:13: warning: >>>>>>>>>>>>> pointer targets in passing argument 3 of 'accept' >>>>>>>>>>>>> differ in signedness >>>>>>>>>>>>> new source -> compiling bind.c >>>>>>>>>>>>> new source -> compiling close.c >>>>>>>>>>>>> new source -> compiling connect.c >>>>>>>>>>>>> new source -> compiling dup.c >>>>>>>>>>>>> new source -> compiling dup2.c >>>>>>>>>>>>> new source -> compiling gethostbyaddr.c >>>>>>>>>>>>> new source -> compiling gethostbyname.c >>>>>>>>>>>>> new source -> compiling getpeername.c >>>>>>>>>>>>> ../src/runtime/I386_DARWIN/getpeername.c: In function >>>>>>>>>>>>> 'm3_getpeername': >>>>>>>>>>>>> ../src/runtime/I386_DARWIN/getpeername.c:13: warning: >>>>>>>>>>>>> pointer targets in passing argument 3 of 'getpeername' >>>>>>>>>>>>> differ in signedness >>>>>>>>>>>>> new source -> compiling getsockname.c >>>>>>>>>>>>> ../src/runtime/I386_DARWIN/getsockname.c: In function >>>>>>>>>>>>> 'm3_getsockname': >>>>>>>>>>>>> ../src/runtime/I386_DARWIN/getsockname.c:13: warning: >>>>>>>>>>>>> pointer targets in passing argument 3 of 'getsockname' >>>>>>>>>>>>> differ in signedness >>>>>>>>>>>>> new source -> compiling listen.c >>>>>>>>>>>>> new source -> compiling read.c >>>>>>>>>>>>> new source -> compiling recv.c >>>>>>>>>>>>> new source -> compiling recvfrom.c >>>>>>>>>>>>> ../src/runtime/I386_DARWIN/recvfrom.c: In function >>>>>>>>>>>>> 'm3_recvfrom': >>>>>>>>>>>>> ../src/runtime/I386_DARWIN/recvfrom.c:15: warning: >>>>>>>>>>>>> pointer targets in passing argument 6 of 'recvfrom' >>>>>>>>>>>>> differ in signedness >>>>>>>>>>>>> new source -> compiling select.c >>>>>>>>>>>>> new source -> compiling send.c >>>>>>>>>>>>> new source -> compiling sendto.c >>>>>>>>>>>>> new source -> compiling shutdown.c >>>>>>>>>>>>> new source -> compiling socket.c >>>>>>>>>>>>> new source -> compiling write.c >>>>>>>>>>>>> -> archiving libm3gcdefs.a >>>>>>>>>>>>> ld: common symbols not allowed with MH_DYLIB output >>>>>>>>>>>>> format with the -multi_module option >>>>>>>>>>>>> sysdeps.o definition of common _RTCSRC_FinishVM (size 16) >>>>>>>>>>>>> sysdeps.o definition of common _RTHeapRep_Fault (size 16) >>>>>>>>>>>>> /usr/bin/libtool: internal link edit command failed >>>>>>>>>>>>> --- shipping from I386_DARWIN --- >>>>>>>>>>>>> >>>>>>>>>>>>> . => /usr/local/cm3/pkg/m3gc-simple/I386_DARWIN >>>>>>>>>>>>> .M3EXPORTS libm3gcdefs.5.2.dylib"/Users/orsini/ >>>>>>>>>>>>> cm3/cm3-src-all-5.4.0/m3-libs/m3gc-simple/ >>>>>>>>>>>>> I386_DARWIN/.M3SHIP", line 3: quake runtime error: >>>>>>>>>>>>> unable to copy "libm3gcdefs.5.2.dylib" to "/usr/local/ >>>>>>>>>>>>> cm3/pkg/m3gc-simple/I386_DARWIN/libm3gcdefs.5.2.dylib": >>>>>>>>>>>>> errno=2 >>>>>>>>>>>>> >>>>>>>>>>>>> --procedure-- -line- -file--- >>>>>>>>>>>>> install_file -- >>>>>>>>>>>>> 3 /Users/orsini/cm3/cm3-src- >>>>>>>>>>>>> all-5.4.0/m3-libs/m3gc-simple/I386_DARWIN/.M3SHIP >>>>>>>>>>>>> >>>>>>>>>>>>> Fatal Error: package build failed >>>>>>>>>>>>> *** execution of failed *** >>>>>>>>>>>>> >>>>>>>>>>>>> ====== >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> I noticed that not all the .c files in .../m3-libs/m3gc- >>>>>>>>>>>>> simple/src/runtime/I386_DARWIN/ where compiled, but I >>>>>>>>>>>>> do not know if this is a normal behaviour. >>>>>>>>>>>>> >>>>>>>>>>>>> Thanks in advance for your time and patience! >>>>>>>>>>>>> >>>>>>>>>>>>> Cordially >>>>>>>>>>>>> >>>>>>>>>>>>> Renzo Orsini >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> On Jan 20, 2007, at 19:02, Darko wrote: >>>>>>>>>>>>> >>>>>>>>>>>>>> Have a look here: ftp://ftp.cs.purdue.edu/pub/hosking/ >>>>>>>>>>>>>> m3/I386_DARWIN/ >>>>>>>>>>>>>> >>>>>>>>>>>>>> There you'll find the bits you need for Mac Intel. >>>>>>>>>>>>>> Replace your existing cm3, cmcg and cm3.cfg with the >>>>>>>>>>>>>> ones there, then you can compile the basic libraries >>>>>>>>>>>>>> you need like m3core and libm3, but make sure you have >>>>>>>>>>>>>> the latest sources. >>>>>>>>>>>>>> >>>>>>>>>>>>>> I think they're the latest but Tony may have something >>>>>>>>>>>>>> more to say about that. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Darko. >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> On 21/01/2007, at 1:41 AM, Olaf Wagner wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>>> On Sat, Jan 20, 2007 at 03:05:55PM +0100, Renzo >>>>>>>>>>>>>>> Orsini wrote: >>>>>>>>>>>>>>>> Hello, >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> I installed cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz on >>>>>>>>>>>>>>>> an intel mac, then >>>>>>>>>>>>>>>> tried to a compile a Hello world program, but the >>>>>>>>>>>>>>>> compilation failed >>>>>>>>>>>>>>>> with the following message: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> pborsini:~/ProveModula3 orsini$ cm3 >>>>>>>>>>>>>>>> --- building in PPC_DARWIN --- >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> new source -> compiling Main.m3 >>>>>>>>>>>>>>>> "../Main.m3", line 4: warning: potentially unhandled >>>>>>>>>>>>>>>> exception: IO.Error >>>>>>>>>>>>>>>> 1 warning encountered >>>>>>>>>>>>>>>> Main.ms:12:no such instruction: `mflr r0' >>>>>>>>>>>>>>>> Main.ms:13:no such instruction: `stmw r30,-8(r1)' >>>>>>>>>>>>>>>> Main.ms:14:no such instruction: `stw r0,8(r1)' >>>>>>>>>>>>>>>> Main.ms:15:no such instruction: `stwu r1,-96(r1)' >>>>>>>>>>>>>>>> Main.ms:16:no such instruction: `mr r30,r1' >>>>>>>>>>>>>>>> Main.ms:17:no such instruction: `bcl >>>>>>>>>>>>>>>> 20,31,"L00000000001$pb"' >>>>>>>>>>>>>>>> ... >>>>>>>>>>>>>>>> .... >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> So I suppose there is PPC code to assemble and the >>>>>>>>>>>>>>>> Rosetta emulator >>>>>>>>>>>>>>>> for PPC on intel macs cannot do anything for this! >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Since I would like to port the Fibonacci language >>>>>>>>>>>>>>>> for databases, >>>>>>>>>>>>>>>> which is written in Modula-3, if I understand well >>>>>>>>>>>>>>>> the situation I >>>>>>>>>>>>>>>> should port the Modula-3 compiler by cross compiling >>>>>>>>>>>>>>>> it on a PPC mac, >>>>>>>>>>>>>>>> or something like that. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> I am asking you if you know about some effort of >>>>>>>>>>>>>>>> porting Modula-3 on >>>>>>>>>>>>>>>> intel macs, or at least if you let me know if this >>>>>>>>>>>>>>>> operation is >>>>>>>>>>>>>>>> possible (and also reasonably feasible in terms of >>>>>>>>>>>>>>>> time and >>>>>>>>>>>>>>>> expertise, given my teaching duties and my >>>>>>>>>>>>>>>> difficulties with >>>>>>>>>>>>>>>> assembler languages!), and, if so, if you can point >>>>>>>>>>>>>>>> me to the correct >>>>>>>>>>>>>>>> documentation to start with. Of course I will be >>>>>>>>>>>>>>>> very glad to give >>>>>>>>>>>>>>>> back to the community the result if I succeed! >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Thank you very much for your attention. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Cordially >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Renzo Orsini >>>>>>>>>>>>>>>> Associate Professor >>>>>>>>>>>>>>>> Dipartimento di Informatica >>>>>>>>>>>>>>>> Universita' Ca' Foscari di Venezia >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Well, I wouldn't have thought that you were even able >>>>>>>>>>>>>>> to install >>>>>>>>>>>>>>> the cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz system on an >>>>>>>>>>>>>>> Intel machine; >>>>>>>>>>>>>>> it's surely not supposed to run on one. It shouldn't >>>>>>>>>>>>>>> be too >>>>>>>>>>>>>>> difficult to get a port of the latest CM3 for Darwin >>>>>>>>>>>>>>> on Intel >>>>>>>>>>>>>>> processors; I even think somebody was already working >>>>>>>>>>>>>>> on it, >>>>>>>>>>>>>>> but I don't really remember who, so I forward your >>>>>>>>>>>>>>> mail to >>>>>>>>>>>>>>> the m3devel list, in case others have already started >>>>>>>>>>>>>>> such an >>>>>>>>>>>>>>> effort. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Olaf >>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>> elego Software Solutions >>>>>>>>>>>>>>> GmbH HRB 77719 >>>>>>>>>>>>>>> Olaf Wagner E-Mail: wagner >>>>>>>>>>>>>>> (at)elego.de >>>>>>>>>>>>>>> Ohmstra?e 9 Tel: +49 30 >>>>>>>>>>>>>>> 40 04 19 29 >>>>>>>>>>>>>>> 10179 Berlin Fax: +49 30 >>>>>>>>>>>>>>> 23 45 86 95 >>>>>>>>>>>>>>> Cranachstra?e 7 Tel: +49 30 >>>>>>>>>>>>>>> 85 58 01 81 >>>>>>>>>>>>>>> 12157 Berlin Fax: +49 30 >>>>>>>>>>>>>>> 85 58 01 88 >>>>>>>>>>>>>>> ------------------> WWW: http://www.elego-software- >>>>>>>>>>>>>>> solutions.com >>>>>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>>>>> M3devel mailing list >>>>>>>>>>>>>>> M3devel at elegosoft.com >>>>>>>>>>>>>>> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/ >>>>>>>>>>>>>>> m3devel >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>> M3devel mailing list >>>>>>>>>>>> M3devel at elegosoft.com >>>>>>>>>>>> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel >>>>>>>>>>> >>>>>>>>>>> Antony Hosking | Associate Professor >>>>>>>>>>> Dept of Computer Sciences | Office: (765) 494-6001 >>>>>>>>>>> Purdue University | Mobile: (765) 427-5484 >>>>>>>>>>> 250 N. University Street | hosking at cs.purdue.edu >>>>>>>>>>> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/ >>>>>>>>>>> ~hosking >>>>>>>>>>> _--_|\ >>>>>>>>>>> / \ >>>>>>>>>>> \_.--._/ ) >>>>>>>>>>> v / >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> Antony Hosking | Associate Professor >>>>>>>> Dept of Computer Sciences | Office: (765) 494-6001 >>>>>>>> Purdue University | Mobile: (765) 427-5484 >>>>>>>> 250 N. University Street | hosking at cs.purdue.edu >>>>>>>> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/ >>>>>>>> ~hosking >>>>>>>> _--_|\ >>>>>>>> / \ >>>>>>>> \_.--._/ ) >>>>>>>> v / >>>>>>>> >>>>>>> >>>>>> >>>>>> Antony Hosking | Associate Professor >>>>>> Dept of Computer Sciences | Office: (765) 494-6001 >>>>>> Purdue University | Mobile: (765) 427-5484 >>>>>> 250 N. University Street | hosking at cs.purdue.edu >>>>>> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking >>>>>> _--_|\ >>>>>> / \ >>>>>> \_.--._/ ) >>>>>> v / >>>>>> >>>>> >>>> >>>> Antony Hosking | Associate Professor >>>> Dept of Computer Sciences | Office: (765) 494-6001 >>>> Purdue University | Mobile: (765) 427-5484 >>>> 250 N. University Street | hosking at cs.purdue.edu >>>> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking >>>> _--_|\ >>>> / \ >>>> \_.--._/ ) >>>> v / >>>> >>> >> >> Antony Hosking | Associate Professor >> Dept of Computer Sciences | Office: (765) 494-6001 >> Purdue University | Mobile: (765) 427-5484 >> 250 N. University Street | hosking at cs.purdue.edu >> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking >> _--_|\ >> / \ >> \_.--._/ ) >> v / >> >> >> >> _______________________________________________ >> M3devel mailing list >> M3devel at elegosoft.com >> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel > > Antony Hosking | Associate Professor > Dept of Computer Sciences | Office: (765) 494-6001 > Purdue University | Mobile: (765) 427-5484 > 250 N. University Street | hosking at cs.purdue.edu > West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking > _--_|\ > / \ > \_.--._/ ) > v / > > Antony Hosking | Associate Professor Dept of Computer Sciences | Office: (765) 494-6001 Purdue University | Mobile: (765) 427-5484 250 N. University Street | hosking at cs.purdue.edu West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking _--_|\ / \ \_.--._/ ) v / From hosking at cs.purdue.edu Sun Jan 21 23:58:32 2007 From: hosking at cs.purdue.edu (Antony Hosking) Date: Sun, 21 Jan 2007 17:58:32 -0500 Subject: [M3devel] Re: porting m3 on intel mac In-Reply-To: <70415358-BF8A-45E8-9CA8-89DBDDA24148@cs.purdue.edu> References: <8A58B35B-22CD-42D5-BA19-5FBF5D3CF5CD@dsi.unive.it> <20070120164128.GA27790@elegosoft.com> <52EA8FC9-4E33-40FF-B041-5CEAE83BBDE7@darko.org> <6307E3CC-8E5F-4317-8A8E-7EADE20FEE54@darko.org> <1521F74A-AF0F-48C4-B0AA-4E7DB321DA62@cs.purdue.edu> <23B90155-784C-4A47-8EAD-1451AEC4C1B9@darko.org> <69645CDA-E215-4B81-BAEE-C45EC496E4C6@dsi.unive.it> <5C13EB47-D241-438A-BE6F-BBD30AF002A4@dsi.unive.it> <9125FF3E-5D5D-4DE0-95DC-DCD997D198C1@cs.purdue.edu> <4206B526-A4CF-430B-AE8C-086D27615A79@dsi.unive.it> <722DDD36-2973-44B2-91BF-8487DA744D6C@cs.purdue.edu> <6607A270-8264-4419-AAF2-323833523695@cs.purdue.edu> <70415358-BF8A-45E8-9CA8-89DBDDA24148@cs.purdue.edu> Message-ID: <4E6E0525-4E9C-4819-BD6A-A0F280F58A47@cs.purdue.edu> P.S. One more thing: Can you please rebuild to use native threads on Mac OSX by giving the flag "-DPTHREAD" to your build? You would do this by defining: export CM3="cm3 -DPTHREAD" before invoking "do-cm3-std.sh buildship". My suspicion is that the user-level POSIX threading is broken somehow. You should try this before downgrading XCode to 2.3 since the problems of "indirect jmp" are just warnings as far as I can tell. On 21/01/2007, at 5:40 PM, Antony Hosking wrote: > PS: It looks like there are issues with the XCode 2.4.x assembler: > > http://www.mail-archive.com/fink-devel at lists.sourceforge.net/ > msg14326.html > > Let me see what else I can dig up. > > On 21/01/2007, at 5:32 PM, Antony Hosking wrote: > >> On 21/01/2007, at 5:06 PM, Renzo Orsini wrote: >> >>> >>> On Jan 21, 2007, at 22:57, Antony Hosking wrote: >>> >>>> For some reason your .stabs entries are different than mine, but >>>> otherwise the assembler files are the same. Are you using the >>>> cm3cg and cm3.cfg from my ftp site? >>> >>> Yes, downloaded a few hours ago. >>> >>> >>>> Here is the version of the assembler that I have on my Intel Mac: >>>> >>>> Apple Computer, Inc. version cctools-590.42.1.obj~1, GNU >>>> assembler version 1.38 >>> >>> The mine is: >>> >>> Apple Computer, Inc. version cctools-622.5.obj~13, GNU assembler >>> version 1.38 >>> (If it useful, my Xcode is 2.4.1, with Xcode IDE: 762.0, Xcode >>> Core: 762.0, ToolSupport: 764.0, [From About XCode menu]) >>> >> >> Hmmm -- different versions of the assembler. Probably some flag >> needs adjusting. >> >>> >>> >>>> >>>> With respect to zeus, can you build with -verbose in the zeus >>>> directory and send me the output? Sounds like one of the tools >>>> is not getting built properly. >>>> >>> >>> Ok, I am sending it as attachment >>> >>> >>> >> >> Sorry, wrong option. Please run with -commands. I suspect >> stubgen is failing for you. >> >> >>> Renzo >>> >>> >>>> On 21/01/2007, at 4:47 PM, Renzo Orsini wrote: >>>> >>>>> You can find in the attachment the program and the compilation. >>>>> >>>>> Renzo >>>>> >>>>> >>>>> >>>>> On Jan 21, 2007, at 22:34, Antony Hosking wrote: >>>>> >>>>>> >>>>>> On 21/01/2007, at 4:27 PM, Renzo Orsini wrote: >>>>>> >>>>>>> On Jan 21, 2007, at 21:49, Antony Hosking wrote: >>>>>>> >>>>>>>> >>>>>>>> On 21/01/2007, at 7:59 AM, Renzo Orsini wrote: >>>>>>>> >>>>>>>>> Hello and lot of thanks! >>>>>>>>> >>>>>>>>> Everything is working really fine! >>>>>>>>> The configuration: MacBookPro, MacOSX 10.4.8, XCode 2.4.1 >>>>>>>>> (gcc 4.0.1), X11 installed, latest cm3 sources (with >>>>>>>>> anonymous CVS), >>>>>>>>> The process: >>>>>>>>> 1. unpacked cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz >>>>>>>>> 2. installed as super-user (every answer left as default, >>>>>>>>> the only problem is the fact that motif is missing, ignoring) >>>>>>>>> 3. replacing cm3, cm3.cfg, cm3cg from ftp:// >>>>>>>>> ftp.cs.purdue.edu/pub/hosking/m3/I386_DARWIN >>>>>>>>> 3. running as su: >>>>>>>>> do-cm3-core.sh buildship >>>>>>>>> install-cm3-compiler.sh upgrade >>>>>>>>> do-cm3-std.sh buildship >>>>>>>>> everything is ok a part from producing about a zillion of >>>>>>>>> assembler (?) warnings ("xxx.ms:nnn:indirect jmp without `*'), >>>>>>>>> and failing at the end the compilation of package zeus >>>>>>>>> (which I suppose is an old issue) >>>>>>>> >>>>>>>> That's odd since my builds go through cleanly. >>>>>>> >>>>>>> This is an example of the strange "indirect jump" message: >>>>>>> >>>>>>> pborsini:~/ProveModula3 orsini$ cat Main.m3 >>>>>>> MODULE Main; IMPORT IO; BEGIN IO.Put("Hello World\n"); END Main. >>>>>>> pborsini:~/ProveModula3 orsini$ cm3 >>>>>>> --- building in I386_DARWIN --- >>>>>>> new source -> compiling Main.m3 >>>>>>> Main.ms:101:indirect jmp without `*' >>>>>>> -> linking prog >>>>>>> _m3main.ms:74:indirect jmp without `*' >>>>>>> _m3main.ms:89:indirect jmp without `*' >>>>>>> _m3main.ms:108:indirect jmp without `*' >>>>>>> pborsini:~/ProveModula3 orsini$ ./I386_DARWIN/prog >>>>>>> Hello World >>>>>>> >>>>>>> maybe there is some problem with the linker parameters, >>>>>>> however the progrum runs ok. >>>>>> >>>>>> Can you compile with "-keep" and send me the relevant .ms >>>>>> file? I can compare with mine. >>>>>> >>>>>>> >>>>>>> For what concerns zeus: the following is the output of cm3: >>>>>>> >>>>>>> === package /Users/orsini/modula3/cvsstuff/cm3/m3-ui/zeus === >>>>>>> +++ cm3 -build -override -DROOT='/Users/orsini/modula3/ >>>>>>> cvsstuff/cm3' +++ >>>>>>> --- building in I386_DARWIN --- >>>>>>> >>>>>>> new source -> compiling RemoteView_T_v1.i3 >>>>>>> "../I386_DARWIN/RemoteView_T_v1.i3", line 1: syntax error: >>>>>>> missing INTERFACE or MODULE keyword >>>>>>> "../I386_DARWIN/RemoteView_T_v1.i3", line 1: unable to find >>>>>>> interface () >>>>>>> "../I386_DARWIN/RemoteView_T_v1.i3", line 1: warning: file >>>>>>> name (RemoteView_T_v1.i3) doesn't match module name (>>>>>> id>) >>>>>>> 2 errors and 1 warning encountered >>>>>>> new source -> compiling RemoteView_T_v1.m3 >>>>>>> "../I386_DARWIN/RemoteView_T_v1.m3", line 1: syntax error: >>>>>>> missing INTERFACE or MODULE keyword >>>>>>> "../I386_DARWIN/RemoteView_T_v1.m3", line 1: unable to find >>>>>>> interface () >>>>>>> "../I386_DARWIN/RemoteView_T_v1.m3", line 1: warning: file >>>>>>> name (RemoteView_T_v1.m3) doesn't match module name (>>>>>> id>) >>>>>>> 2 errors and 1 warning encountered >>>>>>> compilation failed => not building library "libm3zeus.a" >>>>>>> Fatal Error: package build failed >>>>>>> *** execution of failed *** >>>>>>> >>>>>>> (and the files RemoteView_T_v1.i3 and RemoteView_T_v1.m3 are >>>>>>> empty in I386_DARWIN, and they do not exists in src) >>>>>>> >>>>>>> Several other packages cannot be compiled, like many obliq >>>>>>> ones, webvt, June and mentor. >>>>>>> >>>>>>> However the compiler seems to work for compiling my stuff, >>>>>>> altough I have to make a few corrections and debugging. >>>>>> >>>>>> This sounds problematic since it implies that the generators >>>>>> for those files are not working correctly. (If you run with "- >>>>>> commands" you'll see which generator programs are being used. >>>>>> >>>>>>> >>>>>>> Thanks, >>>>>>> >>>>>>> Renzo >>>>>>> >>>>>>>> >>>>>>>>> >>>>>>>>> So, thank again to all and each of you, I am now very happy >>>>>>>>> and busy by bringing our old modula-3 software to the new >>>>>>>>> century! >>>>>>>>> >>>>>>>>> Cordially, >>>>>>>>> >>>>>>>>> Renzo Orsini >>>>>>>>> >>>>>>>>> On Jan 21, 2007, at 0:33, Darko wrote: >>>>>>>>> >>>>>>>>>> The latest, 10.4.8, also the latest XCode, which I think >>>>>>>>>> updates gcc. You were addressing me weren't you? But Renzo >>>>>>>>>> might like to answer that question too. XCode weighs in at >>>>>>>>>> about 1G, by the way. >>>>>>>>>> >>>>>>>>>> On 21/01/2007, at 7:58 AM, Antony Hosking wrote: >>>>>>>>>> >>>>>>>>>>> What version of OSX are you using? >>>>>>>>>>> >>>>>>>>>>> On 20/01/2007, at 5:49 PM, Darko wrote: >>>>>>>>>>> >>>>>>>>>>>> No worries. I'm not familiar at all with those scripts. >>>>>>>>>>>> The problem you are having may be to do with not having >>>>>>>>>>>> the latest source, but it most probably has to do with >>>>>>>>>>>> the version of gcc that is active on your machine. C >>>>>>>>>>>> files are not compiled by cm3 but rather call gcc >>>>>>>>>>>> directly. I can't remember which version of gcc is the >>>>>>>>>>>> correct one, but mine currently is i686-apple-darwin8- >>>>>>>>>>>> gcc-4.0.1; also I can't remember the command line for >>>>>>>>>>>> changing gcc versions. Tony may be able to help re the >>>>>>>>>>>> correct version if 4.0.1 doesn't work. You may need to >>>>>>>>>>>> install the latest XCode from http://developer.apple.com >>>>>>>>>>>> if you don't have 4.01. >>>>>>>>>>>> >>>>>>>>>>>> I've cc'd the list because they're actually very helpful >>>>>>>>>>>> and my knowledge is limited... >>>>>>>>>>>> >>>>>>>>>>>> - Darko >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> On 21/01/2007, at 6:58 AM, Renzo Orsini wrote: >>>>>>>>>>>> >>>>>>>>>>>>> First of all, thank you very much for your immediate help! >>>>>>>>>>>>> >>>>>>>>>>>>> I downloaded the files and replaced the corresponding / >>>>>>>>>>>>> usr/local/cm3/bin files, >>>>>>>>>>>>> modified cm3.cfg by replacing INSTALL_ROOT = "/usr/ >>>>>>>>>>>>> local/cm3-i386/" with INSTALL_ROOT = "/usr/local/cm3/" >>>>>>>>>>>>> then in the full source (last version, 5.4.0) I did: >>>>>>>>>>>>> scripts/do-cm3-core.sh buildship >>>>>>>>>>>>> this is the result: >>>>>>>>>>>>> >>>>>>>>>>>>> root#./do-cm3-core.sh buildship >>>>>>>>>>>>> CM3C = >>>>>>>>>>>>> /Users/orsini/cm3/cm3-src-all-5.4.0/scripts/pkgmap.sh - >>>>>>>>>>>>> c "cm3 -build -DROOT='/Users/orsini/cm3/cm3-src- >>>>>>>>>>>>> all-5.4.0' && cm3 -ship -DROOT='/Users/orsini/cm3/cm3- >>>>>>>>>>>>> src-all-5.4.0' " m3gc-simple m3core libm3 >>>>>>>>>>>>> patternmatching m3middle m3linker m3front m3quake m3cc >>>>>>>>>>>>> cm3 m3scanner m3tools m3cgcat m3cggen m3bundle >>>>>>>>>>>>> bitvector digraph parseparams realgeometry set slisp >>>>>>>>>>>>> sortedtableextras table-list tempfiles >>>>>>>>>>>>> === package /Users/orsini/cm3/cm3-src-all-5.4.0/m3-libs/ >>>>>>>>>>>>> m3gc-simple === >>>>>>>>>>>>> +++ cm3 -build -DROOT='/Users/orsini/cm3/cm3-src- >>>>>>>>>>>>> all-5.4.0' && cm3 -ship -DROOT='/Users/orsini/cm3/cm3- >>>>>>>>>>>>> src-all-5.4.0' +++ >>>>>>>>>>>>> --- building in I386_DARWIN --- >>>>>>>>>>>>> >>>>>>>>>>>>> new source -> compiling RTVM.c >>>>>>>>>>>>> new source -> compiling sysdeps.c >>>>>>>>>>>>> new source -> compiling accept.c >>>>>>>>>>>>> ../src/runtime/I386_DARWIN/accept.c: In function >>>>>>>>>>>>> 'm3_accept': >>>>>>>>>>>>> ../src/runtime/I386_DARWIN/accept.c:13: warning: >>>>>>>>>>>>> pointer targets in passing argument 3 of 'accept' >>>>>>>>>>>>> differ in signedness >>>>>>>>>>>>> new source -> compiling bind.c >>>>>>>>>>>>> new source -> compiling close.c >>>>>>>>>>>>> new source -> compiling connect.c >>>>>>>>>>>>> new source -> compiling dup.c >>>>>>>>>>>>> new source -> compiling dup2.c >>>>>>>>>>>>> new source -> compiling gethostbyaddr.c >>>>>>>>>>>>> new source -> compiling gethostbyname.c >>>>>>>>>>>>> new source -> compiling getpeername.c >>>>>>>>>>>>> ../src/runtime/I386_DARWIN/getpeername.c: In function >>>>>>>>>>>>> 'm3_getpeername': >>>>>>>>>>>>> ../src/runtime/I386_DARWIN/getpeername.c:13: warning: >>>>>>>>>>>>> pointer targets in passing argument 3 of 'getpeername' >>>>>>>>>>>>> differ in signedness >>>>>>>>>>>>> new source -> compiling getsockname.c >>>>>>>>>>>>> ../src/runtime/I386_DARWIN/getsockname.c: In function >>>>>>>>>>>>> 'm3_getsockname': >>>>>>>>>>>>> ../src/runtime/I386_DARWIN/getsockname.c:13: warning: >>>>>>>>>>>>> pointer targets in passing argument 3 of 'getsockname' >>>>>>>>>>>>> differ in signedness >>>>>>>>>>>>> new source -> compiling listen.c >>>>>>>>>>>>> new source -> compiling read.c >>>>>>>>>>>>> new source -> compiling recv.c >>>>>>>>>>>>> new source -> compiling recvfrom.c >>>>>>>>>>>>> ../src/runtime/I386_DARWIN/recvfrom.c: In function >>>>>>>>>>>>> 'm3_recvfrom': >>>>>>>>>>>>> ../src/runtime/I386_DARWIN/recvfrom.c:15: warning: >>>>>>>>>>>>> pointer targets in passing argument 6 of 'recvfrom' >>>>>>>>>>>>> differ in signedness >>>>>>>>>>>>> new source -> compiling select.c >>>>>>>>>>>>> new source -> compiling send.c >>>>>>>>>>>>> new source -> compiling sendto.c >>>>>>>>>>>>> new source -> compiling shutdown.c >>>>>>>>>>>>> new source -> compiling socket.c >>>>>>>>>>>>> new source -> compiling write.c >>>>>>>>>>>>> -> archiving libm3gcdefs.a >>>>>>>>>>>>> ld: common symbols not allowed with MH_DYLIB output >>>>>>>>>>>>> format with the -multi_module option >>>>>>>>>>>>> sysdeps.o definition of common _RTCSRC_FinishVM (size 16) >>>>>>>>>>>>> sysdeps.o definition of common _RTHeapRep_Fault (size 16) >>>>>>>>>>>>> /usr/bin/libtool: internal link edit command failed >>>>>>>>>>>>> --- shipping from I386_DARWIN --- >>>>>>>>>>>>> >>>>>>>>>>>>> . => /usr/local/cm3/pkg/m3gc-simple/I386_DARWIN >>>>>>>>>>>>> .M3EXPORTS libm3gcdefs.5.2.dylib"/Users/orsini/ >>>>>>>>>>>>> cm3/cm3-src-all-5.4.0/m3-libs/m3gc-simple/ >>>>>>>>>>>>> I386_DARWIN/.M3SHIP", line 3: quake runtime error: >>>>>>>>>>>>> unable to copy "libm3gcdefs.5.2.dylib" to "/usr/local/ >>>>>>>>>>>>> cm3/pkg/m3gc-simple/I386_DARWIN/libm3gcdefs.5.2.dylib": >>>>>>>>>>>>> errno=2 >>>>>>>>>>>>> >>>>>>>>>>>>> --procedure-- -line- -file--- >>>>>>>>>>>>> install_file -- >>>>>>>>>>>>> 3 /Users/orsini/cm3/cm3-src- >>>>>>>>>>>>> all-5.4.0/m3-libs/m3gc-simple/I386_DARWIN/.M3SHIP >>>>>>>>>>>>> >>>>>>>>>>>>> Fatal Error: package build failed >>>>>>>>>>>>> *** execution of failed *** >>>>>>>>>>>>> >>>>>>>>>>>>> ====== >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> I noticed that not all the .c files in .../m3-libs/m3gc- >>>>>>>>>>>>> simple/src/runtime/I386_DARWIN/ where compiled, but I >>>>>>>>>>>>> do not know if this is a normal behaviour. >>>>>>>>>>>>> >>>>>>>>>>>>> Thanks in advance for your time and patience! >>>>>>>>>>>>> >>>>>>>>>>>>> Cordially >>>>>>>>>>>>> >>>>>>>>>>>>> Renzo Orsini >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> On Jan 20, 2007, at 19:02, Darko wrote: >>>>>>>>>>>>> >>>>>>>>>>>>>> Have a look here: ftp://ftp.cs.purdue.edu/pub/hosking/ >>>>>>>>>>>>>> m3/I386_DARWIN/ >>>>>>>>>>>>>> >>>>>>>>>>>>>> There you'll find the bits you need for Mac Intel. >>>>>>>>>>>>>> Replace your existing cm3, cmcg and cm3.cfg with the >>>>>>>>>>>>>> ones there, then you can compile the basic libraries >>>>>>>>>>>>>> you need like m3core and libm3, but make sure you have >>>>>>>>>>>>>> the latest sources. >>>>>>>>>>>>>> >>>>>>>>>>>>>> I think they're the latest but Tony may have something >>>>>>>>>>>>>> more to say about that. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Darko. >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> On 21/01/2007, at 1:41 AM, Olaf Wagner wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>>> On Sat, Jan 20, 2007 at 03:05:55PM +0100, Renzo >>>>>>>>>>>>>>> Orsini wrote: >>>>>>>>>>>>>>>> Hello, >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> I installed cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz on >>>>>>>>>>>>>>>> an intel mac, then >>>>>>>>>>>>>>>> tried to a compile a Hello world program, but the >>>>>>>>>>>>>>>> compilation failed >>>>>>>>>>>>>>>> with the following message: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> pborsini:~/ProveModula3 orsini$ cm3 >>>>>>>>>>>>>>>> --- building in PPC_DARWIN --- >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> new source -> compiling Main.m3 >>>>>>>>>>>>>>>> "../Main.m3", line 4: warning: potentially unhandled >>>>>>>>>>>>>>>> exception: IO.Error >>>>>>>>>>>>>>>> 1 warning encountered >>>>>>>>>>>>>>>> Main.ms:12:no such instruction: `mflr r0' >>>>>>>>>>>>>>>> Main.ms:13:no such instruction: `stmw r30,-8(r1)' >>>>>>>>>>>>>>>> Main.ms:14:no such instruction: `stw r0,8(r1)' >>>>>>>>>>>>>>>> Main.ms:15:no such instruction: `stwu r1,-96(r1)' >>>>>>>>>>>>>>>> Main.ms:16:no such instruction: `mr r30,r1' >>>>>>>>>>>>>>>> Main.ms:17:no such instruction: `bcl >>>>>>>>>>>>>>>> 20,31,"L00000000001$pb"' >>>>>>>>>>>>>>>> ... >>>>>>>>>>>>>>>> .... >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> So I suppose there is PPC code to assemble and the >>>>>>>>>>>>>>>> Rosetta emulator >>>>>>>>>>>>>>>> for PPC on intel macs cannot do anything for this! >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Since I would like to port the Fibonacci language >>>>>>>>>>>>>>>> for databases, >>>>>>>>>>>>>>>> which is written in Modula-3, if I understand well >>>>>>>>>>>>>>>> the situation I >>>>>>>>>>>>>>>> should port the Modula-3 compiler by cross compiling >>>>>>>>>>>>>>>> it on a PPC mac, >>>>>>>>>>>>>>>> or something like that. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> I am asking you if you know about some effort of >>>>>>>>>>>>>>>> porting Modula-3 on >>>>>>>>>>>>>>>> intel macs, or at least if you let me know if this >>>>>>>>>>>>>>>> operation is >>>>>>>>>>>>>>>> possible (and also reasonably feasible in terms of >>>>>>>>>>>>>>>> time and >>>>>>>>>>>>>>>> expertise, given my teaching duties and my >>>>>>>>>>>>>>>> difficulties with >>>>>>>>>>>>>>>> assembler languages!), and, if so, if you can point >>>>>>>>>>>>>>>> me to the correct >>>>>>>>>>>>>>>> documentation to start with. Of course I will be >>>>>>>>>>>>>>>> very glad to give >>>>>>>>>>>>>>>> back to the community the result if I succeed! >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Thank you very much for your attention. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Cordially >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Renzo Orsini >>>>>>>>>>>>>>>> Associate Professor >>>>>>>>>>>>>>>> Dipartimento di Informatica >>>>>>>>>>>>>>>> Universita' Ca' Foscari di Venezia >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Well, I wouldn't have thought that you were even able >>>>>>>>>>>>>>> to install >>>>>>>>>>>>>>> the cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz system on an >>>>>>>>>>>>>>> Intel machine; >>>>>>>>>>>>>>> it's surely not supposed to run on one. It shouldn't >>>>>>>>>>>>>>> be too >>>>>>>>>>>>>>> difficult to get a port of the latest CM3 for Darwin >>>>>>>>>>>>>>> on Intel >>>>>>>>>>>>>>> processors; I even think somebody was already working >>>>>>>>>>>>>>> on it, >>>>>>>>>>>>>>> but I don't really remember who, so I forward your >>>>>>>>>>>>>>> mail to >>>>>>>>>>>>>>> the m3devel list, in case others have already started >>>>>>>>>>>>>>> such an >>>>>>>>>>>>>>> effort. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Olaf >>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>> elego Software Solutions >>>>>>>>>>>>>>> GmbH HRB 77719 >>>>>>>>>>>>>>> Olaf Wagner E-Mail: wagner >>>>>>>>>>>>>>> (at)elego.de >>>>>>>>>>>>>>> Ohmstra?e 9 Tel: +49 30 >>>>>>>>>>>>>>> 40 04 19 29 >>>>>>>>>>>>>>> 10179 Berlin Fax: +49 30 >>>>>>>>>>>>>>> 23 45 86 95 >>>>>>>>>>>>>>> Cranachstra?e 7 Tel: +49 30 >>>>>>>>>>>>>>> 85 58 01 81 >>>>>>>>>>>>>>> 12157 Berlin Fax: +49 30 >>>>>>>>>>>>>>> 85 58 01 88 >>>>>>>>>>>>>>> ------------------> WWW: http://www.elego-software- >>>>>>>>>>>>>>> solutions.com >>>>>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>>>>> M3devel mailing list >>>>>>>>>>>>>>> M3devel at elegosoft.com >>>>>>>>>>>>>>> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/ >>>>>>>>>>>>>>> m3devel >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>> M3devel mailing list >>>>>>>>>>>> M3devel at elegosoft.com >>>>>>>>>>>> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel >>>>>>>>>>> >>>>>>>>>>> Antony Hosking | Associate Professor >>>>>>>>>>> Dept of Computer Sciences | Office: (765) 494-6001 >>>>>>>>>>> Purdue University | Mobile: (765) 427-5484 >>>>>>>>>>> 250 N. University Street | hosking at cs.purdue.edu >>>>>>>>>>> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/ >>>>>>>>>>> ~hosking >>>>>>>>>>> _--_|\ >>>>>>>>>>> / \ >>>>>>>>>>> \_.--._/ ) >>>>>>>>>>> v / >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> Antony Hosking | Associate Professor >>>>>>>> Dept of Computer Sciences | Office: (765) 494-6001 >>>>>>>> Purdue University | Mobile: (765) 427-5484 >>>>>>>> 250 N. University Street | hosking at cs.purdue.edu >>>>>>>> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/ >>>>>>>> ~hosking >>>>>>>> _--_|\ >>>>>>>> / \ >>>>>>>> \_.--._/ ) >>>>>>>> v / >>>>>>>> >>>>>>> >>>>>> >>>>>> Antony Hosking | Associate Professor >>>>>> Dept of Computer Sciences | Office: (765) 494-6001 >>>>>> Purdue University | Mobile: (765) 427-5484 >>>>>> 250 N. University Street | hosking at cs.purdue.edu >>>>>> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking >>>>>> _--_|\ >>>>>> / \ >>>>>> \_.--._/ ) >>>>>> v / >>>>>> >>>>> >>>> >>>> Antony Hosking | Associate Professor >>>> Dept of Computer Sciences | Office: (765) 494-6001 >>>> Purdue University | Mobile: (765) 427-5484 >>>> 250 N. University Street | hosking at cs.purdue.edu >>>> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking >>>> _--_|\ >>>> / \ >>>> \_.--._/ ) >>>> v / >>>> >>> >> >> Antony Hosking | Associate Professor >> Dept of Computer Sciences | Office: (765) 494-6001 >> Purdue University | Mobile: (765) 427-5484 >> 250 N. University Street | hosking at cs.purdue.edu >> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking >> _--_|\ >> / \ >> \_.--._/ ) >> v / >> >> >> >> _______________________________________________ >> M3devel mailing list >> M3devel at elegosoft.com >> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel > > Antony Hosking | Associate Professor > Dept of Computer Sciences | Office: (765) 494-6001 > Purdue University | Mobile: (765) 427-5484 > 250 N. University Street | hosking at cs.purdue.edu > West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking > _--_|\ > / \ > \_.--._/ ) > v / > > Antony Hosking | Associate Professor Dept of Computer Sciences | Office: (765) 494-6001 Purdue University | Mobile: (765) 427-5484 250 N. University Street | hosking at cs.purdue.edu West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking _--_|\ / \ \_.--._/ ) v / From jayk123 at hotmail.com Mon Jan 22 04:00:00 2007 From: jayk123 at hotmail.com (j k) Date: Mon, 22 Jan 2007 03:00:00 +0000 Subject: [M3devel] cm3 5.5 for Windows min test release Message-ID: Can folks try from ~jkrell on m3.elegosoft.com: cm3-min-WIN32-NT386-d5.3.2-symbols.tgz cm3-min-WIN32-NT386-d5.3.2.tgz Really they are version d5.5.0. There is some wierd problem where I don't have execute permissions on the extracted files, so: tar xvfz cm3-min-WIN32-NT386-d5.3.2.tgz cacls . /t /e /g everyone:f .\cminstall You will only be prompted for where to install, which defaults to c:\cm3. When using cm3, cl and link need to be in %PATH%, and %LIB% and possibly %INCLUDE% need to be set. Visual C++ includes a batch file to set these, named for example vcvars32.bat. cd \programs files dir /s/b v*bat will find it and there is a shortcut to it on the start menu. This also mitigates the problems with spaces in file paths (which were otherwise mitigated by converting to short names, which do not guaranteeably exist). On computers without Visual C++ 2005 installed and without the .NET Runtime 2.0, download and run the setup for the Visual C++ 8.0 runtime: -- vcredist_x86.exe -- from http://www.microsoft.com/downloads/details.aspx?familyid=32BC1BEE-A3F9-4C13-9C99-220B62A191EE - Jay _________________________________________________________________ Valentine?s Day -- Shop for gifts that spell L-O-V-E at MSN Shopping http://shopping.msn.com/content/shp/?ctId=8323,ptnrid=37,ptnrdata=24095&tcode=wlmtagline From jayk123 at hotmail.com Mon Jan 22 04:00:00 2007 From: jayk123 at hotmail.com (j k) Date: Mon, 22 Jan 2007 03:00:00 +0000 Subject: [M3devel] cm3 5.5 for Windows min test release Message-ID: Can folks try from ~jkrell on m3.elegosoft.com: cm3-min-WIN32-NT386-d5.3.2-symbols.tgz cm3-min-WIN32-NT386-d5.3.2.tgz Really they are version d5.5.0. There is some wierd problem where I don't have execute permissions on the extracted files, so: tar xvfz cm3-min-WIN32-NT386-d5.3.2.tgz cacls . /t /e /g everyone:f .\cminstall You will only be prompted for where to install, which defaults to c:\cm3. When using cm3, cl and link need to be in %PATH%, and %LIB% and possibly %INCLUDE% need to be set. Visual C++ includes a batch file to set these, named for example vcvars32.bat. cd \programs files dir /s/b v*bat will find it and there is a shortcut to it on the start menu. This also mitigates the problems with spaces in file paths (which were otherwise mitigated by converting to short names, which do not guaranteeably exist). On computers without Visual C++ 2005 installed and without the .NET Runtime 2.0, download and run the setup for the Visual C++ 8.0 runtime: -- vcredist_x86.exe -- from http://www.microsoft.com/downloads/details.aspx?familyid=32BC1BEE-A3F9-4C13-9C99-220B62A191EE - Jay _________________________________________________________________ Valentine?s Day -- Shop for gifts that spell L-O-V-E at MSN Shopping http://shopping.msn.com/content/shp/?ctId=8323,ptnrid=37,ptnrdata=24095&tcode=wlmtagline From jayk123 at hotmail.com Mon Jan 22 04:03:12 2007 From: jayk123 at hotmail.com (j k) Date: Mon, 22 Jan 2007 03:03:12 +0000 Subject: [M3devel] improving or removing cminstall? Message-ID: Are folks interested in refining the install? For example, on Windows, tar and gzip are both required and carried. That seems redundant. Make it just a self extracting .zip? Or is there any "self extracting" mechanism that works with bzip2? bzip2 always gets betters compression for me than gzip. Or just cut cminstall on Windows? All it does is prompt for an install location and tar xzf there. It provides no real value, yet we pay about 4 meg (uncompressed) for cminstall.exe + tar.exe + gzip.exe + cygwin.dll. I'll try some of these out. - Jay _________________________________________________________________ Turn searches into helpful donations. Make your search count. http://click4thecause.live.com/search/charity/default.aspx?source=hmemtagline_donation&FORM=WLMTAG From jayk123 at hotmail.com Mon Jan 22 05:57:50 2007 From: jayk123 at hotmail.com (j k) Date: Mon, 22 Jan 2007 04:57:50 +0000 Subject: [M3devel] cminstall vs. size of distribution Message-ID: I don't see my earlier mail yet, but this is trivial to find out, what the cost of the almost do-nothing installer is on Windows: min.tgz 4.6 meg that is system.tgz + tar/gzip/cygwin.dll/cminstall system.tgz which is really all you need 3.5meg system.tar.bz2 2.9 meg system.zip 3.6 meg making a .zip self extracting adds about 130k. Does a megabyte matter these days? - Jay _________________________________________________________________ Type your favorite song.? Get a customized station.? Try MSN Radio powered by Pandora. http://radio.msn.com/?icid=T002MSN03A07001 From wagner at elegosoft.com Mon Jan 22 10:16:18 2007 From: wagner at elegosoft.com (Olaf Wagner) Date: Mon, 22 Jan 2007 10:16:18 +0100 (CET) Subject: [M3devel] Re: porting m3 on intel mac In-Reply-To: <4E6E0525-4E9C-4819-BD6A-A0F280F58A47@cs.purdue.edu> References: <8A58B35B-22CD-42D5-BA19-5FBF5D3CF5CD@dsi.unive.it> <20070120164128.GA27790@elegosoft.com> <52EA8FC9-4E33-40FF-B041-5CEAE83BBDE7@darko.org> <6307E3CC-8E5F-4317-8A8E-7EADE20FEE54@darko.org> <1521F74A-AF0F-48C4-B0AA-4E7DB321DA62@cs.purdue.edu> <23B90155-784C-4A47-8EAD-1451AEC4C1B9@darko.org> <69645CDA-E215-4B81-BAEE-C45EC496E4C6@dsi.unive.it> <5C13EB47-D241-438A-BE6F-BBD30AF002A4@dsi.unive.it> <9125FF3E-5D5D-4DE0-95DC-DCD997D198C1@cs.purdue.edu> <4206B526-A4CF-430B-AE8C-086D27615A79@dsi.unive.it> <722DDD36-2973-44B2-91BF-8487DA744D6C@cs.purdue.edu> <6607A270-8264-4419-AAF2-323833523695@cs.purdue.edu> <70415358-BF8A-45E8-9CA8-89DBDDA24148@cs.purdue.edu> <4E6E0525-4E9C-4819-BD6A-A0F280F58A47@cs.purdue.edu> Message-ID: <51447.194.138.127.36.1169457378.squirrel@mail.elegosoft.com> On Sun, January 21, 2007 11:58 pm, Antony Hosking wrote: > P.S. One more thing: Can you please rebuild to use native threads > on Mac OSX by giving the flag "-DPTHREAD" to your build? You would > do this by defining: > > export CM3="cm3 -DPTHREAD" > > before invoking "do-cm3-std.sh buildship". > > My suspicion is that the user-level POSIX threading is broken > somehow. You should try this before downgrading XCode to 2.3 since > the problems of "indirect jmp" are just warnings as far as I can tell. Hi Antony, is the I386_DARWIN target code already included in CM3? We should also try to get all the information that is currently only floating through the mailing lists documented for all other users and make the I386_DARWIN tarballs available from the CM3 web site. Perhaps we should write up a new page about threading, document all the possibilities and problems, and change the default for certain platforms? If we get all the facts, somebody from the elego team may be available for help with the docs (Ulrike/Arne?). Olaf -- Olaf Wagner elego Software Solutions GmbH, Berlin, Germany From hosking at cs.purdue.edu Mon Jan 22 15:26:29 2007 From: hosking at cs.purdue.edu (Tony Hosking) Date: Mon, 22 Jan 2007 09:26:29 -0500 Subject: [M3devel] Re: porting m3 on intel mac In-Reply-To: <51447.194.138.127.36.1169457378.squirrel@mail.elegosoft.com> References: <8A58B35B-22CD-42D5-BA19-5FBF5D3CF5CD@dsi.unive.it> <20070120164128.GA27790@elegosoft.com> <52EA8FC9-4E33-40FF-B041-5CEAE83BBDE7@darko.org> <6307E3CC-8E5F-4317-8A8E-7EADE20FEE54@darko.org> <1521F74A-AF0F-48C4-B0AA-4E7DB321DA62@cs.purdue.edu> <23B90155-784C-4A47-8EAD-1451AEC4C1B9@darko.org> <69645CDA-E215-4B81-BAEE-C45EC496E4C6@dsi.unive.it> <5C13EB47-D241-438A-BE6F-BBD30AF002A4@dsi.unive.it> <9125FF3E-5D5D-4DE0-95DC-DCD997D198C1@cs.purdue.edu> <4206B526-A4CF-430B-AE8C-086D27615A79@dsi.unive.it> <722DDD36-2973-44B2-91BF-8487DA744D6C@cs.purdue.edu> <6607A270-8264-4419-AAF2-323833523695@cs.purdue.edu> <70415358-BF8A-45E8-9CA8-89DBDDA24148@cs.purdue.edu> <4E6E0525-4E9C-4819-BD6A-A0F280F58A47@cs.purdue.edu> <51447.194.138.127.36.1169457378.squirrel@mail.elegosoft.com> Message-ID: <138C6D50-EBE5-48F5-BDCD-89429B18427A@cs.purdue.edu> Yes, I386_DARWIN code is already in CVS. Really, there shouldn't be problems with user-level threading -- I did confirm that it worked for me, but I wonder if there have been library changes with later XCode updates. Anyway, I can try testing with XCode 2.4 sometime, but I don't want to break my existing Intel installation. On Jan 22, 2007, at 4:16 AM, Olaf Wagner wrote: > > On Sun, January 21, 2007 11:58 pm, Antony Hosking wrote: >> P.S. One more thing: Can you please rebuild to use native threads >> on Mac OSX by giving the flag "-DPTHREAD" to your build? You would >> do this by defining: >> >> export CM3="cm3 -DPTHREAD" >> >> before invoking "do-cm3-std.sh buildship". >> >> My suspicion is that the user-level POSIX threading is broken >> somehow. You should try this before downgrading XCode to 2.3 since >> the problems of "indirect jmp" are just warnings as far as I can >> tell. > > Hi Antony, > > is the I386_DARWIN target code already included in CM3? We should > also try > to get all the information that is currently only floating through the > mailing lists documented for all other users and make the I386_DARWIN > tarballs available from the CM3 web site. Perhaps we should write up > a new page about threading, document all the possibilities and > problems, > and change the default for certain platforms? > > If we get all the facts, somebody from the elego team may be available > for help with the docs (Ulrike/Arne?). > > Olaf > -- > Olaf Wagner > elego Software Solutions GmbH, Berlin, Germany Antony Hosking | Associate Professor Dept of Computer Science | Office: +1 765 494-6001 Purdue University | Mobile: +1 765 427-5484 250 N. University Street | Email: hosking at cs.purdue.edu West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking _--_|\ / \ \_.--._/ ) v / From hosking at cs.purdue.edu Mon Jan 22 20:19:37 2007 From: hosking at cs.purdue.edu (Tony Hosking) Date: Mon, 22 Jan 2007 14:19:37 -0500 Subject: [M3devel] Re: porting m3 on intel mac In-Reply-To: <701DAE45-84AC-4936-AB7C-563C26F1722C@dsi.unive.it> References: <8A58B35B-22CD-42D5-BA19-5FBF5D3CF5CD@dsi.unive.it> <20070120164128.GA27790@elegosoft.com> <52EA8FC9-4E33-40FF-B041-5CEAE83BBDE7@darko.org> <6307E3CC-8E5F-4317-8A8E-7EADE20FEE54@darko.org> <1521F74A-AF0F-48C4-B0AA-4E7DB321DA62@cs.purdue.edu> <23B90155-784C-4A47-8EAD-1451AEC4C1B9@darko.org> <69645CDA-E215-4B81-BAEE-C45EC496E4C6@dsi.unive.it> <5C13EB47-D241-438A-BE6F-BBD30AF002A4@dsi.unive.it> <9125FF3E-5D5D-4DE0-95DC-DCD997D198C1@cs.purdue.edu> <4206B526-A4CF-430B-AE8C-086D27615A79@dsi.unive.it> <722DDD36-2973-44B2-91BF-8487DA744D6C@cs.purdue.edu> <6607A270-8264-4419-AAF2-323833523695@cs.purdue.edu> <70415358-BF8A-45E8-9CA8-89DBDDA24148@cs.purdue.edu> <4E6E0525-4E9C-4819-BD6A-A0F280F58A47@cs.purdue.edu> <70! 1DAE45-84AC-4936-AB7C-563C26F1722C@dsi.unive.it> Message-ID: <241F98D6-543B-43A8-BD97-0BAE18A53C94@cs.purdue.edu> OK. So we have narrowed down the problem with stubgen, etc., to being something in the user-level (POSIX) threads system, since it appears that system-level (PTHREAD) threading now works. The X11 issue sounds like a new one, which will need to be dealt with. On Jan 22, 2007, at 1:15 PM, Renzo Orsini wrote: > On Jan 22, 2007, at 15:24, Tony Hosking wrote: > >> It looks like you forgot to run "do-cm3-std.sh realclean" before >> runnning "do-cm3-std.sh buildship". > > Yes! (I did not know I need to do it) > > The good news is that everything has been compiled now, even the > packages that did not compiled before. (If it could be useful, I > can send a ~200KB build.log). > > The bad news is that x-windows programs (like fisheye) produces: > > *** > *** runtime error: > *** Segmentation violation - possible attempt to dereference NIL > *** > > (I started X11, and from xterm, after setting PATH and > DYLD_LIBRARY_PATH tried a few of them, e.g. fisheye) > > Renzo > >> >> On Jan 22, 2007, at 2:57 AM, Renzo Orsini wrote: >> >>> Here is the result of compiling with native thread: >>> >>> pborsini:~/modula3/cvsstuff/cm3/scripts root# export CM3="cm3 - >>> DPTHREAD" >>> pborsini:~/modula3/cvsstuff/cm3/scripts root# ./do-cm3-std.sh >>> CM3C = >>> /Users/orsini/modula3/cvsstuff/cm3/scripts/pkgmap.sh -c "cm3 - >>> DPTHREAD -build -override -DROOT='/Users/orsini/modula3/cvsstuff/ >>> cm3' " m3gc-simple m3core libm3 patternmatching m3middle m3quake >>> m3scanner m3tools m3cgcat m3cggen m3bundle arithmetic bitvector >>> digraph parseparams realgeometry set slisp sortedtableextras >>> table-list tempfiles tcp udp libsio libbuf debug listfuncs >>> embutils m3tk-misc http binIO commandrw m3tk mtex m3totex >>> m3tohtml m3scan m3markup m3browser cmpdir cmpfp dirfp uniq netobj >>> netobjd stubgen events rdwr sharedobj sharedobjgen odbc >>> postgres95 db smalldb stable stablegen X11R4 ui PEX vbtkit cmvbt >>> jvideo videovbt web formsvbtpixmaps formsvbt formsview formsedit >>> codeview mg mgkit opengl anim3D zeus m3zume synloc synex metasyn >>> recordheap rehearsecode replayheap showheap shownew showthread >>> cube calculator fisheye >>> === package /Users/orsini/modula3/cvsstuff/cm3/m3-libs/m3gc- >>> simple === >>> +++ cm3 -DPTHREAD -build -override -DROOT='/Users/orsini/modula3/ >>> cvsstuff/cm3' +++ >>> --- building in I386_DARWIN --- >>> >>> unable to read ../src/m3overrides, options "-override" and "-x" >>> ignored. >>> ==> /Users/orsini/modula3/cvsstuff/cm3/m3-libs/m3gc-simple done >>> >>> === package /Users/orsini/modula3/cvsstuff/cm3/m3-libs/m3core === >>> +++ cm3 -DPTHREAD -build -override -DROOT='/Users/orsini/modula3/ >>> cvsstuff/cm3' +++ >>> --- building in I386_DARWIN --- >>> >>> new source -> compiling ThreadPThread.m3 >>> ThreadPThread.ms:13103:indirect jmp without `*' >>> ThreadPThread.ms:13118:indirect jmp without `*' >>> ThreadPThread.ms:14483:indirect jmp without `*' >>> ... (etc.) >>> ThreadPThread.ms:14498:indirect jmp without `*' >>> ThreadPThread.ms:14513:indirect jmp without `*' >>> ThreadPThread.ms:14528:indirect jmp without `*' >>> new exporters -> recompiling RTHooks.i3 >>> new exporters -> recompiling RTOS.i3 >>> new exporters -> recompiling Thread.i3 >>> new exporters -> recompiling Scheduler.i3 >>> new exporters -> recompiling SchedulerPosix.i3 >>> new exporters -> recompiling ThreadF.i3 >>> new "RTHooks.io" -> archiving libm3core.a >>> ==> /Users/orsini/modula3/cvsstuff/cm3/m3-libs/m3core done >>> >>> === package /Users/orsini/modula3/cvsstuff/cm3/m3-libs/libm3 === >>> +++ cm3 -DPTHREAD -build -override -DROOT='/Users/orsini/modula3/ >>> cvsstuff/cm3' +++ >>> --- building in I386_DARWIN --- >>> >>> new "/Users/orsini/modula3/cvsstuff/cm3/m3-libs/m3core/ >>> I386_DARWIN/libm3core.a" -> archiving libm3.a >>> >>> Fatal Error: incomplete library >>> >>> ThreadPosix.i3: missing object types: _t1541f475 >>> imported by: TimeStamp.m3 >>> *** execution of failed *** >>> >>> ============= >>> >>> Perhaps should I clean everything (how?) and then start again? >>> >>> And for what concern downgrading, if it could help I will do it. >>> >>> Renzo >>> >>> On Jan 21, 2007, at 23:58, Antony Hosking wrote: >>> >>>> P.S. One more thing: Can you please rebuild to use native >>>> threads on Mac OSX by giving the flag "-DPTHREAD" to your >>>> build? You would do this by defining: >>>> >>>> export CM3="cm3 -DPTHREAD" >>>> >>>> before invoking "do-cm3-std.sh buildship". >>>> >>>> My suspicion is that the user-level POSIX threading is broken >>>> somehow. You should try this before downgrading XCode to 2.3 >>>> since the problems of "indirect jmp" are just warnings as far as >>>> I can tell. >>>> >>>> >>>> On 21/01/2007, at 5:40 PM, Antony Hosking wrote: >>>> >>>>> PS: It looks like there are issues with the XCode 2.4.x >>>>> assembler: >>>>> >>>>> http://www.mail-archive.com/fink-devel at lists.sourceforge.net/ >>>>> msg14326.html >>>>> >>>>> Let me see what else I can dig up. >>>>> >>>>> On 21/01/2007, at 5:32 PM, Antony Hosking wrote: >>>>> >>>>>> On 21/01/2007, at 5:06 PM, Renzo Orsini wrote: >>>>>> >>>>>>> >>>>>>> On Jan 21, 2007, at 22:57, Antony Hosking wrote: >>>>>>> >>>>>>>> For some reason your .stabs entries are different than mine, >>>>>>>> but otherwise the assembler files are the same. Are you >>>>>>>> using the cm3cg and cm3.cfg from my ftp site? >>>>>>> >>>>>>> Yes, downloaded a few hours ago. >>>>>>> >>>>>>> >>>>>>>> Here is the version of the assembler that I have on my >>>>>>>> Intel Mac: >>>>>>>> >>>>>>>> Apple Computer, Inc. version cctools-590.42.1.obj~1, GNU >>>>>>>> assembler version 1.38 >>>>>>> >>>>>>> The mine is: >>>>>>> >>>>>>> Apple Computer, Inc. version cctools-622.5.obj~13, GNU >>>>>>> assembler version 1.38 >>>>>>> (If it useful, my Xcode is 2.4.1, with Xcode IDE: 762.0, >>>>>>> Xcode Core: 762.0, ToolSupport: 764.0, [From About XCode menu]) >>>>>>> >>>>>> >>>>>> Hmmm -- different versions of the assembler. Probably some >>>>>> flag needs adjusting. >>>>>> >>>>>>> >>>>>>> >>>>>>>> >>>>>>>> With respect to zeus, can you build with -verbose in the >>>>>>>> zeus directory and send me the output? Sounds like one of >>>>>>>> the tools is not getting built properly. >>>>>>>> >>>>>>> >>>>>>> Ok, I am sending it as attachment >>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>>> Sorry, wrong option. Please run with -commands. I suspect >>>>>> stubgen is failing for you. >>>>>> >>>>>> >>>>>>> Renzo >>>>>>> >>>>>>> >>>>>>>> On 21/01/2007, at 4:47 PM, Renzo Orsini wrote: >>>>>>>> >>>>>>>>> You can find in the attachment the program and the >>>>>>>>> compilation. >>>>>>>>> >>>>>>>>> Renzo >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> On Jan 21, 2007, at 22:34, Antony Hosking wrote: >>>>>>>>> >>>>>>>>>> >>>>>>>>>> On 21/01/2007, at 4:27 PM, Renzo Orsini wrote: >>>>>>>>>> >>>>>>>>>>> On Jan 21, 2007, at 21:49, Antony Hosking wrote: >>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> On 21/01/2007, at 7:59 AM, Renzo Orsini wrote: >>>>>>>>>>>> >>>>>>>>>>>>> Hello and lot of thanks! >>>>>>>>>>>>> >>>>>>>>>>>>> Everything is working really fine! >>>>>>>>>>>>> The configuration: MacBookPro, MacOSX 10.4.8, XCode >>>>>>>>>>>>> 2.4.1 (gcc 4.0.1), X11 installed, latest cm3 sources >>>>>>>>>>>>> (with anonymous CVS), >>>>>>>>>>>>> The process: >>>>>>>>>>>>> 1. unpacked cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz >>>>>>>>>>>>> 2. installed as super-user (every answer left as >>>>>>>>>>>>> default, the only problem is the fact that motif is >>>>>>>>>>>>> missing, ignoring) >>>>>>>>>>>>> 3. replacing cm3, cm3.cfg, cm3cg from ftp:// >>>>>>>>>>>>> ftp.cs.purdue.edu/pub/hosking/m3/I386_DARWIN >>>>>>>>>>>>> 3. running as su: >>>>>>>>>>>>> do-cm3-core.sh buildship >>>>>>>>>>>>> install-cm3-compiler.sh upgrade >>>>>>>>>>>>> do-cm3-std.sh buildship >>>>>>>>>>>>> everything is ok a part from producing about a zillion >>>>>>>>>>>>> of assembler (?) warnings ("xxx.ms:nnn:indirect jmp >>>>>>>>>>>>> without `*'), >>>>>>>>>>>>> and failing at the end the compilation of package zeus >>>>>>>>>>>>> (which I suppose is an old issue) >>>>>>>>>>>> >>>>>>>>>>>> That's odd since my builds go through cleanly. >>>>>>>>>>> >>>>>>>>>>> This is an example of the strange "indirect jump" message: >>>>>>>>>>> >>>>>>>>>>> pborsini:~/ProveModula3 orsini$ cat Main.m3 >>>>>>>>>>> MODULE Main; IMPORT IO; BEGIN IO.Put("Hello World\n"); >>>>>>>>>>> END Main. >>>>>>>>>>> pborsini:~/ProveModula3 orsini$ cm3 >>>>>>>>>>> --- building in I386_DARWIN --- >>>>>>>>>>> new source -> compiling Main.m3 >>>>>>>>>>> Main.ms:101:indirect jmp without `*' >>>>>>>>>>> -> linking prog >>>>>>>>>>> _m3main.ms:74:indirect jmp without `*' >>>>>>>>>>> _m3main.ms:89:indirect jmp without `*' >>>>>>>>>>> _m3main.ms:108:indirect jmp without `*' >>>>>>>>>>> pborsini:~/ProveModula3 orsini$ ./I386_DARWIN/prog >>>>>>>>>>> Hello World >>>>>>>>>>> >>>>>>>>>>> maybe there is some problem with the linker parameters, >>>>>>>>>>> however the progrum runs ok. >>>>>>>>>> >>>>>>>>>> Can you compile with "-keep" and send me the relevant .ms >>>>>>>>>> file? I can compare with mine. >>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> For what concerns zeus: the following is the output of cm3: >>>>>>>>>>> >>>>>>>>>>> === package /Users/orsini/modula3/cvsstuff/cm3/m3-ui/zeus >>>>>>>>>>> === >>>>>>>>>>> +++ cm3 -build -override -DROOT='/Users/orsini/modula3/ >>>>>>>>>>> cvsstuff/cm3' +++ >>>>>>>>>>> --- building in I386_DARWIN --- >>>>>>>>>>> >>>>>>>>>>> new source -> compiling RemoteView_T_v1.i3 >>>>>>>>>>> "../I386_DARWIN/RemoteView_T_v1.i3", line 1: syntax >>>>>>>>>>> error: missing INTERFACE or MODULE keyword >>>>>>>>>>> "../I386_DARWIN/RemoteView_T_v1.i3", line 1: unable to >>>>>>>>>>> find interface () >>>>>>>>>>> "../I386_DARWIN/RemoteView_T_v1.i3", line 1: warning: >>>>>>>>>>> file name (RemoteView_T_v1.i3) doesn't match module name >>>>>>>>>>> () >>>>>>>>>>> 2 errors and 1 warning encountered >>>>>>>>>>> new source -> compiling RemoteView_T_v1.m3 >>>>>>>>>>> "../I386_DARWIN/RemoteView_T_v1.m3", line 1: syntax >>>>>>>>>>> error: missing INTERFACE or MODULE keyword >>>>>>>>>>> "../I386_DARWIN/RemoteView_T_v1.m3", line 1: unable to >>>>>>>>>>> find interface () >>>>>>>>>>> "../I386_DARWIN/RemoteView_T_v1.m3", line 1: warning: >>>>>>>>>>> file name (RemoteView_T_v1.m3) doesn't match module name >>>>>>>>>>> () >>>>>>>>>>> 2 errors and 1 warning encountered >>>>>>>>>>> compilation failed => not building library "libm3zeus.a" >>>>>>>>>>> Fatal Error: package build failed >>>>>>>>>>> *** execution of failed *** >>>>>>>>>>> >>>>>>>>>>> (and the files RemoteView_T_v1.i3 and RemoteView_T_v1.m3 >>>>>>>>>>> are empty in I386_DARWIN, and they do not exists in src) >>>>>>>>>>> >>>>>>>>>>> Several other packages cannot be compiled, like many >>>>>>>>>>> obliq ones, webvt, June and mentor. >>>>>>>>>>> >>>>>>>>>>> However the compiler seems to work for compiling my >>>>>>>>>>> stuff, altough I have to make a few corrections and >>>>>>>>>>> debugging. >>>>>>>>>> >>>>>>>>>> This sounds problematic since it implies that the >>>>>>>>>> generators for those files are not working correctly. (If >>>>>>>>>> you run with "-commands" you'll see which generator >>>>>>>>>> programs are being used. >>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Thanks, >>>>>>>>>>> >>>>>>>>>>> Renzo >>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> So, thank again to all and each of you, I am now very >>>>>>>>>>>>> happy and busy by bringing our old modula-3 software to >>>>>>>>>>>>> the new century! >>>>>>>>>>>>> >>>>>>>>>>>>> Cordially, >>>>>>>>>>>>> >>>>>>>>>>>>> Renzo Orsini >>>>>>>>>>>>> >>>>>>>>>>>>> On Jan 21, 2007, at 0:33, Darko wrote: >>>>>>>>>>>>> >>>>>>>>>>>>>> The latest, 10.4.8, also the latest XCode, which I >>>>>>>>>>>>>> think updates gcc. You were addressing me weren't you? >>>>>>>>>>>>>> But Renzo might like to answer that question too. >>>>>>>>>>>>>> XCode weighs in at about 1G, by the way. >>>>>>>>>>>>>> >>>>>>>>>>>>>> On 21/01/2007, at 7:58 AM, Antony Hosking wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>>> What version of OSX are you using? >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> On 20/01/2007, at 5:49 PM, Darko wrote: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> No worries. I'm not familiar at all with those >>>>>>>>>>>>>>>> scripts. The problem you are having may be to do >>>>>>>>>>>>>>>> with not having the latest source, but it most >>>>>>>>>>>>>>>> probably has to do with the version of gcc that is >>>>>>>>>>>>>>>> active on your machine. C files are not compiled by >>>>>>>>>>>>>>>> cm3 but rather call gcc directly. I can't remember >>>>>>>>>>>>>>>> which version of gcc is the correct one, but mine >>>>>>>>>>>>>>>> currently is i686-apple-darwin8-gcc-4.0.1; also I >>>>>>>>>>>>>>>> can't remember the command line for changing gcc >>>>>>>>>>>>>>>> versions. Tony may be able to help re the correct >>>>>>>>>>>>>>>> version if 4.0.1 doesn't work. You may need to >>>>>>>>>>>>>>>> install the latest XCode from http:// >>>>>>>>>>>>>>>> developer.apple.com if you don't have 4.01. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> I've cc'd the list because they're actually very >>>>>>>>>>>>>>>> helpful and my knowledge is limited... >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> - Darko >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> On 21/01/2007, at 6:58 AM, Renzo Orsini wrote: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> First of all, thank you very much for your >>>>>>>>>>>>>>>>> immediate help! >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> I downloaded the files and replaced the >>>>>>>>>>>>>>>>> corresponding /usr/local/cm3/bin files, >>>>>>>>>>>>>>>>> modified cm3.cfg by replacing INSTALL_ROOT = "/usr/ >>>>>>>>>>>>>>>>> local/cm3-i386/" with INSTALL_ROOT = "/usr/local/cm3/" >>>>>>>>>>>>>>>>> then in the full source (last version, 5.4.0) I >>>>>>>>>>>>>>>>> did: scripts/do-cm3-core.sh buildship >>>>>>>>>>>>>>>>> this is the result: >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> root#./do-cm3-core.sh buildship >>>>>>>>>>>>>>>>> CM3C = >>>>>>>>>>>>>>>>> /Users/orsini/cm3/cm3-src-all-5.4.0/scripts/ >>>>>>>>>>>>>>>>> pkgmap.sh -c "cm3 -build -DROOT='/Users/orsini/cm3/ >>>>>>>>>>>>>>>>> cm3-src-all-5.4.0' && cm3 -ship -DROOT='/Users/ >>>>>>>>>>>>>>>>> orsini/cm3/cm3-src-all-5.4.0' " m3gc-simple m3core >>>>>>>>>>>>>>>>> libm3 patternmatching m3middle m3linker m3front >>>>>>>>>>>>>>>>> m3quake m3cc cm3 m3scanner m3tools m3cgcat m3cggen >>>>>>>>>>>>>>>>> m3bundle bitvector digraph parseparams realgeometry >>>>>>>>>>>>>>>>> set slisp sortedtableextras table-list tempfiles >>>>>>>>>>>>>>>>> === package /Users/orsini/cm3/cm3-src-all-5.4.0/m3- >>>>>>>>>>>>>>>>> libs/m3gc-simple === >>>>>>>>>>>>>>>>> +++ cm3 -build -DROOT='/Users/orsini/cm3/cm3-src- >>>>>>>>>>>>>>>>> all-5.4.0' && cm3 -ship -DROOT='/Users/orsini/cm3/ >>>>>>>>>>>>>>>>> cm3-src-all-5.4.0' +++ >>>>>>>>>>>>>>>>> --- building in I386_DARWIN --- >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> new source -> compiling RTVM.c >>>>>>>>>>>>>>>>> new source -> compiling sysdeps.c >>>>>>>>>>>>>>>>> new source -> compiling accept.c >>>>>>>>>>>>>>>>> ../src/runtime/I386_DARWIN/accept.c: In function >>>>>>>>>>>>>>>>> 'm3_accept': >>>>>>>>>>>>>>>>> ../src/runtime/I386_DARWIN/accept.c:13: warning: >>>>>>>>>>>>>>>>> pointer targets in passing argument 3 of 'accept' >>>>>>>>>>>>>>>>> differ in signedness >>>>>>>>>>>>>>>>> new source -> compiling bind.c >>>>>>>>>>>>>>>>> new source -> compiling close.c >>>>>>>>>>>>>>>>> new source -> compiling connect.c >>>>>>>>>>>>>>>>> new source -> compiling dup.c >>>>>>>>>>>>>>>>> new source -> compiling dup2.c >>>>>>>>>>>>>>>>> new source -> compiling gethostbyaddr.c >>>>>>>>>>>>>>>>> new source -> compiling gethostbyname.c >>>>>>>>>>>>>>>>> new source -> compiling getpeername.c >>>>>>>>>>>>>>>>> ../src/runtime/I386_DARWIN/getpeername.c: In >>>>>>>>>>>>>>>>> function 'm3_getpeername': >>>>>>>>>>>>>>>>> ../src/runtime/I386_DARWIN/getpeername.c:13: >>>>>>>>>>>>>>>>> warning: pointer targets in passing argument 3 of >>>>>>>>>>>>>>>>> 'getpeername' differ in signedness >>>>>>>>>>>>>>>>> new source -> compiling getsockname.c >>>>>>>>>>>>>>>>> ../src/runtime/I386_DARWIN/getsockname.c: In >>>>>>>>>>>>>>>>> function 'm3_getsockname': >>>>>>>>>>>>>>>>> ../src/runtime/I386_DARWIN/getsockname.c:13: >>>>>>>>>>>>>>>>> warning: pointer targets in passing argument 3 of >>>>>>>>>>>>>>>>> 'getsockname' differ in signedness >>>>>>>>>>>>>>>>> new source -> compiling listen.c >>>>>>>>>>>>>>>>> new source -> compiling read.c >>>>>>>>>>>>>>>>> new source -> compiling recv.c >>>>>>>>>>>>>>>>> new source -> compiling recvfrom.c >>>>>>>>>>>>>>>>> ../src/runtime/I386_DARWIN/recvfrom.c: In function >>>>>>>>>>>>>>>>> 'm3_recvfrom': >>>>>>>>>>>>>>>>> ../src/runtime/I386_DARWIN/recvfrom.c:15: warning: >>>>>>>>>>>>>>>>> pointer targets in passing argument 6 of 'recvfrom' >>>>>>>>>>>>>>>>> differ in signedness >>>>>>>>>>>>>>>>> new source -> compiling select.c >>>>>>>>>>>>>>>>> new source -> compiling send.c >>>>>>>>>>>>>>>>> new source -> compiling sendto.c >>>>>>>>>>>>>>>>> new source -> compiling shutdown.c >>>>>>>>>>>>>>>>> new source -> compiling socket.c >>>>>>>>>>>>>>>>> new source -> compiling write.c >>>>>>>>>>>>>>>>> -> archiving libm3gcdefs.a >>>>>>>>>>>>>>>>> ld: common symbols not allowed with MH_DYLIB output >>>>>>>>>>>>>>>>> format with the -multi_module option >>>>>>>>>>>>>>>>> sysdeps.o definition of common _RTCSRC_FinishVM >>>>>>>>>>>>>>>>> (size 16) >>>>>>>>>>>>>>>>> sysdeps.o definition of common _RTHeapRep_Fault >>>>>>>>>>>>>>>>> (size 16) >>>>>>>>>>>>>>>>> /usr/bin/libtool: internal link edit command failed >>>>>>>>>>>>>>>>> --- shipping from I386_DARWIN --- >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> . => /usr/local/cm3/pkg/m3gc-simple/I386_DARWIN >>>>>>>>>>>>>>>>> .M3EXPORTS libm3gcdefs.5.2.dylib"/Users/ >>>>>>>>>>>>>>>>> orsini/cm3/cm3-src-all-5.4.0/m3-libs/m3gc-simple/ >>>>>>>>>>>>>>>>> I386_DARWIN/.M3SHIP", line 3: quake runtime error: >>>>>>>>>>>>>>>>> unable to copy "libm3gcdefs.5.2.dylib" to "/usr/ >>>>>>>>>>>>>>>>> local/cm3/pkg/m3gc-simple/I386_DARWIN/libm3gcdefs. >>>>>>>>>>>>>>>>> 5.2.dylib": errno=2 >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> --procedure-- -line- -file--- >>>>>>>>>>>>>>>>> install_file -- >>>>>>>>>>>>>>>>> 3 /Users/orsini/cm3/cm3-src- >>>>>>>>>>>>>>>>> all-5.4.0/m3-libs/m3gc-simple/I386_DARWIN/.M3SHIP >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Fatal Error: package build failed >>>>>>>>>>>>>>>>> *** execution of failed *** >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> ====== >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> I noticed that not all the .c files in .../m3-libs/ >>>>>>>>>>>>>>>>> m3gc-simple/src/runtime/I386_DARWIN/ where >>>>>>>>>>>>>>>>> compiled, but I do not know if this is a normal >>>>>>>>>>>>>>>>> behaviour. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Thanks in advance for your time and patience! >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Cordially >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Renzo Orsini >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> On Jan 20, 2007, at 19:02, Darko wrote: >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Have a look here: ftp://ftp.cs.purdue.edu/pub/ >>>>>>>>>>>>>>>>>> hosking/m3/I386_DARWIN/ >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> There you'll find the bits you need for Mac Intel. >>>>>>>>>>>>>>>>>> Replace your existing cm3, cmcg and cm3.cfg with >>>>>>>>>>>>>>>>>> the ones there, then you can compile the basic >>>>>>>>>>>>>>>>>> libraries you need like m3core and libm3, but make >>>>>>>>>>>>>>>>>> sure you have the latest sources. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> I think they're the latest but Tony may have >>>>>>>>>>>>>>>>>> something more to say about that. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Darko. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> On 21/01/2007, at 1:41 AM, Olaf Wagner wrote: >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> On Sat, Jan 20, 2007 at 03:05:55PM +0100, Renzo >>>>>>>>>>>>>>>>>>> Orsini wrote: >>>>>>>>>>>>>>>>>>>> Hello, >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> I installed cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz >>>>>>>>>>>>>>>>>>>> on an intel mac, then >>>>>>>>>>>>>>>>>>>> tried to a compile a Hello world program, but >>>>>>>>>>>>>>>>>>>> the compilation failed >>>>>>>>>>>>>>>>>>>> with the following message: >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> pborsini:~/ProveModula3 orsini$ cm3 >>>>>>>>>>>>>>>>>>>> --- building in PPC_DARWIN --- >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> new source -> compiling Main.m3 >>>>>>>>>>>>>>>>>>>> "../Main.m3", line 4: warning: potentially >>>>>>>>>>>>>>>>>>>> unhandled exception: IO.Error >>>>>>>>>>>>>>>>>>>> 1 warning encountered >>>>>>>>>>>>>>>>>>>> Main.ms:12:no such instruction: `mflr r0' >>>>>>>>>>>>>>>>>>>> Main.ms:13:no such instruction: `stmw r30,-8(r1)' >>>>>>>>>>>>>>>>>>>> Main.ms:14:no such instruction: `stw r0,8(r1)' >>>>>>>>>>>>>>>>>>>> Main.ms:15:no such instruction: `stwu r1,-96(r1)' >>>>>>>>>>>>>>>>>>>> Main.ms:16:no such instruction: `mr r30,r1' >>>>>>>>>>>>>>>>>>>> Main.ms:17:no such instruction: `bcl >>>>>>>>>>>>>>>>>>>> 20,31,"L00000000001$pb"' >>>>>>>>>>>>>>>>>>>> ... >>>>>>>>>>>>>>>>>>>> .... >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> So I suppose there is PPC code to assemble and >>>>>>>>>>>>>>>>>>>> the Rosetta emulator >>>>>>>>>>>>>>>>>>>> for PPC on intel macs cannot do anything for this! >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> Since I would like to port the Fibonacci >>>>>>>>>>>>>>>>>>>> language for databases, >>>>>>>>>>>>>>>>>>>> which is written in Modula-3, if I understand >>>>>>>>>>>>>>>>>>>> well the situation I >>>>>>>>>>>>>>>>>>>> should port the Modula-3 compiler by cross >>>>>>>>>>>>>>>>>>>> compiling it on a PPC mac, >>>>>>>>>>>>>>>>>>>> or something like that. >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> I am asking you if you know about some effort of >>>>>>>>>>>>>>>>>>>> porting Modula-3 on >>>>>>>>>>>>>>>>>>>> intel macs, or at least if you let me know if >>>>>>>>>>>>>>>>>>>> this operation is >>>>>>>>>>>>>>>>>>>> possible (and also reasonably feasible in terms >>>>>>>>>>>>>>>>>>>> of time and >>>>>>>>>>>>>>>>>>>> expertise, given my teaching duties and my >>>>>>>>>>>>>>>>>>>> difficulties with >>>>>>>>>>>>>>>>>>>> assembler languages!), and, if so, if you can >>>>>>>>>>>>>>>>>>>> point me to the correct >>>>>>>>>>>>>>>>>>>> documentation to start with. Of course I will be >>>>>>>>>>>>>>>>>>>> very glad to give >>>>>>>>>>>>>>>>>>>> back to the community the result if I succeed! >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> Thank you very much for your attention. >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> Cordially >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> Renzo Orsini >>>>>>>>>>>>>>>>>>>> Associate Professor >>>>>>>>>>>>>>>>>>>> Dipartimento di Informatica >>>>>>>>>>>>>>>>>>>> Universita' Ca' Foscari di Venezia >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> Well, I wouldn't have thought that you were even >>>>>>>>>>>>>>>>>>> able to install >>>>>>>>>>>>>>>>>>> the cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz system on >>>>>>>>>>>>>>>>>>> an Intel machine; >>>>>>>>>>>>>>>>>>> it's surely not supposed to run on one. It >>>>>>>>>>>>>>>>>>> shouldn't be too >>>>>>>>>>>>>>>>>>> difficult to get a port of the latest CM3 for >>>>>>>>>>>>>>>>>>> Darwin on Intel >>>>>>>>>>>>>>>>>>> processors; I even think somebody was already >>>>>>>>>>>>>>>>>>> working on it, >>>>>>>>>>>>>>>>>>> but I don't really remember who, so I forward >>>>>>>>>>>>>>>>>>> your mail to >>>>>>>>>>>>>>>>>>> the m3devel list, in case others have already >>>>>>>>>>>>>>>>>>> started such an >>>>>>>>>>>>>>>>>>> effort. >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> Olaf >>>>>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>>>>> elego Software Solutions >>>>>>>>>>>>>>>>>>> GmbH HRB 77719 >>>>>>>>>>>>>>>>>>> Olaf Wagner E-Mail: >>>>>>>>>>>>>>>>>>> wagner(at)elego.de >>>>>>>>>>>>>>>>>>> Ohmstra?e 9 Tel: >>>>>>>>>>>>>>>>>>> +49 30 40 04 19 29 >>>>>>>>>>>>>>>>>>> 10179 Berlin Fax: >>>>>>>>>>>>>>>>>>> +49 30 23 45 86 95 >>>>>>>>>>>>>>>>>>> Cranachstra?e 7 Tel: >>>>>>>>>>>>>>>>>>> +49 30 85 58 01 81 >>>>>>>>>>>>>>>>>>> 12157 Berlin Fax: >>>>>>>>>>>>>>>>>>> +49 30 85 58 01 88 >>>>>>>>>>>>>>>>>>> ------------------> WWW: http://www.elego- >>>>>>>>>>>>>>>>>>> software-solutions.com >>>>>>>>>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>>>>>>>>> M3devel mailing list >>>>>>>>>>>>>>>>>>> M3devel at elegosoft.com >>>>>>>>>>>>>>>>>>> https://mail.elegosoft.com/cgi-bin/mailman/ >>>>>>>>>>>>>>>>>>> listinfo/m3devel >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>>>>>> M3devel mailing list >>>>>>>>>>>>>>>> M3devel at elegosoft.com >>>>>>>>>>>>>>>> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/ >>>>>>>>>>>>>>>> m3devel >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Antony Hosking | Associate Professor >>>>>>>>>>>>>>> Dept of Computer Sciences | Office: (765) 494-6001 >>>>>>>>>>>>>>> Purdue University | Mobile: (765) 427-5484 >>>>>>>>>>>>>>> 250 N. University Street | hosking at cs.purdue.edu >>>>>>>>>>>>>>> West Lafayette, IN 47907-2066 | http:// >>>>>>>>>>>>>>> www.cs.purdue.edu/~hosking >>>>>>>>>>>>>>> _--_|\ >>>>>>>>>>>>>>> / \ >>>>>>>>>>>>>>> \_.--._/ ) >>>>>>>>>>>>>>> v / >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> Antony Hosking | Associate Professor >>>>>>>>>>>> Dept of Computer Sciences | Office: (765) 494-6001 >>>>>>>>>>>> Purdue University | Mobile: (765) 427-5484 >>>>>>>>>>>> 250 N. University Street | hosking at cs.purdue.edu >>>>>>>>>>>> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/ >>>>>>>>>>>> ~hosking >>>>>>>>>>>> _--_|\ >>>>>>>>>>>> / \ >>>>>>>>>>>> \_.--._/ ) >>>>>>>>>>>> v / >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Antony Hosking | Associate Professor >>>>>>>>>> Dept of Computer Sciences | Office: (765) 494-6001 >>>>>>>>>> Purdue University | Mobile: (765) 427-5484 >>>>>>>>>> 250 N. University Street | hosking at cs.purdue.edu >>>>>>>>>> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/ >>>>>>>>>> ~hosking >>>>>>>>>> _--_|\ >>>>>>>>>> / \ >>>>>>>>>> \_.--._/ ) >>>>>>>>>> v / >>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> Antony Hosking | Associate Professor >>>>>>>> Dept of Computer Sciences | Office: (765) 494-6001 >>>>>>>> Purdue University | Mobile: (765) 427-5484 >>>>>>>> 250 N. University Street | hosking at cs.purdue.edu >>>>>>>> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/ >>>>>>>> ~hosking >>>>>>>> _--_|\ >>>>>>>> / \ >>>>>>>> \_.--._/ ) >>>>>>>> v / >>>>>>>> >>>>>>> >>>>>> >>>>>> Antony Hosking | Associate Professor >>>>>> Dept of Computer Sciences | Office: (765) 494-6001 >>>>>> Purdue University | Mobile: (765) 427-5484 >>>>>> 250 N. University Street | hosking at cs.purdue.edu >>>>>> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking >>>>>> _--_|\ >>>>>> / \ >>>>>> \_.--._/ ) >>>>>> v / >>>>>> >>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> M3devel mailing list >>>>>> M3devel at elegosoft.com >>>>>> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel >>>>> >>>>> Antony Hosking | Associate Professor >>>>> Dept of Computer Sciences | Office: (765) 494-6001 >>>>> Purdue University | Mobile: (765) 427-5484 >>>>> 250 N. University Street | hosking at cs.purdue.edu >>>>> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking >>>>> _--_|\ >>>>> / \ >>>>> \_.--._/ ) >>>>> v / >>>>> >>>>> >>>> >>>> Antony Hosking | Associate Professor >>>> Dept of Computer Sciences | Office: (765) 494-6001 >>>> Purdue University | Mobile: (765) 427-5484 >>>> 250 N. University Street | hosking at cs.purdue.edu >>>> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking >>>> _--_|\ >>>> / \ >>>> \_.--._/ ) >>>> v / >>>> >>> >> >> Antony Hosking | Associate Professor >> Dept of Computer Science | Office: +1 765 494-6001 >> Purdue University | Mobile: +1 765 427-5484 >> 250 N. University Street | Email: hosking at cs.purdue.edu >> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking >> _--_|\ >> / \ >> \_.--._/ ) >> v / >> >> > Antony Hosking | Associate Professor Dept of Computer Science | Office: +1 765 494-6001 Purdue University | Mobile: +1 765 427-5484 250 N. University Street | Email: hosking at cs.purdue.edu West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking _--_|\ / \ \_.--._/ ) v / From dabenavidesd at yahoo.es Tue Jan 23 00:06:43 2007 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Tue, 23 Jan 2007 00:06:43 +0100 (CET) Subject: [M3devel] cm3 5.5 for Windows min test release Message-ID: <20070122230643.33981.qmail@web86912.mail.ukl.yahoo.com> Hi, what is the exact url? Thanks, Daniel Benavides > j k wrote: Can folks try from ~jkrell on > m3.elegosoft.com: > cm3-min-WIN32-NT386-d5.3.2-symbols.tgz > cm3-min-WIN32-NT386-d5.3.2.tgz > > Really they are version d5.5.0. > > There is some wierd problem where I don't have execute permissions > on the > extracted files, so: > > tar xvfz cm3-min-WIN32-NT386-d5.3.2.tgz > cacls . /t /e /g everyone:f > .\cminstall > > You will only be prompted for where to install, which defaults to > c:\cm3. > When using cm3, cl and link need to be in %PATH%, and %LIB% and > possibly > %INCLUDE% need to be set. > Visual C++ includes a batch file to set these, named for example > vcvars32.bat. > cd \programs files > dir /s/b v*bat > will find it and there is a shortcut to it on the start menu. > > This also mitigates the problems with spaces in file paths (which > were > otherwise mitigated by converting to short names, which do not > guaranteeably > exist). > > On computers without Visual C++ 2005 installed and without the > .NET Runtime > 2.0, download and run the setup for the Visual C++ 8.0 runtime: > -- vcredist_x86.exe > -- from > http://www.microsoft.com/downloads/details.aspx?familyid=32BC1BEE- > A3F9-4C13-9C99-220B62A191EE > > - Jay > > _________________________________________________________________ --------------------------------- LLama Gratis a cualquier PC del Mundo. Llamadas a fijos y m?viles desde 1 c?ntimo por minuto. http://es.voice.yahoo.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From jayk123 at hotmail.com Tue Jan 23 03:00:57 2007 From: jayk123 at hotmail.com (j k) Date: Tue, 23 Jan 2007 02:00:57 +0000 Subject: [M3devel] cm3 5.5 for Windows min test release In-Reply-To: <20070122230643.33981.qmail@web86912.mail.ukl.yahoo.com> Message-ID: This isn't one that I know of. Folks at elegosoft help? - Jay >From: "Daniel Alejandro Benavides D." >To: m3devel at elegosoft.com, jayk123 at hotmail.com >Subject: RE: [M3devel] cm3 5.5 for Windows min test release >Date: Tue, 23 Jan 2007 00:06:43 +0100 (CET) > > >Hi, what is the exact url? > >Thanks, >Daniel Benavides > > > j k wrote: Can folks try from ~jkrell on > > m3.elegosoft.com: > > cm3-min-WIN32-NT386-d5.3.2-symbols.tgz > > cm3-min-WIN32-NT386-d5.3.2.tgz > > > > Really they are version d5.5.0. > > > > There is some wierd problem where I don't have execute permissions > > on the > > extracted files, so: > > > > tar xvfz cm3-min-WIN32-NT386-d5.3.2.tgz > > cacls . /t /e /g everyone:f > > .\cminstall > > > > You will only be prompted for where to install, which defaults to > > c:\cm3. > > When using cm3, cl and link need to be in %PATH%, and %LIB% and > > possibly > > %INCLUDE% need to be set. > > Visual C++ includes a batch file to set these, named for example > > vcvars32.bat. > > cd \programs files > > dir /s/b v*bat > > will find it and there is a shortcut to it on the start menu. > > > > This also mitigates the problems with spaces in file paths (which > > were > > otherwise mitigated by converting to short names, which do not > > guaranteeably > > exist). > > > > On computers without Visual C++ 2005 installed and without the > > .NET Runtime > > 2.0, download and run the setup for the Visual C++ 8.0 runtime: > > -- vcredist_x86.exe > > -- from > > http://www.microsoft.com/downloads/details.aspx?familyid=32BC1BEE- > > A3F9-4C13-9C99-220B62A191EE > > > > - Jay > > > > _________________________________________________________________ > > > > > >--------------------------------- > >LLama Gratis a cualquier PC del Mundo. >Llamadas a fijos y m?viles desde 1 c?ntimo por minuto. >http://es.voice.yahoo.com _________________________________________________________________ Get Hilary Duff?s homepage with her photos, music, and more. http://celebrities.live.com From wagner at elegosoft.com Tue Jan 23 10:44:53 2007 From: wagner at elegosoft.com (Olaf Wagner) Date: Tue, 23 Jan 2007 10:44:53 +0100 (CET) Subject: [M3devel] cm3 5.5 for Windows min test release In-Reply-To: References: <20070122230643.33981.qmail@web86912.mail.ukl.yahoo.com> Message-ID: <64953.194.138.127.36.1169545493.squirrel@mail.elegosoft.com> On Tue, January 23, 2007 3:00 am, j k wrote: > This isn't one that I know of. Folks at elegosoft help? We should change the wrong version number of the archives (does the cm3 compiler itself show the correct version when invoked?) and put these into our public CM3 download area. Ronny, can you do this? We should also add the URLs as experimental downloads to the download page of CM3. Ulrike, this would be a job for you... Ronny, if this hasn't already been done: there should be an m3-support group who are allowed to move documents and archives to the new WWW server for CM3 and PM3. Ulrike, Stefan, Neels, Michael, and me should at least have this permission. Olaf > - Jay > >>From: "Daniel Alejandro Benavides D." >>To: m3devel at elegosoft.com, jayk123 at hotmail.com >>Subject: RE: [M3devel] cm3 5.5 for Windows min test release >>Date: Tue, 23 Jan 2007 00:06:43 +0100 (CET) >> >> >>Hi, what is the exact url? >> >>Thanks, >>Daniel Benavides >> >> > j k wrote: Can folks try from ~jkrell on >> > m3.elegosoft.com: >> > cm3-min-WIN32-NT386-d5.3.2-symbols.tgz >> > cm3-min-WIN32-NT386-d5.3.2.tgz >> > >> > Really they are version d5.5.0. >> > >> > There is some wierd problem where I don't have execute permissions >> > on the >> > extracted files, so: >> > >> > tar xvfz cm3-min-WIN32-NT386-d5.3.2.tgz >> > cacls . /t /e /g everyone:f >> > .\cminstall >> > >> > You will only be prompted for where to install, which defaults to >> > c:\cm3. >> > When using cm3, cl and link need to be in %PATH%, and %LIB% and >> > possibly >> > %INCLUDE% need to be set. >> > Visual C++ includes a batch file to set these, named for example >> > vcvars32.bat. >> > cd \programs files >> > dir /s/b v*bat >> > will find it and there is a shortcut to it on the start menu. >> > >> > This also mitigates the problems with spaces in file paths (which >> > were >> > otherwise mitigated by converting to short names, which do not >> > guaranteeably >> > exist). >> > >> > On computers without Visual C++ 2005 installed and without the >> > .NET Runtime >> > 2.0, download and run the setup for the Visual C++ 8.0 runtime: >> > -- vcredist_x86.exe >> > -- from >> > http://www.microsoft.com/downloads/details.aspx?familyid=32BC1BEE- >> > A3F9-4C13-9C99-220B62A191EE >> > >> > - Jay -- Olaf Wagner elego Software Solutions GmbH, Berlin, Germany From dabenavidesd at yahoo.es Wed Jan 24 04:49:17 2007 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Wed, 24 Jan 2007 04:49:17 +0100 (CET) Subject: [M3devel] problem using -DPTHREAD Message-ID: <20070124034917.7363.qmail@web86910.mail.ukl.yahoo.com> Hi everybody: Im trying to start a new compilation with the PTHREAD support. So I did export CM3="/usr/cm3/bin/cm3 -DPTHREAD" This is the directory where the boot is installed with cminstall. Then I got this: root at danielb-desktop:/home/danielb/cm3-5.4-Rc_/cm3/scripts# ./do-cm3-std.sh buildship | tee "log.txt" CM3C = /home/danielb/cm3-5.4-Rc_/cm3/scripts/pkgmap.sh -c "/usr/cm3/bin/cm3 -DPTHREAD -build -DROOT='/home/danielb/cm3-5.4-Rc_/cm3' && /usr/cm3/bin/cm3 -DPTHREAD -ship -DROOT='/home/danielb/cm3-5.4-Rc_/cm3' " m3gc-simple m3core libm3 patternmatching m3middle m3quake m3scanner m3tools m3cgcat m3cggen m3gdb m3bundle arithmetic bitvector digraph parseparams realgeometry set slisp sortedtableextras table-list tempfiles tcp udp libsio libbuf debug listfuncs embutils m3tk-misc http binIO commandrw m3tk mtex m3totex m3tohtml m3scan m3markup m3browser cmpdir cmpfp dirfp uniq netobj netobjd stubgen events rdwr sharedobj sharedobjgen odbc postgres95 db smalldb stable stablegen X11R4 ui PEX vbtkit cmvbt jvideo videovbt web formsvbtpixmaps formsvbt formsview formsedit codeview mg mgkit opengl anim3D zeus m3zume synloc synex metasyn obliqrt obliqparse obliqprint obliq obliqlibemb obliqlibm3 obliqlibui obliqlibanim obliqsrvstd obliqsrvui obliqbinmin obliqbinstd obliqbinui obliqbinanim visualobliq vocgi voquery vorun webvbt recordheap rehearsecode replayheap showheap shownew showthread pkl-fonts juno-machine juno-compiler juno-app cube calculator fisheye mentor === package /home/danielb/cm3-5.4-Rc_/cm3/m3-libs/m3gc-simple === +++ /usr/cm3/bin/cm3 -DPTHREAD -build -DROOT='/home/danielb/cm3-5.4-Rc_/cm3' && /usr/cm3/bin/cm3 -DPTHREAD -ship -DROOT='/home/danielb/cm3-5.4-Rc_/cm3' +++ --- building in LINUXLIBC6 --- new source -> compiling sysdeps.c new "sysdeps.o" -> archiving libm3gcdefs.a --- shipping from LINUXLIBC6 --- . => /usr/cm3/pkg/m3gc-simple/LINUXLIBC6 .M3EXPORTS libm3gcdefs.so.5 libm3gcdefs.a libm3gcdefs.m3x .M3WEB ../src/runtime => /usr/cm3/pkg/m3gc-simple/src/runtime RTVM.c ../src/runtime/LINUXLIBC6 => /usr/cm3/pkg/m3gc-simple/src/runtime/LINUXLIBC6 sysdeps.c . => /usr/cm3/lib libm3gcdefs.a ==> /home/danielb/cm3-5.4-Rc_/cm3/m3-libs/m3gc-simple done === package /home/danielb/cm3-5.4-Rc_/cm3/m3-libs/m3core === +++ /usr/cm3/bin/cm3 -DPTHREAD -build -DROOT='/home/danielb/cm3-5.4-Rc_/cm3' && /usr/cm3/bin/cm3 -DPTHREAD -ship -DROOT='/home/danielb/cm3-5.4-Rc_/cm3' +++ --- building in LINUXLIBC6 --- ignoring ../src/m3overrides "/home/danielb/cm3-5.4-Rc_/cm3/m3-libs/m3core/src/thread/PTHREAD/m3makefile", line 10: quake runtime error: Unable to use definition of "SYSTEM_LIBS" from configuration file "/usr/cm3/bin/cm3.cfg": does not define a value for "PTHREAD" --procedure-- -line- -file--- import_sys_lib -- include_dir 10 /home/danielb/cm3-5.4-Rc_/cm3/m3-libs/m3core/src/thread/PTHREAD/m3makefile include_dir 46 /home/danielb/cm3-5.4-Rc_/cm3/m3-libs/m3core/src/thread/m3makefile include_dir 18 /home/danielb/cm3-5.4-Rc_/cm3/m3-libs/m3core/src/m3makefile 6 /home/danielb/cm3-5.4-Rc_/cm3/m3-libs/m3core/LINUXLIBC6/m3make.args Fatal Error: package build failed *** execution of failed *** root at danielb-desktop:/home/danielb/cm3-5.4-Rc_/cm3/scripts# Thanks, Daniel Benavides --------------------------------- LLama Gratis a cualquier PC del Mundo. Llamadas a fijos y m?viles desde 1 c?ntimo por minuto. http://es.voice.yahoo.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From wagner at plane.elego.de Wed Jan 24 08:04:34 2007 From: wagner at plane.elego.de (Olaf Wagner) Date: Wed, 24 Jan 2007 08:04:34 +0100 Subject: [M3devel] problem using -DPTHREAD In-Reply-To: <20070124034917.7363.qmail@web86910.mail.ukl.yahoo.com> References: <20070124034917.7363.qmail@web86910.mail.ukl.yahoo.com> Message-ID: <20070124070434.GB23599@elegosoft.com> On Wed, Jan 24, 2007 at 04:49:17AM +0100, Daniel Alejandro Benavides D. wrote: > > Hi everybody: > Im trying to start a new compilation with the PTHREAD support. > So I did > export CM3="/usr/cm3/bin/cm3 -DPTHREAD" > This is the directory where the boot is installed with cminstall. > Then I got this: > root at danielb-desktop:/home/danielb/cm3-5.4-Rc_/cm3/scripts# > ./do-cm3-std.sh buildship | tee "log.txt" CM3C = > /home/danielb/cm3-5.4-Rc_/cm3/scripts/pkgmap.sh -c "/usr/cm3/bin/cm3 > -DPTHREAD -build -DROOT='/home/danielb/cm3-5.4-Rc_/cm3' && > /usr/cm3/bin/cm3 -DPTHREAD -ship > -DROOT='/home/danielb/cm3-5.4-Rc_/cm3' " m3gc-simple m3core libm3 ... > "/home/danielb/cm3-5.4-Rc_/cm3/m3-libs/m3core/src/thread/PTHREAD/m3mak > efile", line 10: quake runtime error: Unable to use definition of > "SYSTEM_LIBS" from configuration file "/usr/cm3/bin/cm3.cfg": does not > define a value for "PTHREAD" > --procedure-- -line- -file--- > import_sys_lib -- > include_dir 10 > /home/danielb/cm3-5.4-Rc_/cm3/m3-libs/m3core/src/thread/PTHREAD/m3make > file You need to define the system's pthread library you want to link with (/usr/lib/libpthread.a?) in cm3.cfg in the SYSTEM_LIBS array. Olaf -- elego Software Solutions GmbH HRB 77719 Olaf Wagner E-Mail: wagner(at)elego.de Ohmstra?e 9 Tel: +49 30 40 04 19 29 10179 Berlin Fax: +49 30 23 45 86 95 Cranachstra?e 7 Tel: +49 30 85 58 01 81 12157 Berlin Fax: +49 30 85 58 01 88 ------------------> WWW: http://www.elego-software-solutions.com From jayk123 at hotmail.com Wed Jan 24 10:41:31 2007 From: jayk123 at hotmail.com (j k) Date: Wed, 24 Jan 2007 09:41:31 +0000 Subject: [M3devel] cm3 5.5 for Windows min test release In-Reply-To: <64953.194.138.127.36.1169545493.squirrel@mail.elegosoft.com> Message-ID: I renamed the files. Yes the compiler prints 5.5.0. I put up few more archives. They are all about the same. There is a .tar.bz2, a .zip, and a self extracting .zip/.exe. You can also just run unzip on the .exe. All but the original .tgz lack cminstall/tar/gzip/cygwin.dll and extract into cm3. So you could just do like: cd \ cm3-min-WIN32-NT386-d5.5.0 call vcvars32 set path=\cm3\bin;%path% We don't need all these formats. tar.bz2 is smallest. .zip support is "built in" to Windows. .zip is n the middle size, since I removed cminstall from it. .cab might also be good. I thought I had something around to create them easily but I don't see it now. The compiler says: \cm3\bin\cm3 -version Critical Mass Modula-3 version d5.5.0 last updated: 2006-10-30 configuration: \cm3\bin\cm3.cfg The date is fishy. Do we need to include copyright-cmass at the top? It says something about contributing changes back. But we aren't doing that, right? Feel free to delete any of the archives. I can remake them easily. (I'lll submit my automation shortly.) The self extracting .exe uses upx for the stub to save just a little space. The license encourages me to credit it. :) Upx is neat. Dynamic linking cm3.exe would really save space but I am not sure that is practical. - Jay >From: "Olaf Wagner" >To: ronny.forberger at elegosoft.com, uamoore at elegosoft.com >CC: m3devel at elegosoft.com >Subject: RE: [M3devel] cm3 5.5 for Windows min test release >Date: Tue, 23 Jan 2007 10:44:53 +0100 (CET) > > >On Tue, January 23, 2007 3:00 am, j k wrote: > > This isn't one that I know of. Folks at elegosoft help? > >We should change the wrong version number of the archives (does the >cm3 compiler itself show the correct version when invoked?) and put >these into our public CM3 download area. Ronny, can you do this? > >We should also add the URLs as experimental downloads to the download >page of CM3. Ulrike, this would be a job for you... > >Ronny, if this hasn't already been done: there should be an m3-support >group who are allowed to move documents and archives to the new WWW >server for CM3 and PM3. Ulrike, Stefan, Neels, Michael, and me should >at least have this permission. > >Olaf > > > - Jay > > > >>From: "Daniel Alejandro Benavides D." > >>To: m3devel at elegosoft.com, jayk123 at hotmail.com > >>Subject: RE: [M3devel] cm3 5.5 for Windows min test release > >>Date: Tue, 23 Jan 2007 00:06:43 +0100 (CET) > >> > >> > >>Hi, what is the exact url? > >> > >>Thanks, > >>Daniel Benavides > >> > >> > j k wrote: Can folks try from ~jkrell on > >> > m3.elegosoft.com: > >> > cm3-min-WIN32-NT386-d5.3.2-symbols.tgz > >> > cm3-min-WIN32-NT386-d5.3.2.tgz > >> > > >> > Really they are version d5.5.0. > >> > > >> > There is some wierd problem where I don't have execute permissions > >> > on the > >> > extracted files, so: > >> > > >> > tar xvfz cm3-min-WIN32-NT386-d5.3.2.tgz > >> > cacls . /t /e /g everyone:f > >> > .\cminstall > >> > > >> > You will only be prompted for where to install, which defaults to > >> > c:\cm3. > >> > When using cm3, cl and link need to be in %PATH%, and %LIB% and > >> > possibly > >> > %INCLUDE% need to be set. > >> > Visual C++ includes a batch file to set these, named for example > >> > vcvars32.bat. > >> > cd \programs files > >> > dir /s/b v*bat > >> > will find it and there is a shortcut to it on the start menu. > >> > > >> > This also mitigates the problems with spaces in file paths (which > >> > were > >> > otherwise mitigated by converting to short names, which do not > >> > guaranteeably > >> > exist). > >> > > >> > On computers without Visual C++ 2005 installed and without the > >> > .NET Runtime > >> > 2.0, download and run the setup for the Visual C++ 8.0 runtime: > >> > -- vcredist_x86.exe > >> > -- from > >> > http://www.microsoft.com/downloads/details.aspx?familyid=32BC1BEE- > >> > A3F9-4C13-9C99-220B62A191EE > >> > > >> > - Jay >-- >Olaf Wagner >elego Software Solutions GmbH, Berlin, Germany >_______________________________________________ >M3devel mailing list >M3devel at elegosoft.com >https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel _________________________________________________________________ Search for grocery stores. Find gratitude. Turn a simple search into something more. http://click4thecause.live.com/search/charity/default.aspx?source=hmemtagline_gratitude&FORM=WLMTAG From dabenavidesd at yahoo.es Wed Jan 31 18:05:57 2007 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Wed, 31 Jan 2007 18:05:57 +0100 (CET) Subject: [M3devel] problem using -DPTHREAD Message-ID: <517701.96938.qm@web27102.mail.ukl.yahoo.com> Hello: I have compiled the cm3 cvs updated with the Pthread support under kubuntu 6.06 Linux. I have done this adding the value "PTHREAD" on the array SYSTEM_LIBORDER SYSTEM_LIBORDER = [ "OPENGL", "DECPEX", "MOTIF", "X11", "TCP", "ODBC", "POSTGRES95", "FLEX-BISON", "LEX-YACC", "LIBC", "PTHREAD" ] and the variable "PTHREAD" : [ "-L/usr/lib", "-lpthread" ], on the array SYSTEM_LIBS But when running a mentor animation I get this runtime error consistently about a seconds later after began an animation, then this is the out: root at sl11:/home/danielb/cm3-5.4-Rc2/cm3/scripts# mentor showthread *** *** runtime error: *** Thread client error: attempt to release an unlocked mutex *** file "ThreadPThread.m3", line 168 *** Cancelado root at sl11:/home/danielb/cm3-5.4-Rc2/cm3/scripts# This system has "POSIX version set to 200112, including support for priority scheduling" Thanks, Daniel Benavides --------------------------------- LLama Gratis a cualquier PC del Mundo. Llamadas a fijos y m?viles desde 1 c?ntimo por minuto. http://es.voice.yahoo.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Wed Jan 31 21:02:20 2007 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 31 Jan 2007 15:02:20 -0500 Subject: [M3devel] problem using -DPTHREAD In-Reply-To: <517701.96938.qm@web27102.mail.ukl.yahoo.com> References: <517701.96938.qm@web27102.mail.ukl.yahoo.com> Message-ID: <764ED7CC-946A-4BC3-8D8B-E0C39C945A6C@cs.purdue.edu> A stack trace would be useful. Perhaps you can run again with @M3stackdump specified on the command line. Alternatively, if you run inside gdb you can show the stack dump at the point of the error by setting a breakpoint at line 168 in ThreadPThread.m3. I notice that you are using priority scheduling -- not sure what that will do to things. Can you try it with round robin scheduling? On Jan 31, 2007, at 12:05 PM, Daniel Alejandro Benavides D. wrote: > Hello: > > I have compiled the cm3 cvs updated with the Pthread support under > kubuntu 6.06 Linux. I have done this adding the value "PTHREAD" on > the array SYSTEM_LIBORDER > > SYSTEM_LIBORDER = [ "OPENGL", "DECPEX", "MOTIF", "X11", "TCP", "ODBC", > "POSTGRES95", "FLEX-BISON", "LEX-YACC", "LIBC", > "PTHREAD" ] > > and the variable "PTHREAD" : [ "-L/usr/lib", "-lpthread" ], > on the array SYSTEM_LIBS > > But when running a mentor animation I get this runtime error > consistently about a seconds later after began an animation, then > this is the out: > > root at sl11:/home/danielb/cm3-5.4-Rc2/cm3/scripts# mentor showthread > > > *** > *** runtime error: > *** Thread client error: attempt to release an unlocked mutex > *** file "ThreadPThread.m3", line 168 > *** > > Cancelado > root at sl11:/home/danielb/cm3-5.4-Rc2/cm3/scripts# > > This system has > "POSIX version set to 200112, > including support for priority scheduling" > > Thanks, > Daniel Benavides > > > LLama Gratis a cualquier PC del Mundo. > Llamadas a fijos y m?viles desde 1 c?ntimo por minuto. > http://es.voice.yahoo.com > _______________________________________________ > M3devel mailing list > M3devel at elegosoft.com > https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel From jayk123 at hotmail.com Mon Jan 1 15:39:26 2007 From: jayk123 at hotmail.com (j k) Date: Mon, 01 Jan 2007 14:39:26 +0000 Subject: [M3devel] review before checkin/submit/commit? place for user-specific or work-in-progres? Message-ID: An HTML attachment was scrubbed... URL: From jayk123 at hotmail.com Tue Jan 2 17:30:54 2007 From: jayk123 at hotmail.com (j k) Date: Tue, 02 Jan 2007 16:30:54 +0000 Subject: [M3devel] anyone want to try Windows now? Message-ID: An HTML attachment was scrubbed... URL: From dabenavidesd at yahoo.es Tue Jan 2 18:41:22 2007 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Tue, 2 Jan 2007 18:41:22 +0100 (CET) Subject: [M3devel] anyone want to try Windows now? In-Reply-To: Message-ID: <17375.25565.qm@web86910.mail.ukl.yahoo.com> I would like to install here, I have Win Xp +Sp2 on professional Ed. A project to make a Modula-3 plugin for Eclipse has been started, and it would be useful to have an installation procedure for cm3 on Windows. I have an pm3 running here with one of the latest cygwin. I just made a little changes on pm3\language\modula3\m3compiler\m3cc\gcc\m3.c, but I dont know if that could be sended to the cvs repository. Thanks Daniel Benavides j k escribi?: Anyone want to try Windows now? What should work is installing the latest release -- 5.2.6. Checking out the whole tree, copying m3-sys\cminstall\src\config\NT386 to like \cm3\bin\cm3.cfg putting cm3.exe's directory in %PATH%, running vcvars32.bat or simiplar to get a compiler/linker in the path along with %include% and %lib% (sometimes this is done by Visual C++ setup), though %include%/%lib% are hardly used, and running any of scripts\win\do* or scripts\win\upgrad or scripts\win\make-dist, or cd'ing around the tree and running cm3, using any of a variety of versions of Visual C++. (Note that sysinfo.cmd puts \cm3\lib in %LIB% and if you just cd depend, and are using a Visual C++ Express Edition, without also the Windows SDK, then you'll get errors -- the Express Editions lack the Win32 import .libs. m3-win\import-libs builds them and puts them in \cm3\lib.) \cm3 is computed by cm3.cfg to be the directory above the directory that contains cm3.exe. So you don't have to edit cm3.cfg at all. Of course probably some machine/OS/configuration-specificity crept in and it probably only works for me. If you build with Visual C++ 8.0, there is a download/setup needed for machines without it installed, see m3-win\vcredist.txt. I only tested on XP but a variety of versions of Windows should work, esp. versions of NT (as opposed to 95/98) Anyone have a bunch of test automation here? The main problem was really just the infinite recursion in startup. Should a release be made soon then? - Jay --------------------------------- Get live scores and news about your team: Add the Live.com Football Page _______________________________________________ M3devel mailing list M3devel at elegosoft.com https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel __________________________________________________ Correo Yahoo! Espacio para todos tus mensajes, antivirus y antispam ?gratis! Reg?strate ya - http://correo.yahoo.es -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: m3.c Type: text/x-csrc Size: 103827 bytes Desc: 1289283312-m3.c URL: From jayk123 at hotmail.com Wed Jan 3 09:45:34 2007 From: jayk123 at hotmail.com (j k) Date: Wed, 03 Jan 2007 08:45:34 +0000 Subject: [M3devel] m3commit not working In-Reply-To: <20070103070313.GC24460@elegosoft.com> Message-ID: An HTML attachment was scrubbed... URL: From wagner at plane.elego.de Wed Jan 3 08:03:13 2007 From: wagner at plane.elego.de (Olaf Wagner) Date: Wed, 3 Jan 2007 08:03:13 +0100 Subject: [M3devel] m3commit not working In-Reply-To: References: Message-ID: <20070103070313.GC24460@elegosoft.com> On Sun, Dec 31, 2006 at 12:58:19PM +0000, j k wrote: > > The m3commit mailing list does not appear to be working. > I have commited several Windows fixes. > But seen no mail. > > Now might be ok an time for folks to try Windows again, but I > do have more testing and more changes in the works. I got all your commit messages, so it's probably not sending the mails to the committer himself. Olaf -- elego Software Solutions GmbH HRB 77719 Olaf Wagner E-Mail: wagner(at)elego.de Ohmstra?e 9 Tel: +49 30 40 04 19 29 10179 Berlin Fax: +49 30 23 45 86 95 Cranachstra?e 7 Tel: +49 30 85 58 01 81 12157 Berlin Fax: +49 30 85 58 01 88 ------------------> WWW: http://www.elego-software-solutions.com From lemming at henning-thielemann.de Wed Jan 3 14:31:24 2007 From: lemming at henning-thielemann.de (Henning Thielemann) Date: Wed, 03 Jan 2007 14:31:24 +0100 (MET) Subject: [M3devel] Re: [M3commit] CVS Update: cm3 In-Reply-To: <200612300802.kBU82TdQ018879@birch.elego.de> References: <200612300802.kBU82TdQ018879@birch.elego.de> Message-ID: On Sat, 30 Dec 2006, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 06/12/30 09:02:29 > > Modified files: > cm3/m3-libs/arithmetic/src/: m3overrides > cm3/m3-libs/commandrw/src/: m3overrides > cm3/m3-libs/dosunixrw/src/: m3overrides > cm3/m3-libs/fftw/src/: m3overrides > cm3/m3-libs/lapack/src/: m3overrides > cm3/m3-libs/plplot/src/: m3overrides > cm3/m3-libs/unittest/src/: m3overrides > cm3/m3-tools/pp/src/: m3overrides > cm3/m3-ui/ui/src/: m3overrides > cm3/m3-ui/vbtkit/src/: m3overrides > > Log message: > Most m3overrides do not use SL (SLash -- \ for Windows or / for Unix). > These few do. > Fewer variables are better. > Removing these uses lets us not define SL in scripts\win\sysinfo.cmd. > It is still used in some m3makefiles and those uses need to be reviewed. Since I added the SLs recently in many of my m3overrides - can you elaborate on these changes? From lemming at henning-thielemann.de Wed Jan 3 14:33:05 2007 From: lemming at henning-thielemann.de (Henning Thielemann) Date: Wed, 03 Jan 2007 14:33:05 +0100 (MET) Subject: [M3devel] Re: [M3commit] CVS Update: cm3 In-Reply-To: <200612301138.kBUBcjLL020924@birch.elego.de> References: <200612301138.kBUBcjLL020924@birch.elego.de> Message-ID: On Sat, 30 Dec 2006, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 06/12/30 12:38:45 > > Modified files: > cm3/scripts/win/c-runtime/: Microsoft.VC80.CRT.manifest > msvcr80.cmd > cm3/scripts/win/lib/: make-lib-1.cmd make-lib-2.cmd make-lib.cmd > > Log message: > convert line endings to Windows format, in new files, that are used on Windows hosts I thought, that the CVS client is responsible for the correct line endings. From wagner at elegosoft.com Wed Jan 3 16:38:05 2007 From: wagner at elegosoft.com (Olaf Wagner) Date: Wed, 3 Jan 2007 16:38:05 +0100 (CET) Subject: [M3devel] Re: [M3commit] CVS Update: cm3 In-Reply-To: <200612300118.kBU1I6e5008873@birch.elego.de> References: <200612300118.kBU1I6e5008873@birch.elego.de> Message-ID: <33776.194.138.127.36.1167838685.squirrel@mail.elegosoft.com> On Sat, December 30, 2006 3:18 am, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 06/12/30 02:18:06 > > Modified files: > cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 > > Log message: > important: fix infinite recursion in Win32 startup > correct check for TlsAlloc failure (TLS_OUT_OF_INDEXES instead of < 0) > reduce critical sections slightly (esp. to avoid calling out while in a > critical section, including to DuplicateHandle, CreateThread, VirtualQuery) I would like to understand this change better (especially the first item), or at least how/why and endless recursion got into the source (as older versions have run, haven't they?). As for critical sections, you seem to have remove one completely and reduced another. Are you sure that is correct? (I've only had a short look at the diff, and haven't got a comprehensive understanding of the CM3 WIN32 runtime currently.) Olaf -- Olaf Wagner elego Software Solutions GmbH, Berlin, Germany From wagner at elegosoft.com Wed Jan 3 16:55:43 2007 From: wagner at elegosoft.com (Olaf Wagner) Date: Wed, 3 Jan 2007 16:55:43 +0100 (CET) Subject: [M3devel] anyone want to try Windows now? In-Reply-To: References: Message-ID: <46553.194.138.127.36.1167839743.squirrel@mail.elegosoft.com> On Tue, January 2, 2007 5:30 pm, j k wrote: >
Anyone want to try Windows now? >
 
>
What should work is installing the latest release -- > 5.2.6.
>
Checking out the whole tree, copying > m3-sys\cminstall\src\config\NT386 to like \cm3\bin\cm3.cfg putting cm3.exe's > directory in %PATH%, running vcvars32.bat or simiplar to get a compiler/linker > in the path along with %include% and %lib% (sometimes this is done by Visual > C++ setup), though %include%/%lib% are hardly used, and running any of > scripts\win\do* or scripts\win\upgrad or scripts\win\make-dist, or cd'ing > around the tree and running cm3, using any of a variety of versions of Visual > C++. (Note that sysinfo.cmd puts \cm3\lib in %LIB% and if you just cd depend, > and are using a Visual C++ Express Edition, without also the Windows SDK, then > you'll get errors -- the Express Editions lack the Win32 import .libs. > m3-win\import-libs builds them and puts them in \cm3\lib.)
>
 
>
\cm3 is computed by cm3.cfg to be the directory above the > directory that contains cm3.exe. So you don't have to edit cm3.cfg at > all.
>
 
>
Of course probably some machine/OS/configuration-specificity > crept in and it probably only works for me.
>
 
>
If you build with Visual C++ 8.0, there is a download/setup > needed for machines without it installed, see m3-win\vcredist.txt.
>
 
>
I only tested on XP but a variety of versions of Windows should > work, esp. versions of NT (as opposed to 95/98)
>
 
>
Anyone have a bunch of test automation here?
>
 
>
The main problem was really just the infinite recursion in > startup.
>
 
>
Should a release be made soon then?
>
 
Hi Jay, you seem to have done a lot of work for CM3 on Windows platforms; thanks for that! I understand that most things are now working for you; but I'm unsure about the actual state of the code and meaning of the above announcement (as I haven't got much Windows experience). I think we should proceed in two steps: 1. write up some documentation about the - needed prerequisites - how to get and install them - how to install/upgrade and use the system which can be understood and used by M3-experienced people. We will then hopefully get some feedback from M3 users, can fix some problems, and improve the documentation. We should also pick one or at most two standard setups. 2. write up end-user documentation for installation and use of CM3 on Windows systems based on the chosen standard setups. This should be included in the CM3 www and doc packages and bundled with the official NT386 release for CM3 5.4. We should have some test feedback before we do that, though. Olaf -- Olaf Wagner elego Software Solutions GmbH, Berlin, Germany From wagner at plane.elego.de Wed Jan 3 08:03:13 2007 From: wagner at plane.elego.de (Olaf Wagner) Date: Wed, 3 Jan 2007 08:03:13 +0100 Subject: [M3devel] m3commit not working In-Reply-To: References: Message-ID: <20070103070313.GC24460@elegosoft.com> On Sun, Dec 31, 2006 at 12:58:19PM +0000, j k wrote: > > The m3commit mailing list does not appear to be working. > I have commited several Windows fixes. > But seen no mail. > > Now might be ok an time for folks to try Windows again, but I > do have more testing and more changes in the works. I got all your commit messages, so it's probably not sending the mails to the committer himself. Olaf -- elego Software Solutions GmbH HRB 77719 Olaf Wagner E-Mail: wagner(at)elego.de Ohmstra?e 9 Tel: +49 30 40 04 19 29 10179 Berlin Fax: +49 30 23 45 86 95 Cranachstra?e 7 Tel: +49 30 85 58 01 81 12157 Berlin Fax: +49 30 85 58 01 88 ------------------> WWW: http://www.elego-software-solutions.com From wagner at elegosoft.com Wed Jan 3 15:58:00 2007 From: wagner at elegosoft.com (Olaf Wagner) Date: Wed, 3 Jan 2007 15:58:00 +0100 (CET) Subject: [M3devel] review before checkin/submit/commit? place for user-specific or work-in-progres? In-Reply-To: References: Message-ID: <36493.194.138.127.36.1167836280.squirrel@mail.elegosoft.com> On Mon, January 1, 2007 3:39 pm, j k wrote: >
Do folks here > require/prefer all things be discussed/reviewed before any > checkin/submit/commit? Or ok to do stuff kind of single-mindedly? Source > control helps it not matter imho, but cvs isn't a great source control system, > as far as I know yet and as far as I have read.
>
 
>
Is there anywhere appropriate to checkin
>
  work in progress?
>
  user/developer-specific stuff?
>
 
>
For example at work we can put stuf in > <root>\developer\<username>.
>
Can a similar namespace be carved out in the cm3 cvs tree or > would that be an abuse?
>
 
>
Maybe I should just find some generic hosting service..?
>
 
> Jay, usually it's OK to check-in changes on the main trunk if they are compiling and working OK. If you are undertaking bigger projects that might affect other development, you should create a development branch for them to isolate them until they are finished and have been tested by others. Anyway it is always a good idea to announce changes on the m3devel list to see if anybody objects. Have you read the M3 configuration management rules at http://modula3.elegosoft.com/cm3/cm3-cm-rules.html? I would really like to have automatic compilation and regression testing on different target platforms, but this is not too easy to set up and maintain. You are right that CVS is not the greatest tool for version control, but it's working reliably, the bugs are known and can be worked around or ignored :) A migration of the repository to e.g. Subversion would be quite a lot of work, and have impacts on much of the existing infrastructure. With the available human resources I wouldn't recommend such a change. Olaf PS: You may want to include non-HTML versions of the texts in your email. PPS: Please also note the other mails about the CFLF/LF line ending, which should be taken care of by your CVS client. If you don't get proper Windows-formatted texts in your workspace, you have set up something wrong. -- Olaf Wagner elego Software Solutions GmbH, Berlin, Germany From wagner at elegosoft.com Wed Jan 3 16:10:18 2007 From: wagner at elegosoft.com (Olaf Wagner) Date: Wed, 3 Jan 2007 16:10:18 +0100 (CET) Subject: [M3devel] inaccuracy of NT386 and Win32 names? In-Reply-To: References: Message-ID: <46641.194.138.127.36.1167837018.squirrel@mail.elegosoft.com> On Sun, December 31, 2006 2:22 pm, j k wrote: >

Does anyone care that neither "NT386" > nor "Win32" are accurate names?

>

Historically and probably currently the NT386 target supported Windows > 95/98, which are not NT.

>

Lately support for older processors like 386 is going away. The current > operating systems don't support 386 nor likely do the current > compilers.
 Granted as long as the compiler supported it, you could > produce binaries that'd run on old OSes that did support 386.
 And the > C++ compiler has fairly little bearing here, and probably the linker too.

>

Most "Win32" code also works asis on Win64, so just calling it "Windows" > usually or "Windows-x86" sometimes would seem right, maybe "Win" or "Winx86" > for short.

>

I assume there's really no value in renaming NT386, and that "Win32" could > just be somewhat sleazily considered to also mean Win64.
Most other > hypothetical Windows targets could rightfully include NT in their name, > NTMIPS, NTALPHA, NTPOWERPC, NTIA64, NTAMD64, etc.
Things like CE, or heck, > Xbox, would likely be different targets distinct from NT.

>

(It has always bugged me how people claim Microsoft is kind of the opposite > of portability when in fact the portability of NT has been very well > demonstrated, but that then hardly any producer of Windows software followed > suit (including Microsoft -- Office))

>

I had to at least ask. :)

>

I also wonder if Modula-3 even needs both of these identifiers, they map > one to one currently, right? Maybe this was acknowledgement of the possibility > of NTMIPS, NTALPHA, NTPOWERPC, etc?

WIN32 should encapsulate all code that is specific to the 32 bit development and runtime environment of Windows. Historically it also distinguished code from 16 bit Microsoft environments IIRC. I expect we will also need a WIN64 code set soon. NT386 was supposed to run on Windows 95/98/NT, and later 2000 and XP, on the Intel processor architecture. It is certainly a misnomer wrt. the 3 in its name, but so have been lots of other identifiers, too. There has also been a NT386GNU target which used the Cygwin POSIX emulation environment running on Windows. There have never been any other supported hardware architectures for NT/2000/... as far as I know, but then, there has been no software support at all for these, even by Microsoft... A more consistent naming scheme for M3 targets may be interesting for new target platforms, but I wouldn't change any existing names for reasons of backward compatibility and effort. Olaf -- Olaf Wagner elego Software Solutions GmbH, Berlin, Germany From jayk123 at hotmail.com Thu Jan 4 02:15:51 2007 From: jayk123 at hotmail.com (j k) Date: Thu, 04 Jan 2007 01:15:51 +0000 Subject: [M3devel] Re: [M3commit] CVS Update: cm3 In-Reply-To: Message-ID: An HTML attachment was scrubbed... URL: From jayk123 at hotmail.com Thu Jan 4 02:27:46 2007 From: jayk123 at hotmail.com (j k) Date: Thu, 04 Jan 2007 01:27:46 +0000 Subject: [M3devel] Re: [M3commit] CVS Update: cm3 In-Reply-To: Message-ID: An HTML attachment was scrubbed... URL: From jayk123 at hotmail.com Thu Jan 4 02:57:26 2007 From: jayk123 at hotmail.com (j k) Date: Thu, 04 Jan 2007 01:57:26 +0000 Subject: [M3devel] Re: [M3commit] CVS Update: cm3 In-Reply-To: <33776.194.138.127.36.1167838685.squirrel@mail.elegosoft.com> Message-ID: An HTML attachment was scrubbed... URL: From jayk123 at hotmail.com Thu Jan 4 02:57:26 2007 From: jayk123 at hotmail.com (j k) Date: Thu, 04 Jan 2007 01:57:26 +0000 Subject: [M3devel] Re: [M3commit] CVS Update: cm3 In-Reply-To: <33776.194.138.127.36.1167838685.squirrel@mail.elegosoft.com> Message-ID: An HTML attachment was scrubbed... URL: From jayk123 at hotmail.com Thu Jan 4 03:07:36 2007 From: jayk123 at hotmail.com (j k) Date: Thu, 04 Jan 2007 02:07:36 +0000 Subject: [M3devel] review before checkin/submit/commit? place for user-specific or work-in-progres? Message-ID: > PS: You may want to include non-HTML versions of the texts in your email. hm, sorry, that was hotmail's doing but I think due to a setting change I didn't notice, not sure I made it or not. This should come through better. >Have you read the M3 configuration management rules at I'll reread them. I don't like so much ahead of time oversight in my way... It looks like folks have made it easy to convert to other source controls systems, there are import tools, but I guess "easy" is relative, like all things. "Nothing" has the minimal short term cost of course, but usually not the minimal long term cost. My understanding is that Subversion isn't so great either. It doesn't have like "hierarchical branches", just a mainline and copying back and forth to it, something like that. My "random survey" says Perforce is best. Win32 mostly implies Win64. They don't need to be distinct forks. Really the problem is like of "hierarchical sharing". It bugs me how much is copy/pasted among targets in Modula-3. You want to be able to factor out arbitrarily so that targets can be "derived" from other targets, or intermediate abstract targets. (ie: Win32 would be the base of Win32-x86, Win32-PowerPC, Win32-MIPS, Win32-Alpha, and even the base of Win64, which would then be the base of Win64-AMD64, Win64-IA64..) I realize that there isn't zero sharing here in Modula-3, but there is also a lot of copy/paste. _WIN64 implies _WIN32. They are both defined if _WIN64 is defined. /Usually/ but not always #if defined(_WIN32) is around Windows-specific code, not pointer-size dependent or processor dependent code. This is true in Modula-3 where most but not all TARGET == NT386 and OS_TYPE == Win32 code would work on any Win32 or Win64 architecture. - Jay From: "Olaf Wagner" To: "j k" CC: m3devel at elegosoft.com Subject: Re: [M3devel] review before checkin/submit/commit? place for user-specific or work-in-progres? Date: Wed, 3 Jan 2007 15:58:00 +0100 (CET) > >On Mon, January 1, 2007 3:39 pm, j k wrote: > >
Do folks here > > require/prefer all things be discussed/reviewed before any > > checkin/submit/commit? Or ok to do stuff kind of single-mindedly? Source > > control helps it not matter imho, but cvs isn't a great source control >system, > > as far as I know yet and as far as I have read.
> >
 
> >
Is there anywhere appropriate to checkin
> >
  work in progress?
> >
  user/developer-specific stuff?
> >
 
> >
For example at work we can put stuf in > > <root>\developer\<username>.
> >
Can a similar namespace be carved out in the cm3 cvs tree >or > > would that be an abuse?
> >
 
> >
Maybe I should just find some generic hosting >service..?
> >
 
> > > >Jay, > >usually it's OK to check-in changes on the main trunk if they are compiling >and working OK. If you are undertaking bigger projects that might affect >other development, you should create a development branch for them to >isolate them until they are finished and have been tested by others. >Anyway it is always a good idea to announce changes on the m3devel list >to see if anybody objects. > >Have you read the M3 configuration management rules at >http://modula3.elegosoft.com/cm3/cm3-cm-rules.html? > >I would really like to have automatic compilation and regression testing >on different target platforms, but this is not too easy to set up and >maintain. > >You are right that CVS is not the greatest tool for version control, >but it's working reliably, the bugs are known and can be worked around >or ignored :) A migration of the repository to e.g. Subversion would >be quite a lot of work, and have impacts on much of the existing >infrastructure. With the available human resources I wouldn't recommend >such a change. > >Olaf > >PS: You may want to include non-HTML versions of the texts in your email. >PPS: Please also note the other mails about the CFLF/LF line ending, which > should be taken care of by your CVS client. If you don't get proper > Windows-formatted texts in your workspace, you have set up something > wrong. >-- >Olaf Wagner >elego Software Solutions GmbH, Berlin, Germany _________________________________________________________________ Dave vs. Carl: The Insignificant Championship Series. ?Who will win? http://clk.atdmt.com/MSN/go/msnnkwsp0070000001msn/direct/01/?href=http://davevscarl.spaces.live.com/?icid=T001MSN38C07001 From jayk123 at hotmail.com Thu Jan 4 04:22:58 2007 From: jayk123 at hotmail.com (j k) Date: Thu, 04 Jan 2007 03:22:58 +0000 Subject: [M3devel] review before checkin/submit/commit? place for user-specific or work-in-progres? In-Reply-To: <20070104031027.GA17926@topoi.pooq.com> Message-ID: I admit there are /lots/ of source controls systems. It seems like cvs held down the fort a while, and then everyone about the same time decided they didn't like it and wrote more stuff. I don't know anything about monotone. Compared to my little bit of use of cvs, perforce has: files are read only by default locally you have to explicitly check them out (not exclusively mind you) so you get "p4 opened", "p4 diff", where cvs doesn't have them or is slow For branching you can create an arbitrary tree of branches and "integrate" (merge) branches up or down the tree, or even across, or just individual files or changelists (aka "cherry picking). Heck, p4 diff brings up windiff which is nice. Surely I'm not using cvs to its fullest (yet). It has some model for "remote depots" where you have a local copy if all the history. I haven't used it. In fact, the one feature I'd like that Perforce does not have is doing this sort of thing by default. As I understand, I think Subversion has that feature. Every developer has all the history locally. I think in Git takes this one step further and every developer has a local repository that is a peer of all the others. There's some lack of hierarchy which turns out ok. I'd really like cvs diff to not require network use. p4 diff isn't ideal here either. Heck, at least save a local copy of any file I checkout, if not more history than that. Anyway, my "random survey" includes very little use of anything, just reading up on a little bit of marketing and "community" and parts of books. Subversion does have Perforce beat on cost+licensing, but Perforce is free for open source use, and free for a very small number of clients, I think 10, formerly 2. I plan to use it at home. We use it at work so I am very familiar with it. Open Watcom uses Perforce and I read in their newsgroup, either they or someone else, stopped using cvs partly because it was a large cpu drain on the host system. There are just a bunch of systems these days. - Jay >From: hendrik at topoi.pooq.com >To: m3devel at elegosoft.com >CC: j k >Subject: Re: [M3devel] review before checkin/submit/commit? place for >user-specific or work-in-progres? >Date: Wed, 3 Jan 2007 22:10:27 -0500 > >On Thu, Jan 04, 2007 at 02:07:36AM +0000, j k wrote: > > > > It looks like folks have made it easy to convert to other source >controls > > systems, there are import tools, but I guess "easy" is relative, like >all > > things. "Nothing" has the minimal short term cost of course, but usually > > not the minimal long term cost. My understanding is that Subversion >isn't > > so great either. It doesn't have like "hierarchical branches", just a > > mainline and copying back and forth to it, something like that. My >"random > > survey" says Perforce is best. > >I never heard of Perforce. I've been using monotone here. What did you >like about it? > >-- hendrik _________________________________________________________________ Get FREE Web site and company branded e-mail from Microsoft Office Live http://clk.atdmt.com/MRT/go/mcrssaub0050001411mrt/direct/01/ From jayk123 at hotmail.com Thu Jan 4 04:14:04 2007 From: jayk123 at hotmail.com (j k) Date: Thu, 04 Jan 2007 03:14:04 +0000 Subject: [M3devel] Re: [M3commit] CVS Update: cm3 In-Reply-To: Message-ID: >I didn't look at the history for how the recursion got there. Tony has made a bunch of changes here over the past months/years as part of using pthreads on other platforms. Revision 1.8 looks suspicious. It has Init call GetActivation. GetActivation calls EnterCriticalSection(idleMu) which Init hasn't yet initialized. Where I said "infinite recursion", substitute "entering an uninitialized critical section". That might still lead to infinite recursion, like the access violation might be caught and code rerun or something. Feel free to undo my change and run the result. :) - Jay >From: "j k" >To: wagner at elegosoft.com, jkrell at birch.elego.de >CC: m3devel at elegosoft.com >Subject: RE: [M3devel] Re: [M3commit] CVS Update: cm3 >Date: Thu, 04 Jan 2007 01:57:26 +0000 > > > >I didn't look at the history for how the recursion got there. >I didn't put it in. >It was definitely there and as it was, ANY attempt to run ANY Modula-3 code >would crash in startup due to infinite recursion, stack overflow. > >For the critical sections I just did a local analysis within the file which >proved adequate to me. You can see fairly readily what are local variables >and what are gobals. > >There is a global linked list and the critical sections are used >to protect it. But you can set up a local before putting it on the list >without the critical section. > >The shorter time you are in a critical section, the better. > >The critical sections are still overused or underused, in the pthread code >too. > >Consider this pthread code: > >PROCEDURE GetActivation (): Activation = >? (* If not the initial thread and not created by Fork, returns NIL *) >? (* LL = 0 *) >? BEGIN >??? IF initActivations THEN InitActivations() END; >??? RETURN LOOPHOLE(Upthread.getspecific(activations), Activation); >? END GetActivation; > > >PROCEDURE InitActivations () = >? VAR me := NEW(Activation); >? BEGIN >??? WITH r = Upthread.key_create(activations, NIL) DO <*ASSERT r=0*> END; >??? WITH r = Upthread.setspecific(activations, me) DO <*ASSERT r=0*> END; >??? WITH r = Upthread.mutex_lock(activeMu) DO <*ASSERT r=0*> END; >????? <* ASSERT allThreads = NIL *> >????? me.handle := Upthread.self(); >????? me.next := me; >????? me.prev := me; >????? allThreads := me; >????? initActivations := FALSE; >??? WITH r = Upthread.mutex_unlock(activeMu) DO <*ASSERT r=0*> END; >? END InitActivations; > >The critical section might need to be expanded to encompass the >"initActivations" variable. > >Possible a "double check" is ok: >?if initActivations >??? enter critical section >????? if initActivations > >In Win32 you can probably get by with a simple spin lock using >InterlockedIncrement. >Does pthreads have that? >In Vista a "once" would be appropriate. I believe pthreads has those too. >Use of simple booleans to implement "onces" is often done incorrectly. > >The critical section does not need to cover the lines: >?? me.next = me; >?? me.prev = me; >?? me.handle = Upthread.self(); > >If this all is in some "startup" code that provides its own serialization, >then more of this is unnecessary. >For example on Windows this should be in m3core.dll's DllMain(process >startup). It probably already is. I'd have to check. > >Putting it in main is just about adequate, except that someone's .dll's >DllMain(process startup) could create a thread that ends up in Modula-3 >code. (There is the assertion about being created by Fork, which is >unfortunate -- I should be able to use Modula-3 .dlls from non-Modula-3 >code and I should be able to create threads with the system-native thread >creater, CreateThread on Windows. Having to go through custom functions to >create threads is not good. It requires more control of the system than you >often have -- imagine for example providing a COM object implemented in >Modula-3...) > >It'd be nice to not roll custom linked lists btw, and then for there to be >a generic ThreadSafeList or such. > >?- Jay > > > > > > > >From:??"Olaf Wagner" >To:??jkrell at birch.elego.de >CC:??m3devel at elegosoft.com >Subject:??[M3devel] Re: [M3commit] CVS Update: cm3 >Date:??Wed, 3 Jan 2007 16:38:05 +0100 (CET) > > > >On Sat, December 30, 2006 3:18 am, Jay Krell wrote: > > > CVSROOT: /usr/cvs > > > Changes by: jkrell at birch. 06/12/30 02:18:06 > > > > > > Modified files: > > > cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 > > > > > > Log message: > > > important: fix infinite recursion in Win32 startup > > > correct check for TlsAlloc failure (TLS_OUT_OF_INDEXES instead of < 0) > > > reduce critical sections slightly (esp. to avoid calling out while in >a > > > critical section, including to >DuplicateHandle, CreateThread, VirtualQuery) > > > >I would like to understand this change better (especially the first >item), > >or at least how/why and endless recursion got into the source (as older > >versions have run, haven't they?). > > > >As for critical sections, you seem to have remove one completely and > >reduced another. Are you sure that is correct? (I've only had a short > >look at the diff, and haven't got a comprehensive understanding of the > >CM3 WIN32 runtime currently.) > > > >Olaf > >-- > >Olaf Wagner > >elego Software Solutions GmbH, Berlin, Germany > >_______________________________________________ > >M3devel mailing list > >M3devel at elegosoft.com > >https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel > > Fixing up the home? Live Search can help > >_______________________________________________ >M3devel mailing list >M3devel at elegosoft.com >https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel _________________________________________________________________ Type your favorite song.? Get a customized station.? Try MSN Radio powered by Pandora. http://radio.msn.com/?icid=T002MSN03A07001 From hosking at cs.purdue.edu Sat Jan 6 21:37:27 2007 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 6 Jan 2007 15:37:27 -0500 Subject: [M3devel] Re: [M3commit] CVS Update: cm3 In-Reply-To: References: Message-ID: <2CB0DF20-D498-4DB9-8EFE-1CAF6CA7C29A@cs.purdue.edu> Just a note that my changes to Win32 threading were intended to mirror my changes for pthreads on other platforms. I was in no situation to test the Win32 threading implementation myself as I had no platform on which to test. I will try to take a look at the Win32 threading updates in ThreadWin32.m3 to ensure that they make sense with respect to the invariants that the run-time system (heap, GC, etc.) need. On Jan 3, 2007, at 10:14 PM, j k wrote: >> I didn't look at the history for how the recursion got there. > > Tony has made a bunch of changes here over the past months/years as > part of using pthreads on other platforms. > Revision 1.8 looks suspicious. > It has Init call GetActivation. > GetActivation calls EnterCriticalSection(idleMu) which Init hasn't > yet initialized. > > Where I said "infinite recursion", substitute "entering an > uninitialized critical section". > > That might still lead to infinite recursion, like the access > violation might be caught and code rerun or something. Feel free to > undo my change and run the result. :) > > - Jay > >> From: "j k" >> To: wagner at elegosoft.com, jkrell at birch.elego.de >> CC: m3devel at elegosoft.com >> Subject: RE: [M3devel] Re: [M3commit] CVS Update: cm3 >> Date: Thu, 04 Jan 2007 01:57:26 +0000 >> >> >> >> I didn't look at the history for how the recursion got there. >> I didn't put it in. >> It was definitely there and as it was, ANY attempt to run ANY >> Modula-3 code would crash in startup due to infinite recursion, >> stack overflow. >> >> For the critical sections I just did a local analysis within the >> file which >> proved adequate to me. You can see fairly readily what are local >> variables and what are gobals. >> >> There is a global linked list and the critical sections are used >> to protect it. But you can set up a local before putting it on the >> list without the critical section. >> >> The shorter time you are in a critical section, the better. >> >> The critical sections are still overused or underused, in the >> pthread code too. >> >> Consider this pthread code: >> >> PROCEDURE GetActivation (): Activation = >> (* If not the initial thread and not created by Fork, returns >> NIL *) >> (* LL = 0 *) >> BEGIN >> IF initActivations THEN InitActivations() END; >> RETURN LOOPHOLE(Upthread.getspecific(activations), Activation); >> END GetActivation; >> >> >> PROCEDURE InitActivations () = >> VAR me := NEW(Activation); >> BEGIN >> WITH r = Upthread.key_create(activations, NIL) DO <*ASSERT >> r=0*> END; >> WITH r = Upthread.setspecific(activations, me) DO <*ASSERT >> r=0*> END; >> WITH r = Upthread.mutex_lock(activeMu) DO <*ASSERT r=0*> END; >> <* ASSERT allThreads = NIL *> >> me.handle := Upthread.self(); >> me.next := me; >> me.prev := me; >> allThreads := me; >> initActivations := FALSE; >> WITH r = Upthread.mutex_unlock(activeMu) DO <*ASSERT r=0*> END; >> END InitActivations; >> >> The critical section might need to be expanded to encompass the >> "initActivations" variable. >> >> Possible a "double check" is ok: >> if initActivations >> enter critical section >> if initActivations >> >> In Win32 you can probably get by with a simple spin lock using >> InterlockedIncrement. >> Does pthreads have that? >> In Vista a "once" would be appropriate. I believe pthreads has >> those too. >> Use of simple booleans to implement "onces" is often done >> incorrectly. >> >> The critical section does not need to cover the lines: >> me.next = me; >> me.prev = me; >> me.handle = Upthread.self(); >> >> If this all is in some "startup" code that provides its own >> serialization, then more of this is unnecessary. >> For example on Windows this should be in m3core.dll's DllMain >> (process startup). It probably already is. I'd have to check. >> >> Putting it in main is just about adequate, except that >> someone's .dll's DllMain(process startup) could create a thread >> that ends up in Modula-3 code. (There is the assertion about being >> created by Fork, which is unfortunate -- I should be able to use >> Modula-3 .dlls from non-Modula-3 code and I should be able to >> create threads with the system-native thread creater, CreateThread >> on Windows. Having to go through custom functions to create >> threads is not good. It requires more control of the system than >> you often have -- imagine for example providing a COM object >> implemented in Modula-3...) >> >> It'd be nice to not roll custom linked lists btw, and then for >> there to be a generic ThreadSafeList or such. >> >> - Jay >> >> >> >> >> >> >> >> From: "Olaf Wagner" >> To: jkrell at birch.elego.de >> CC: m3devel at elegosoft.com >> Subject: [M3devel] Re: [M3commit] CVS Update: cm3 >> Date: Wed, 3 Jan 2007 16:38:05 +0100 (CET) >> > >> >On Sat, December 30, 2006 3:18 am, Jay Krell wrote: >> > > CVSROOT: /usr/cvs >> > > Changes by: jkrell at birch. 06/12/30 02:18:06 >> > > >> > > Modified files: >> > > cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 >> > > >> > > Log message: >> > > important: fix infinite recursion in Win32 startup >> > > correct check for TlsAlloc failure (TLS_OUT_OF_INDEXES instead >> of < 0) >> > > reduce critical sections slightly (esp. to avoid calling out >> while in a >> > > critical section, including to >> DuplicateHandle, CreateThread, VirtualQuery) >> > >> >I would like to understand this change better (especially the >> first item), >> >or at least how/why and endless recursion got into the source (as >> older >> >versions have run, haven't they?). >> > >> >As for critical sections, you seem to have remove one completely and >> >reduced another. Are you sure that is correct? (I've only had a >> short >> >look at the diff, and haven't got a comprehensive understanding >> of the >> >CM3 WIN32 runtime currently.) >> > >> >Olaf >> >-- >> >Olaf Wagner >> >elego Software Solutions GmbH, Berlin, Germany >> >_______________________________________________ >> >M3devel mailing list >> >M3devel at elegosoft.com >> >https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel >> >> Fixing up the home? Live Search can help >> > > >> _______________________________________________ >> M3devel mailing list >> M3devel at elegosoft.com >> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel > > _________________________________________________________________ > Type your favorite song. Get a customized station. Try MSN Radio > powered by Pandora. http://radio.msn.com/?icid=T002MSN03A07001 > > _______________________________________________ > M3devel mailing list > M3devel at elegosoft.com > https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel Antony Hosking | Associate Professor Dept of Computer Science | Office: +1 765 494-6001 Purdue University | Mobile: +1 765 427-5484 250 N. University Street | Email: hosking at cs.purdue.edu West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking _--_|\ / \ \_.--._/ ) v / From hosking at cs.purdue.edu Sat Jan 6 21:47:05 2007 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 6 Jan 2007 15:47:05 -0500 Subject: [M3devel] Re: [M3commit] CVS Update: cm3 In-Reply-To: References: Message-ID: <8F08B2F8-CE8E-4177-9B05-25C9EB985F04@cs.purdue.edu> On Jan 3, 2007, at 8:57 PM, j k wrote: > I didn't look at the history for how the recursion got there. > I didn't put it in. > It was definitely there and as it was, ANY attempt to run ANY > Modula-3 code would crash in startup due to infinite recursion, > stack overflow. > > For the critical sections I just did a local analysis within the > file which > proved adequate to me. You can see fairly readily what are local > variables and what are gobals. > > There is a global linked list and the critical sections are used > to protect it. But you can set up a local before putting it on the > list without the critical section. > > The shorter time you are in a critical section, the better. > > The critical sections are still overused or underused, in the > pthread code too. > > Consider this pthread code: > > PROCEDURE GetActivation (): Activation = > (* If not the initial thread and not created by Fork, returns NIL *) > (* LL = 0 *) > BEGIN > IF initActivations THEN InitActivations() END; > RETURN LOOPHOLE(Upthread.getspecific(activations), Activation); > END GetActivation; > > > PROCEDURE InitActivations () = > VAR me := NEW(Activation); > BEGIN > WITH r = Upthread.key_create(activations, NIL) DO <*ASSERT > r=0*> END; > WITH r = Upthread.setspecific(activations, me) DO <*ASSERT > r=0*> END; > WITH r = Upthread.mutex_lock(activeMu) DO <*ASSERT r=0*> END; > <* ASSERT allThreads = NIL *> > me.handle := Upthread.self(); > me.next := me; > me.prev := me; > allThreads := me; > initActivations := FALSE; > WITH r = Upthread.mutex_unlock(activeMu) DO <*ASSERT r=0*> END; > END InitActivations; > > The critical section might need to be expanded to encompass the > "initActivations" variable. > > Possible a "double check" is ok: > if initActivations > enter critical section > if initActivations This is probably not safe either, since double-check will fail for relaxed memory orderings on some SMPs. > In Win32 you can probably get by with a simple spin lock using > InterlockedIncrement. > Does pthreads have that? Need to look into this even for ThreadPosix.m3. > In Vista a "once" would be appropriate. I believe pthreads has > those too. Yes, pthreads has "once". > Use of simple booleans to implement "onces" is often done incorrectly. > > The critical section does not need to cover the lines: > me.next = me; > me.prev = me; > me.handle = Upthread.self(); Indeed. > If this all is in some "startup" code that provides its own > serialization, then more of this is unnecessary. > For example on Windows this should be in m3core.dll's DllMain > (process startup). It probably already is. I'd have to check. > > Putting it in main is just about adequate, except that > someone's .dll's DllMain(process startup) could create a thread > that ends up in Modula-3 code. (There is the assertion about being > created by Fork, which is unfortunate -- I should be able to use > Modula-3 .dlls from non-Modula-3 code and I should be able to > create threads with the system-native thread creater, CreateThread > on Windows. Having to go through custom functions to create threads > is not good. It requires more control of the system than you often > have -- imagine for example providing a COM object implemented in > Modula-3...) Why would you expect the system-native thread creator to be able to create a Modula-3 thread, given that the Modula-3 run-time system needs to know about the threads to be GC'd. I think it is entirely fair that the M3 run-time system know about the threads that are running M3 code. > It'd be nice to not roll custom linked lists btw, and then for > there to be a generic ThreadSafeList or such. > > - Jay > > > > From: "Olaf Wagner" > To: jkrell at birch.elego.de > CC: m3devel at elegosoft.com > Subject: [M3devel] Re: [M3commit] CVS Update: cm3 > Date: Wed, 3 Jan 2007 16:38:05 +0100 (CET) > > > >On Sat, December 30, 2006 3:18 am, Jay Krell wrote: > > > CVSROOT: /usr/cvs > > > Changes by: jkrell at birch. 06/12/30 02:18:06 > > > > > > Modified files: > > > cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 > > > > > > Log message: > > > important: fix infinite recursion in Win32 startup > > > correct check for TlsAlloc failure (TLS_OUT_OF_INDEXES instead > of < 0) > > > reduce critical sections slightly (esp. to avoid calling out > while in a > > > critical section, including to DuplicateHandle, CreateThread, > VirtualQuery) > > > >I would like to understand this change better (especially the > first item), > >or at least how/why and endless recursion got into the source (as > older > >versions have run, haven't they?). > > > >As for critical sections, you seem to have remove one completely and > >reduced another. Are you sure that is correct? (I've only had a short > >look at the diff, and haven't got a comprehensive understanding of > the > >CM3 WIN32 runtime currently.) > > > >Olaf > >-- > >Olaf Wagner > >elego Software Solutions GmbH, Berlin, Germany > >_______________________________________________ > >M3devel mailing list > >M3devel at elegosoft.com > >https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel > > Fixing up the home? Live Search can help > _______________________________________________ > M3devel mailing list > M3devel at elegosoft.com > https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel Antony Hosking | Associate Professor Dept of Computer Science | Office: +1 765 494-6001 Purdue University | Mobile: +1 765 427-5484 250 N. University Street | Email: hosking at cs.purdue.edu West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking _--_|\ / \ \_.--._/ ) v / From hosking at cs.purdue.edu Sat Jan 6 21:50:43 2007 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 6 Jan 2007 15:50:43 -0500 Subject: [M3devel] Re: [M3commit] CVS Update: cm3 In-Reply-To: References: Message-ID: On Jan 3, 2007, at 10:14 PM, j k wrote: >> I didn't look at the history for how the recursion got there. > > Tony has made a bunch of changes here over the past months/years as > part of using pthreads on other platforms. > Revision 1.8 looks suspicious. > It has Init call GetActivation. > GetActivation calls EnterCriticalSection(idleMu) which Init hasn't > yet initialized. > Where I said "infinite recursion", substitute "entering an > uninitialized critical section". I'll need to look again at my thinking on this. As I recall there was a chicken and egg problem where we wanted *not* to run some code until certain parts of the M3 run-time system were ready. Given that one cannot fork a Modula-3 thread until after a given point in initialization of the run-time system, I figured that certain idioms would be safe even if not in the general case. > > That might still lead to infinite recursion, like the access > violation might be caught and code rerun or something. Feel free to > undo my change and run the result. :) > > - Jay > >> From: "j k" >> To: wagner at elegosoft.com, jkrell at birch.elego.de >> CC: m3devel at elegosoft.com >> Subject: RE: [M3devel] Re: [M3commit] CVS Update: cm3 >> Date: Thu, 04 Jan 2007 01:57:26 +0000 >> >> >> >> I didn't look at the history for how the recursion got there. >> I didn't put it in. >> It was definitely there and as it was, ANY attempt to run ANY >> Modula-3 code would crash in startup due to infinite recursion, >> stack overflow. >> >> For the critical sections I just did a local analysis within the >> file which >> proved adequate to me. You can see fairly readily what are local >> variables and what are gobals. >> >> There is a global linked list and the critical sections are used >> to protect it. But you can set up a local before putting it on the >> list without the critical section. >> >> The shorter time you are in a critical section, the better. >> >> The critical sections are still overused or underused, in the >> pthread code too. >> >> Consider this pthread code: >> >> PROCEDURE GetActivation (): Activation = >> (* If not the initial thread and not created by Fork, returns >> NIL *) >> (* LL = 0 *) >> BEGIN >> IF initActivations THEN InitActivations() END; >> RETURN LOOPHOLE(Upthread.getspecific(activations), Activation); >> END GetActivation; >> >> >> PROCEDURE InitActivations () = >> VAR me := NEW(Activation); >> BEGIN >> WITH r = Upthread.key_create(activations, NIL) DO <*ASSERT >> r=0*> END; >> WITH r = Upthread.setspecific(activations, me) DO <*ASSERT >> r=0*> END; >> WITH r = Upthread.mutex_lock(activeMu) DO <*ASSERT r=0*> END; >> <* ASSERT allThreads = NIL *> >> me.handle := Upthread.self(); >> me.next := me; >> me.prev := me; >> allThreads := me; >> initActivations := FALSE; >> WITH r = Upthread.mutex_unlock(activeMu) DO <*ASSERT r=0*> END; >> END InitActivations; >> >> The critical section might need to be expanded to encompass the >> "initActivations" variable. >> >> Possible a "double check" is ok: >> if initActivations >> enter critical section >> if initActivations >> >> In Win32 you can probably get by with a simple spin lock using >> InterlockedIncrement. >> Does pthreads have that? >> In Vista a "once" would be appropriate. I believe pthreads has >> those too. >> Use of simple booleans to implement "onces" is often done >> incorrectly. >> >> The critical section does not need to cover the lines: >> me.next = me; >> me.prev = me; >> me.handle = Upthread.self(); >> >> If this all is in some "startup" code that provides its own >> serialization, then more of this is unnecessary. >> For example on Windows this should be in m3core.dll's DllMain >> (process startup). It probably already is. I'd have to check. >> >> Putting it in main is just about adequate, except that >> someone's .dll's DllMain(process startup) could create a thread >> that ends up in Modula-3 code. (There is the assertion about being >> created by Fork, which is unfortunate -- I should be able to use >> Modula-3 .dlls from non-Modula-3 code and I should be able to >> create threads with the system-native thread creater, CreateThread >> on Windows. Having to go through custom functions to create >> threads is not good. It requires more control of the system than >> you often have -- imagine for example providing a COM object >> implemented in Modula-3...) >> >> It'd be nice to not roll custom linked lists btw, and then for >> there to be a generic ThreadSafeList or such. >> >> - Jay >> >> >> >> >> >> >> >> From: "Olaf Wagner" >> To: jkrell at birch.elego.de >> CC: m3devel at elegosoft.com >> Subject: [M3devel] Re: [M3commit] CVS Update: cm3 >> Date: Wed, 3 Jan 2007 16:38:05 +0100 (CET) >> > >> >On Sat, December 30, 2006 3:18 am, Jay Krell wrote: >> > > CVSROOT: /usr/cvs >> > > Changes by: jkrell at birch. 06/12/30 02:18:06 >> > > >> > > Modified files: >> > > cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 >> > > >> > > Log message: >> > > important: fix infinite recursion in Win32 startup >> > > correct check for TlsAlloc failure (TLS_OUT_OF_INDEXES instead >> of < 0) >> > > reduce critical sections slightly (esp. to avoid calling out >> while in a >> > > critical section, including to >> DuplicateHandle, CreateThread, VirtualQuery) >> > >> >I would like to understand this change better (especially the >> first item), >> >or at least how/why and endless recursion got into the source (as >> older >> >versions have run, haven't they?). >> > >> >As for critical sections, you seem to have remove one completely and >> >reduced another. Are you sure that is correct? (I've only had a >> short >> >look at the diff, and haven't got a comprehensive understanding >> of the >> >CM3 WIN32 runtime currently.) >> > >> >Olaf >> >-- >> >Olaf Wagner >> >elego Software Solutions GmbH, Berlin, Germany >> >_______________________________________________ >> >M3devel mailing list >> >M3devel at elegosoft.com >> >https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel >> >> Fixing up the home? Live Search can help >> > > >> _______________________________________________ >> M3devel mailing list >> M3devel at elegosoft.com >> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel > > _________________________________________________________________ > Type your favorite song. Get a customized station. Try MSN Radio > powered by Pandora. http://radio.msn.com/?icid=T002MSN03A07001 > > _______________________________________________ > M3devel mailing list > M3devel at elegosoft.com > https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel Antony Hosking | Associate Professor Dept of Computer Science | Office: +1 765 494-6001 Purdue University | Mobile: +1 765 427-5484 250 N. University Street | Email: hosking at cs.purdue.edu West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking _--_|\ / \ \_.--._/ ) v / From jayk123 at hotmail.com Sun Jan 7 06:36:58 2007 From: jayk123 at hotmail.com (j k) Date: Sun, 07 Jan 2007 05:36:58 +0000 Subject: [M3devel] Re: [M3commit] CVS Update: cm3 In-Reply-To: <8F08B2F8-CE8E-4177-9B05-25C9EB985F04@cs.purdue.edu> Message-ID: > Why would you expect the system-native thread creator to be able to > create a Modula-3 thread, given that the Modula-3 run-time system needs to > know about the threads to be GC'd. I think it is entirely fair that > the M3 run-time system know about the threads that are running M3 code. It would be a nice interoperability feature, for "native" code to call Modula-3 code and have it "just work". I understand that it might not be easy/doable. DllMain(thread attach) in Win32 makes it a little more doable but still not /always/ trivial. Given that the .exe staticaly directly or indirectly depends on Modula-3 code, and not using build_standalone(), then m3core.dll will get notified of all thread creations and no special thread creater needs to be called. I have in mind a relatively loosely coupled world, where, say, Modula-3 might be little used in a process, but say some sort of "plugin" might use it. In such a loosely coupled world, no special thread creation function can be agreed up except most likely CreateThread (there are others below it -- NtCreateThread, and there are fibers, both bring back this problem) Such a loosely coupled system doesn't work today because m3core.dll might not be loaded until "late". However, at some cost, what could happen is Modula-3 code could "often" check if it has ever run on this thread and if not do the initialization on demand. "Often" could be limited to every time a garbage collected allocation gets done. That may or may not be a significant cost. Most libraries do not foist their custom thread creator on you. > Possible a "double check" is ok: > This is probably not safe either, since double-check will fail for relaxed memory orderings on some SMPs Oh, I forgot: Isn't enter/leave critical section considered a full memory barrier/fence/whatever? Therefore the second read initActivation is guaranteed to not be cached by the compiler/linker? On Win32 I am pretty darn sure and it makes writing such code a fair amount easier. If you want, you can >> full memory barrie if initActivations enter critical section >> MemoryBarrier if initActivations ... initActivations = true; >> MemoryBarrier end leave critical section Win32 has a relatively recent addition -- "MemoryBarrier". It is always inlined and varies per-processor. On x86 it is just an arbitrary interlocked operation I think. On other processors it is a special instruction. Does Modula-3 have an equivalent? - Jay >From: Tony Hosking >To: j k >CC: wagner at elegosoft.com, jkrell at birch.elego.de, m3devel at elegosoft.com >Subject: Re: [M3devel] Re: [M3commit] CVS Update: cm3 >Date: Sat, 6 Jan 2007 15:47:05 -0500 > > >On Jan 3, 2007, at 8:57 PM, j k wrote: > >>I didn't look at the history for how the recursion got there. >>I didn't put it in. >>It was definitely there and as it was, ANY attempt to run ANY Modula-3 >>code would crash in startup due to infinite recursion, stack overflow. >> >>For the critical sections I just did a local analysis within the file >>which >>proved adequate to me. You can see fairly readily what are local >>variables and what are gobals. >> >>There is a global linked list and the critical sections are used >>to protect it. But you can set up a local before putting it on the list >>without the critical section. >> >>The shorter time you are in a critical section, the better. >> >>The critical sections are still overused or underused, in the pthread >>code too. >> >>Consider this pthread code: >> >>PROCEDURE GetActivation (): Activation = >> (* If not the initial thread and not created by Fork, returns NIL *) >> (* LL = 0 *) >> BEGIN >> IF initActivations THEN InitActivations() END; >> RETURN LOOPHOLE(Upthread.getspecific(activations), Activation); >> END GetActivation; >> >> >>PROCEDURE InitActivations () = >> VAR me := NEW(Activation); >> BEGIN >> WITH r = Upthread.key_create(activations, NIL) DO <*ASSERT r=0*> >>END; >> WITH r = Upthread.setspecific(activations, me) DO <*ASSERT r=0*> >>END; >> WITH r = Upthread.mutex_lock(activeMu) DO <*ASSERT r=0*> END; >> <* ASSERT allThreads = NIL *> >> me.handle := Upthread.self(); >> me.next := me; >> me.prev := me; >> allThreads := me; >> initActivations := FALSE; >> WITH r = Upthread.mutex_unlock(activeMu) DO <*ASSERT r=0*> END; >> END InitActivations; >> >>The critical section might need to be expanded to encompass the >>"initActivations" variable. >> >>Possible a "double check" is ok: >> if initActivations >> enter critical section >> if initActivations >This is probably not safe either, since double-check will fail for relaxed >memory orderings on some SMPs. >>In Win32 you can probably get by with a simple spin lock using >>InterlockedIncrement. >>Does pthreads have that? >Need to look into this even for ThreadPosix.m3. >>In Vista a "once" would be appropriate. I believe pthreads has those too. >Yes, pthreads has "once". >>Use of simple booleans to implement "onces" is often done incorrectly. >> >>The critical section does not need to cover the lines: >> me.next = me; >> me.prev = me; >> me.handle = Upthread.self(); > >Indeed. >>If this all is in some "startup" code that provides its own >>serialization, then more of this is unnecessary. >>For example on Windows this should be in m3core.dll's DllMain (process >>startup). It probably already is. I'd have to check. >> >>Putting it in main is just about adequate, except that someone's .dll's >>DllMain(process startup) could create a thread that ends up in Modula-3 >>code. (There is the assertion about being created by Fork, which is >>unfortunate -- I should be able to use Modula-3 .dlls from non-Modula-3 >>code and I should be able to create threads with the system-native thread >>creater, CreateThread on Windows. Having to go through custom functions >>to create threads is not good. It requires more control of the system >>than you often have -- imagine for example providing a COM object >>implemented in Modula-3...) >Why would you expect the system-native thread creator to be able to create >a Modula-3 thread, given that the Modula-3 run-time system needs to know >about the threads to be GC'd. I think it is entirely fair that the M3 >run-time system know about the threads that are running M3 code. >>It'd be nice to not roll custom linked lists btw, and then for there to >>be a generic ThreadSafeList or such. >> >> - Jay >> >> >> >>From: "Olaf Wagner" >>To: jkrell at birch.elego.de >>CC: m3devel at elegosoft.com >>Subject: [M3devel] Re: [M3commit] CVS Update: cm3 >>Date: Wed, 3 Jan 2007 16:38:05 +0100 (CET) >> > >> >On Sat, December 30, 2006 3:18 am, Jay Krell wrote: >> > > CVSROOT: /usr/cvs >> > > Changes by: jkrell at birch. 06/12/30 02:18:06 >> > > >> > > Modified files: >> > > cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 >> > > >> > > Log message: >> > > important: fix infinite recursion in Win32 startup >> > > correct check for TlsAlloc failure (TLS_OUT_OF_INDEXES instead of < >>0) >> > > reduce critical sections slightly (esp. to avoid calling out while >>in a >> > > critical section, including to DuplicateHandle, CreateThread, >>VirtualQuery) >> > >> >I would like to understand this change better (especially the first >>item), >> >or at least how/why and endless recursion got into the source (as older >> >versions have run, haven't they?). >> > >> >As for critical sections, you seem to have remove one completely and >> >reduced another. Are you sure that is correct? (I've only had a short >> >look at the diff, and haven't got a comprehensive understanding of the >> >CM3 WIN32 runtime currently.) >> > >> >Olaf >> >-- >> >Olaf Wagner >> >elego Software Solutions GmbH, Berlin, Germany >> >_______________________________________________ >> >M3devel mailing list >> >M3devel at elegosoft.com >> >https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel >> >>Fixing up the home? Live Search can help >>_______________________________________________ >>M3devel mailing list >>M3devel at elegosoft.com >>https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel > >Antony Hosking | Associate Professor >Dept of Computer Science | Office: +1 765 494-6001 >Purdue University | Mobile: +1 765 427-5484 >250 N. University Street | Email: hosking at cs.purdue.edu >West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking > _--_|\ >/ \ >\_.--._/ ) > v / > > > _________________________________________________________________ Get live scores and news about your team: Add the Live.com Football Page www.live.com/?addtemplate=football&icid=T001MSN30A0701 From hosking at cs.purdue.edu Sun Jan 7 16:18:18 2007 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sun, 7 Jan 2007 10:18:18 -0500 Subject: [M3devel] Re: [M3commit] CVS Update: cm3 In-Reply-To: References: Message-ID: On Jan 7, 2007, at 12:36 AM, j k wrote: > > > Why would you expect the system-native thread creator to be able to > > create a Modula-3 thread, given that the Modula-3 run-time system > needs to > > know about the threads to be GC'd. I think it is entirely fair > that > > the M3 run-time system know about the threads that are running > M3 code. > > It would be a nice interoperability feature, for "native" code to > call Modula-3 code and have it "just work". > I understand that it might not be easy/doable. > > DllMain(thread attach) in Win32 makes it a little more doable but > still not /always/ trivial. > > Given that the .exe staticaly directly or indirectly depends on > Modula-3 code, > and not using build_standalone(), then m3core.dll will get notified > of all thread creations > and no special thread creater needs to be called. > > I have in mind a relatively loosely coupled world, where, say, > Modula-3 might be little used > in a process, but say some sort of "plugin" might use it. > > In such a loosely coupled world, no special thread creation > function can be agreed up except > most likely CreateThread (there are others below it -- > NtCreateThread, and there are fibers, > both bring back this problem) > > Such a loosely coupled system doesn't work today because m3core.dll > might not be loaded until "late". > > However, at some cost, what could happen is Modula-3 code could > "often" check if it has ever > run on this thread and if not do the initialization on demand. > "Often" could be limited to every time > a garbage collected allocation gets done. That may or may not be a > significant cost. Yes, I imagine we could come up with something like this for all targets (win32 and posix). > > Most libraries do not foist their custom thread creator on you. > > > Possible a "double check" is ok: > > This is probably not safe either, since double-check will fail > for relaxed memory orderings on some SMPs > > Oh, I forgot: > > Isn't enter/leave critical section considered a full memory barrier/ > fence/whatever? Yes, it is. > Therefore the second read initActivation is guaranteed to not be > cached by the compiler/linker? Yes, so one would need a second check as you propose below. > On Win32 I am pretty darn sure and it makes writing such code a > fair amount easier. > If you want, you can > > >> full memory barrie > > if initActivations > enter critical section > >> MemoryBarrier > if initActivations > ... > initActivations = true; > >> MemoryBarrier > end > leave critical section > > Win32 has a relatively recent addition -- "MemoryBarrier". > It is always inlined and varies per-processor. On x86 it is just an > arbitrary interlocked operation I think. > On other processors it is a special instruction. > Does Modula-3 have an equivalent? I would hate to expose a memory barrier operation to the programmer in that way. Ideally, we would come up with a memory model for Modula-3 along the lines of that for Java, where use of the thread synchronization primitives of Modula-3 produces well-defined memory orderings among threads. We have behavior like that currently simply by virtue of use of the pthread and win32 thread primitives in the implementation of Modula-3 thread primitives, which impose memory barriers, so everything should work "as expected" for now on most SMPs. > > - Jay > > >> From: Tony Hosking >> To: j k >> CC: wagner at elegosoft.com, jkrell at birch.elego.de, >> m3devel at elegosoft.com >> Subject: Re: [M3devel] Re: [M3commit] CVS Update: cm3 >> Date: Sat, 6 Jan 2007 15:47:05 -0500 >> >> >> On Jan 3, 2007, at 8:57 PM, j k wrote: >> >>> I didn't look at the history for how the recursion got there. >>> I didn't put it in. >>> It was definitely there and as it was, ANY attempt to run ANY >>> Modula-3 code would crash in startup due to infinite recursion, >>> stack overflow. >>> >>> For the critical sections I just did a local analysis within the >>> file which >>> proved adequate to me. You can see fairly readily what are local >>> variables and what are gobals. >>> >>> There is a global linked list and the critical sections are used >>> to protect it. But you can set up a local before putting it on >>> the list without the critical section. >>> >>> The shorter time you are in a critical section, the better. >>> >>> The critical sections are still overused or underused, in the >>> pthread code too. >>> >>> Consider this pthread code: >>> >>> PROCEDURE GetActivation (): Activation = >>> (* If not the initial thread and not created by Fork, returns >>> NIL *) >>> (* LL = 0 *) >>> BEGIN >>> IF initActivations THEN InitActivations() END; >>> RETURN LOOPHOLE(Upthread.getspecific(activations), Activation); >>> END GetActivation; >>> >>> >>> PROCEDURE InitActivations () = >>> VAR me := NEW(Activation); >>> BEGIN >>> WITH r = Upthread.key_create(activations, NIL) DO <*ASSERT >>> r=0*> END; >>> WITH r = Upthread.setspecific(activations, me) DO <*ASSERT >>> r=0*> END; >>> WITH r = Upthread.mutex_lock(activeMu) DO <*ASSERT r=0*> END; >>> <* ASSERT allThreads = NIL *> >>> me.handle := Upthread.self(); >>> me.next := me; >>> me.prev := me; >>> allThreads := me; >>> initActivations := FALSE; >>> WITH r = Upthread.mutex_unlock(activeMu) DO <*ASSERT r=0*> END; >>> END InitActivations; >>> >>> The critical section might need to be expanded to encompass the >>> "initActivations" variable. >>> >>> Possible a "double check" is ok: >>> if initActivations >>> enter critical section >>> if initActivations >> This is probably not safe either, since double-check will fail >> for relaxed memory orderings on some SMPs. >>> In Win32 you can probably get by with a simple spin lock using >>> InterlockedIncrement. >>> Does pthreads have that? >> Need to look into this even for ThreadPosix.m3. >>> In Vista a "once" would be appropriate. I believe pthreads has >>> those too. >> Yes, pthreads has "once". >>> Use of simple booleans to implement "onces" is often done >>> incorrectly. >>> >>> The critical section does not need to cover the lines: >>> me.next = me; >>> me.prev = me; >>> me.handle = Upthread.self(); >> >> Indeed. >>> If this all is in some "startup" code that provides its own >>> serialization, then more of this is unnecessary. >>> For example on Windows this should be in m3core.dll's DllMain >>> (process startup). It probably already is. I'd have to check. >>> >>> Putting it in main is just about adequate, except that >>> someone's .dll's DllMain(process startup) could create a thread >>> that ends up in Modula-3 code. (There is the assertion about >>> being created by Fork, which is unfortunate -- I should be able >>> to use Modula-3 .dlls from non-Modula-3 code and I should be >>> able to create threads with the system-native thread creater, >>> CreateThread on Windows. Having to go through custom functions >>> to create threads is not good. It requires more control of the >>> system than you often have -- imagine for example providing a >>> COM object implemented in Modula-3...) >> Why would you expect the system-native thread creator to be able >> to create a Modula-3 thread, given that the Modula-3 run-time >> system needs to know about the threads to be GC'd. I think it is >> entirely fair that the M3 run-time system know about the threads >> that are running M3 code. >>> It'd be nice to not roll custom linked lists btw, and then for >>> there to be a generic ThreadSafeList or such. >>> >>> - Jay >>> >>> >>> >>> From: "Olaf Wagner" >>> To: jkrell at birch.elego.de >>> CC: m3devel at elegosoft.com >>> Subject: [M3devel] Re: [M3commit] CVS Update: cm3 >>> Date: Wed, 3 Jan 2007 16:38:05 +0100 (CET) >>> > >>> >On Sat, December 30, 2006 3:18 am, Jay Krell wrote: >>> > > CVSROOT: /usr/cvs >>> > > Changes by: jkrell at birch. 06/12/30 02:18:06 >>> > > >>> > > Modified files: >>> > > cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 >>> > > >>> > > Log message: >>> > > important: fix infinite recursion in Win32 startup >>> > > correct check for TlsAlloc failure (TLS_OUT_OF_INDEXES >>> instead of < 0) >>> > > reduce critical sections slightly (esp. to avoid calling out >>> while in a >>> > > critical section, including to DuplicateHandle, >>> CreateThread, VirtualQuery) >>> > >>> >I would like to understand this change better (especially the >>> first item), >>> >or at least how/why and endless recursion got into the source >>> (as older >>> >versions have run, haven't they?). >>> > >>> >As for critical sections, you seem to have remove one completely >>> and >>> >reduced another. Are you sure that is correct? (I've only had a >>> short >>> >look at the diff, and haven't got a comprehensive understanding >>> of the >>> >CM3 WIN32 runtime currently.) >>> > >>> >Olaf >>> >-- >>> >Olaf Wagner >>> >elego Software Solutions GmbH, Berlin, Germany >>> >_______________________________________________ >>> >M3devel mailing list >>> >M3devel at elegosoft.com >>> >https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel >>> >>> Fixing up the home? Live Search can help >>> _______________________________________________ >>> M3devel mailing list >>> M3devel at elegosoft.com >>> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel >> >> Antony Hosking | Associate Professor >> Dept of Computer Science | Office: +1 765 494-6001 >> Purdue University | Mobile: +1 765 427-5484 >> 250 N. University Street | Email: hosking at cs.purdue.edu >> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking >> _--_|\ >> / \ >> \_.--._/ ) >> v / >> >> >> > > _________________________________________________________________ > Get live scores and news about your team: Add the Live.com Football > Page www.live.com/?addtemplate=football&icid=T001MSN30A0701 Antony Hosking | Associate Professor Dept of Computer Science | Office: +1 765 494-6001 Purdue University | Mobile: +1 765 427-5484 250 N. University Street | Email: hosking at cs.purdue.edu West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking _--_|\ / \ \_.--._/ ) v / From hosking at cs.purdue.edu Sun Jan 7 17:36:50 2007 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sun, 7 Jan 2007 11:36:50 -0500 Subject: [M3devel] A GC/compiler/Pickle interaction bug In-Reply-To: <45970723.5070102@wichita.edu> References: <45970723.5070102@wichita.edu> Message-ID: This is definitely a bug in the compiler (dirty bit) guard for CheckStoreTraced. CheckStoreTraced is only supposed to be called for stores through traced references, not untraced. In this case, we have a *unsafe* creation of an UNTRACED REF REFANY. I will fix the compiler to emit the guard and the call to CheckStoreTraced only for traced references. To propagate the fix we will need to bootstrap a new bootstrap compiler (recompile the compiler with the change and then use the new compiler to recompile the libraries the compiler depends on and compile a new bootstrap compiler). This should then be used to rebuild binaries without the bug. On Dec 30, 2006, at 7:41 PM, Rodney M. Bates wrote: > I tracked down a bug unpickling to the following. When executing > in ConvertPacking.Read, at ConvertPacking.m3:327, this code: > > WITH ref = LOOPHOLE(dest, UNTRACED REF REFANY) DO > ref^ := v.readRef(nelem.refType); > END; > > has a compiler-generated call on RTCollector.CheckStoreTraced(ref). > CheckStoreTraced expects ref to be a normal reference to an object, > computes the address of its header (4 bytes less), and sets the > dirty bit. > > But ConvertPacking is reading in to a field of a recently created > object that is not first in the object. It computes ref to point > to the field, and CheckStoreTraced actually steps on the previous > real field instead of the header. > > It looks like the actions of CheckStoreTraced are needed, but I > don't right off hand see how to recode Convert to fix this. It's > use of ref can't be moved. Presumably, there could be other unsafe > code elsewhere using the same technique to store data. > > Does the compiler need a different criterion on when to generate > the call on CheckStoreTraced? ref is an UNTRACED REF here, but it > still is pointing inside a traced object. Maybe people who modify > objects in this way need to explicitly call CheckStoreTraced? > > -- > ------------------------------------------------------------- > Rodney M. Bates, retired assistant professor > Dept. of Computer Science, Wichita State University > Wichita, KS 67260-0083 > 316-978-3922 > rodney.bates at wichita.edu > _______________________________________________ > M3devel mailing list > M3devel at elegosoft.com > https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel Antony Hosking | Associate Professor Dept of Computer Science | Office: +1 765 494-6001 Purdue University | Mobile: +1 765 427-5484 250 N. University Street | Email: hosking at cs.purdue.edu West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking _--_|\ / \ \_.--._/ ) v / From hosking at cs.purdue.edu Sun Jan 7 19:49:15 2007 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sun, 7 Jan 2007 13:49:15 -0500 Subject: [M3devel] A GC/compiler/Pickle interaction bug In-Reply-To: <45970723.5070102@wichita.edu> References: <45970723.5070102@wichita.edu> Message-ID: <16273A56-85C1-4CFA-81B6-402BF6CF036B@cs.purdue.edu> On Dec 30, 2006, at 7:41 PM, Rodney M. Bates wrote: > I tracked down a bug unpickling to the following. When executing > in ConvertPacking.Read, at ConvertPacking.m3:327, this code: > > WITH ref = LOOPHOLE(dest, UNTRACED REF REFANY) DO > ref^ := v.readRef(nelem.refType); > END; > > has a compiler-generated call on RTCollector.CheckStoreTraced(ref). > CheckStoreTraced expects ref to be a normal reference to an object, > computes the address of its header (4 bytes less), and sets the > dirty bit. > > But ConvertPacking is reading in to a field of a recently created > object that is not first in the object. It computes ref to point > to the field, and CheckStoreTraced actually steps on the previous > real field instead of the header. > > It looks like the actions of CheckStoreTraced are needed, but I > don't right off hand see how to recode Convert to fix this. It's > use of ref can't be moved. Presumably, there could be other unsafe > code elsewhere using the same technique to store data. Is CheckStoreTraced strictly needed in this case. According to the language definition, storing a REFANY through an untraced reference can hide the reference from the garbage collector: >> If u is an untraced reference to a traced variable t, then the >> validity of the traced references in t is implementation- >> dependent, since the garbage collector probably will not trace >> them through u. Thus, one should not expect CheckStoreTraced to be invoked in this case. If u aliases traced storage (even though u itself is untraced, which can only occur in UNSAFE code) we should arrange to dirty the traced storage via its tidy reference, using an explicit call to RTHooks.CheckStoreTraced, passing the tidy reference to the traced storage as argument. > > > Does the compiler need a different criterion on when to generate > the call on CheckStoreTraced? ref is an UNTRACED REF here, but it > still is pointing inside a traced object. Maybe people who modify > objects in this way need to explicitly call CheckStoreTraced? > > -- > ------------------------------------------------------------- > Rodney M. Bates, retired assistant professor > Dept. of Computer Science, Wichita State University > Wichita, KS 67260-0083 > 316-978-3922 > rodney.bates at wichita.edu > _______________________________________________ > M3devel mailing list > M3devel at elegosoft.com > https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel Antony Hosking | Associate Professor Dept of Computer Science | Office: +1 765 494-6001 Purdue University | Mobile: +1 765 427-5484 250 N. University Street | Email: hosking at cs.purdue.edu West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking _--_|\ / \ \_.--._/ ) v / From jayk123 at hotmail.com Mon Jan 8 02:08:47 2007 From: jayk123 at hotmail.com (j k) Date: Mon, 08 Jan 2007 01:08:47 +0000 Subject: [M3devel] anyone want to try Windows now? In-Reply-To: <46553.194.138.127.36.1167839743.squirrel@mail.elegosoft.com> Message-ID: 1) The prereqs should just be a C runtime .dll IF the release is built to require one. Which one is required varies among msvcrt20.dll, msvcrt40.dll, msvcrt.dll, msvcr70,dll, msvcr71.dll, msvcr80.dll. The first few are very widely distributed, the last few are redistributable. They can be "bundled" with the cm3 installation. They can be checked into cvs and somenow merged in with the cminstall-based setup. Upgrading existing systems /should/ just require getting the c running and running the upgrade.cmd. 2) It is very likely I broke the old install, and that it is easily fixed. The thing is, as I understand, the install is driven by configurable options in the cm3.cfg file. I removed all of them, reasonably appropriately/ correctly. However one of them is also where to unpack the files, so that is partly needed. The things to do, I think, not to contradict you are: Have folks test: a) install the latest release checkout the latest source build / upgrade run with it, build their own stuff, test whatever I have done this myself essentially so now others should try it. b) build a distribution and have folks test installing it, cminstall and all that A small number of folks, possibly just one, possibly just me, should initially do this, since there's little evidence it will work. I did automate much building a distribution, plus the Unix-based method probably works. See scripts\win\make-dist.cmd c) Folks should probably review what I did for intent, naming, interface, etc., besides actual correctness. In particular, naming and interfaces are kind of hard and I am kind of lazy. I moved the Windows stuff from scripts\*.cmd to scripts\win\*.cmd. For the import .libs I carved out \cm3\m3-win and so far just just cm3\m3-win\import-libs exists. Given that names aren't actually hierarchical in this system, that is probably a bad name, probably it should be sys-libs or win-syslibs or something. I am using "win" in new places to partly resolve the platform naming issue "win" short for "windows" of course, is "win32" and "win64", as I was saying most code is portable between the two, though "win" is kind of unsatisfactorily short d) the threading code still could use some tweaks I think, but it is not terrible, shouldn't block some initial testing e) decisions are needed as to which toolsets are supported and which should be used for a release I can pretty much claim support for any version of Visual C++, 2.0 through 8.0, and I have pretty much all of them installed, except like 4.2. I don't have the C runtime .h/.libs for all of them, since in particular the expression editions are sparse. 7.1 in particular lacks the ability to target the .dll and 8.0 express I forget, at least it is missing lots of windows parts. Therefore, like, if you want to target the .dll from 7.1 Express, you need the platform SDK. 7.1 Express is no longer available for download though, and this isn't quite the name of it. It is somewhat interesting to me to support more toolsets, or maybe just write our own? It looks like a good start was made on eliminating the need for a linker. However supporting static linking is still a good idea if folks are to distribute .dlls/.exes and not just .objs. The decision what to support is a bit of can of worms as there are very many to chose from. It also makes me wonder about a C-generating target in order to support "all" C compilers, etc... sorry, very tired, rambling... - Jay >From: "Olaf Wagner" >To: "j k" >CC: m3devel at elegosoft.com >Subject: Re: [M3devel] anyone want to try Windows now? >Date: Wed, 3 Jan 2007 16:55:43 +0100 (CET) > > >On Tue, January 2, 2007 5:30 pm, j k wrote: > >
Anyone want to try Windows now? > >
 
> >
What should work is installing the latest release -- > > 5.2.6.
> >
Checking out the whole tree, copying > > m3-sys\cminstall\src\config\NT386 to like \cm3\bin\cm3.cfg putting >cm3.exe's > > directory in %PATH%, running vcvars32.bat or simiplar to get a >compiler/linker > > in the path along with %include% and %lib% (sometimes this is done by >Visual > > C++ setup), though %include%/%lib% are hardly used, and running any of > > scripts\win\do* or scripts\win\upgrad or scripts\win\make-dist, or >cd'ing > > around the tree and running cm3, using any of a variety of versions of >Visual > > C++. (Note that sysinfo.cmd puts \cm3\lib in %LIB% and if you just cd >depend, > > and are using a Visual C++ Express Edition, without also the Windows >SDK, then > > you'll get errors -- the Express Editions lack the Win32 import .libs. > > m3-win\import-libs builds them and puts them in \cm3\lib.)
> >
 
> >
\cm3 is computed by cm3.cfg to be the directory above the > > directory that contains cm3.exe. So you don't have to edit cm3.cfg at > > all.
> >
 
> >
Of course probably some >machine/OS/configuration-specificity > > crept in and it probably only works for me.
> >
 
> >
If you build with Visual C++ 8.0, there is a >download/setup > > needed for machines without it installed, see m3-win\vcredist.txt.
> >
 
> >
I only tested on XP but a variety of versions of Windows >should > > work, esp. versions of NT (as opposed to 95/98)
> >
 
> >
Anyone have a bunch of test automation here?
> >
 
> >
The main problem was really just the infinite recursion >in > > startup.
> >
 
> >
Should a release be made soon then?
> >
 
> >Hi Jay, > >you seem to have done a lot of work for CM3 on Windows platforms; thanks >for that! I understand that most things are now working for you; but I'm >unsure about the actual state of the code and meaning of the above >announcement (as I haven't got much Windows experience). I think we should >proceed in two steps: > > 1. write up some documentation about the > > - needed prerequisites > - how to get and install them > - how to install/upgrade and use the system > > which can be understood and used by M3-experienced people. We will > then hopefully get some feedback from M3 users, can fix some problems, > and improve the documentation. We should also pick one or at most two > standard setups. > > 2. write up end-user documentation for installation and use of CM3 > on Windows systems based on the chosen standard setups. This should > be included in the CM3 www and doc packages and bundled with the > official NT386 release for CM3 5.4. We should have some test feedback > before we do that, though. > >Olaf >-- >Olaf Wagner >elego Software Solutions GmbH, Berlin, Germany _________________________________________________________________ Fixing up the home? Live Search can help http://imagine-windowslive.com/search/kits/default.aspx?kit=improve&locale=en-US&source=hmemailtaglinenov06&FORM=WLMTAG From hosking at cs.purdue.edu Tue Jan 9 19:06:46 2007 From: hosking at cs.purdue.edu (Tony Hosking) Date: Tue, 9 Jan 2007 13:06:46 -0500 Subject: [M3devel] A GC/compiler/Pickle interaction bug In-Reply-To: <45970723.5070102@wichita.edu> References: <45970723.5070102@wichita.edu> Message-ID: <924B960D-3F3C-419B-A7D3-3FB74B21C5CC@cs.purdue.edu> Rodney, I've checked in fixes to RTTypeMap and clients that should restore functional pickling support. For some reason my commit messages are awaiting moderator approval (it seems my commit id is not the same as my subscription to the m3commit list) before they can be sent out. Please make sure that unpickling now works for you. Best regards, Tony On Dec 30, 2006, at 7:41 PM, Rodney M. Bates wrote: > I tracked down a bug unpickling to the following. When executing > in ConvertPacking.Read, at ConvertPacking.m3:327, this code: > > WITH ref = LOOPHOLE(dest, UNTRACED REF REFANY) DO > ref^ := v.readRef(nelem.refType); > END; > > has a compiler-generated call on RTCollector.CheckStoreTraced(ref). > CheckStoreTraced expects ref to be a normal reference to an object, > computes the address of its header (4 bytes less), and sets the > dirty bit. > > But ConvertPacking is reading in to a field of a recently created > object that is not first in the object. It computes ref to point > to the field, and CheckStoreTraced actually steps on the previous > real field instead of the header. > > It looks like the actions of CheckStoreTraced are needed, but I > don't right off hand see how to recode Convert to fix this. It's > use of ref can't be moved. Presumably, there could be other unsafe > code elsewhere using the same technique to store data. > > Does the compiler need a different criterion on when to generate > the call on CheckStoreTraced? ref is an UNTRACED REF here, but it > still is pointing inside a traced object. Maybe people who modify > objects in this way need to explicitly call CheckStoreTraced? > > -- > ------------------------------------------------------------- > Rodney M. Bates, retired assistant professor > Dept. of Computer Science, Wichita State University > Wichita, KS 67260-0083 > 316-978-3922 > rodney.bates at wichita.edu > _______________________________________________ > M3devel mailing list > M3devel at elegosoft.com > https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel Antony Hosking | Associate Professor Dept of Computer Science | Office: +1 765 494-6001 Purdue University | Mobile: +1 765 427-5484 250 N. University Street | Email: hosking at cs.purdue.edu West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking _--_|\ / \ \_.--._/ ) v / From rodney.bates at wichita.edu Thu Jan 11 23:40:16 2007 From: rodney.bates at wichita.edu (Rodney M. Bates) Date: Thu, 11 Jan 2007 16:40:16 -0600 Subject: [M3devel] New setjmp/longjmp problem. Message-ID: <45A6BCD0.2000407@wichita.edu> On Mandriva 2007.0, LINUXLIBC6, all dynamically linked executables produced by either the CM3 or PM3 compilers segfault during initialization of the runtime. The problem occurs in longjmp. There is a replacement for setjmp in the cm3 distribution with this comment: # # Setjmp, _setjmp, and __setjmp are broken in glibc 2.0.7. # They share code with sigsetjmp which needs 2 arguments, and # this does not work well on the i386 where the caller must # pop the stack for the arguments when the call returns. # Indeed, their setjmp adds the missing argument and jumps to # sigsetjmp. Upon return, however, the caller pops one argument # and the second argument remains on the stack, making the stack # pointer 4 bytes away from its correct position. # # Below is a very simple reimplementation of _setjmp, the only function # used within the Modula-3 runtime. # The setjmp in glibc contains the line: xor %gs:0x18,%ecx at two places where the stack pointer and the return address are in %ecx. The replacement just stores these registers in the jmpbuf without molesting them. Up at least through libc-2.3.4 (where this problem does not occur), longjmp just reloads the stack and instruction pointers from the jmpbuf. This does not sound like the problem the comment identifies, but it clearly is inconsistent and would cause the setjmp/longjmp pair to fail. As of libc-2.4, the original brokenness of setjmp seems to have been fixed by doing the very same xor operations to these values when reloading them from the jmpbuf, in longjmp. The fault occurs inside RTThreadC.c, function Transfer, which calls setjmp and immediately passes the result to longjmp. Removing the replacement for setjmp and recompiling so that both setjmp and longjmp come from libc makes this segfault go away. Unfortunately, this just causes another segfault almost immediately after, when M3 runtime code attempts to use the contents of these registers from a jmpbuf, supplied by a different call on setjmp, where the values are now garbled by the original xor problem with setjmp. I am looking for suggestions on what to do. Possibilities that have occurred to me: 1. Also add an assembly code replacement for longjmp too, taken from an earlier libc. longjmp is quite a bit longer, and does some tricky stuff I have not dug through yet. 2. Use the libc setjmp for values that are to be passed to longjmp and use the replacement setjmp for values that are to be used by the M3 runtime. This seems cleaner in the long run, but a preliminary grep reveals massive numbers of hits on "setjmp". I had been hoping there would only be a few. The two uses of jmpbuf values may not even be disjoint. This will probably affect other distributions as they go to later libc versions. Any suggestions would be appreciated. P.S: I had some cases where changing the M3 compilation to link statically made the problem go away, but now I can't reproduce them. Instead, bash and ldd claim "executable: No such file or directory", while "ls -l executable" and many other commands find "executable" just fine. -- ------------------------------------------------------------- Rodney M. Bates, retired assistant professor Dept. of Computer Science, Wichita State University Wichita, KS 67260-0083 316-978-3922 rodney.bates at wichita.edu From hosking at cs.purdue.edu Fri Jan 12 00:06:54 2007 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 11 Jan 2007 18:06:54 -0500 Subject: [M3devel] New setjmp/longjmp problem. In-Reply-To: <45A6BCD0.2000407@wichita.edu> References: <45A6BCD0.2000407@wichita.edu> Message-ID: <4F3F0030-3BDE-4F29-937D-486E3BDFBD7C@cs.purdue.edu> Is this with PTHREAD threading or POSIX? On Jan 11, 2007, at 5:40 PM, Rodney M. Bates wrote: > On Mandriva 2007.0, LINUXLIBC6, all dynamically linked executables > produced by > either the CM3 or PM3 compilers segfault during initialization of > the runtime. > The problem occurs in longjmp. There is a replacement for setjmp > in the cm3 > distribution with this comment: > > # > # Setjmp, _setjmp, and __setjmp are broken in glibc 2.0.7. > # They share code with sigsetjmp which needs 2 arguments, and > # this does not work well on the i386 where the caller must > # pop the stack for the arguments when the call returns. > # Indeed, their setjmp adds the missing argument and jumps to > # sigsetjmp. Upon return, however, the caller pops one argument > # and the second argument remains on the stack, making the stack > # pointer 4 bytes away from its correct position. > # > # Below is a very simple reimplementation of _setjmp, the only > function > # used within the Modula-3 runtime. > # > > The setjmp in glibc contains the line: > > xor %gs:0x18,%ecx > > at two places where the stack pointer and the return address are in > %ecx. The > replacement just stores these registers in the jmpbuf without > molesting them. > Up at least through libc-2.3.4 (where this problem does not occur), > longjmp > just reloads the stack and instruction pointers from the jmpbuf. > This does not > sound like the problem the comment identifies, but it clearly is > inconsistent > and would cause the setjmp/longjmp pair to fail. > > As of libc-2.4, the original brokenness of setjmp seems to have > been fixed by > doing the very same xor operations to these values when reloading > them from > the jmpbuf, in longjmp. The fault occurs inside RTThreadC.c, > function Transfer, > which calls setjmp and immediately passes the result to longjmp. > Removing the > replacement for setjmp and recompiling so that both setjmp and > longjmp come from > libc makes this segfault go away. > > Unfortunately, this just causes another segfault almost immediately > after, > when M3 runtime code attempts to use the contents of these > registers from > a jmpbuf, supplied by a different call on setjmp, where the values > are now > garbled by the original xor problem with setjmp. > > I am looking for suggestions on what to do. Possibilities that > have occurred > to me: > > 1. Also add an assembly code replacement for longjmp too, taken > from an earlier > libc. longjmp is quite a bit longer, and does some tricky > stuff I have not > dug through yet. > > 2. Use the libc setjmp for values that are to be passed to longjmp > and use the > replacement setjmp for values that are to be used by the M3 > runtime. This > seems cleaner in the long run, but a preliminary grep reveals > massive numbers > of hits on "setjmp". I had been hoping there would only be a > few. The two > uses of jmpbuf values may not even be disjoint. > > This will probably affect other distributions as they go to later > libc versions. > Any suggestions would be appreciated. > > P.S: I had some cases where changing the M3 compilation to link > statically made > the problem go away, but now I can't reproduce them. Instead, bash > and ldd claim > "executable: No such file or directory", while "ls -l executable" > and many other > commands find "executable" just fine. > > > -- > ------------------------------------------------------------- > Rodney M. Bates, retired assistant professor > Dept. of Computer Science, Wichita State University > Wichita, KS 67260-0083 > 316-978-3922 > rodney.bates at wichita.edu > _______________________________________________ > M3devel mailing list > M3devel at elegosoft.com > https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel Antony Hosking | Associate Professor Dept of Computer Science | Office: +1 765 494-6001 Purdue University | Mobile: +1 765 427-5484 250 N. University Street | Email: hosking at cs.purdue.edu West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking _--_|\ / \ \_.--._/ ) v / From rodney.bates at wichita.edu Fri Jan 12 03:11:45 2007 From: rodney.bates at wichita.edu (Rodney M. Bates) Date: Thu, 11 Jan 2007 20:11:45 -0600 Subject: [M3devel] New setjmp/longjmp problem. In-Reply-To: <4F3F0030-3BDE-4F29-937D-486E3BDFBD7C@cs.purdue.edu> References: <45A6BCD0.2000407@wichita.edu> <4F3F0030-3BDE-4F29-937D-486E3BDFBD7C@cs.purdue.edu> Message-ID: <45A6EE61.40101@wichita.edu> How do I tell? Tony Hosking wrote: > Is this with PTHREAD threading or POSIX? > > On Jan 11, 2007, at 5:40 PM, Rodney M. Bates wrote: > >> On Mandriva 2007.0, LINUXLIBC6, all dynamically linked executables >> produced by >> either the CM3 or PM3 compilers segfault during initialization of the >> runtime. >> The problem occurs in longjmp. There is a replacement for setjmp in >> the cm3 >> distribution with this comment: >> >> # >> # Setjmp, _setjmp, and __setjmp are broken in glibc 2.0.7. >> # They share code with sigsetjmp which needs 2 arguments, and >> # this does not work well on the i386 where the caller must >> # pop the stack for the arguments when the call returns. >> # Indeed, their setjmp adds the missing argument and jumps to >> # sigsetjmp. Upon return, however, the caller pops one argument >> # and the second argument remains on the stack, making the stack >> # pointer 4 bytes away from its correct position. >> # >> # Below is a very simple reimplementation of _setjmp, the only function >> # used within the Modula-3 runtime. >> # >> >> The setjmp in glibc contains the line: >> >> xor %gs:0x18,%ecx >> >> at two places where the stack pointer and the return address are in >> %ecx. The >> replacement just stores these registers in the jmpbuf without >> molesting them. >> Up at least through libc-2.3.4 (where this problem does not occur), >> longjmp >> just reloads the stack and instruction pointers from the jmpbuf. >> This does not >> sound like the problem the comment identifies, but it clearly is >> inconsistent >> and would cause the setjmp/longjmp pair to fail. >> >> As of libc-2.4, the original brokenness of setjmp seems to have been >> fixed by >> doing the very same xor operations to these values when reloading >> them from >> the jmpbuf, in longjmp. The fault occurs inside RTThreadC.c, >> function Transfer, >> which calls setjmp and immediately passes the result to longjmp. >> Removing the >> replacement for setjmp and recompiling so that both setjmp and >> longjmp come from >> libc makes this segfault go away. >> >> Unfortunately, this just causes another segfault almost immediately >> after, >> when M3 runtime code attempts to use the contents of these registers >> from >> a jmpbuf, supplied by a different call on setjmp, where the values >> are now >> garbled by the original xor problem with setjmp. >> >> I am looking for suggestions on what to do. Possibilities that have >> occurred >> to me: >> >> 1. Also add an assembly code replacement for longjmp too, taken from >> an earlier >> libc. longjmp is quite a bit longer, and does some tricky stuff >> I have not >> dug through yet. >> >> 2. Use the libc setjmp for values that are to be passed to longjmp >> and use the >> replacement setjmp for values that are to be used by the M3 >> runtime. This >> seems cleaner in the long run, but a preliminary grep reveals >> massive numbers >> of hits on "setjmp". I had been hoping there would only be a >> few. The two >> uses of jmpbuf values may not even be disjoint. >> >> This will probably affect other distributions as they go to later >> libc versions. >> Any suggestions would be appreciated. >> >> P.S: I had some cases where changing the M3 compilation to link >> statically made >> the problem go away, but now I can't reproduce them. Instead, bash >> and ldd claim >> "executable: No such file or directory", while "ls -l executable" and >> many other >> commands find "executable" just fine. >> >> >> -- >> ------------------------------------------------------------- >> Rodney M. Bates, retired assistant professor >> Dept. of Computer Science, Wichita State University >> Wichita, KS 67260-0083 >> 316-978-3922 >> rodney.bates at wichita.edu >> _______________________________________________ >> M3devel mailing list >> M3devel at elegosoft.com >> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel > > > Antony Hosking | Associate Professor > Dept of Computer Science | Office: +1 765 494-6001 > Purdue University | Mobile: +1 765 427-5484 > 250 N. University Street | Email: hosking at cs.purdue.edu > West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking > _--_|\ > / \ > \_.--._/ ) > v / > > > > -- ------------------------------------------------------------- Rodney M. Bates, retired assistant professor Dept. of Computer Science, Wichita State University Wichita, KS 67260-0083 316-978-3922 rodney.bates at wichita.edu From hosking at cs.purdue.edu Fri Jan 12 03:52:42 2007 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 11 Jan 2007 21:52:42 -0500 Subject: [M3devel] New setjmp/longjmp problem. In-Reply-To: <45A6EE61.40101@wichita.edu> References: <45A6BCD0.2000407@wichita.edu> <4F3F0030-3BDE-4F29-937D-486E3BDFBD7C@cs.purdue.edu> <45A6EE61.40101@wichita.edu> Message-ID: <8D44B3DF-F29F-437C-A49F-14F86D2CAFA2@cs.purdue.edu> Did you build with -DPTHREAD specified as an argument to cm3 when building m3core? On Jan 11, 2007, at 9:11 PM, Rodney M. Bates wrote: > How do I tell? > > Tony Hosking wrote: >> Is this with PTHREAD threading or POSIX? >> On Jan 11, 2007, at 5:40 PM, Rodney M. Bates wrote: >>> On Mandriva 2007.0, LINUXLIBC6, all dynamically linked >>> executables produced by >>> either the CM3 or PM3 compilers segfault during initialization >>> of the runtime. >>> The problem occurs in longjmp. There is a replacement for >>> setjmp in the cm3 >>> distribution with this comment: >>> >>> # >>> # Setjmp, _setjmp, and __setjmp are broken in glibc 2.0.7. >>> # They share code with sigsetjmp which needs 2 arguments, and >>> # this does not work well on the i386 where the caller must >>> # pop the stack for the arguments when the call returns. >>> # Indeed, their setjmp adds the missing argument and jumps to >>> # sigsetjmp. Upon return, however, the caller pops one argument >>> # and the second argument remains on the stack, making the stack >>> # pointer 4 bytes away from its correct position. >>> # >>> # Below is a very simple reimplementation of _setjmp, the only >>> function >>> # used within the Modula-3 runtime. >>> # >>> >>> The setjmp in glibc contains the line: >>> >>> xor %gs:0x18,%ecx >>> >>> at two places where the stack pointer and the return address are >>> in %ecx. The >>> replacement just stores these registers in the jmpbuf without >>> molesting them. >>> Up at least through libc-2.3.4 (where this problem does not >>> occur), longjmp >>> just reloads the stack and instruction pointers from the >>> jmpbuf. This does not >>> sound like the problem the comment identifies, but it clearly is >>> inconsistent >>> and would cause the setjmp/longjmp pair to fail. >>> >>> As of libc-2.4, the original brokenness of setjmp seems to have >>> been fixed by >>> doing the very same xor operations to these values when >>> reloading them from >>> the jmpbuf, in longjmp. The fault occurs inside RTThreadC.c, >>> function Transfer, >>> which calls setjmp and immediately passes the result to >>> longjmp. Removing the >>> replacement for setjmp and recompiling so that both setjmp and >>> longjmp come from >>> libc makes this segfault go away. >>> >>> Unfortunately, this just causes another segfault almost >>> immediately after, >>> when M3 runtime code attempts to use the contents of these >>> registers from >>> a jmpbuf, supplied by a different call on setjmp, where the >>> values are now >>> garbled by the original xor problem with setjmp. >>> >>> I am looking for suggestions on what to do. Possibilities that >>> have occurred >>> to me: >>> >>> 1. Also add an assembly code replacement for longjmp too, taken >>> from an earlier >>> libc. longjmp is quite a bit longer, and does some tricky >>> stuff I have not >>> dug through yet. >>> >>> 2. Use the libc setjmp for values that are to be passed to >>> longjmp and use the >>> replacement setjmp for values that are to be used by the M3 >>> runtime. This >>> seems cleaner in the long run, but a preliminary grep >>> reveals massive numbers >>> of hits on "setjmp". I had been hoping there would only be >>> a few. The two >>> uses of jmpbuf values may not even be disjoint. >>> >>> This will probably affect other distributions as they go to >>> later libc versions. >>> Any suggestions would be appreciated. >>> >>> P.S: I had some cases where changing the M3 compilation to link >>> statically made >>> the problem go away, but now I can't reproduce them. Instead, >>> bash and ldd claim >>> "executable: No such file or directory", while "ls -l >>> executable" and many other >>> commands find "executable" just fine. >>> >>> >>> -- >>> ------------------------------------------------------------- >>> Rodney M. Bates, retired assistant professor >>> Dept. of Computer Science, Wichita State University >>> Wichita, KS 67260-0083 >>> 316-978-3922 >>> rodney.bates at wichita.edu >>> _______________________________________________ >>> M3devel mailing list >>> M3devel at elegosoft.com >>> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel >> Antony Hosking | Associate Professor >> Dept of Computer Science | Office: +1 765 494-6001 >> Purdue University | Mobile: +1 765 427-5484 >> 250 N. University Street | Email: hosking at cs.purdue.edu >> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking >> _--_|\ >> / \ >> \_.--._/ ) >> v / > > -- > ------------------------------------------------------------- > Rodney M. Bates, retired assistant professor > Dept. of Computer Science, Wichita State University > Wichita, KS 67260-0083 > 316-978-3922 > rodney.bates at wichita.edu Antony Hosking | Associate Professor Dept of Computer Science | Office: +1 765 494-6001 Purdue University | Mobile: +1 765 427-5484 250 N. University Street | Email: hosking at cs.purdue.edu West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking _--_|\ / \ \_.--._/ ) v / From vapier at gentoo.org Fri Jan 12 06:04:04 2007 From: vapier at gentoo.org (Mike Frysinger) Date: Fri, 12 Jan 2007 00:04:04 -0500 Subject: [M3devel] New setjmp/longjmp problem. In-Reply-To: <45A6BCD0.2000407@wichita.edu> References: <45A6BCD0.2000407@wichita.edu> Message-ID: <200701120004.12182.vapier@gentoo.org> On Thursday 11 January 2007 17:40, Rodney M. Bates wrote: > The setjmp in glibc contains the line: > > xor %gs:0x18,%ecx glibc has started mangling the thread stack poiner in newer versions ... it's a "feature" see the PTR_MANGLE defines in the i386 dirs -mike -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 827 bytes Desc: not available URL: From vapier at gentoo.org Fri Jan 12 06:04:58 2007 From: vapier at gentoo.org (Mike Frysinger) Date: Fri, 12 Jan 2007 00:04:58 -0500 Subject: [M3devel] New setjmp/longjmp problem. In-Reply-To: <45A6EE61.40101@wichita.edu> References: <45A6BCD0.2000407@wichita.edu> <4F3F0030-3BDE-4F29-937D-486E3BDFBD7C@cs.purdue.edu> <45A6EE61.40101@wichita.edu> Message-ID: <200701120005.09532.vapier@gentoo.org> On Thursday 11 January 2007 21:11, Rodney M. Bates wrote: > How do I tell? the threading implementation doesnt matter, but you can find out by doing: /lib/libc.so.6 it'll tell you whether you're using linuxthreads or nptl (most likely nptl since fedora switched to that sometime ago) -mike -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 827 bytes Desc: not available URL: From hosking at cs.purdue.edu Fri Jan 12 13:59:18 2007 From: hosking at cs.purdue.edu (Antony Hosking) Date: Fri, 12 Jan 2007 07:59:18 -0500 Subject: [M3devel] New setjmp/longjmp problem. In-Reply-To: <200701120004.12182.vapier@gentoo.org> References: <45A6BCD0.2000407@wichita.edu> <200701120004.12182.vapier@gentoo.org> Message-ID: Right, this is the problem I was talking about. We need to fix the old POSIX implementation of Modula-3 threading to use use the makecontext call, and we should be using getcontext/setcontext for thread switching instead of setjmp/longjmp. The new PTHREAD implementation of Modula-3 threading (which marries a Modula-3 thread to a system pthread) should work just fine. I would suggest rebuilding m3core with the -DPTHREAD option to make it use pthread- based threading. On 12/01/2007, at 12:04 AM, Mike Frysinger wrote: > On Thursday 11 January 2007 17:40, Rodney M. Bates wrote: >> The setjmp in glibc contains the line: >> >> xor %gs:0x18,%ecx > > glibc has started mangling the thread stack poiner in newer > versions ... it's > a "feature" > > see the PTR_MANGLE defines in the i386 dirs > -mike > _______________________________________________ > M3devel mailing list > M3devel at elegosoft.com > https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel Antony Hosking | Associate Professor Dept of Computer Sciences | Office: (765) 494-6001 Purdue University | Mobile: (765) 427-5484 250 N. University Street | hosking at cs.purdue.edu West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking _--_|\ / \ \_.--._/ ) v / From hosking at cs.purdue.edu Fri Jan 12 14:00:26 2007 From: hosking at cs.purdue.edu (Antony Hosking) Date: Fri, 12 Jan 2007 08:00:26 -0500 Subject: [M3devel] New setjmp/longjmp problem. In-Reply-To: <200701120005.09532.vapier@gentoo.org> References: <45A6BCD0.2000407@wichita.edu> <4F3F0030-3BDE-4F29-937D-486E3BDFBD7C@cs.purdue.edu> <45A6EE61.40101@wichita.edu> <200701120005.09532.vapier@gentoo.org> Message-ID: <38B49BC4-E681-4785-828B-B98B9EF9162B@cs.purdue.edu> I was talking about the Modula-3 implementation of threads: user- level (POSIX) or on top of system threads (PTHREAD). On 12/01/2007, at 12:04 AM, Mike Frysinger wrote: > On Thursday 11 January 2007 21:11, Rodney M. Bates wrote: >> How do I tell? > > the threading implementation doesnt matter, but you can find out by > doing: > /lib/libc.so.6 > it'll tell you whether you're using linuxthreads or nptl (most > likely nptl > since fedora switched to that sometime ago) > -mike Antony Hosking | Associate Professor Dept of Computer Sciences | Office: (765) 494-6001 Purdue University | Mobile: (765) 427-5484 250 N. University Street | hosking at cs.purdue.edu West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking _--_|\ / \ \_.--._/ ) v / From rodney.bates at wichita.edu Fri Jan 12 18:48:30 2007 From: rodney.bates at wichita.edu (Rodney M. Bates) Date: Fri, 12 Jan 2007 11:48:30 -0600 Subject: [M3devel] New setjmp/longjmp problem. In-Reply-To: <8D44B3DF-F29F-437C-A49F-14F86D2CAFA2@cs.purdue.edu> References: <45A6BCD0.2000407@wichita.edu> <4F3F0030-3BDE-4F29-937D-486E3BDFBD7C@cs.purdue.edu> <45A6EE61.40101@wichita.edu> <8D44B3DF-F29F-437C-A49F-14F86D2CAFA2@cs.purdue.edu> Message-ID: <45A7C9EE.3080402@wichita.edu> Tony Hosking wrote: > Did you build with -DPTHREAD specified as an argument to cm3 when > building m3core? No. I didn't specify it myself, and the string "DPTHREAD" doesn't appear anywhere in the entire distribution, which is almost untouched CVS. I will try rebuilding m3core with -DPTHREAD. > > On Jan 11, 2007, at 9:11 PM, Rodney M. Bates wrote: > >> How do I tell? >> >> Tony Hosking wrote: >> >>> Is this with PTHREAD threading or POSIX? >>> On Jan 11, 2007, at 5:40 PM, Rodney M. Bates wrote: -- ------------------------------------------------------------- Rodney M. Bates, retired assistant professor Dept. of Computer Science, Wichita State University Wichita, KS 67260-0083 316-978-3922 rodney.bates at wichita.edu From hosking at cs.purdue.edu Fri Jan 12 19:09:50 2007 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 12 Jan 2007 13:09:50 -0500 Subject: [M3devel] New setjmp/longjmp problem. In-Reply-To: <45A7C9EE.3080402@wichita.edu> References: <45A6BCD0.2000407@wichita.edu> <4F3F0030-3BDE-4F29-937D-486E3BDFBD7C@cs.purdue.edu> <45A6EE61.40101@wichita.edu> <8D44B3DF-F29F-437C-A49F-14F86D2CAFA2@cs.purdue.edu> <45A7C9EE.3080402@wichita.edu> Message-ID: Yes, -DPTHREAD is not built by default. We should probably do something about that so that for certain targets we do use -DPTHREAD. On Jan 12, 2007, at 12:48 PM, Rodney M. Bates wrote: > > > Tony Hosking wrote: >> Did you build with -DPTHREAD specified as an argument to cm3 when >> building m3core? > > No. I didn't specify it myself, and the string "DPTHREAD" doesn't > appear > anywhere in the entire distribution, which is almost untouched CVS. > > I will try rebuilding m3core with -DPTHREAD. > >> On Jan 11, 2007, at 9:11 PM, Rodney M. Bates wrote: >>> How do I tell? >>> >>> Tony Hosking wrote: >>> >>>> Is this with PTHREAD threading or POSIX? >>>> On Jan 11, 2007, at 5:40 PM, Rodney M. Bates wrote: > > -- > ------------------------------------------------------------- > Rodney M. Bates, retired assistant professor > Dept. of Computer Science, Wichita State University > Wichita, KS 67260-0083 > 316-978-3922 > rodney.bates at wichita.edu Antony Hosking | Associate Professor Dept of Computer Science | Office: +1 765 494-6001 Purdue University | Mobile: +1 765 427-5484 250 N. University Street | Email: hosking at cs.purdue.edu West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking _--_|\ / \ \_.--._/ ) v / From rodney.bates at wichita.edu Fri Jan 12 22:21:01 2007 From: rodney.bates at wichita.edu (Rodney M. Bates) Date: Fri, 12 Jan 2007 15:21:01 -0600 Subject: [M3devel] New setjmp/longjmp problem. In-Reply-To: <45A7C9EE.3080402@wichita.edu> References: <45A6BCD0.2000407@wichita.edu> <4F3F0030-3BDE-4F29-937D-486E3BDFBD7C@cs.purdue.edu> <45A6EE61.40101@wichita.edu> <8D44B3DF-F29F-437C-A49F-14F86D2CAFA2@cs.purdue.edu> <45A7C9EE.3080402@wichita.edu> Message-ID: <45A7FBBD.6030709@wichita.edu> Rodney M. Bates wrote: > > > Tony Hosking wrote: > >> Did you build with -DPTHREAD specified as an argument to cm3 when >> building m3core? > > > No. I didn't specify it myself, and the string "DPTHREAD" doesn't appear > anywhere in the entire distribution, which is almost untouched CVS. > > I will try rebuilding m3core with -DPTHREAD. Something is missing in my setup: rodney at runnymede:~/proj/m3/exp/format5/cm3$ rm -f LINUXLIBC6/* rodney at runnymede:~/proj/m3/exp/format5/cm3$ cm3 --- building in LINUXLIBC6 --- inhale test.mx inhale /usr/local/cm3/pkg/m3core/LINUXLIBC6/libm3core.a inhale /usr/local/cm3/pkg/libm3/LINUXLIBC6/libm3.a new source -> compiling Format.i3 m3front ../src/Format.i3 -w1 /usr/local/cm3/bin/cm3cg -quiet Format.ic -o Format.is -fPIC -gstabs+ /usr/bin/as Format.is -o Format.io new source -> compiling Format.m3 m3front ../src/Format.m3 -w1 "../src/Format.m3", line 65: warning: not used (LRec) "../src/Format.m3", line 62: warning: not used (GRec) 2 warnings encountered /usr/local/cm3/bin/cm3cg -quiet Format.mc -o Format.ms -fPIC -gstabs+ /usr/bin/as Format.ms -o Format.mo new source -> compiling Test.m3 m3front ../src/Test.m3 -w1 /usr/local/cm3/bin/cm3cg -quiet Test.mc -o Test.ms -fPIC -gstabs+ /usr/bin/as Test.ms -o Test.mo exhale test.mx -> linking test Fatal Error: incomplete program ThreadPosix.i3: missing object types: _t1541f475 imported by: WrClass.i3 rm m3make.args cd .. rodney at runnymede:~/proj/m3/exp/format5/cm3$ This is after recompiling m3core with cm3 -DPHTREAD and cm3 -DPHTEAD ship, with the changes to cm3.cfg given below. I have two versions of libpthread: rodney at runnymede:~/proj/m3/cm3-fresh/cm3-5.4/m3-libs/m3core$ find /lib -name "*pthread*" /lib/i686/libpthread-2.4.so /lib/i686/libpthread.so.0 /lib/libpthread-2.4.so /lib/libpthread.so.0 rodney at runnymede:~/proj/m3/cm3-fresh/cm3-5.4/m3-libs/m3core$ ll /lib/libpthread* -rwxr-xr-x 1 root root 86345 Jul 24 15:20 /lib/libpthread-2.4.so lrwxrwxrwx 1 root root 17 Sep 28 18:37 /lib/libpthread.so.0 -> libpthread-2.4.so rodney at runnymede:~/proj/m3/cm3-fresh/cm3-5.4/m3-libs/m3core$ ll /lib/i686/libpthread* -rw-r--r-- 1 root root 90680 Jul 24 15:20 /lib/i686/libpthread-2.4.so lrwxrwxrwx 1 root root 17 Sep 28 18:37 /lib/i686/libpthread.so.0 -> libpthread-2.4.so I tried both versions with the same result. I edited my cm3.cfg to add PTHREAD to SYSTEM_LIBS: %------------------------------------------------ external system libraries --- % SYSTEM_LIBS provides a mapping from Modula-3 names for the common % external libraries to site-dependent information about how they % are accessed. If SYSTEM_LIBS{x} is defined it should be a list % of linker arguments that are used when linking against that library. % If SYSTEM_LIBS{x} is not defined, the Modula-3 system will assume % that the library is not available. SYSTEM_LIBS = { "LIBC" : [ "-lm" ], %-- not on most Linux platforms % "LEX-YACC" : [ "-Xlinker", "-Bdynamic", BEGIN_CONFIG % "Where are the lex/yacc libraries?" % 11 "libl.so" % 12 "/usr/lib" % 12 "/usr/local/lib" % 12 "/usr/local/gnu/lib" % 13 "/usr/lib" % END_CONFIG, "-ll" ], "FLEX-BISON" : [ "-L/usr/lib", "-lfl" ], "POSTGRES95" : [ "-Xlinker", "-Bdynamic", "-L/usr/lib", "-lpq" ], "OPENGL" : [ "-Xlinker", "-Bdynamic", "-L/usr/lib", "-lGLU", "-lGL", "-lXext" ], "ODBC" : [ "-Xlinker", "-Bdynamic", "-L/usr/local/lib", "-lodbc" ], "MOTIF" : [ "-Xlinker", "-Bdynamic", "-L/usr/lib", "-lXm" ], "X11" : [ "-Xlinker", "-Bdynamic", "-L/usr/lib", "-lXaw", "-lXmu", "-lXext", "-lXt", "-lSM", "-lICE", "-lX11" ], "TCP" : [ ], "PTHREAD" : [ "-Xlinker", "-Bdynamic", "-L/lib", "-lpthread" ] } % SYSTEM_LIBORDER defines the order in which SYSTEM_LIBS should be % scanned by the linker. SYSTEM_LIBORDER = [ "OPENGL", "DECPEX", "MOTIF", "X11", "TCP", "ODBC", "POSTGRES95", "FLEX-BISON", "LEX-YACC", "LIBC", "PTHREAD" ] Anybody have any clues? -- ------------------------------------------------------------- Rodney M. Bates, retired assistant professor Dept. of Computer Science, Wichita State University Wichita, KS 67260-0083 316-978-3922 rodney.bates at wichita.edu From jayk123 at hotmail.com Sun Jan 14 02:10:39 2007 From: jayk123 at hotmail.com (j k) Date: Sun, 14 Jan 2007 01:10:39 +0000 Subject: [M3devel] crash in released cminstall on win32, minor.. Message-ID: crash in cminstall the latest release 5.2.6 or so, like if you just press return here without typing something, not sure it repros consistently, not sure I'll get to it, since I removed most of the need for configuration...: What directory contains the Microsoft Visual C++ libraries? *** *** runtime error: *** Attempt to reference an illegal memory location. *** pc = 0x445d24 = Length + 0x24 in ..\src\text\Text.m3 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x12fcc0 0x456040 SystemError + 0x66 in ..\src\runtime\NT386\RTSignal.m3 0x12fcf4 0x445d24 Length + 0x24 in ..\src\text\Text.m3 0x12fd24 0x406aa8 FindChars + 0x16 in ..\src\Text2.m3 0x12fdcc 0x408080 FilenameWithoutSpaces + 0x65 in ..\src\OSWIN32.m3 0x12fe64 0x40a80d GenConfig + 0xf51 in ..\src\Main.m3 0x12fe98 0x408e1d DoIt + 0x51d in ..\src\Main.m3 0x12feb0 0x40c222 Main_M3 + 0x48 in ..\src\Main.m3 _________________________________________________________________ Find sales, coupons, and free shipping, all in one place! ?MSN Shopping Sales & Deals http://shopping.msn.com/content/shp/?ctid=198,ptnrid=176,ptnrdata=200639 From jayk123 at hotmail.com Sun Jan 14 17:39:43 2007 From: jayk123 at hotmail.com (j k) Date: Sun, 14 Jan 2007 16:39:43 +0000 Subject: [M3devel] crash in released cminstall on win32, minor.. In-Reply-To: <45A9A771020000D700013820@SRCMAIL.scires.com> Message-ID: Randy, I changed cm3.cfg to not use full paths. To just run cl, link, pass kernel32.lib on the command line. What you do is first run vcvars32.bat or such that set %path%, %lib%, and %include%. The path to the Modula-3 installation itself, like to find mklib.exe, can be found via path()\.. in Quake, no need to hardcode it. As long as cm3.exe is in the path and the "normal" layout is used. Environment variables can be used to override, making a new distribution might use that, to use the mklib from a previous build to make a new from-scratch build (or could just copy mklib and the compiler over). Thus, no configuration is needed. There are pluses and minuses to this approach. Should a particular CM3 install be "bound" to a particular Visual C++ compiler/linker? Or should be allowed to "float" as the environment changes? Plus cminstall still needs to prompt for where to install. I don't know if that depends on the configuration stuff I removed. I'll be trying it out soon. My CM3 install works with a variety of Visual C++ / Platform SDK installs. Including Visual C++ 2.0, 4.0, 5.0, 7.0, 7.1, 8.0, including the free 7.1 and 8.0 downloads, I think without a dependency on the Platform SDK, since I regenerated import .libs. I was just working on "make-dist.cmd", need to do a bit more end-to-end-from-scratch testing and will put a distribution up on m3.elegosoft.com for people to try. Just have to automate the tar commands and try running cminstall, trivial stuff. I'm aware of the 7.1 and 8.0 and SDK downloads. 7.1 is no longer available. I test it out though. Oh, right, it is the one that lacks msvcrt.lib. So for that I use the Platform SDK. 8.0 seems to expire after a month, at least the IDE, not sure about the command line, maybe not. (unless you register it) - Jay >From: "Randy Coleburn" >To: ,"j k" >Subject: Re: [M3devel] crash in released cminstall on win32, minor.. >Date: Sun, 14 Jan 2007 03:45:53 -0500 > >Hi Jay: > >I've been out of the M3 loop for awhile, but I'm not sure why you are >trying not to deal with configuration on Windows. My recollection is >that the cm3.cfg has to be set to know where you've installed stuff on >your Windows machine. Microsoft now makes available for FREE a version >of their C++ compiler and linker along with a FREE Windows SDK that >allows for native mode (non .NET) compilation and linking. I've used >these with success on my old version of cm3. I have not yet tried to >install a new version. > >The free C++ is at: http://msdn.microsoft.com/vstudio/express/ >The free SDK is at: >http://www.microsoft.com/downloads/details.aspx?familyid=0BAF2B35-C656-4969-ACE8-E4C0C0716ADB&displaylang=en >Directions on how to install the SDK are at: >http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/default.aspx > >Regards, >Randy > >Randy C. Coleburn >Senior Systems Engineer, Communications, Networks, & Electronics >Division (CNE) >Corporate & Atlanta Information Systems Security Manager (ISSM) >Scientific Research Corporation >2300 Windy Ridge Parkway, Suite 400 South, Atlanta, Georgia 30339 >voice: (770) 989-9464, email: RColeburn at SciRes.com, fax: (770) >989-9497 > >Quality Policy: "SRC CNE Division is committed to delivering >continually improving research & engineering excellence that meets or >exceeds customer requirements." > > >>> "j k" 1/13/2007 8:10 PM >>> > >crash in cminstall the latest release 5.2.6 or so, like if you just >press >return here without typing something, not sure it repros consistently, >not >sure I'll get to it, since I removed most of the need for >configuration...: > >What directory contains the Microsoft Visual C++ libraries? > > >*** >*** runtime error: >*** Attempt to reference an illegal memory location. >*** pc = 0x445d24 = Length + 0x24 in ..\src\text\Text.m3 >*** > >Stack trace: > FP PC Procedure >--------- --------- ------------------------------- >0x12fcc0 0x456040 SystemError + 0x66 in >..\src\runtime\NT386\RTSignal.m3 >0x12fcf4 0x445d24 Length + 0x24 in ..\src\text\Text.m3 >0x12fd24 0x406aa8 FindChars + 0x16 in ..\src\Text2.m3 >0x12fdcc 0x408080 FilenameWithoutSpaces + 0x65 in ..\src\OSWIN32.m3 >0x12fe64 0x40a80d GenConfig + 0xf51 in ..\src\Main.m3 >0x12fe98 0x408e1d DoIt + 0x51d in ..\src\Main.m3 >0x12feb0 0x40c222 Main_M3 + 0x48 in ..\src\Main.m3 > >_________________________________________________________________ >Find sales, coupons, and free shipping, all in one place! MSN Shopping > >Sales & Deals >http://shopping.msn.com/content/shp/?ctid=198,ptnrid=176,ptnrdata=200639 > >_______________________________________________ >M3devel mailing list >M3devel at elegosoft.com >https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel > > _________________________________________________________________ Communicate instantly! Use your Hotmail address to sign into Windows Live Messenger now. http://get.live.com/messenger/overview From jayk123 at hotmail.com Sun Jan 14 17:45:52 2007 From: jayk123 at hotmail.com (j k) Date: Sun, 14 Jan 2007 16:45:52 +0000 Subject: [M3devel] foreign threads Message-ID: I was just mentioning here the need to create threads with the Modula-3 libraries vs. "native" thread creation. I happened upon this related note: http://www.mono-project.com/Compacting_GC To perform the garbage collection, it is important that all the running threads are stopped,..... The Mono runtime will automatically register all threads that are created from the managed world with the garbage collector. But it is important that any threads that will communicate with the Mono runtime to register these threads with the garbage collector, so they can be stopped during a collection, developers embedding the Mono runtime must call the mono_gc_register_thread. I still think at least on Windows it tends to be easier -- you can rely on m3core.dll's DllMain(thread attach) notification to at least know about threads created after m3core.dll is loaded. That still leaves knowing about threads created before it was loaded. That's easy to handle inefficiently, hard to do efficiently. - Jay _________________________________________________________________ Find sales, coupons, and free shipping, all in one place! ?MSN Shopping Sales & Deals http://shopping.msn.com/content/shp/?ctid=198,ptnrid=176,ptnrdata=200639 From jayk123 at hotmail.com Sun Jan 14 17:53:47 2007 From: jayk123 at hotmail.com (j k) Date: Sun, 14 Jan 2007 16:53:47 +0000 Subject: [M3devel] crash in released cminstall on win32, minor.. In-Reply-To: Message-ID: Interesting article though. I haven't been using the IDE, just the command line and older IDEs for editors. I've been kind of stuck a while on Visual C++ 5/6 for an editor. It doesn't actually require a hefty per-machine install, you can just copy a few files around or run it from the network, and it has always worked on IA64 and AMD64, no matter the "installer blocks" in newer versions... Too bad it doesn't have replace-in-files or support Unicode though. - Jay >From: "j k" >To: rcoleburn at scires.com, m3devel at elegosoft.com >Subject: Re: [M3devel] crash in released cminstall on win32, minor.. >Date: Sun, 14 Jan 2007 16:39:43 +0000 > >Randy, > >I changed cm3.cfg to not use full paths. >To just run cl, link, pass kernel32.lib on the command line. >What you do is first run vcvars32.bat or such that set %path%, %lib%, and >%include%. > >The path to the Modula-3 installation itself, like to find mklib.exe, can >be found via path()\.. in Quake, no need to hardcode it. As long as cm3.exe >is in the path and the "normal" layout is used. Environment variables can >be used to override, making a new distribution might use that, to use the >mklib from a previous build to make a new from-scratch build (or could just >copy mklib and the compiler over). > >Thus, no configuration is needed. >There are pluses and minuses to this approach. > >Should a particular CM3 install be "bound" to a particular Visual C++ >compiler/linker? Or should be allowed to "float" as the environment >changes? > >Plus cminstall still needs to prompt for where to install. >I don't know if that depends on the configuration stuff I removed. >I'll be trying it out soon. > >My CM3 install works with a variety of Visual C++ / Platform SDK installs. >Including Visual C++ 2.0, 4.0, 5.0, 7.0, 7.1, 8.0, including the free 7.1 >and 8.0 downloads, I think without a dependency on the Platform SDK, since >I regenerated import .libs. > >I was just working on "make-dist.cmd", need to do a bit more >end-to-end-from-scratch testing and will put a distribution up on >m3.elegosoft.com for people to try. Just have to automate the tar commands >and try running cminstall, trivial stuff. > >I'm aware of the 7.1 and 8.0 and SDK downloads. 7.1 is no longer available. >I test it out though. Oh, right, it is the one that lacks msvcrt.lib. So >for that I use the Platform SDK. >8.0 seems to expire after a month, at least the IDE, not sure about the >command line, maybe not. (unless you register it) > >- Jay > > >>From: "Randy Coleburn" >>To: ,"j k" >>Subject: Re: [M3devel] crash in released cminstall on win32, minor.. >>Date: Sun, 14 Jan 2007 03:45:53 -0500 >> >>Hi Jay: >> >>I've been out of the M3 loop for awhile, but I'm not sure why you are >>trying not to deal with configuration on Windows. My recollection is >>that the cm3.cfg has to be set to know where you've installed stuff on >>your Windows machine. Microsoft now makes available for FREE a version >>of their C++ compiler and linker along with a FREE Windows SDK that >>allows for native mode (non .NET) compilation and linking. I've used >>these with success on my old version of cm3. I have not yet tried to >>install a new version. >> >>The free C++ is at: http://msdn.microsoft.com/vstudio/express/ >>The free SDK is at: >>http://www.microsoft.com/downloads/details.aspx?familyid=0BAF2B35-C656-4969-ACE8-E4C0C0716ADB&displaylang=en >>Directions on how to install the SDK are at: >>http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/default.aspx >> >>Regards, >>Randy >> >>Randy C. Coleburn >>Senior Systems Engineer, Communications, Networks, & Electronics >>Division (CNE) >>Corporate & Atlanta Information Systems Security Manager (ISSM) >>Scientific Research Corporation >>2300 Windy Ridge Parkway, Suite 400 South, Atlanta, Georgia 30339 >>voice: (770) 989-9464, email: RColeburn at SciRes.com, fax: (770) >>989-9497 >> >>Quality Policy: "SRC CNE Division is committed to delivering >>continually improving research & engineering excellence that meets or >>exceeds customer requirements." >> >> >>> "j k" 1/13/2007 8:10 PM >>> >> >>crash in cminstall the latest release 5.2.6 or so, like if you just >>press >>return here without typing something, not sure it repros consistently, >>not >>sure I'll get to it, since I removed most of the need for >>configuration...: >> >>What directory contains the Microsoft Visual C++ libraries? >> >> >>*** >>*** runtime error: >>*** Attempt to reference an illegal memory location. >>*** pc = 0x445d24 = Length + 0x24 in ..\src\text\Text.m3 >>*** >> >>Stack trace: >> FP PC Procedure >>--------- --------- ------------------------------- >>0x12fcc0 0x456040 SystemError + 0x66 in >>..\src\runtime\NT386\RTSignal.m3 >>0x12fcf4 0x445d24 Length + 0x24 in ..\src\text\Text.m3 >>0x12fd24 0x406aa8 FindChars + 0x16 in ..\src\Text2.m3 >>0x12fdcc 0x408080 FilenameWithoutSpaces + 0x65 in ..\src\OSWIN32.m3 >>0x12fe64 0x40a80d GenConfig + 0xf51 in ..\src\Main.m3 >>0x12fe98 0x408e1d DoIt + 0x51d in ..\src\Main.m3 >>0x12feb0 0x40c222 Main_M3 + 0x48 in ..\src\Main.m3 >> >>_________________________________________________________________ >>Find sales, coupons, and free shipping, all in one place! MSN Shopping >> >>Sales & Deals >>http://shopping.msn.com/content/shp/?ctid=198,ptnrid=176,ptnrdata=200639 >> >>_______________________________________________ >>M3devel mailing list >>M3devel at elegosoft.com >>https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel >> >> > >_________________________________________________________________ >Communicate instantly! Use your Hotmail address to sign into Windows Live >Messenger now. http://get.live.com/messenger/overview > >_______________________________________________ >M3devel mailing list >M3devel at elegosoft.com >https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel _________________________________________________________________ >From photos to predictions, The MSN Entertainment Guide to Golden Globes has it all. http://tv.msn.com/tv/globes2007/?icid=nctagline1 From dabenavidesd at yahoo.es Sun Jan 14 20:05:24 2007 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Sun, 14 Jan 2007 20:05:24 +0100 (CET) Subject: [M3devel] cm3-5.4 building on NT386 cat not recognized command Message-ID: <771939.15934.qm@web86908.mail.ukl.yahoo.com> Hi all: Im trynig to get build with the bootstrap of 5.2.6, do-cm3-base.cmd works well. Just got an error in about file C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs\src\m3makefile C:\cm3-5.4\cm3-cvs\cm3\scripts\win>do-cm3-base.cmd INSTALLROOT=C:\cm3 LIB=%INSTALLROOT%\LIB;%LIB% CM3ROOT=C:\\cm3-5.4\\cm3-cvs\\cm3 making C:\cm3-5.4\cm3-cvs\cm3\scripts\win\PKGS with C:\cm3-5.4\cm3-cvs\cm3\scripts\win\find-packages call C:\cm3-5.4\cm3-cvs\cm3\scripts\win\pkgmap -c "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" import-libs m3core libm3 m3middle m3quake m3scanner m3tools m3cgcat m3cggen m3bundle mklib dll2lib fix_nl libdump bitvector digraph parseparams realgeometry set slisp sortedtableextras table-list tempfiles tcp tapi === package C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs === +++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ unable to read ..\src\m3overrides, options "-override" and "-x" ignored. "C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs\src\m3makefile", line 178: quake runtime error: undefined variable: file_exists --procedure-- -line- -file--- include_dir 178 C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs\src\m3makefile 5 C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs\NT386\m3make.args Fatal Error: package build failed *** execution of cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3 failed with 0 *** I just commented the whole if of line 178 and it worked well. Then I tried the do-cm3-std.cmd, and it works well until formsview package, but when in m3-obliq got an error because a missing cat: -> linking vocgi.exe === package C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\voquery === +++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ new source -> compiling Main.m3 -> linking voquery.exe === package C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vorun === +++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ C:\cm3-5.4\cm3-cvs\cm3\m3-tools\m3bundle\NT386\m3bundle -name VORunBundle -FC:\D OCUME~1\LUISCA~1\CONFIG~1\Temp\qk new source -> compiling VORunBundle.i3 new source -> compiling VORunBundle.m3 new source -> compiling Main.m3 -> linking vorun.exe cat ..\src\vostart >> vostart "cat" is not recognized as an internal or external command, operable program or batch file. "C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vorun\src\m3makefile", line 33: quake runtime error: exit 1: cat ..\src\vostart >> vostart --procedure-- -line- -file--- exec -- include_dir 33 C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vorun\src\m3makefile 6 C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vorun\NT386\m3make.args Fatal Error: package build failed *** execution of cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3 failed with 0 *** error : call C:\cm3-5.4\cm3-cvs\cm3\scripts\win\pkgmap -c "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" import-libs m3core libm3 m3core m3middle m3quake m3scanner m3tools m3cgcat m3cggen m3bundle mklib dll2lib fix_nl libdump bitvector digraph parseparams realgeometry set slisp sortedtableextras table-list tempfiles tcl tcp udp libsio libbuf debug listfuncs patternmatching embutils m3tk-misc http binIO deepcopy sgml tapi serial m3tk mtex m3totex m3tohtml m3scan m3markup m3browser cmpdir cmpfp dirfp uniq netobj netobjd stubgen events rdwr sharedobj sharedobjgen odbc postgres95 db smalldb stable stablegen X11R4 ui PEX vbtkit cmvbt jvideo videovbt web formsvbtpixmaps formsvbt formsview formsedit codeview mg mgkit opengl anim3D zeus m3zume synloc synex metasyn obliqrt obliqparse obliq print obliq obliqlibemb obliqlibm3 obliqlibui obliqlibanim obliqsrvstd obliqsrvu i obliqbinmin obliqbinstd obliqbinui obliqbinanim visualobliq vocgi voquery voru n webvbt recordheap rehearsecode replayheap showheap shownew showthread pkl-fonts juno-machine juno-compiler juno-app cube calculator fisheye mentor failed C:\cm3-5.4\cm3-cvs\cm3\scripts\win> Can we use a native port of cat, or bunddle in the distro? Thanks, Daniel Benavides --------------------------------- LLama Gratis a cualquier PC del Mundo. Llamadas a fijos y m?viles desde 1 c?ntimo por minuto. http://es.voice.yahoo.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From jayk123 at hotmail.com Sun Jan 14 20:38:03 2007 From: jayk123 at hotmail.com (j k) Date: Sun, 14 Jan 2007 19:38:03 +0000 Subject: [M3devel] cm3-5.4 building on NT386 cat not recognized command In-Reply-To: <771939.15934.qm@web86908.mail.ukl.yahoo.com> Message-ID: Good! The problems in obliq I know about. They are old. Getting this far in "std" I think is pretty good. I'm sure we can just switch on M3_OSTYPE and use type or echo instead of cat, or add more builtins to quake. Question: M3_OSTYPE, this it meant to be a query about the target and not the host, right? My suspected anwer: Cross builds aren't actually factored into the build system right. There is not a way to check one vs. the other. That is, host is mostly assumed to be target. Not completely broken, since cross builds are doable, in a way I am not familiar with but is documented. file_exists should be either in that m3makefile or the global cm3.cfg. it is defined by me as like: proc file_exists(a) is return stale(a, a) end I thought the use of "stale(a,a)" in places kind of obscure and worthy of a name. In order to work with whatever global cm3.cfg someone has, let's just put in a local definition. Some of the history in the import-libs directory is it did not initially build incrementally, just always clean, so my changes for incrementality have less time under their belt, so to speak. - Jay >From: "Daniel Alejandro Benavides D." >To: m3devel at elegosoft.com >Subject: [M3devel] cm3-5.4 building on NT386 cat not recognized command >Date: Sun, 14 Jan 2007 20:05:24 +0100 (CET) > >Hi all: >Im trynig to get build with the bootstrap of 5.2.6, do-cm3-base.cmd >works well. Just got an error in about file >C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs\src\m3makefile > >C:\cm3-5.4\cm3-cvs\cm3\scripts\win>do-cm3-base.cmd >INSTALLROOT=C:\cm3 >LIB=%INSTALLROOT%\LIB;%LIB% >CM3ROOT=C:\\cm3-5.4\\cm3-cvs\\cm3 > >making C:\cm3-5.4\cm3-cvs\cm3\scripts\win\PKGS with >C:\cm3-5.4\cm3-cvs\cm3\scripts\win\find-packages >call C:\cm3-5.4\cm3-cvs\cm3\scripts\win\pkgmap -c "cm3 -build -override >-DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" import-libs m3core libm3 m3middle m3quake >m3scanner m3tools m3cgcat m3cggen m3bundle mklib dll2lib fix_nl libdump >bitvector digraph parseparams realgeometry set slisp sortedtableextras >table-list tempfiles tcp tapi > >=== package C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs === >+++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ >unable to read ..\src\m3overrides, options "-override" and "-x" ignored. >"C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs\src\m3makefile", line 178: quake >runtime error: undefined variable: file_exists > >--procedure-- -line- -file--- > >include_dir 178 >C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs\src\m3makefile > 5 >C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs\NT386\m3make.args >Fatal Error: package build failed > >*** execution of cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3 >failed with 0 *** > > I just commented the whole if of line 178 and it worked well. Then I >tried the do-cm3-std.cmd, and it works well until formsview package, but >when in m3-obliq got an error because a missing cat: > > -> linking vocgi.exe >=== package C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\voquery === >+++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ >new source -> compiling Main.m3 > -> linking voquery.exe >=== package C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vorun === >+++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ >C:\cm3-5.4\cm3-cvs\cm3\m3-tools\m3bundle\NT386\m3bundle -name VORunBundle >-FC:\D >OCUME~1\LUISCA~1\CONFIG~1\Temp\qk >new source -> compiling VORunBundle.i3 >new source -> compiling VORunBundle.m3 >new source -> compiling Main.m3 > -> linking vorun.exe >cat ..\src\vostart >> vostart >"cat" is not recognized as an internal or external command, operable >program or batch file. > >"C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vorun\src\m3makefile", line 33: quake >runtime error: exit 1: cat ..\src\vostart >> vostart > >--procedure-- -line- -file--- >exec -- >include_dir 33 C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vorun\src\m3makefile > 6 >C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vorun\NT386\m3make.args > >Fatal Error: package build failed >*** execution of cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3 >failed with 0 *** >error : call C:\cm3-5.4\cm3-cvs\cm3\scripts\win\pkgmap -c "cm3 -build >-override >-DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" import-libs m3core libm3 m3core m3middle >m3quake m3scanner m3tools m3cgcat m3cggen m3bundle mklib dll2lib fix_nl >libdump bitvector digraph parseparams realgeometry set slisp >sortedtableextras table-list tempfiles tcl tcp udp libsio libbuf debug >listfuncs patternmatching embutils m3tk-misc http binIO deepcopy sgml tapi >serial m3tk mtex m3totex m3tohtml m3scan m3markup m3browser cmpdir cmpfp >dirfp uniq netobj netobjd stubgen events rdwr sharedobj sharedobjgen odbc >postgres95 db smalldb stable stablegen X11R4 ui PEX vbtkit cmvbt jvideo >videovbt web formsvbtpixmaps formsvbt formsview formsedit codeview mg mgkit >opengl anim3D zeus m3zume synloc synex metasyn obliqrt obliqparse obliq >print obliq obliqlibemb obliqlibm3 obliqlibui obliqlibanim obliqsrvstd >obliqsrvu >i obliqbinmin obliqbinstd obliqbinui obliqbinanim visualobliq vocgi voquery >voru >n webvbt recordheap rehearsecode replayheap showheap shownew showthread >pkl-fonts juno-machine juno-compiler juno-app cube calculator fisheye >mentor failed > >C:\cm3-5.4\cm3-cvs\cm3\scripts\win> > >Can we use a native port of cat, or bunddle in the distro? > >Thanks, >Daniel Benavides > > >--------------------------------- > >LLama Gratis a cualquier PC del Mundo. >Llamadas a fijos y m?viles desde 1 c?ntimo por minuto. >http://es.voice.yahoo.com >_______________________________________________ >M3devel mailing list >M3devel at elegosoft.com >https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel _________________________________________________________________ Get FREE Web site and company branded e-mail from Microsoft Office Live http://clk.atdmt.com/MRT/go/mcrssaub0050001411mrt/direct/01/ From dabenavidesd at yahoo.es Sun Jan 14 23:26:11 2007 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Sun, 14 Jan 2007 23:26:11 +0100 (CET) Subject: [M3devel] cm3-5.4 building on NT386 cat not recognized command In-Reply-To: Message-ID: <244321.27877.qm@web86902.mail.ukl.yahoo.com> Hi, I succesfully used type instead of cat, so obliq was built. I also added file_exists in cm3.cfg. Thanks. I have tested m3browser, It runs just fine, congratulations !! So I continued with do-cm3-std.cmd built but I found that m3-libs\m3core\src\thread is not built in any of the implementations (which must be src\thread\WIN32 according to the thread\m3makefile wich has OS_TYPE variable if not PTHREAD), but this directory has no built nothing , so I was wondering if the variable M3_OSTYPE you mentioned is the same? Do you think is possible to use the Pthread part, with the pthread port on Windows? C:\cm3-5.4\cm3-cvs\cm3\m3-tools\m3bundle\NT386\m3bundle -name RehearseCodeBundle -element RehearseCode.fv ..\src\RehearseCode.fv new source -> compiling RehearseCodeBundle.i3 new source -> compiling RehearseCode.m3 new source -> compiling RehearseCodeBundle.m3 -> linking RehearseCode.exe === package C:\cm3-5.4\cm3-cvs\cm3\m3-tools\replayheap === +++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ new source -> compiling Main.m3 -> linking replayheap.exe === package C:\cm3-5.4\cm3-cvs\cm3\m3-tools\showheap === +++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ new source -> compiling ShowHeap.m3 -> linking showheap.exe === package C:\cm3-5.4\cm3-cvs\cm3\m3-tools\shownew === +++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ new source -> compiling ZIO.i3 new source -> compiling ZIO.m3 new source -> compiling ShowNew.m3 -> linking shownew.exe === package C:\cm3-5.4\cm3-cvs\cm3\m3-tools\showthread === +++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ new source -> compiling Main.m3 "..\src\Main.m3", line 12: unable to find interface (ThreadEvent) 1 error encountered compilation failed => not building program "showthread.exe" Fatal Error: package build failed *** execution of cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3 failed with 0 *** .... By the way, the above ThreadEvent missing interface is not in the WIN32 directory, can be copied? Thanks, Daniel Benavides ---------- >j k wrote: >Good! >The problems in obliq I know about. >They are old. Getting this far in "std" I think is pretty good. >I'm sure we can just switch on M3_OSTYPE and use type or echo instead of >cat, or add more builtins to quake. >Question: M3_OSTYPE, this it meant to be a query about the target and not >the host, right? >My suspected anwer: Cross builds aren't actually factored into the build >system right. There is not a way to check one vs. the other. That is, host >is mostly assumed to be target. Not completely broken, since cross builds >are doable, in a way I am not familiar with but is documented. >file_exists should be either in that m3makefile or the global cm3.cfg. >it is defined by me as like: >proc file_exists(a) is >return stale(a, a) >end >I thought the use of "stale(a,a)" in places kind of obscure and worthy of a >name. >In order to work with whatever global cm3.cfg someone has, let's just put >in a local definition. Some of the history in the import-libs directory is >it did not initially build incrementally, just always clean, so my changes >for incrementality have less time under their belt, so to speak. >- Jay >>From: "Daniel Alejandro Benavides D." >>To: m3devel at elegosoft.com >>Subject: [M3devel] cm3-5.4 building on NT386 cat not recognized command >>Date: Sun, 14 Jan 2007 20:05:24 +0100 (CET) >> >>Hi all: >>Im trynig to get build with the bootstrap of 5.2.6, do-cm3-base.cmd >>works well. Just got an error in about file >>C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs\src\m3makefile >> >>C:\cm3-5.4\cm3-cvs\cm3\scripts\win>do-cm3-base.cmd >>INSTALLROOT=C:\cm3 >>LIB=%INSTALLROOT%\LIB;%LIB% >>CM3ROOT=C:\\cm3-5.4\\cm3-cvs\\cm3 >> >>making C:\cm3-5.4\cm3-cvs\cm3\scripts\win\PKGS with >>C:\cm3-5.4\cm3-cvs\cm3\scripts\win\find-packages >>call C:\cm3-5.4\cm3-cvs\cm3\scripts\win\pkgmap -c "cm3 -build -override >>-DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" import-libs m3core libm3 m3middle m3quake >>m3scanner m3tools m3cgcat m3cggen m3bundle mklib dll2lib fix_nl libdump >>bitvector digraph parseparams realgeometry set slisp sortedtableextras >>table-list tempfiles tcp tapi >> >>=== package C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs === >>+++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ >>unable to read ..\src\m3overrides, options "-override" and "-x" ignored. >>"C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs\src\m3makefile", line 178: quake >>runtime error: undefined variable: file_exists >> >>--procedure-- -line- -file--- >> >>include_dir 178 >>C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs\src\m3makefile >> 5 >>C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs\NT386\m3make.args >>Fatal Error: package build failed >> >>*** execution of cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3 >>failed with 0 *** >> >> I just commented the whole if of line 178 and it worked well. Then I >>tried the do-cm3-std.cmd, and it works well until formsview package, but >>when in m3-obliq got an error because a missing cat: >> >> -> linking vocgi.exe >>=== package C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\voquery === >>+++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ >>new source -> compiling Main.m3 >> -> linking voquery.exe >>=== package C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vorun === >>+++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ >>C:\cm3-5.4\cm3-cvs\cm3\m3-tools\m3bundle\NT386\m3bundle -name VORunBundle >>-FC:\D >>OCUME~1\LUISCA~1\CONFIG~1\Temp\qk >>new source -> compiling VORunBundle.i3 >>new source -> compiling VORunBundle.m3 >>new source -> compiling Main.m3 >> -> linking vorun.exe >>cat ..\src\vostart >> vostart >>"cat" is not recognized as an internal or external command, operable >>program or batch file. >> >>"C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vorun\src\m3makefile", line 33: quake >>runtime error: exit 1: cat ..\src\vostart >> vostart >> >>--procedure-- -line- -file--- >>exec -- >>include_dir 33 C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vorun\src\m3makefile >> 6 >>C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vorun\NT386\m3make.args >> >>Fatal Error: package build failed >>*** execution of cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3 >>failed with 0 *** >>error : call C:\cm3-5.4\cm3-cvs\cm3\scripts\win\pkgmap -c "cm3 -build >>-override >>-DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" import-libs m3core libm3 m3core m3middle >>m3quake m3scanner m3tools m3cgcat m3cggen m3bundle mklib dll2lib fix_nl >>libdump bitvector digraph parseparams realgeometry set slisp >>sortedtableextras table-list tempfiles tcl tcp udp libsio libbuf debug >>listfuncs patternmatching embutils m3tk-misc http binIO deepcopy sgml tapi >>serial m3tk mtex m3totex m3tohtml m3scan m3markup m3browser cmpdir cmpfp >>dirfp uniq netobj netobjd stubgen events rdwr sharedobj sharedobjgen odbc >>postgres95 db smalldb stable stablegen X11R4 ui PEX vbtkit cmvbt jvideo >>videovbt web formsvbtpixmaps formsvbt formsview formsedit codeview mg mgkit >>opengl anim3D zeus m3zume synloc synex metasyn obliqrt obliqparse obliq >>print obliq obliqlibemb obliqlibm3 obliqlibui obliqlibanim obliqsrvstd >>obliqsrvui obliqbinmin obliqbinstd obliqbinui obliqbinanim visualobliq vocgi >>voquery vorun webvbt recordheap rehearsecode replayheap showheap shownew >>showthread pkl-fonts juno-machine juno-compiler juno-app cube calculator fisheye >>mentor failed >> >>C:\cm3-5.4\cm3-cvs\cm3\scripts\win> >> >>Can we use a native port of cat, or bunddle in the distro? >> >>Thanks, >>Daniel Benavides --------------------------------- LLama Gratis a cualquier PC del Mundo. Llamadas a fijos y m?viles desde 1 c?ntimo por minuto. http://es.voice.yahoo.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Mon Jan 15 00:10:38 2007 From: hosking at cs.purdue.edu (Antony Hosking) Date: Sun, 14 Jan 2007 18:10:38 -0500 Subject: [M3devel] cm3-5.4 building on NT386 cat not recognized command In-Reply-To: <244321.27877.qm@web86902.mail.ukl.yahoo.com> References: <244321.27877.qm@web86902.mail.ukl.yahoo.com> Message-ID: The PTHREAD port is not complete for Windows -- I would hesitate to use pthreads on Windows anyway, but perhaps it is doable. WIN32 threads are the preferred route. On 14/01/2007, at 5:26 PM, Daniel Alejandro Benavides D. wrote: > Hi, > I succesfully used type instead of cat, so obliq was built. I also > added file_exists in cm3.cfg. Thanks. > I have tested m3browser, It runs just fine, congratulations !! > > So I continued with do-cm3-std.cmd built but I found that m3-libs > \m3core\src\thread is not built in any of the implementations > (which must be src\thread\WIN32 according to the thread\m3makefile > wich has OS_TYPE variable if not PTHREAD), but this directory has > no built nothing , so I was wondering if the variable M3_OSTYPE you > mentioned is the same? > Do you think is possible to use the Pthread part, with the pthread > port on Windows? > > C:\cm3-5.4\cm3-cvs\cm3\m3-tools\m3bundle\NT386\m3bundle -name > RehearseCodeBundle > -element RehearseCode.fv ..\src\RehearseCode.fv > new source -> compiling RehearseCodeBundle.i3 > new source -> compiling RehearseCode.m3 > new source -> compiling RehearseCodeBundle.m3 > -> linking RehearseCode.exe > === package C:\cm3-5.4\cm3-cvs\cm3\m3-tools\replayheap === > +++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ > new source -> compiling Main.m3 > -> linking replayheap.exe > === package C:\cm3-5.4\cm3-cvs\cm3\m3-tools\showheap === > +++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ > new source -> compiling ShowHeap.m3 > -> linking showheap.exe > === package C:\cm3-5.4\cm3-cvs\cm3\m3-tools\shownew === > +++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ > new source -> compiling ZIO.i3 > new source -> compiling ZIO.m3 > new source -> compiling ShowNew.m3 > -> linking shownew.exe > === package C:\cm3-5.4\cm3-cvs\cm3\m3-tools\showthread === > +++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ > new source -> compiling Main.m3 > "..\src\Main.m3", line 12: unable to find interface (ThreadEvent) > 1 error encountered > compilation failed => not building program "showthread.exe" > Fatal Error: package build failed > *** execution of cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\ > \cm3 failed with 0 *** > .... > > By the way, the above ThreadEvent missing interface is not in the > WIN32 directory, can be copied? > > Thanks, > Daniel Benavides > > ---------- > >j k wrote: > > >Good! > > >The problems in obliq I know about. > >They are old. Getting this far in "std" I think is pretty good. > > >I'm sure we can just switch on M3_OSTYPE and use type or echo > instead of > >cat, or add more builtins to quake. > > >Question: M3_OSTYPE, this it meant to be a query about the target > and not > >the host, right? > >My suspected anwer: Cross builds aren't actually factored into the > build > >system right. There is not a way to check one vs. the other. That > is, host > >is mostly assumed to be target. Not completely broken, since cross > builds > >are doable, in a way I am not familiar with but is documented. > > >file_exists should be either in that m3makefile or the global > cm3.cfg. > >it is defined by me as like: > > >proc file_exists(a) is > >return stale(a, a) > >end > > >I thought the use of "stale(a,a)" in places kind of obscure and > worthy of a > >name. > > >In order to work with whatever global cm3.cfg someone has, let's > just put > >in a local definition. Some of the history in the import-libs > directory is > >it did not initially build incrementally, just always clean, so my > changes > >for incrementality have less time under their belt, so to speak. > > >- Jay > > > >>From: "Daniel Alejandro Benavides D." > >>To: m3devel at elegosoft.com > >>Subject: [M3devel] cm3-5.4 building on NT386 cat not recognized > command > >>Date: Sun, 14 Jan 2007 20:05:24 +0100 (CET) > >> > >>Hi all: > >>Im trynig to get build with the bootstrap of 5.2.6, do-cm3-base.cmd > >>works well. Just got an error in about file > >>C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs\src\m3makefile > >> > >>C:\cm3-5.4\cm3-cvs\cm3\scripts\win>do-cm3-base.cmd > >>INSTALLROOT=C:\cm3 > >>LIB=%INSTALLROOT%\LIB;%LIB% > >>CM3ROOT=C:\\cm3-5.4\\cm3-cvs\\cm3 > >> > >>making C:\cm3-5.4\cm3-cvs\cm3\scripts\win\PKGS with > >>C:\cm3-5.4\cm3-cvs\cm3\scripts\win\find-packages > >>call C:\cm3-5.4\cm3-cvs\cm3\scripts\win\pkgmap -c "cm3 -build - > override > >>-DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" import-libs m3core libm3 > m3middle m3quake > >>m3scanner m3tools m3cgcat m3cggen m3bundle mklib dll2lib fix_nl > libdump > >>bitvector digraph parseparams realgeometry set slisp > sortedtableextras > >>table-list tempfiles tcp tapi > >> > >>=== package C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs === > >>+++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ > >>unable to read ..\src\m3overrides, options "-override" and "-x" > ignored. > >>"C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs\src\m3makefile", line > 178: quake > >>runtime error: undefined variable: file_exists > >> > >>--procedure-- -line- -file--- > >> > >>include_dir 178 > >>C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs\src\m3makefile > >> 5 > >>C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs\NT386\m3make.args > >>Fatal Error: package build failed > >> > >>*** execution of cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\ > \cm3 > >>failed with 0 *** > >> > >> I just commented the whole if of line 178 and it worked well. > Then I > >>tried the do-cm3-std.cmd, and it works well until formsview > package, but > >>when in m3-obliq got an error because a missing cat: > >> > >> -> linking vocgi.exe > >>=== package C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\voquery === > >>+++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ > >>new source -> compiling Main.m3 > >> -> linking voquery.exe > >>=== package C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vorun === > >>+++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ > >>C:\cm3-5.4\cm3-cvs\cm3\m3-tools\m3bundle\NT386\m3bundle -name > VORunBundle > >>-FC:\D > >>OCUME~1\LUISCA~1\CONFIG~1\Temp\qk > >>new source -> compiling VORunBundle.i3 > >>new source -> compiling VORunBundle.m3 > >>new source -> compiling Main.m3 > >> -> linking vorun.exe > >>cat ..\src\vostart >> vostart > >>"cat" is not recognized as an internal or external command, operable > >>program or batch file. > >> > >>"C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vorun\src\m3makefile", line 33: > quake > >>runtime error: exit 1: cat ..\src\vostart >> vostart > >> > >>--procedure-- -line- -file--- > >>exec -- > >>include_dir 33 C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vorun\src\m3makefile > >> 6 > >>C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vorun\NT386\m3make.args > >> > >>Fatal Error: package build failed > >>*** execution of cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\ > \cm3 > >>failed with 0 *** > >>error : call C:\cm3-5.4\cm3-cvs\cm3\scripts\win\pkgmap -c "cm3 - > build > >>-override > >>-DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" import-libs m3core libm3 m3core > m3middle > >>m3quake m3scanner m3tools m3cgcat m3cggen m3bundle mklib dll2lib > fix_nl > >>libdump bitvector digraph parseparams realgeometry set slisp > >>sortedtableextras table-list tempfiles tcl tcp udp libsio libbuf > debug > >>listfuncs patternmatching embutils m3tk-misc http binIO deepcopy > sgml tapi > >>serial m3tk mtex m3totex m3tohtml m3scan m3markup m3browser > cmpdir cmpfp > >>dirfp uniq netobj netobjd stubgen events rdwr sharedobj > sharedobjgen odbc > >>postgres95 db smalldb stable stablegen X11R4 ui PEX vbtkit cmvbt > jvideo > >>videovbt web formsvbtpixmaps formsvbt formsview formsedit > codeview mg mgkit > >>opengl anim3D zeus m3zume synloc synex metasyn obliqrt obliqparse > obliq > >>print obliq obliqlibemb obliqlibm3 obliqlibui obliqlibanim > obliqsrvstd > >>obliqsrvui obliqbinmin obliqbinstd obliqbinui obliqbinanim > visualobliq vocgi >>voquery vorun webvbt recordheap rehearsecode > replayheap showheap shownew >>showthread pkl-fonts juno-machine > juno-compiler juno-app cube calculator fisheye > >>mentor failed > >> > >>C:\cm3-5.4\cm3-cvs\cm3\scripts\win> > >> > >>Can we use a native port of cat, or bunddle in the distro? > >> > >>Thanks, > >>Daniel Benavides > > > > LLama Gratis a cualquier PC del Mundo. > Llamadas a fijos y m?viles desde 1 c?ntimo por minuto. > http://es.voice.yahoo.com > _______________________________________________ > M3devel mailing list > M3devel at elegosoft.com > https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel Antony Hosking | Associate Professor Dept of Computer Sciences | Office: (765) 494-6001 Purdue University | Mobile: (765) 427-5484 250 N. University Street | hosking at cs.purdue.edu West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking _--_|\ / \ \_.--._/ ) v / -------------- next part -------------- An HTML attachment was scrubbed... URL: From jayk123 at hotmail.com Mon Jan 15 01:34:46 2007 From: jayk123 at hotmail.com (j k) Date: Mon, 15 Jan 2007 00:34:46 +0000 Subject: [M3devel] cm3-5.4 building on NT386 cat not recognized command In-Reply-To: <244321.27877.qm@web86902.mail.ukl.yahoo.com> Message-ID: I commited fixes for the vostart and import-libs problems. vostart starts up. I left the m3makefile configurable as to if vostart (and vorun) are in in the bin directory so would tend to be in the path, or in the pkg\vorun\nt386 directory as the original author seemed to intend. The documention mentions export_program and hide_program, but they do not exist. What is the right way to install a checked in file to c:\cm3\pkg\foo\nt386? I put in install_derived ("..\\src\\vostart") % This isn't derived, but it gets it to the pkg\target directory. which feels wrong. What are people's thoughts on relatively flat directories that are in %path%, i.e.: c:\cm3\bin\vorun.exe vs. hierarchy c:\cm3\pkg\nt386\vorun.exe and having to run somewhat private .exes by full path? There are pluses and minuses either way of course. If you flatten the hierarchy, you get global namespace pollution but flexibility of layout. I like the flexibility. But I realize then..well, I have all these \env\vc20.cmd \env\vc40.cmd \env\perl.cmd \env\cm3.cmd \env\cm3.2.cmd scripts and my machine has no set configuration, just whatever I happened to set in the command line I'm at. It is good both to bind something to particular versions of things, and to leave it flexible if it is indeed compatible with multiple versions. You don't want to build cross products -- cm3 against that compiler/linker, or against another, etc. So then I guess folks usually have environment variables to represent roots, one per changable root? This makes me think I should back the full paths stuff in cm3.cfg.... (and then of course there is pollution regarding chosing variable names for the root, and when it gets bad enough you end up with a hierarchical system like the Windows registry which everyone dislikes but solves real problems...) I might look into the other problems later, but of course, volunteering and all that. :) - Jay >From: "Daniel Alejandro Benavides D." >To: jayk123 at hotmail.com, m3devel at elegosoft.com >Subject: RE: [M3devel] cm3-5.4 building on NT386 cat not recognized command >Date: Sun, 14 Jan 2007 23:26:11 +0100 (CET) > > Hi, >I succesfully used type instead of cat, so obliq was built. I also added >file_exists in cm3.cfg. Thanks. >I have tested m3browser, It runs just fine, congratulations !! > >So I continued with do-cm3-std.cmd built but I found that >m3-libs\m3core\src\thread is not built in any of the implementations (which >must be src\thread\WIN32 according to the thread\m3makefile wich has >OS_TYPE variable if not PTHREAD), but this directory has no built nothing , >so I was wondering if the variable M3_OSTYPE you mentioned is the same? >Do you think is possible to use the Pthread part, with the pthread port on >Windows? > >C:\cm3-5.4\cm3-cvs\cm3\m3-tools\m3bundle\NT386\m3bundle -name >RehearseCodeBundle > -element RehearseCode.fv ..\src\RehearseCode.fv > new source -> compiling RehearseCodeBundle.i3 > new source -> compiling RehearseCode.m3 > new source -> compiling RehearseCodeBundle.m3 > -> linking RehearseCode.exe > === package C:\cm3-5.4\cm3-cvs\cm3\m3-tools\replayheap === > +++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ > new source -> compiling Main.m3 > -> linking replayheap.exe > === package C:\cm3-5.4\cm3-cvs\cm3\m3-tools\showheap === > +++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ > new source -> compiling ShowHeap.m3 > -> linking showheap.exe > === package C:\cm3-5.4\cm3-cvs\cm3\m3-tools\shownew === > +++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ > new source -> compiling ZIO.i3 > new source -> compiling ZIO.m3 > new source -> compiling ShowNew.m3 > -> linking shownew.exe > === package C:\cm3-5.4\cm3-cvs\cm3\m3-tools\showthread === > +++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ > new source -> compiling Main.m3 > "..\src\Main.m3", line 12: unable to find interface (ThreadEvent) > 1 error encountered > compilation failed => not building program "showthread.exe" > Fatal Error: package build failed > *** execution of cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3 >failed with 0 *** > .... > >By the way, the above ThreadEvent missing interface is not in the WIN32 >directory, can be copied? > >Thanks, >Daniel Benavides > >---------- > >j k wrote: > > >Good! > > >The problems in obliq I know about. > >They are old. Getting this far in "std" I think is pretty good. > > >I'm sure we can just switch on M3_OSTYPE and use type or echo instead of > >cat, or add more builtins to quake. > > >Question: M3_OSTYPE, this it meant to be a query about the target and not > >the host, right? > >My suspected anwer: Cross builds aren't actually factored into the build > >system right. There is not a way to check one vs. the other. That is, >host > >is mostly assumed to be target. Not completely broken, since cross builds > >are doable, in a way I am not familiar with but is documented. > > >file_exists should be either in that m3makefile or the global cm3.cfg. > >it is defined by me as like: > > >proc file_exists(a) is > >return stale(a, a) > >end > > >I thought the use of "stale(a,a)" in places kind of obscure and worthy of >a > >name. > > >In order to work with whatever global cm3.cfg someone has, let's just put > >in a local definition. Some of the history in the import-libs directory >is > >it did not initially build incrementally, just always clean, so my >changes > >for incrementality have less time under their belt, so to speak. > > >- Jay > > > >>From: "Daniel Alejandro Benavides D." > >>To: m3devel at elegosoft.com > >>Subject: [M3devel] cm3-5.4 building on NT386 cat not recognized command > >>Date: Sun, 14 Jan 2007 20:05:24 +0100 (CET) > >> > >>Hi all: > >>Im trynig to get build with the bootstrap of 5.2.6, do-cm3-base.cmd > >>works well. Just got an error in about file > >>C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs\src\m3makefile > >> > >>C:\cm3-5.4\cm3-cvs\cm3\scripts\win>do-cm3-base.cmd > >>INSTALLROOT=C:\cm3 > >>LIB=%INSTALLROOT%\LIB;%LIB% > >>CM3ROOT=C:\\cm3-5.4\\cm3-cvs\\cm3 > >> > >>making C:\cm3-5.4\cm3-cvs\cm3\scripts\win\PKGS with > >>C:\cm3-5.4\cm3-cvs\cm3\scripts\win\find-packages > >>call C:\cm3-5.4\cm3-cvs\cm3\scripts\win\pkgmap -c "cm3 -build -override > >>-DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" import-libs m3core libm3 m3middle >m3quake > >>m3scanner m3tools m3cgcat m3cggen m3bundle mklib dll2lib fix_nl libdump > >>bitvector digraph parseparams realgeometry set slisp sortedtableextras > >>table-list tempfiles tcp tapi > >> > >>=== package C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs === > >>+++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ > >>unable to read ..\src\m3overrides, options "-override" and "-x" ignored. > >>"C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs\src\m3makefile", line 178: >quake > >>runtime error: undefined variable: file_exists > >> > >>--procedure-- -line- -file--- > >> > >>include_dir 178 > >>C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs\src\m3makefile > >> 5 > >>C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs\NT386\m3make.args > >>Fatal Error: package build failed > >> > >>*** execution of cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3 > >>failed with 0 *** > >> > >> I just commented the whole if of line 178 and it worked well. Then I > >>tried the do-cm3-std.cmd, and it works well until formsview package, but > >>when in m3-obliq got an error because a missing cat: > >> > >> -> linking vocgi.exe > >>=== package C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\voquery === > >>+++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ > >>new source -> compiling Main.m3 > >> -> linking voquery.exe > >>=== package C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vorun === > >>+++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ > >>C:\cm3-5.4\cm3-cvs\cm3\m3-tools\m3bundle\NT386\m3bundle -name >VORunBundle > >>-FC:\D > >>OCUME~1\LUISCA~1\CONFIG~1\Temp\qk > >>new source -> compiling VORunBundle.i3 > >>new source -> compiling VORunBundle.m3 > >>new source -> compiling Main.m3 > >> -> linking vorun.exe > >>cat ..\src\vostart >> vostart > >>"cat" is not recognized as an internal or external command, operable > >>program or batch file. > >> > >>"C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vorun\src\m3makefile", line 33: quake > >>runtime error: exit 1: cat ..\src\vostart >> vostart > >> > >>--procedure-- -line- -file--- > >>exec -- > >>include_dir 33 C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vorun\src\m3makefile > >> 6 > >>C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vorun\NT386\m3make.args > >> > >>Fatal Error: package build failed > >>*** execution of cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3 > >>failed with 0 *** > >>error : call C:\cm3-5.4\cm3-cvs\cm3\scripts\win\pkgmap -c "cm3 -build > >>-override > >>-DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" import-libs m3core libm3 m3core >m3middle > >>m3quake m3scanner m3tools m3cgcat m3cggen m3bundle mklib dll2lib fix_nl > >>libdump bitvector digraph parseparams realgeometry set slisp > >>sortedtableextras table-list tempfiles tcl tcp udp libsio libbuf debug > >>listfuncs patternmatching embutils m3tk-misc http binIO deepcopy sgml >tapi > >>serial m3tk mtex m3totex m3tohtml m3scan m3markup m3browser cmpdir cmpfp > >>dirfp uniq netobj netobjd stubgen events rdwr sharedobj sharedobjgen >odbc > >>postgres95 db smalldb stable stablegen X11R4 ui PEX vbtkit cmvbt jvideo > >>videovbt web formsvbtpixmaps formsvbt formsview formsedit codeview mg >mgkit > >>opengl anim3D zeus m3zume synloc synex metasyn obliqrt obliqparse obliq > >>print obliq obliqlibemb obliqlibm3 obliqlibui obliqlibanim obliqsrvstd > >>obliqsrvui obliqbinmin obliqbinstd obliqbinui obliqbinanim visualobliq >vocgi >>voquery vorun webvbt recordheap rehearsecode replayheap showheap >shownew >>showthread pkl-fonts juno-machine juno-compiler juno-app cube >calculator fisheye > >>mentor failed > >> > >>C:\cm3-5.4\cm3-cvs\cm3\scripts\win> > >> > >>Can we use a native port of cat, or bunddle in the distro? > >> > >>Thanks, > >>Daniel Benavides > > > >--------------------------------- > >LLama Gratis a cualquier PC del Mundo. >Llamadas a fijos y m?viles desde 1 c?ntimo por minuto. >http://es.voice.yahoo.com _________________________________________________________________ Type your favorite song.? Get a customized station.? Try MSN Radio powered by Pandora. http://radio.msn.com/?icid=T002MSN03A07001 From dabenavidesd at yahoo.es Mon Jan 15 05:14:16 2007 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Mon, 15 Jan 2007 05:14:16 +0100 (CET) Subject: [M3devel] cm3-5.4 building on NT386 cat not recognized command Message-ID: <428129.19084.qm@web86902.mail.ukl.yahoo.com> Hello, I got an error about procedures duplicated on m3-libs\libm3\src\list\list.tmpl . That .tmpl was getting compiled in the pm3-1.1.15 on Windows. readonly proc List (nm, elt) is readonly proc list (nm, elt) is readonly proc List_sort (nm, elt) is readonly proc list_sort (nm, elt) is +++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ === package C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vocgi === +++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ === package C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\voquery === +++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ === package C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vorun === +++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ "C:\cm3-5.4\cm3-cvs\cm3/m3-libs\libm3\src\list\list.tmpl", line 11: quake runtim e error: cannot redefine readonly global symbol: List --procedure-- -line- -file--- _import_template 11 C:\cm3-5.4\cm3-cvs\cm3/m3-libs\libm3\src\list\list.tmpl import 97 C:\cm3-5.4\cm3-cvs\cm3/m3-libs\libm3\NT386\.M3EXPORTS include_dir 51 C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vorun\src\m3makefile 6 C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vorun\NT386\m3make.args Fatal Error: package build failed *** execution of cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3 failed with 0 *** Thanks, Daniel Benavides ----- original message ----- De: "Daniel Alejandro Benavides D." Fecha: Domingo, Enero 14, 2007 10:52 pm Asunto: RV: RE: [M3devel] cm3-5.4 building on NT386 cat not recognized command > > > j k wrote: De: "j k" > to: dabenavidesd at yahoo.es, m3devel at elegosoft.com > subject: RE: [M3devel] cm3-5.4 building on NT386 cat not recognized > commandFecha: Mon, 15 Jan 2007 00:34:46 +0000 > > I commited fixes for the vostart and import-libs problems. > vostart starts up. > I left the m3makefile configurable as to if vostart (and vorun) > are in in > the bin directory so would tend to be in the path, or in the > pkg\vorun\nt386 > directory as the original author seemed to intend. > > The documention mentions export_program and hide_program, but they > do not > exist. > > What is the right way to install a checked in file to > c:\cm3\pkg\foo\nt386?I put in > install_derived ("..\\src\\vostart") % This isn't derived, but > it gets it > to the pkg\target directory. > > which feels wrong. > > What are people's thoughts on relatively flat directories that are > in > %path%, i.e.: > c:\cm3\bin\vorun.exe > > vs. hierarchy c:\cm3\pkg\nt386\vorun.exe > and having to run somewhat private .exes by full path? > > There are pluses and minuses either way of course. If you flatten > the > hierarchy, you get global namespace pollution but flexibility of > layout. I > like the flexibility. But I realize then..well, I have all these > \env\vc20.cmd \env\vc40.cmd \env\perl.cmd \env\cm3.cmd > \env\cm3.2.cmd > scripts and my machine has no set configuration, just whatever I > happened to > set in the command line I'm at. > > It is good both to bind something to particular versions of > things, and to > leave it flexible if it is indeed compatible with multiple > versions. You > don't want to build cross products -- cm3 against that > compiler/linker, or > against another, etc. So then I guess folks usually have > environment > variables to represent roots, one per changable root? This makes > me think I > should back the full paths stuff in cm3.cfg.... (and then of > course there is > pollution regarding chosing variable names for the root, and when > it gets > bad enough you end up with a hierarchical system like the Windows > registry > which everyone dislikes but solves real problems...) > > I might look into the other problems later, but of course, > volunteering and > all that. :) > > - Jay > > >From: "Daniel Alejandro Benavides D." > >To: jayk123 at hotmail.com, m3devel at elegosoft.com > >Subject: RE: [M3devel] cm3-5.4 building on NT386 cat not > recognized command > >Date: Sun, 14 Jan 2007 23:26:11 +0100 (CET) > > > > Hi, > >I succesfully used type instead of cat, so obliq was built. I > also added > >file_exists in cm3.cfg. Thanks. > >I have tested m3browser, It runs just fine, congratulations !! > > > >So I continued with do-cm3-std.cmd built but I found that > >m3-libs\m3core\src\thread is not built in any of the > implementations (which > >must be src\thread\WIN32 according to the thread\m3makefile wich > has > >OS_TYPE variable if not PTHREAD), but this directory has no built > nothing , > >so I was wondering if the variable M3_OSTYPE you mentioned is the > same?>Do you think is possible to use the Pthread part, with the > pthread port on > >Windows? > > > >C:\cm3-5.4\cm3-cvs\cm3\m3-tools\m3bundle\NT386\m3bundle -name > >RehearseCodeBundle > > -element RehearseCode.fv ..\src\RehearseCode.fv > > new source -> compiling RehearseCodeBundle.i3 > > new source -> compiling RehearseCode.m3 > > new source -> compiling RehearseCodeBundle.m3 > > -> linking RehearseCode.exe > > === package C:\cm3-5.4\cm3-cvs\cm3\m3-tools\replayheap === > > +++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ > > new source -> compiling Main.m3 > > -> linking replayheap.exe > > === package C:\cm3-5.4\cm3-cvs\cm3\m3-tools\showheap === > > +++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ > > new source -> compiling ShowHeap.m3 > > -> linking showheap.exe > > === package C:\cm3-5.4\cm3-cvs\cm3\m3-tools\shownew === > > +++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ > > new source -> compiling ZIO.i3 > > new source -> compiling ZIO.m3 > > new source -> compiling ShowNew.m3 > > -> linking shownew.exe > > === package C:\cm3-5.4\cm3-cvs\cm3\m3-tools\showthread === > > +++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ > > new source -> compiling Main.m3 > > "..\src\Main.m3", line 12: unable to find interface (ThreadEvent) > > 1 error encountered > > compilation failed => not building program "showthread.exe" > > Fatal Error: package build failed > > *** execution of cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3- > cvs\\cm3 > >failed with 0 *** > > .... > > > >By the way, the above ThreadEvent missing interface is not in the > WIN32 > >directory, can be copied? > > > >Thanks, > >Daniel Benavides > > > >---------- > > >j k wrote: > > > > >Good! > > > > >The problems in obliq I know about. > > >They are old. Getting this far in "std" I think is pretty good. > > > > >I'm sure we can just switch on M3_OSTYPE and use type or echo > instead of > > >cat, or add more builtins to quake. > > > > >Question: M3_OSTYPE, this it meant to be a query about the > target and not > > >the host, right? > > >My suspected anwer: Cross builds aren't actually factored into > the build > > >system right. There is not a way to check one vs. the other. > That is, > >host > > >is mostly assumed to be target. Not completely broken, since > cross builds > > >are doable, in a way I am not familiar with but is documented. > > > > >file_exists should be either in that m3makefile or the global > cm3.cfg.> >it is defined by me as like: > > > > >proc file_exists(a) is > > >return stale(a, a) > > >end > > > > >I thought the use of "stale(a,a)" in places kind of obscure and > worthy of > >a > > >name. > > > > >In order to work with whatever global cm3.cfg someone has, > let's just put > > >in a local definition. Some of the history in the import-libs > directory > >is > > >it did not initially build incrementally, just always clean, so > my > >changes > > >for incrementality have less time under their belt, so to speak. > > > > >- Jay > > > > > > >>From: "Daniel Alejandro Benavides D." > > >>To: m3devel at elegosoft.com > > >>Subject: [M3devel] cm3-5.4 building on NT386 cat not > recognized command > > >>Date: Sun, 14 Jan 2007 20:05:24 +0100 (CET) > > >> > > >>Hi all: > > >>Im trynig to get build with the bootstrap of 5.2.6, do-cm3- > base.cmd> >>works well. Just got an error in about file > > >>C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs\src\m3makefile > > >> > > >>C:\cm3-5.4\cm3-cvs\cm3\scripts\win>do-cm3-base.cmd > > >>INSTALLROOT=C:\cm3 > > >>LIB=%INSTALLROOT%\LIB;%LIB% > > >>CM3ROOT=C:\\cm3-5.4\\cm3-cvs\\cm3 > > >> > > >>making C:\cm3-5.4\cm3-cvs\cm3\scripts\win\PKGS with > > >>C:\cm3-5.4\cm3-cvs\cm3\scripts\win\find-packages > > >>call C:\cm3-5.4\cm3-cvs\cm3\scripts\win\pkgmap -c "cm3 -build - > override> >>-DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" import-libs m3core > libm3 m3middle m3quake m3scanner m3tools m3cgcat m3cggen m3bundle mklib dll2lib fix_nl libdump bitvector digraph parseparams realgeometry set slisp > sortedtableextras table-list tempfiles tcp tapi > > >> > > >>=== package C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs === > > >>+++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ > > >>unable to read ..\src\m3overrides, options "-override" and "- > x" ignored. > > >>"C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs\src\m3makefile", > line 178: quake runtime error: undefined variable: file_exists > > >> > > >>--procedure-- -line- -file--- > > >> > > >>include_dir 178 > > >>C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs\src\m3makefile > > >> 5 C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs\NT386\m3make.args > > >>Fatal Error: package build failed > > >> > > >>*** execution of cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3- > cvs\\cm3> >>failed with 0 *** > > >> > > >> I just commented the whole if of line 178 and it worked well. > Then I tried the do-cm3-std.cmd, and it works well until formsview > package, but when in m3-obliq got an error because a missing cat: > > >> > > >> -> linking vocgi.exe > > >>=== package C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\voquery === > > >>+++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ > > >>new source -> compiling Main.m3 > > >> -> linking voquery.exe > > >>=== package C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vorun === > > >>+++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ > > >>C:\cm3-5.4\cm3-cvs\cm3\m3-tools\m3bundle\NT386\m3bundle -name > >VORunBundle > > >>-FC:\D > > >>OCUME~1\LUISCA~1\CONFIG~1\Temp\qk > > >>new source -> compiling VORunBundle.i3 > > >>new source -> compiling VORunBundle.m3 > > >>new source -> compiling Main.m3 > > >> -> linking vorun.exe > > >>cat ..\src\vostart >> vostart > > >>"cat" is not recognized as an internal or external command, > operable> >>program or batch file. > > >> > > >>"C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vorun\src\m3makefile", line > 33: quake > > >>runtime error: exit 1: cat ..\src\vostart >> vostart > > >> > > >>--procedure-- -line- -file--- > > >>exec -- > > >>include_dir 33 C:\cm3-5.4\cm3-cvs\cm3\m3- > obliq\vorun\src\m3makefile> >> 6 > > >>C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vorun\NT386\m3make.args > > >> > > >>Fatal Error: package build failed > > >>*** execution of cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3- > cvs\\cm3> >>failed with 0 *** > > >>error : call C:\cm3-5.4\cm3-cvs\cm3\scripts\win\pkgmap -c "cm3 > -build > > >>-override > > >>-DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" import-libs m3core libm3 > m3core m3middle m3quake m3scanner m3tools m3cgcat m3cggen m3bundle mklib dll2lib fix_nl libdump bitvector digraph parseparams realgeometry set slisp > > >>sortedtableextras table-list tempfiles tcl tcp udp libsio libbuf debug > > >>listfuncs patternmatching embutils m3tk-misc http binIO deepcopy sgml > >tapi serial m3tk mtex m3totex m3tohtml m3scan m3markup m3browser > cmpdir cmpfp dirfp uniq netobj netobjd stubgen events rdwr sharedobj > sharedobjgen odbc postgres95 db smalldb stable stablegen X11R4 ui PEX vbtkit cmvbt jvideo videovbt web formsvbtpixmaps formsvbt formsview formsedit > codeview mg mgkit opengl anim3D zeus m3zume synloc synex metasyn obliqrt obliqparse obliq print obliq obliqlibemb obliqlibm3 obliqlibui obliqlibanim > obliqsrvstd obliqsrvui obliqbinmin obliqbinstd obliqbinui > obliqbinanim visualobliq vocgi >>voquery vorun webvbt recordheap rehearsecode replayheap showheap shownew >>showthread pkl-fonts juno-machine juno-compiler juno- app cube calculator fisheyementor failed > > >> > > >>C:\cm3-5.4\cm3-cvs\cm3\scripts\win> > > >> > > >>Can we use a native port of cat, or bunddle in the distro? > > >> > > >>Thanks, > > >>Daniel Benavides > > > > > > > >--------------------------------- --------------------------------- LLama Gratis a cualquier PC del Mundo. Llamadas a fijos y m?viles desde 1 c?ntimo por minuto. http://es.voice.yahoo.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From jayk123 at hotmail.com Mon Jan 15 05:49:35 2007 From: jayk123 at hotmail.com (j k) Date: Mon, 15 Jan 2007 04:49:35 +0000 Subject: [M3devel] cm3-5.4 building on NT386 cat not recognized command In-Reply-To: <244321.27877.qm@web86902.mail.ukl.yahoo.com> Message-ID: I commited some showthread support. I just looked at the pthread code and made the Win32 code similar. mentor @M3showthreads brings up an extra window with a start menu and some colored stripes. The display doesn't make sense to me but it might be right. So I can build all of "std" now. Maybe also be good to see how this used to work. I made a third identical copy of ThreadEvent.i3. Is that really the right way? Can the file be moved in cvs without losing history? (In Perforce you would "integrate" the file, which is a kind of funny term they usually use for merge across branches but also for arbitrary move/copy-with-history). - Jay >From: "Daniel Alejandro Benavides D." >To: jayk123 at hotmail.com, m3devel at elegosoft.com >Subject: RE: [M3devel] cm3-5.4 building on NT386 cat not recognized command >Date: Sun, 14 Jan 2007 23:26:11 +0100 (CET) > > Hi, >I succesfully used type instead of cat, so obliq was built. I also added >file_exists in cm3.cfg. Thanks. >I have tested m3browser, It runs just fine, congratulations !! > >So I continued with do-cm3-std.cmd built but I found that >m3-libs\m3core\src\thread is not built in any of the implementations (which >must be src\thread\WIN32 according to the thread\m3makefile wich has >OS_TYPE variable if not PTHREAD), but this directory has no built nothing , >so I was wondering if the variable M3_OSTYPE you mentioned is the same? >Do you think is possible to use the Pthread part, with the pthread port on >Windows? > >C:\cm3-5.4\cm3-cvs\cm3\m3-tools\m3bundle\NT386\m3bundle -name >RehearseCodeBundle > -element RehearseCode.fv ..\src\RehearseCode.fv > new source -> compiling RehearseCodeBundle.i3 > new source -> compiling RehearseCode.m3 > new source -> compiling RehearseCodeBundle.m3 > -> linking RehearseCode.exe > === package C:\cm3-5.4\cm3-cvs\cm3\m3-tools\replayheap === > +++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ > new source -> compiling Main.m3 > -> linking replayheap.exe > === package C:\cm3-5.4\cm3-cvs\cm3\m3-tools\showheap === > +++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ > new source -> compiling ShowHeap.m3 > -> linking showheap.exe > === package C:\cm3-5.4\cm3-cvs\cm3\m3-tools\shownew === > +++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ > new source -> compiling ZIO.i3 > new source -> compiling ZIO.m3 > new source -> compiling ShowNew.m3 > -> linking shownew.exe > === package C:\cm3-5.4\cm3-cvs\cm3\m3-tools\showthread === > +++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ > new source -> compiling Main.m3 > "..\src\Main.m3", line 12: unable to find interface (ThreadEvent) > 1 error encountered > compilation failed => not building program "showthread.exe" > Fatal Error: package build failed > *** execution of cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3 >failed with 0 *** > .... > >By the way, the above ThreadEvent missing interface is not in the WIN32 >directory, can be copied? > >Thanks, >Daniel Benavides > >---------- > >j k wrote: > > >Good! > > >The problems in obliq I know about. > >They are old. Getting this far in "std" I think is pretty good. > > >I'm sure we can just switch on M3_OSTYPE and use type or echo instead of > >cat, or add more builtins to quake. > > >Question: M3_OSTYPE, this it meant to be a query about the target and not > >the host, right? > >My suspected anwer: Cross builds aren't actually factored into the build > >system right. There is not a way to check one vs. the other. That is, >host > >is mostly assumed to be target. Not completely broken, since cross builds > >are doable, in a way I am not familiar with but is documented. > > >file_exists should be either in that m3makefile or the global cm3.cfg. > >it is defined by me as like: > > >proc file_exists(a) is > >return stale(a, a) > >end > > >I thought the use of "stale(a,a)" in places kind of obscure and worthy of >a > >name. > > >In order to work with whatever global cm3.cfg someone has, let's just put > >in a local definition. Some of the history in the import-libs directory >is > >it did not initially build incrementally, just always clean, so my >changes > >for incrementality have less time under their belt, so to speak. > > >- Jay > > > >>From: "Daniel Alejandro Benavides D." > >>To: m3devel at elegosoft.com > >>Subject: [M3devel] cm3-5.4 building on NT386 cat not recognized command > >>Date: Sun, 14 Jan 2007 20:05:24 +0100 (CET) > >> > >>Hi all: > >>Im trynig to get build with the bootstrap of 5.2.6, do-cm3-base.cmd > >>works well. Just got an error in about file > >>C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs\src\m3makefile > >> > >>C:\cm3-5.4\cm3-cvs\cm3\scripts\win>do-cm3-base.cmd > >>INSTALLROOT=C:\cm3 > >>LIB=%INSTALLROOT%\LIB;%LIB% > >>CM3ROOT=C:\\cm3-5.4\\cm3-cvs\\cm3 > >> > >>making C:\cm3-5.4\cm3-cvs\cm3\scripts\win\PKGS with > >>C:\cm3-5.4\cm3-cvs\cm3\scripts\win\find-packages > >>call C:\cm3-5.4\cm3-cvs\cm3\scripts\win\pkgmap -c "cm3 -build -override > >>-DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" import-libs m3core libm3 m3middle >m3quake > >>m3scanner m3tools m3cgcat m3cggen m3bundle mklib dll2lib fix_nl libdump > >>bitvector digraph parseparams realgeometry set slisp sortedtableextras > >>table-list tempfiles tcp tapi > >> > >>=== package C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs === > >>+++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ > >>unable to read ..\src\m3overrides, options "-override" and "-x" ignored. > >>"C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs\src\m3makefile", line 178: >quake > >>runtime error: undefined variable: file_exists > >> > >>--procedure-- -line- -file--- > >> > >>include_dir 178 > >>C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs\src\m3makefile > >> 5 > >>C:\cm3-5.4\cm3-cvs\cm3\m3-win\import-libs\NT386\m3make.args > >>Fatal Error: package build failed > >> > >>*** execution of cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3 > >>failed with 0 *** > >> > >> I just commented the whole if of line 178 and it worked well. Then I > >>tried the do-cm3-std.cmd, and it works well until formsview package, but > >>when in m3-obliq got an error because a missing cat: > >> > >> -> linking vocgi.exe > >>=== package C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\voquery === > >>+++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ > >>new source -> compiling Main.m3 > >> -> linking voquery.exe > >>=== package C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vorun === > >>+++ "cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" +++ > >>C:\cm3-5.4\cm3-cvs\cm3\m3-tools\m3bundle\NT386\m3bundle -name >VORunBundle > >>-FC:\D > >>OCUME~1\LUISCA~1\CONFIG~1\Temp\qk > >>new source -> compiling VORunBundle.i3 > >>new source -> compiling VORunBundle.m3 > >>new source -> compiling Main.m3 > >> -> linking vorun.exe > >>cat ..\src\vostart >> vostart > >>"cat" is not recognized as an internal or external command, operable > >>program or batch file. > >> > >>"C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vorun\src\m3makefile", line 33: quake > >>runtime error: exit 1: cat ..\src\vostart >> vostart > >> > >>--procedure-- -line- -file--- > >>exec -- > >>include_dir 33 C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vorun\src\m3makefile > >> 6 > >>C:\cm3-5.4\cm3-cvs\cm3\m3-obliq\vorun\NT386\m3make.args > >> > >>Fatal Error: package build failed > >>*** execution of cm3 -build -override -DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3 > >>failed with 0 *** > >>error : call C:\cm3-5.4\cm3-cvs\cm3\scripts\win\pkgmap -c "cm3 -build > >>-override > >>-DROOT=C:\\cm3-5.4\\cm3-cvs\\cm3" import-libs m3core libm3 m3core >m3middle > >>m3quake m3scanner m3tools m3cgcat m3cggen m3bundle mklib dll2lib fix_nl > >>libdump bitvector digraph parseparams realgeometry set slisp > >>sortedtableextras table-list tempfiles tcl tcp udp libsio libbuf debug > >>listfuncs patternmatching embutils m3tk-misc http binIO deepcopy sgml >tapi > >>serial m3tk mtex m3totex m3tohtml m3scan m3markup m3browser cmpdir cmpfp > >>dirfp uniq netobj netobjd stubgen events rdwr sharedobj sharedobjgen >odbc > >>postgres95 db smalldb stable stablegen X11R4 ui PEX vbtkit cmvbt jvideo > >>videovbt web formsvbtpixmaps formsvbt formsview formsedit codeview mg >mgkit > >>opengl anim3D zeus m3zume synloc synex metasyn obliqrt obliqparse obliq > >>print obliq obliqlibemb obliqlibm3 obliqlibui obliqlibanim obliqsrvstd > >>obliqsrvui obliqbinmin obliqbinstd obliqbinui obliqbinanim visualobliq >vocgi >>voquery vorun webvbt recordheap rehearsecode replayheap showheap >shownew >>showthread pkl-fonts juno-machine juno-compiler juno-app cube >calculator fisheye > >>mentor failed > >> > >>C:\cm3-5.4\cm3-cvs\cm3\scripts\win> > >> > >>Can we use a native port of cat, or bunddle in the distro? > >> > >>Thanks, > >>Daniel Benavides > > > >--------------------------------- > >LLama Gratis a cualquier PC del Mundo. >Llamadas a fijos y m?viles desde 1 c?ntimo por minuto. >http://es.voice.yahoo.com _________________________________________________________________ The MSN Entertainment Guide to Golden Globes is here. Get all the scoop. http://tv.msn.com/tv/globes2007/?icid=nctagline2 From rodney.bates at wichita.edu Mon Jan 15 16:21:42 2007 From: rodney.bates at wichita.edu (Rodney M. Bates) Date: Mon, 15 Jan 2007 09:21:42 -0600 Subject: [M3devel] ROOT undefined Message-ID: <45AB9C06.8050503@wichita.edu> I did a fresh checkout of cm3 from CVS and did a couple of rounds of do-cm3-min.sh and do-cm3-core.sh, build and ship. Then I tried to compile a small test program, with this result: [rodney at selkirk cm3]$ cm3 --- building in LINUXLIBC6 --- "/usr/local/cm3/pkg/libm3/src/bundleintf/bundle-ov.tmpl", line 4: quake runtime error: undefined variable: ROOT --procedure-- -line- -file--- _import_template 4 /usr/local/cm3/pkg/libm3/src/bundleintf/bundle-ov.tmpl _import_template 4 /usr/local/cm3/pkg/libm3/src/bundleintf/bundle-ov.tmpl import 269 /usr/local/cm3/pkg/libm3/LINUXLIBC6/.M3EXPORTS include_dir 8 /home/rodney/proj/m3/exp/format5/cm3/src/m3makefile 4 /home/rodney/proj/m3/exp/format5/cm3/LINUXLIBC6/m3make.args Fatal Error: package build failed rm m3make.args cd .. [rodney at selkirk cm3]$ more /usr/local/cm3/pkg/libm3/src/bundleintf/bundle-ov.tmpl if defined("M3BUNDLE") _M3BUNDLE = M3BUNDLE else _M3BUNDLE = format(ROOT & SL & "m3-tools" & SL & "m3bundle" & SL & "%s" & SL & "m3bundle", BUILD_DIR) M3BUNDLE = _M3BUNDLE end FWIW, I backed up but did not clean out /usr/local/cm3 before building. -- ------------------------------------------------------------- Rodney M. Bates, retired assistant professor Dept. of Computer Science, Wichita State University Wichita, KS 67260-0083 316-978-3922 rodney.bates at wichita.edu From jayk123 at hotmail.com Mon Jan 15 16:40:10 2007 From: jayk123 at hotmail.com (j k) Date: Mon, 15 Jan 2007 15:40:10 +0000 Subject: [M3devel] ROOT undefined In-Reply-To: <45AB9C06.8050503@wichita.edu> Message-ID: ROOT is "normally", when you use do-cm3*.sh, defined by sysinfo.sh. There is obvious danger of stuff working there but not outside there -- it defines so many environment variables. It does get shipped next to cm3.exe/cm3, so just run it from the %path%/$path? - Jay >From: "Rodney M. Bates" >To: Modula-3 developers >Subject: [M3devel] ROOT undefined >Date: Mon, 15 Jan 2007 09:21:42 -0600 > >I did a fresh checkout of cm3 from CVS and did a couple of rounds of >do-cm3-min.sh and do-cm3-core.sh, build and ship. Then I tried to >compile a small test program, with this result: > >[rodney at selkirk cm3]$ cm3 >--- building in LINUXLIBC6 --- > >"/usr/local/cm3/pkg/libm3/src/bundleintf/bundle-ov.tmpl", line 4: quake >runtime error: undefined variable: ROOT > >--procedure-- -line- -file--- >_import_template 4 >/usr/local/cm3/pkg/libm3/src/bundleintf/bundle-ov.tmpl >_import_template 4 >/usr/local/cm3/pkg/libm3/src/bundleintf/bundle-ov.tmpl >import 269 /usr/local/cm3/pkg/libm3/LINUXLIBC6/.M3EXPORTS >include_dir 8 /home/rodney/proj/m3/exp/format5/cm3/src/m3makefile > 4 >/home/rodney/proj/m3/exp/format5/cm3/LINUXLIBC6/m3make.args > >Fatal Error: package build failed >rm m3make.args >cd .. >[rodney at selkirk cm3]$ more >/usr/local/cm3/pkg/libm3/src/bundleintf/bundle-ov.tmpl >if defined("M3BUNDLE") > _M3BUNDLE = M3BUNDLE >else > _M3BUNDLE = format(ROOT & SL & "m3-tools" & SL & "m3bundle" & SL & "%s" >& > SL & "m3bundle", BUILD_DIR) > M3BUNDLE = _M3BUNDLE >end > >FWIW, I backed up but did not clean out /usr/local/cm3 before building. > >-- >------------------------------------------------------------- >Rodney M. Bates, retired assistant professor >Dept. of Computer Science, Wichita State University >Wichita, KS 67260-0083 >316-978-3922 >rodney.bates at wichita.edu >_______________________________________________ >M3devel mailing list >M3devel at elegosoft.com >https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel _________________________________________________________________ Get FREE Web site and company branded e-mail from Microsoft Office Live http://clk.atdmt.com/MRT/go/mcrssaub0050001411mrt/direct/01/ From rodney.bates at wichita.edu Mon Jan 15 16:41:50 2007 From: rodney.bates at wichita.edu (Rodney M. Bates) Date: Mon, 15 Jan 2007 09:41:50 -0600 Subject: [M3devel] Re: ROOT undefined Message-ID: <45ABA0BE.3040106@wichita.edu> Running do-cm3-std.sh buildship (even though it failed trying to link formsview, with a library version problem) made this problem go away. -- ------------------------------------------------------------- Rodney M. Bates, retired assistant professor Dept. of Computer Science, Wichita State University Wichita, KS 67260-0083 316-978-3922 rodney.bates at wichita.edu From wagner at elegosoft.com Mon Jan 15 16:56:37 2007 From: wagner at elegosoft.com (Olaf Wagner) Date: Mon, 15 Jan 2007 16:56:37 +0100 (CET) Subject: [M3devel] ROOT undefined In-Reply-To: <45AB9C06.8050503@wichita.edu> References: <45AB9C06.8050503@wichita.edu> Message-ID: <62815.194.138.127.36.1168876597.squirrel@mail.elegosoft.com> On Mon, January 15, 2007 4:21 pm, Rodney M. Bates wrote: > I did a fresh checkout of cm3 from CVS and did a couple of rounds of > do-cm3-min.sh and do-cm3-core.sh, build and ship. Then I tried to > compile a small test program, with this result: > > [rodney at selkirk cm3]$ cm3 > --- building in LINUXLIBC6 --- > > "/usr/local/cm3/pkg/libm3/src/bundleintf/bundle-ov.tmpl", line 4: quake > runtime error: undefined > variable: ROOT > > --procedure-- -line- -file--- > _import_template 4 > /usr/local/cm3/pkg/libm3/src/bundleintf/bundle-ov.tmpl > _import_template 4 > /usr/local/cm3/pkg/libm3/src/bundleintf/bundle-ov.tmpl > import 269 /usr/local/cm3/pkg/libm3/LINUXLIBC6/.M3EXPORTS > include_dir 8 /home/rodney/proj/m3/exp/format5/cm3/src/m3makefile > 4 > /home/rodney/proj/m3/exp/format5/cm3/LINUXLIBC6/m3make.args > > Fatal Error: package build failed > rm m3make.args > cd .. > [rodney at selkirk cm3]$ more > /usr/local/cm3/pkg/libm3/src/bundleintf/bundle-ov.tmpl > if defined("M3BUNDLE") > _M3BUNDLE = M3BUNDLE > else > _M3BUNDLE = format(ROOT & SL & "m3-tools" & SL & "m3bundle" & SL & "%s" & > SL & "m3bundle", BUILD_DIR) > M3BUNDLE = _M3BUNDLE > end > > FWIW, I backed up but did not clean out /usr/local/cm3 before building. This has been there for many years; the else part should only be used if you are compiling with overrides. Using the scripts in cm3/scripts, ROOT will always be defined then. I cannot really explain what is going wrong with the given information; it may be your installation is broken, or maybe Jay Krell has accidentally changed something with his attempt to use only relative paths for Windows environments. The command line above seems to indicate that you are _not_ using overrides, so m3bundle should be expected in e.g. /usr/local/cm3/bin/m3bundle. Olaf -- Olaf Wagner elego Software Solutions GmbH, Berlin, Germany From rodney.bates at wichita.edu Mon Jan 15 22:21:36 2007 From: rodney.bates at wichita.edu (Rodney M. Bates) Date: Mon, 15 Jan 2007 15:21:36 -0600 Subject: [M3devel] More CVS advice needed, on merging Message-ID: <45ABF060.6080807@wichita.edu> I went back to work on a problem deferred since last fall and eventually reconstructed this scenario, which I think is accurate. I had a modified version of one source file from the CVS repository, a part of the gcc back end code generator. Before I was ready to check it in, I needed updated files in some other place, so did a cvs update (on all of cm3). The CVS copy of the one I had modified had changed drastically, (because of a switch to a newer version of gcc). CVS helpfully merged my changes into the new version, but didn't leave me any kind of backup. Because the changes in the repository were so extensive, the merged version was a long way from being useful. I was quite difficult to reconstruct what I had changed. I eventually located files on a mirrored computer that helped, though not the modified file I really would have liked. So, is there a way to get CVS to either 1) make a backup of a local copy when it merges it with updates from the repository, or 2) do an update but refuse altogether to merge. -- ------------------------------------------------------------- Rodney M. Bates, retired assistant professor Dept. of Computer Science, Wichita State University Wichita, KS 67260-0083 316-978-3922 rodney.bates at wichita.edu From dabenavidesd at yahoo.es Mon Jan 15 22:40:09 2007 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Mon, 15 Jan 2007 22:40:09 +0100 (CET) Subject: [M3devel] cm3-5.4 built on NT386 Message-ID: <20070115214009.1171.qmail@web86906.mail.ukl.yahoo.com> Hello all: I finally succesfully built do-cm3-std.cmd buildship with the latest changes in the cm3 cvs. I have used Win xp+sp2 and Visual Studio 6 libraries and compiler. Thanks, Daniel Benavides --------------------------------- LLama Gratis a cualquier PC del Mundo. Llamadas a fijos y m?viles desde 1 c?ntimo por minuto. http://es.voice.yahoo.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From wagner at plane.elego.de Tue Jan 16 08:51:48 2007 From: wagner at plane.elego.de (Olaf Wagner) Date: Tue, 16 Jan 2007 08:51:48 +0100 Subject: [M3devel] More CVS advice needed, on merging In-Reply-To: <45ABF060.6080807@wichita.edu> References: <45ABF060.6080807@wichita.edu> Message-ID: <20070116075148.GA18148@elegosoft.com> On Mon, Jan 15, 2007 at 03:21:36PM -0600, Rodney M. Bates wrote: > Because the changes in the repository were so extensive, the merged > version was a long way from being useful. I was quite difficult to > reconstruct what I had changed. I eventually located files on a > mirrored computer that helped, though not the modified file I really > would have liked. > > So, is there a way to get CVS to either > 1) make a backup of a local copy when it merges it with updates from > the repository, or > 2) do an update but refuse altogether to merge. If CVS merges in your workspace, the old versions should always be available. Look for files named .#.. The problem is that ls will show them only with option -a. You can also always update to the original base version of your file (if you know it). Olaf -- elego Software Solutions GmbH HRB 77719 Olaf Wagner E-Mail: wagner(at)elego.de Ohmstra?e 9 Tel: +49 30 40 04 19 29 10179 Berlin Fax: +49 30 23 45 86 95 Cranachstra?e 7 Tel: +49 30 85 58 01 81 12157 Berlin Fax: +49 30 85 58 01 88 ------------------> WWW: http://www.elego-software-solutions.com From wagner at plane.elego.de Sat Jan 20 17:41:28 2007 From: wagner at plane.elego.de (Olaf Wagner) Date: Sat, 20 Jan 2007 17:41:28 +0100 Subject: [M3devel] Re: porting m3 on intel mac In-Reply-To: <8A58B35B-22CD-42D5-BA19-5FBF5D3CF5CD@dsi.unive.it> References: <8A58B35B-22CD-42D5-BA19-5FBF5D3CF5CD@dsi.unive.it> Message-ID: <20070120164128.GA27790@elegosoft.com> On Sat, Jan 20, 2007 at 03:05:55PM +0100, Renzo Orsini wrote: > Hello, > > I installed cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz on an intel mac, then > tried to a compile a Hello world program, but the compilation failed > with the following message: > > pborsini:~/ProveModula3 orsini$ cm3 > --- building in PPC_DARWIN --- > > new source -> compiling Main.m3 > "../Main.m3", line 4: warning: potentially unhandled exception: IO.Error > 1 warning encountered > Main.ms:12:no such instruction: `mflr r0' > Main.ms:13:no such instruction: `stmw r30,-8(r1)' > Main.ms:14:no such instruction: `stw r0,8(r1)' > Main.ms:15:no such instruction: `stwu r1,-96(r1)' > Main.ms:16:no such instruction: `mr r30,r1' > Main.ms:17:no such instruction: `bcl 20,31,"L00000000001$pb"' > ... > .... > > So I suppose there is PPC code to assemble and the Rosetta emulator > for PPC on intel macs cannot do anything for this! > > Since I would like to port the Fibonacci language for databases, > which is written in Modula-3, if I understand well the situation I > should port the Modula-3 compiler by cross compiling it on a PPC mac, > or something like that. > > I am asking you if you know about some effort of porting Modula-3 on > intel macs, or at least if you let me know if this operation is > possible (and also reasonably feasible in terms of time and > expertise, given my teaching duties and my difficulties with > assembler languages!), and, if so, if you can point me to the correct > documentation to start with. Of course I will be very glad to give > back to the community the result if I succeed! > > Thank you very much for your attention. > > Cordially > > Renzo Orsini > Associate Professor > Dipartimento di Informatica > Universita' Ca' Foscari di Venezia Well, I wouldn't have thought that you were even able to install the cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz system on an Intel machine; it's surely not supposed to run on one. It shouldn't be too difficult to get a port of the latest CM3 for Darwin on Intel processors; I even think somebody was already working on it, but I don't really remember who, so I forward your mail to the m3devel list, in case others have already started such an effort. Olaf -- elego Software Solutions GmbH HRB 77719 Olaf Wagner E-Mail: wagner(at)elego.de Ohmstra?e 9 Tel: +49 30 40 04 19 29 10179 Berlin Fax: +49 30 23 45 86 95 Cranachstra?e 7 Tel: +49 30 85 58 01 81 12157 Berlin Fax: +49 30 85 58 01 88 ------------------> WWW: http://www.elego-software-solutions.com From darko at darko.org Sat Jan 20 19:02:26 2007 From: darko at darko.org (Darko) Date: Sun, 21 Jan 2007 03:02:26 +0900 Subject: [M3devel] Re: porting m3 on intel mac In-Reply-To: <20070120164128.GA27790@elegosoft.com> References: <8A58B35B-22CD-42D5-BA19-5FBF5D3CF5CD@dsi.unive.it> <20070120164128.GA27790@elegosoft.com> Message-ID: <52EA8FC9-4E33-40FF-B041-5CEAE83BBDE7@darko.org> Have a look here: ftp://ftp.cs.purdue.edu/pub/hosking/m3/I386_DARWIN/ There you'll find the bits you need for Mac Intel. Replace your existing cm3, cmcg and cm3.cfg with the ones there, then you can compile the basic libraries you need like m3core and libm3, but make sure you have the latest sources. I think they're the latest but Tony may have something more to say about that. Darko. On 21/01/2007, at 1:41 AM, Olaf Wagner wrote: > On Sat, Jan 20, 2007 at 03:05:55PM +0100, Renzo Orsini wrote: >> Hello, >> >> I installed cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz on an intel mac, then >> tried to a compile a Hello world program, but the compilation failed >> with the following message: >> >> pborsini:~/ProveModula3 orsini$ cm3 >> --- building in PPC_DARWIN --- >> >> new source -> compiling Main.m3 >> "../Main.m3", line 4: warning: potentially unhandled exception: >> IO.Error >> 1 warning encountered >> Main.ms:12:no such instruction: `mflr r0' >> Main.ms:13:no such instruction: `stmw r30,-8(r1)' >> Main.ms:14:no such instruction: `stw r0,8(r1)' >> Main.ms:15:no such instruction: `stwu r1,-96(r1)' >> Main.ms:16:no such instruction: `mr r30,r1' >> Main.ms:17:no such instruction: `bcl 20,31,"L00000000001$pb"' >> ... >> .... >> >> So I suppose there is PPC code to assemble and the Rosetta emulator >> for PPC on intel macs cannot do anything for this! >> >> Since I would like to port the Fibonacci language for databases, >> which is written in Modula-3, if I understand well the situation I >> should port the Modula-3 compiler by cross compiling it on a PPC mac, >> or something like that. >> >> I am asking you if you know about some effort of porting Modula-3 on >> intel macs, or at least if you let me know if this operation is >> possible (and also reasonably feasible in terms of time and >> expertise, given my teaching duties and my difficulties with >> assembler languages!), and, if so, if you can point me to the correct >> documentation to start with. Of course I will be very glad to give >> back to the community the result if I succeed! >> >> Thank you very much for your attention. >> >> Cordially >> >> Renzo Orsini >> Associate Professor >> Dipartimento di Informatica >> Universita' Ca' Foscari di Venezia > > Well, I wouldn't have thought that you were even able to install > the cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz system on an Intel machine; > it's surely not supposed to run on one. It shouldn't be too > difficult to get a port of the latest CM3 for Darwin on Intel > processors; I even think somebody was already working on it, > but I don't really remember who, so I forward your mail to > the m3devel list, in case others have already started such an > effort. > > Olaf > -- > elego Software Solutions GmbH HRB 77719 > Olaf Wagner E-Mail: wagner(at)elego.de > Ohmstra?e 9 Tel: +49 30 40 04 19 29 > 10179 Berlin Fax: +49 30 23 45 86 95 > Cranachstra?e 7 Tel: +49 30 85 58 01 81 > 12157 Berlin Fax: +49 30 85 58 01 88 > ------------------> WWW: http://www.elego-software-solutions.com > _______________________________________________ > M3devel mailing list > M3devel at elegosoft.com > https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel From hosking at cs.purdue.edu Sat Jan 20 23:18:16 2007 From: hosking at cs.purdue.edu (Antony Hosking) Date: Sat, 20 Jan 2007 17:18:16 -0500 Subject: [M3devel] Re: porting m3 on intel mac In-Reply-To: <52EA8FC9-4E33-40FF-B041-5CEAE83BBDE7@darko.org> References: <8A58B35B-22CD-42D5-BA19-5FBF5D3CF5CD@dsi.unive.it> <20070120164128.GA27790@elegosoft.com> <52EA8FC9-4E33-40FF-B041-5CEAE83BBDE7@darko.org> Message-ID: Only issue is that the bootstrap compiler there still has the bug that breaks pickling. I'm building an update. On 20/01/2007, at 1:02 PM, Darko wrote: > Have a look here: ftp://ftp.cs.purdue.edu/pub/hosking/m3/I386_DARWIN/ > > There you'll find the bits you need for Mac Intel. Replace your > existing cm3, cmcg and cm3.cfg with the ones there, then you can > compile the basic libraries you need like m3core and libm3, but > make sure you have the latest sources. > > I think they're the latest but Tony may have something more to say > about that. > > Darko. > > > > On 21/01/2007, at 1:41 AM, Olaf Wagner wrote: > >> On Sat, Jan 20, 2007 at 03:05:55PM +0100, Renzo Orsini wrote: >>> Hello, >>> >>> I installed cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz on an intel mac, >>> then >>> tried to a compile a Hello world program, but the compilation failed >>> with the following message: >>> >>> pborsini:~/ProveModula3 orsini$ cm3 >>> --- building in PPC_DARWIN --- >>> >>> new source -> compiling Main.m3 >>> "../Main.m3", line 4: warning: potentially unhandled exception: >>> IO.Error >>> 1 warning encountered >>> Main.ms:12:no such instruction: `mflr r0' >>> Main.ms:13:no such instruction: `stmw r30,-8(r1)' >>> Main.ms:14:no such instruction: `stw r0,8(r1)' >>> Main.ms:15:no such instruction: `stwu r1,-96(r1)' >>> Main.ms:16:no such instruction: `mr r30,r1' >>> Main.ms:17:no such instruction: `bcl 20,31,"L00000000001$pb"' >>> ... >>> .... >>> >>> So I suppose there is PPC code to assemble and the Rosetta emulator >>> for PPC on intel macs cannot do anything for this! >>> >>> Since I would like to port the Fibonacci language for databases, >>> which is written in Modula-3, if I understand well the situation I >>> should port the Modula-3 compiler by cross compiling it on a PPC >>> mac, >>> or something like that. >>> >>> I am asking you if you know about some effort of porting Modula-3 on >>> intel macs, or at least if you let me know if this operation is >>> possible (and also reasonably feasible in terms of time and >>> expertise, given my teaching duties and my difficulties with >>> assembler languages!), and, if so, if you can point me to the >>> correct >>> documentation to start with. Of course I will be very glad to give >>> back to the community the result if I succeed! >>> >>> Thank you very much for your attention. >>> >>> Cordially >>> >>> Renzo Orsini >>> Associate Professor >>> Dipartimento di Informatica >>> Universita' Ca' Foscari di Venezia >> >> Well, I wouldn't have thought that you were even able to install >> the cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz system on an Intel machine; >> it's surely not supposed to run on one. It shouldn't be too >> difficult to get a port of the latest CM3 for Darwin on Intel >> processors; I even think somebody was already working on it, >> but I don't really remember who, so I forward your mail to >> the m3devel list, in case others have already started such an >> effort. >> >> Olaf >> -- >> elego Software Solutions GmbH HRB 77719 >> Olaf Wagner E-Mail: wagner(at)elego.de >> Ohmstra?e 9 Tel: +49 30 40 04 19 29 >> 10179 Berlin Fax: +49 30 23 45 86 95 >> Cranachstra?e 7 Tel: +49 30 85 58 01 81 >> 12157 Berlin Fax: +49 30 85 58 01 88 >> ------------------> WWW: http://www.elego-software-solutions.com >> _______________________________________________ >> M3devel mailing list >> M3devel at elegosoft.com >> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel > > > _______________________________________________ > M3devel mailing list > M3devel at elegosoft.com > https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel Antony Hosking | Associate Professor Dept of Computer Sciences | Office: (765) 494-6001 Purdue University | Mobile: (765) 427-5484 250 N. University Street | hosking at cs.purdue.edu West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking _--_|\ / \ \_.--._/ ) v / From hosking at cs.purdue.edu Sat Jan 20 23:20:07 2007 From: hosking at cs.purdue.edu (Antony Hosking) Date: Sat, 20 Jan 2007 17:20:07 -0500 Subject: [M3devel] Re: porting m3 on intel mac In-Reply-To: <20070120164128.GA27790@elegosoft.com> References: <8A58B35B-22CD-42D5-BA19-5FBF5D3CF5CD@dsi.unive.it> <20070120164128.GA27790@elegosoft.com> Message-ID: It's actually not that surprising that you got part way. I did the initial bootstrap on Darwin/Intel by cross-compiling with a PPC_DARWIN binary running under Rosetta. On 20/01/2007, at 11:41 AM, Olaf Wagner wrote: > On Sat, Jan 20, 2007 at 03:05:55PM +0100, Renzo Orsini wrote: >> Hello, >> >> I installed cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz on an intel mac, then >> tried to a compile a Hello world program, but the compilation failed >> with the following message: >> >> pborsini:~/ProveModula3 orsini$ cm3 >> --- building in PPC_DARWIN --- >> >> new source -> compiling Main.m3 >> "../Main.m3", line 4: warning: potentially unhandled exception: >> IO.Error >> 1 warning encountered >> Main.ms:12:no such instruction: `mflr r0' >> Main.ms:13:no such instruction: `stmw r30,-8(r1)' >> Main.ms:14:no such instruction: `stw r0,8(r1)' >> Main.ms:15:no such instruction: `stwu r1,-96(r1)' >> Main.ms:16:no such instruction: `mr r30,r1' >> Main.ms:17:no such instruction: `bcl 20,31,"L00000000001$pb"' >> ... >> .... >> >> So I suppose there is PPC code to assemble and the Rosetta emulator >> for PPC on intel macs cannot do anything for this! >> >> Since I would like to port the Fibonacci language for databases, >> which is written in Modula-3, if I understand well the situation I >> should port the Modula-3 compiler by cross compiling it on a PPC mac, >> or something like that. >> >> I am asking you if you know about some effort of porting Modula-3 on >> intel macs, or at least if you let me know if this operation is >> possible (and also reasonably feasible in terms of time and >> expertise, given my teaching duties and my difficulties with >> assembler languages!), and, if so, if you can point me to the correct >> documentation to start with. Of course I will be very glad to give >> back to the community the result if I succeed! >> >> Thank you very much for your attention. >> >> Cordially >> >> Renzo Orsini >> Associate Professor >> Dipartimento di Informatica >> Universita' Ca' Foscari di Venezia > > Well, I wouldn't have thought that you were even able to install > the cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz system on an Intel machine; > it's surely not supposed to run on one. It shouldn't be too > difficult to get a port of the latest CM3 for Darwin on Intel > processors; I even think somebody was already working on it, > but I don't really remember who, so I forward your mail to > the m3devel list, in case others have already started such an > effort. > > Olaf > -- > elego Software Solutions GmbH HRB 77719 > Olaf Wagner E-Mail: wagner(at)elego.de > Ohmstra?e 9 Tel: +49 30 40 04 19 29 > 10179 Berlin Fax: +49 30 23 45 86 95 > Cranachstra?e 7 Tel: +49 30 85 58 01 81 > 12157 Berlin Fax: +49 30 85 58 01 88 > ------------------> WWW: http://www.elego-software-solutions.com > _______________________________________________ > M3devel mailing list > M3devel at elegosoft.com > https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel Antony Hosking | Associate Professor Dept of Computer Sciences | Office: (765) 494-6001 Purdue University | Mobile: (765) 427-5484 250 N. University Street | hosking at cs.purdue.edu West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking _--_|\ / \ \_.--._/ ) v / From darko at darko.org Sat Jan 20 23:49:10 2007 From: darko at darko.org (Darko) Date: Sun, 21 Jan 2007 07:49:10 +0900 Subject: [M3devel] Re: porting m3 on intel mac In-Reply-To: References: <8A58B35B-22CD-42D5-BA19-5FBF5D3CF5CD@dsi.unive.it> <20070120164128.GA27790@elegosoft.com> <52EA8FC9-4E33-40FF-B041-5CEAE83BBDE7@darko.org> Message-ID: <6307E3CC-8E5F-4317-8A8E-7EADE20FEE54@darko.org> No worries. I'm not familiar at all with those scripts. The problem you are having may be to do with not having the latest source, but it most probably has to do with the version of gcc that is active on your machine. C files are not compiled by cm3 but rather call gcc directly. I can't remember which version of gcc is the correct one, but mine currently is i686-apple-darwin8-gcc-4.0.1; also I can't remember the command line for changing gcc versions. Tony may be able to help re the correct version if 4.0.1 doesn't work. You may need to install the latest XCode from http://developer.apple.com if you don't have 4.01. I've cc'd the list because they're actually very helpful and my knowledge is limited... - Darko On 21/01/2007, at 6:58 AM, Renzo Orsini wrote: > First of all, thank you very much for your immediate help! > > I downloaded the files and replaced the corresponding /usr/local/ > cm3/bin files, > modified cm3.cfg by replacing INSTALL_ROOT = "/usr/local/cm3-i386/" > with INSTALL_ROOT = "/usr/local/cm3/" > then in the full source (last version, 5.4.0) I did: scripts/do-cm3- > core.sh buildship > this is the result: > > root#./do-cm3-core.sh buildship > CM3C = > /Users/orsini/cm3/cm3-src-all-5.4.0/scripts/pkgmap.sh -c "cm3 - > build -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' && cm3 -ship - > DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' " m3gc-simple m3core > libm3 patternmatching m3middle m3linker m3front m3quake m3cc cm3 > m3scanner m3tools m3cgcat m3cggen m3bundle bitvector digraph > parseparams realgeometry set slisp sortedtableextras table-list > tempfiles > === package /Users/orsini/cm3/cm3-src-all-5.4.0/m3-libs/m3gc-simple > === > +++ cm3 -build -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' && > cm3 -ship -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' +++ > --- building in I386_DARWIN --- > > new source -> compiling RTVM.c > new source -> compiling sysdeps.c > new source -> compiling accept.c > ../src/runtime/I386_DARWIN/accept.c: In function 'm3_accept': > ../src/runtime/I386_DARWIN/accept.c:13: warning: pointer targets in > passing argument 3 of 'accept' differ in signedness > new source -> compiling bind.c > new source -> compiling close.c > new source -> compiling connect.c > new source -> compiling dup.c > new source -> compiling dup2.c > new source -> compiling gethostbyaddr.c > new source -> compiling gethostbyname.c > new source -> compiling getpeername.c > ../src/runtime/I386_DARWIN/getpeername.c: In function > 'm3_getpeername': > ../src/runtime/I386_DARWIN/getpeername.c:13: warning: pointer > targets in passing argument 3 of 'getpeername' differ in signedness > new source -> compiling getsockname.c > ../src/runtime/I386_DARWIN/getsockname.c: In function > 'm3_getsockname': > ../src/runtime/I386_DARWIN/getsockname.c:13: warning: pointer > targets in passing argument 3 of 'getsockname' differ in signedness > new source -> compiling listen.c > new source -> compiling read.c > new source -> compiling recv.c > new source -> compiling recvfrom.c > ../src/runtime/I386_DARWIN/recvfrom.c: In function 'm3_recvfrom': > ../src/runtime/I386_DARWIN/recvfrom.c:15: warning: pointer targets > in passing argument 6 of 'recvfrom' differ in signedness > new source -> compiling select.c > new source -> compiling send.c > new source -> compiling sendto.c > new source -> compiling shutdown.c > new source -> compiling socket.c > new source -> compiling write.c > -> archiving libm3gcdefs.a > ld: common symbols not allowed with MH_DYLIB output format with the > -multi_module option > sysdeps.o definition of common _RTCSRC_FinishVM (size 16) > sysdeps.o definition of common _RTHeapRep_Fault (size 16) > /usr/bin/libtool: internal link edit command failed > --- shipping from I386_DARWIN --- > > . => /usr/local/cm3/pkg/m3gc-simple/I386_DARWIN > .M3EXPORTS libm3gcdefs.5.2.dylib"/Users/orsini/cm3/cm3-src- > all-5.4.0/m3-libs/m3gc-simple/I386_DARWIN/.M3SHIP", line 3: quake > runtime error: unable to copy "libm3gcdefs.5.2.dylib" to "/usr/ > local/cm3/pkg/m3gc-simple/I386_DARWIN/libm3gcdefs.5.2.dylib": errno=2 > > --procedure-- -line- -file--- > install_file -- > 3 /Users/orsini/cm3/cm3-src-all-5.4.0/m3-libs/ > m3gc-simple/I386_DARWIN/.M3SHIP > > Fatal Error: package build failed > *** execution of failed *** > > ====== > > > I noticed that not all the .c files in .../m3-libs/m3gc-simple/src/ > runtime/I386_DARWIN/ where compiled, but I do not know if this is a > normal behaviour. > > Thanks in advance for your time and patience! > > Cordially > > Renzo Orsini > > > On Jan 20, 2007, at 19:02, Darko wrote: > >> Have a look here: ftp://ftp.cs.purdue.edu/pub/hosking/m3/I386_DARWIN/ >> >> There you'll find the bits you need for Mac Intel. Replace your >> existing cm3, cmcg and cm3.cfg with the ones there, then you can >> compile the basic libraries you need like m3core and libm3, but >> make sure you have the latest sources. >> >> I think they're the latest but Tony may have something more to say >> about that. >> >> Darko. >> >> >> >> On 21/01/2007, at 1:41 AM, Olaf Wagner wrote: >> >>> On Sat, Jan 20, 2007 at 03:05:55PM +0100, Renzo Orsini wrote: >>>> Hello, >>>> >>>> I installed cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz on an intel mac, >>>> then >>>> tried to a compile a Hello world program, but the compilation >>>> failed >>>> with the following message: >>>> >>>> pborsini:~/ProveModula3 orsini$ cm3 >>>> --- building in PPC_DARWIN --- >>>> >>>> new source -> compiling Main.m3 >>>> "../Main.m3", line 4: warning: potentially unhandled exception: >>>> IO.Error >>>> 1 warning encountered >>>> Main.ms:12:no such instruction: `mflr r0' >>>> Main.ms:13:no such instruction: `stmw r30,-8(r1)' >>>> Main.ms:14:no such instruction: `stw r0,8(r1)' >>>> Main.ms:15:no such instruction: `stwu r1,-96(r1)' >>>> Main.ms:16:no such instruction: `mr r30,r1' >>>> Main.ms:17:no such instruction: `bcl 20,31,"L00000000001$pb"' >>>> ... >>>> .... >>>> >>>> So I suppose there is PPC code to assemble and the Rosetta emulator >>>> for PPC on intel macs cannot do anything for this! >>>> >>>> Since I would like to port the Fibonacci language for databases, >>>> which is written in Modula-3, if I understand well the situation I >>>> should port the Modula-3 compiler by cross compiling it on a PPC >>>> mac, >>>> or something like that. >>>> >>>> I am asking you if you know about some effort of porting >>>> Modula-3 on >>>> intel macs, or at least if you let me know if this operation is >>>> possible (and also reasonably feasible in terms of time and >>>> expertise, given my teaching duties and my difficulties with >>>> assembler languages!), and, if so, if you can point me to the >>>> correct >>>> documentation to start with. Of course I will be very glad to give >>>> back to the community the result if I succeed! >>>> >>>> Thank you very much for your attention. >>>> >>>> Cordially >>>> >>>> Renzo Orsini >>>> Associate Professor >>>> Dipartimento di Informatica >>>> Universita' Ca' Foscari di Venezia >>> >>> Well, I wouldn't have thought that you were even able to install >>> the cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz system on an Intel machine; >>> it's surely not supposed to run on one. It shouldn't be too >>> difficult to get a port of the latest CM3 for Darwin on Intel >>> processors; I even think somebody was already working on it, >>> but I don't really remember who, so I forward your mail to >>> the m3devel list, in case others have already started such an >>> effort. >>> >>> Olaf >>> -- >>> elego Software Solutions GmbH HRB 77719 >>> Olaf Wagner E-Mail: wagner(at)elego.de >>> Ohmstra?e 9 Tel: +49 30 40 04 19 29 >>> 10179 Berlin Fax: +49 30 23 45 86 95 >>> Cranachstra?e 7 Tel: +49 30 85 58 01 81 >>> 12157 Berlin Fax: +49 30 85 58 01 88 >>> ------------------> WWW: http://www.elego-software-solutions.com >>> _______________________________________________ >>> M3devel mailing list >>> M3devel at elegosoft.com >>> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel > From hosking at cs.purdue.edu Sat Jan 20 23:58:20 2007 From: hosking at cs.purdue.edu (Antony Hosking) Date: Sat, 20 Jan 2007 17:58:20 -0500 Subject: [M3devel] Re: porting m3 on intel mac In-Reply-To: <6307E3CC-8E5F-4317-8A8E-7EADE20FEE54@darko.org> References: <8A58B35B-22CD-42D5-BA19-5FBF5D3CF5CD@dsi.unive.it> <20070120164128.GA27790@elegosoft.com> <52EA8FC9-4E33-40FF-B041-5CEAE83BBDE7@darko.org> <6307E3CC-8E5F-4317-8A8E-7EADE20FEE54@darko.org> Message-ID: <1521F74A-AF0F-48C4-B0AA-4E7DB321DA62@cs.purdue.edu> What version of OSX are you using? On 20/01/2007, at 5:49 PM, Darko wrote: > No worries. I'm not familiar at all with those scripts. The problem > you are having may be to do with not having the latest source, but > it most probably has to do with the version of gcc that is active > on your machine. C files are not compiled by cm3 but rather call > gcc directly. I can't remember which version of gcc is the correct > one, but mine currently is i686-apple-darwin8-gcc-4.0.1; also I > can't remember the command line for changing gcc versions. Tony may > be able to help re the correct version if 4.0.1 doesn't work. You > may need to install the latest XCode from http:// > developer.apple.com if you don't have 4.01. > > I've cc'd the list because they're actually very helpful and my > knowledge is limited... > > - Darko > > > On 21/01/2007, at 6:58 AM, Renzo Orsini wrote: > >> First of all, thank you very much for your immediate help! >> >> I downloaded the files and replaced the corresponding /usr/local/ >> cm3/bin files, >> modified cm3.cfg by replacing INSTALL_ROOT = "/usr/local/cm3- >> i386/" with INSTALL_ROOT = "/usr/local/cm3/" >> then in the full source (last version, 5.4.0) I did: scripts/do- >> cm3-core.sh buildship >> this is the result: >> >> root#./do-cm3-core.sh buildship >> CM3C = >> /Users/orsini/cm3/cm3-src-all-5.4.0/scripts/pkgmap.sh -c "cm3 - >> build -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' && cm3 -ship - >> DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' " m3gc-simple m3core >> libm3 patternmatching m3middle m3linker m3front m3quake m3cc cm3 >> m3scanner m3tools m3cgcat m3cggen m3bundle bitvector digraph >> parseparams realgeometry set slisp sortedtableextras table-list >> tempfiles >> === package /Users/orsini/cm3/cm3-src-all-5.4.0/m3-libs/m3gc- >> simple === >> +++ cm3 -build -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' && >> cm3 -ship -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' +++ >> --- building in I386_DARWIN --- >> >> new source -> compiling RTVM.c >> new source -> compiling sysdeps.c >> new source -> compiling accept.c >> ../src/runtime/I386_DARWIN/accept.c: In function 'm3_accept': >> ../src/runtime/I386_DARWIN/accept.c:13: warning: pointer targets >> in passing argument 3 of 'accept' differ in signedness >> new source -> compiling bind.c >> new source -> compiling close.c >> new source -> compiling connect.c >> new source -> compiling dup.c >> new source -> compiling dup2.c >> new source -> compiling gethostbyaddr.c >> new source -> compiling gethostbyname.c >> new source -> compiling getpeername.c >> ../src/runtime/I386_DARWIN/getpeername.c: In function >> 'm3_getpeername': >> ../src/runtime/I386_DARWIN/getpeername.c:13: warning: pointer >> targets in passing argument 3 of 'getpeername' differ in signedness >> new source -> compiling getsockname.c >> ../src/runtime/I386_DARWIN/getsockname.c: In function >> 'm3_getsockname': >> ../src/runtime/I386_DARWIN/getsockname.c:13: warning: pointer >> targets in passing argument 3 of 'getsockname' differ in signedness >> new source -> compiling listen.c >> new source -> compiling read.c >> new source -> compiling recv.c >> new source -> compiling recvfrom.c >> ../src/runtime/I386_DARWIN/recvfrom.c: In function 'm3_recvfrom': >> ../src/runtime/I386_DARWIN/recvfrom.c:15: warning: pointer targets >> in passing argument 6 of 'recvfrom' differ in signedness >> new source -> compiling select.c >> new source -> compiling send.c >> new source -> compiling sendto.c >> new source -> compiling shutdown.c >> new source -> compiling socket.c >> new source -> compiling write.c >> -> archiving libm3gcdefs.a >> ld: common symbols not allowed with MH_DYLIB output format with >> the -multi_module option >> sysdeps.o definition of common _RTCSRC_FinishVM (size 16) >> sysdeps.o definition of common _RTHeapRep_Fault (size 16) >> /usr/bin/libtool: internal link edit command failed >> --- shipping from I386_DARWIN --- >> >> . => /usr/local/cm3/pkg/m3gc-simple/I386_DARWIN >> .M3EXPORTS libm3gcdefs.5.2.dylib"/Users/orsini/cm3/cm3- >> src-all-5.4.0/m3-libs/m3gc-simple/I386_DARWIN/.M3SHIP", line 3: >> quake runtime error: unable to copy "libm3gcdefs.5.2.dylib" to "/ >> usr/local/cm3/pkg/m3gc-simple/I386_DARWIN/libm3gcdefs.5.2.dylib": >> errno=2 >> >> --procedure-- -line- -file--- >> install_file -- >> 3 /Users/orsini/cm3/cm3-src-all-5.4.0/m3-libs/ >> m3gc-simple/I386_DARWIN/.M3SHIP >> >> Fatal Error: package build failed >> *** execution of failed *** >> >> ====== >> >> >> I noticed that not all the .c files in .../m3-libs/m3gc-simple/src/ >> runtime/I386_DARWIN/ where compiled, but I do not know if this is >> a normal behaviour. >> >> Thanks in advance for your time and patience! >> >> Cordially >> >> Renzo Orsini >> >> >> On Jan 20, 2007, at 19:02, Darko wrote: >> >>> Have a look here: ftp://ftp.cs.purdue.edu/pub/hosking/m3/ >>> I386_DARWIN/ >>> >>> There you'll find the bits you need for Mac Intel. Replace your >>> existing cm3, cmcg and cm3.cfg with the ones there, then you can >>> compile the basic libraries you need like m3core and libm3, but >>> make sure you have the latest sources. >>> >>> I think they're the latest but Tony may have something more to >>> say about that. >>> >>> Darko. >>> >>> >>> >>> On 21/01/2007, at 1:41 AM, Olaf Wagner wrote: >>> >>>> On Sat, Jan 20, 2007 at 03:05:55PM +0100, Renzo Orsini wrote: >>>>> Hello, >>>>> >>>>> I installed cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz on an intel >>>>> mac, then >>>>> tried to a compile a Hello world program, but the compilation >>>>> failed >>>>> with the following message: >>>>> >>>>> pborsini:~/ProveModula3 orsini$ cm3 >>>>> --- building in PPC_DARWIN --- >>>>> >>>>> new source -> compiling Main.m3 >>>>> "../Main.m3", line 4: warning: potentially unhandled exception: >>>>> IO.Error >>>>> 1 warning encountered >>>>> Main.ms:12:no such instruction: `mflr r0' >>>>> Main.ms:13:no such instruction: `stmw r30,-8(r1)' >>>>> Main.ms:14:no such instruction: `stw r0,8(r1)' >>>>> Main.ms:15:no such instruction: `stwu r1,-96(r1)' >>>>> Main.ms:16:no such instruction: `mr r30,r1' >>>>> Main.ms:17:no such instruction: `bcl 20,31,"L00000000001$pb"' >>>>> ... >>>>> .... >>>>> >>>>> So I suppose there is PPC code to assemble and the Rosetta >>>>> emulator >>>>> for PPC on intel macs cannot do anything for this! >>>>> >>>>> Since I would like to port the Fibonacci language for databases, >>>>> which is written in Modula-3, if I understand well the situation I >>>>> should port the Modula-3 compiler by cross compiling it on a >>>>> PPC mac, >>>>> or something like that. >>>>> >>>>> I am asking you if you know about some effort of porting >>>>> Modula-3 on >>>>> intel macs, or at least if you let me know if this operation is >>>>> possible (and also reasonably feasible in terms of time and >>>>> expertise, given my teaching duties and my difficulties with >>>>> assembler languages!), and, if so, if you can point me to the >>>>> correct >>>>> documentation to start with. Of course I will be very glad to give >>>>> back to the community the result if I succeed! >>>>> >>>>> Thank you very much for your attention. >>>>> >>>>> Cordially >>>>> >>>>> Renzo Orsini >>>>> Associate Professor >>>>> Dipartimento di Informatica >>>>> Universita' Ca' Foscari di Venezia >>>> >>>> Well, I wouldn't have thought that you were even able to install >>>> the cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz system on an Intel machine; >>>> it's surely not supposed to run on one. It shouldn't be too >>>> difficult to get a port of the latest CM3 for Darwin on Intel >>>> processors; I even think somebody was already working on it, >>>> but I don't really remember who, so I forward your mail to >>>> the m3devel list, in case others have already started such an >>>> effort. >>>> >>>> Olaf >>>> -- >>>> elego Software Solutions GmbH HRB 77719 >>>> Olaf Wagner E-Mail: wagner(at)elego.de >>>> Ohmstra?e 9 Tel: +49 30 40 04 19 29 >>>> 10179 Berlin Fax: +49 30 23 45 86 95 >>>> Cranachstra?e 7 Tel: +49 30 85 58 01 81 >>>> 12157 Berlin Fax: +49 30 85 58 01 88 >>>> ------------------> WWW: http://www.elego-software-solutions.com >>>> _______________________________________________ >>>> M3devel mailing list >>>> M3devel at elegosoft.com >>>> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel >> > > > _______________________________________________ > M3devel mailing list > M3devel at elegosoft.com > https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel Antony Hosking | Associate Professor Dept of Computer Sciences | Office: (765) 494-6001 Purdue University | Mobile: (765) 427-5484 250 N. University Street | hosking at cs.purdue.edu West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking _--_|\ / \ \_.--._/ ) v / From hosking at cs.purdue.edu Sun Jan 21 00:01:06 2007 From: hosking at cs.purdue.edu (Antony Hosking) Date: Sat, 20 Jan 2007 18:01:06 -0500 Subject: [M3devel] Re: porting m3 on intel mac In-Reply-To: <6307E3CC-8E5F-4317-8A8E-7EADE20FEE54@darko.org> References: <8A58B35B-22CD-42D5-BA19-5FBF5D3CF5CD@dsi.unive.it> <20070120164128.GA27790@elegosoft.com> <52EA8FC9-4E33-40FF-B041-5CEAE83BBDE7@darko.org> <6307E3CC-8E5F-4317-8A8E-7EADE20FEE54@darko.org> Message-ID: PS I use the latest version of XCode. On 20/01/2007, at 5:49 PM, Darko wrote: > No worries. I'm not familiar at all with those scripts. The problem > you are having may be to do with not having the latest source, but > it most probably has to do with the version of gcc that is active > on your machine. C files are not compiled by cm3 but rather call > gcc directly. I can't remember which version of gcc is the correct > one, but mine currently is i686-apple-darwin8-gcc-4.0.1; also I > can't remember the command line for changing gcc versions. Tony may > be able to help re the correct version if 4.0.1 doesn't work. You > may need to install the latest XCode from http:// > developer.apple.com if you don't have 4.01. > > I've cc'd the list because they're actually very helpful and my > knowledge is limited... > > - Darko > > > On 21/01/2007, at 6:58 AM, Renzo Orsini wrote: > >> First of all, thank you very much for your immediate help! >> >> I downloaded the files and replaced the corresponding /usr/local/ >> cm3/bin files, >> modified cm3.cfg by replacing INSTALL_ROOT = "/usr/local/cm3- >> i386/" with INSTALL_ROOT = "/usr/local/cm3/" >> then in the full source (last version, 5.4.0) I did: scripts/do- >> cm3-core.sh buildship >> this is the result: >> >> root#./do-cm3-core.sh buildship >> CM3C = >> /Users/orsini/cm3/cm3-src-all-5.4.0/scripts/pkgmap.sh -c "cm3 - >> build -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' && cm3 -ship - >> DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' " m3gc-simple m3core >> libm3 patternmatching m3middle m3linker m3front m3quake m3cc cm3 >> m3scanner m3tools m3cgcat m3cggen m3bundle bitvector digraph >> parseparams realgeometry set slisp sortedtableextras table-list >> tempfiles >> === package /Users/orsini/cm3/cm3-src-all-5.4.0/m3-libs/m3gc- >> simple === >> +++ cm3 -build -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' && >> cm3 -ship -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' +++ >> --- building in I386_DARWIN --- >> >> new source -> compiling RTVM.c >> new source -> compiling sysdeps.c >> new source -> compiling accept.c >> ../src/runtime/I386_DARWIN/accept.c: In function 'm3_accept': >> ../src/runtime/I386_DARWIN/accept.c:13: warning: pointer targets >> in passing argument 3 of 'accept' differ in signedness >> new source -> compiling bind.c >> new source -> compiling close.c >> new source -> compiling connect.c >> new source -> compiling dup.c >> new source -> compiling dup2.c >> new source -> compiling gethostbyaddr.c >> new source -> compiling gethostbyname.c >> new source -> compiling getpeername.c >> ../src/runtime/I386_DARWIN/getpeername.c: In function >> 'm3_getpeername': >> ../src/runtime/I386_DARWIN/getpeername.c:13: warning: pointer >> targets in passing argument 3 of 'getpeername' differ in signedness >> new source -> compiling getsockname.c >> ../src/runtime/I386_DARWIN/getsockname.c: In function >> 'm3_getsockname': >> ../src/runtime/I386_DARWIN/getsockname.c:13: warning: pointer >> targets in passing argument 3 of 'getsockname' differ in signedness >> new source -> compiling listen.c >> new source -> compiling read.c >> new source -> compiling recv.c >> new source -> compiling recvfrom.c >> ../src/runtime/I386_DARWIN/recvfrom.c: In function 'm3_recvfrom': >> ../src/runtime/I386_DARWIN/recvfrom.c:15: warning: pointer targets >> in passing argument 6 of 'recvfrom' differ in signedness >> new source -> compiling select.c >> new source -> compiling send.c >> new source -> compiling sendto.c >> new source -> compiling shutdown.c >> new source -> compiling socket.c >> new source -> compiling write.c >> -> archiving libm3gcdefs.a >> ld: common symbols not allowed with MH_DYLIB output format with >> the -multi_module option >> sysdeps.o definition of common _RTCSRC_FinishVM (size 16) >> sysdeps.o definition of common _RTHeapRep_Fault (size 16) >> /usr/bin/libtool: internal link edit command failed >> --- shipping from I386_DARWIN --- >> >> . => /usr/local/cm3/pkg/m3gc-simple/I386_DARWIN >> .M3EXPORTS libm3gcdefs.5.2.dylib"/Users/orsini/cm3/cm3- >> src-all-5.4.0/m3-libs/m3gc-simple/I386_DARWIN/.M3SHIP", line 3: >> quake runtime error: unable to copy "libm3gcdefs.5.2.dylib" to "/ >> usr/local/cm3/pkg/m3gc-simple/I386_DARWIN/libm3gcdefs.5.2.dylib": >> errno=2 >> >> --procedure-- -line- -file--- >> install_file -- >> 3 /Users/orsini/cm3/cm3-src-all-5.4.0/m3-libs/ >> m3gc-simple/I386_DARWIN/.M3SHIP >> >> Fatal Error: package build failed >> *** execution of failed *** >> >> ====== >> >> >> I noticed that not all the .c files in .../m3-libs/m3gc-simple/src/ >> runtime/I386_DARWIN/ where compiled, but I do not know if this is >> a normal behaviour. >> >> Thanks in advance for your time and patience! >> >> Cordially >> >> Renzo Orsini >> >> >> On Jan 20, 2007, at 19:02, Darko wrote: >> >>> Have a look here: ftp://ftp.cs.purdue.edu/pub/hosking/m3/ >>> I386_DARWIN/ >>> >>> There you'll find the bits you need for Mac Intel. Replace your >>> existing cm3, cmcg and cm3.cfg with the ones there, then you can >>> compile the basic libraries you need like m3core and libm3, but >>> make sure you have the latest sources. >>> >>> I think they're the latest but Tony may have something more to >>> say about that. >>> >>> Darko. >>> >>> >>> >>> On 21/01/2007, at 1:41 AM, Olaf Wagner wrote: >>> >>>> On Sat, Jan 20, 2007 at 03:05:55PM +0100, Renzo Orsini wrote: >>>>> Hello, >>>>> >>>>> I installed cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz on an intel >>>>> mac, then >>>>> tried to a compile a Hello world program, but the compilation >>>>> failed >>>>> with the following message: >>>>> >>>>> pborsini:~/ProveModula3 orsini$ cm3 >>>>> --- building in PPC_DARWIN --- >>>>> >>>>> new source -> compiling Main.m3 >>>>> "../Main.m3", line 4: warning: potentially unhandled exception: >>>>> IO.Error >>>>> 1 warning encountered >>>>> Main.ms:12:no such instruction: `mflr r0' >>>>> Main.ms:13:no such instruction: `stmw r30,-8(r1)' >>>>> Main.ms:14:no such instruction: `stw r0,8(r1)' >>>>> Main.ms:15:no such instruction: `stwu r1,-96(r1)' >>>>> Main.ms:16:no such instruction: `mr r30,r1' >>>>> Main.ms:17:no such instruction: `bcl 20,31,"L00000000001$pb"' >>>>> ... >>>>> .... >>>>> >>>>> So I suppose there is PPC code to assemble and the Rosetta >>>>> emulator >>>>> for PPC on intel macs cannot do anything for this! >>>>> >>>>> Since I would like to port the Fibonacci language for databases, >>>>> which is written in Modula-3, if I understand well the situation I >>>>> should port the Modula-3 compiler by cross compiling it on a >>>>> PPC mac, >>>>> or something like that. >>>>> >>>>> I am asking you if you know about some effort of porting >>>>> Modula-3 on >>>>> intel macs, or at least if you let me know if this operation is >>>>> possible (and also reasonably feasible in terms of time and >>>>> expertise, given my teaching duties and my difficulties with >>>>> assembler languages!), and, if so, if you can point me to the >>>>> correct >>>>> documentation to start with. Of course I will be very glad to give >>>>> back to the community the result if I succeed! >>>>> >>>>> Thank you very much for your attention. >>>>> >>>>> Cordially >>>>> >>>>> Renzo Orsini >>>>> Associate Professor >>>>> Dipartimento di Informatica >>>>> Universita' Ca' Foscari di Venezia >>>> >>>> Well, I wouldn't have thought that you were even able to install >>>> the cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz system on an Intel machine; >>>> it's surely not supposed to run on one. It shouldn't be too >>>> difficult to get a port of the latest CM3 for Darwin on Intel >>>> processors; I even think somebody was already working on it, >>>> but I don't really remember who, so I forward your mail to >>>> the m3devel list, in case others have already started such an >>>> effort. >>>> >>>> Olaf >>>> -- >>>> elego Software Solutions GmbH HRB 77719 >>>> Olaf Wagner E-Mail: wagner(at)elego.de >>>> Ohmstra?e 9 Tel: +49 30 40 04 19 29 >>>> 10179 Berlin Fax: +49 30 23 45 86 95 >>>> Cranachstra?e 7 Tel: +49 30 85 58 01 81 >>>> 12157 Berlin Fax: +49 30 85 58 01 88 >>>> ------------------> WWW: http://www.elego-software-solutions.com >>>> _______________________________________________ >>>> M3devel mailing list >>>> M3devel at elegosoft.com >>>> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel >> > > > _______________________________________________ > M3devel mailing list > M3devel at elegosoft.com > https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel Antony Hosking | Associate Professor Dept of Computer Sciences | Office: (765) 494-6001 Purdue University | Mobile: (765) 427-5484 250 N. University Street | hosking at cs.purdue.edu West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking _--_|\ / \ \_.--._/ ) v / From hosking at cs.purdue.edu Sun Jan 21 00:02:08 2007 From: hosking at cs.purdue.edu (Antony Hosking) Date: Sat, 20 Jan 2007 18:02:08 -0500 Subject: [M3devel] Re: porting m3 on intel mac In-Reply-To: <6307E3CC-8E5F-4317-8A8E-7EADE20FEE54@darko.org> References: <8A58B35B-22CD-42D5-BA19-5FBF5D3CF5CD@dsi.unive.it> <20070120164128.GA27790@elegosoft.com> <52EA8FC9-4E33-40FF-B041-5CEAE83BBDE7@darko.org> <6307E3CC-8E5F-4317-8A8E-7EADE20FEE54@darko.org> Message-ID: <6E136872-8841-4447-8C60-513FDC90F59C@cs.purdue.edu> Also, you may need to be up-to-date with CM3 source from the CVS tree. 5.4.0 did not support I386_DARWIN. On 20/01/2007, at 5:49 PM, Darko wrote: > No worries. I'm not familiar at all with those scripts. The problem > you are having may be to do with not having the latest source, but > it most probably has to do with the version of gcc that is active > on your machine. C files are not compiled by cm3 but rather call > gcc directly. I can't remember which version of gcc is the correct > one, but mine currently is i686-apple-darwin8-gcc-4.0.1; also I > can't remember the command line for changing gcc versions. Tony may > be able to help re the correct version if 4.0.1 doesn't work. You > may need to install the latest XCode from http:// > developer.apple.com if you don't have 4.01. > > I've cc'd the list because they're actually very helpful and my > knowledge is limited... > > - Darko > > > On 21/01/2007, at 6:58 AM, Renzo Orsini wrote: > >> First of all, thank you very much for your immediate help! >> >> I downloaded the files and replaced the corresponding /usr/local/ >> cm3/bin files, >> modified cm3.cfg by replacing INSTALL_ROOT = "/usr/local/cm3- >> i386/" with INSTALL_ROOT = "/usr/local/cm3/" >> then in the full source (last version, 5.4.0) I did: scripts/do- >> cm3-core.sh buildship >> this is the result: >> >> root#./do-cm3-core.sh buildship >> CM3C = >> /Users/orsini/cm3/cm3-src-all-5.4.0/scripts/pkgmap.sh -c "cm3 - >> build -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' && cm3 -ship - >> DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' " m3gc-simple m3core >> libm3 patternmatching m3middle m3linker m3front m3quake m3cc cm3 >> m3scanner m3tools m3cgcat m3cggen m3bundle bitvector digraph >> parseparams realgeometry set slisp sortedtableextras table-list >> tempfiles >> === package /Users/orsini/cm3/cm3-src-all-5.4.0/m3-libs/m3gc- >> simple === >> +++ cm3 -build -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' && >> cm3 -ship -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' +++ >> --- building in I386_DARWIN --- >> >> new source -> compiling RTVM.c >> new source -> compiling sysdeps.c >> new source -> compiling accept.c >> ../src/runtime/I386_DARWIN/accept.c: In function 'm3_accept': >> ../src/runtime/I386_DARWIN/accept.c:13: warning: pointer targets >> in passing argument 3 of 'accept' differ in signedness >> new source -> compiling bind.c >> new source -> compiling close.c >> new source -> compiling connect.c >> new source -> compiling dup.c >> new source -> compiling dup2.c >> new source -> compiling gethostbyaddr.c >> new source -> compiling gethostbyname.c >> new source -> compiling getpeername.c >> ../src/runtime/I386_DARWIN/getpeername.c: In function >> 'm3_getpeername': >> ../src/runtime/I386_DARWIN/getpeername.c:13: warning: pointer >> targets in passing argument 3 of 'getpeername' differ in signedness >> new source -> compiling getsockname.c >> ../src/runtime/I386_DARWIN/getsockname.c: In function >> 'm3_getsockname': >> ../src/runtime/I386_DARWIN/getsockname.c:13: warning: pointer >> targets in passing argument 3 of 'getsockname' differ in signedness >> new source -> compiling listen.c >> new source -> compiling read.c >> new source -> compiling recv.c >> new source -> compiling recvfrom.c >> ../src/runtime/I386_DARWIN/recvfrom.c: In function 'm3_recvfrom': >> ../src/runtime/I386_DARWIN/recvfrom.c:15: warning: pointer targets >> in passing argument 6 of 'recvfrom' differ in signedness >> new source -> compiling select.c >> new source -> compiling send.c >> new source -> compiling sendto.c >> new source -> compiling shutdown.c >> new source -> compiling socket.c >> new source -> compiling write.c >> -> archiving libm3gcdefs.a >> ld: common symbols not allowed with MH_DYLIB output format with >> the -multi_module option >> sysdeps.o definition of common _RTCSRC_FinishVM (size 16) >> sysdeps.o definition of common _RTHeapRep_Fault (size 16) >> /usr/bin/libtool: internal link edit command failed >> --- shipping from I386_DARWIN --- >> >> . => /usr/local/cm3/pkg/m3gc-simple/I386_DARWIN >> .M3EXPORTS libm3gcdefs.5.2.dylib"/Users/orsini/cm3/cm3- >> src-all-5.4.0/m3-libs/m3gc-simple/I386_DARWIN/.M3SHIP", line 3: >> quake runtime error: unable to copy "libm3gcdefs.5.2.dylib" to "/ >> usr/local/cm3/pkg/m3gc-simple/I386_DARWIN/libm3gcdefs.5.2.dylib": >> errno=2 >> >> --procedure-- -line- -file--- >> install_file -- >> 3 /Users/orsini/cm3/cm3-src-all-5.4.0/m3-libs/ >> m3gc-simple/I386_DARWIN/.M3SHIP >> >> Fatal Error: package build failed >> *** execution of failed *** >> >> ====== >> >> >> I noticed that not all the .c files in .../m3-libs/m3gc-simple/src/ >> runtime/I386_DARWIN/ where compiled, but I do not know if this is >> a normal behaviour. >> >> Thanks in advance for your time and patience! >> >> Cordially >> >> Renzo Orsini >> >> >> On Jan 20, 2007, at 19:02, Darko wrote: >> >>> Have a look here: ftp://ftp.cs.purdue.edu/pub/hosking/m3/ >>> I386_DARWIN/ >>> >>> There you'll find the bits you need for Mac Intel. Replace your >>> existing cm3, cmcg and cm3.cfg with the ones there, then you can >>> compile the basic libraries you need like m3core and libm3, but >>> make sure you have the latest sources. >>> >>> I think they're the latest but Tony may have something more to >>> say about that. >>> >>> Darko. >>> >>> >>> >>> On 21/01/2007, at 1:41 AM, Olaf Wagner wrote: >>> >>>> On Sat, Jan 20, 2007 at 03:05:55PM +0100, Renzo Orsini wrote: >>>>> Hello, >>>>> >>>>> I installed cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz on an intel >>>>> mac, then >>>>> tried to a compile a Hello world program, but the compilation >>>>> failed >>>>> with the following message: >>>>> >>>>> pborsini:~/ProveModula3 orsini$ cm3 >>>>> --- building in PPC_DARWIN --- >>>>> >>>>> new source -> compiling Main.m3 >>>>> "../Main.m3", line 4: warning: potentially unhandled exception: >>>>> IO.Error >>>>> 1 warning encountered >>>>> Main.ms:12:no such instruction: `mflr r0' >>>>> Main.ms:13:no such instruction: `stmw r30,-8(r1)' >>>>> Main.ms:14:no such instruction: `stw r0,8(r1)' >>>>> Main.ms:15:no such instruction: `stwu r1,-96(r1)' >>>>> Main.ms:16:no such instruction: `mr r30,r1' >>>>> Main.ms:17:no such instruction: `bcl 20,31,"L00000000001$pb"' >>>>> ... >>>>> .... >>>>> >>>>> So I suppose there is PPC code to assemble and the Rosetta >>>>> emulator >>>>> for PPC on intel macs cannot do anything for this! >>>>> >>>>> Since I would like to port the Fibonacci language for databases, >>>>> which is written in Modula-3, if I understand well the situation I >>>>> should port the Modula-3 compiler by cross compiling it on a >>>>> PPC mac, >>>>> or something like that. >>>>> >>>>> I am asking you if you know about some effort of porting >>>>> Modula-3 on >>>>> intel macs, or at least if you let me know if this operation is >>>>> possible (and also reasonably feasible in terms of time and >>>>> expertise, given my teaching duties and my difficulties with >>>>> assembler languages!), and, if so, if you can point me to the >>>>> correct >>>>> documentation to start with. Of course I will be very glad to give >>>>> back to the community the result if I succeed! >>>>> >>>>> Thank you very much for your attention. >>>>> >>>>> Cordially >>>>> >>>>> Renzo Orsini >>>>> Associate Professor >>>>> Dipartimento di Informatica >>>>> Universita' Ca' Foscari di Venezia >>>> >>>> Well, I wouldn't have thought that you were even able to install >>>> the cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz system on an Intel machine; >>>> it's surely not supposed to run on one. It shouldn't be too >>>> difficult to get a port of the latest CM3 for Darwin on Intel >>>> processors; I even think somebody was already working on it, >>>> but I don't really remember who, so I forward your mail to >>>> the m3devel list, in case others have already started such an >>>> effort. >>>> >>>> Olaf >>>> -- >>>> elego Software Solutions GmbH HRB 77719 >>>> Olaf Wagner E-Mail: wagner(at)elego.de >>>> Ohmstra?e 9 Tel: +49 30 40 04 19 29 >>>> 10179 Berlin Fax: +49 30 23 45 86 95 >>>> Cranachstra?e 7 Tel: +49 30 85 58 01 81 >>>> 12157 Berlin Fax: +49 30 85 58 01 88 >>>> ------------------> WWW: http://www.elego-software-solutions.com >>>> _______________________________________________ >>>> M3devel mailing list >>>> M3devel at elegosoft.com >>>> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel >> > > > _______________________________________________ > M3devel mailing list > M3devel at elegosoft.com > https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel Antony Hosking | Associate Professor Dept of Computer Sciences | Office: (765) 494-6001 Purdue University | Mobile: (765) 427-5484 250 N. University Street | hosking at cs.purdue.edu West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking _--_|\ / \ \_.--._/ ) v / From hosking at cs.purdue.edu Sun Jan 21 00:13:16 2007 From: hosking at cs.purdue.edu (Antony Hosking) Date: Sat, 20 Jan 2007 18:13:16 -0500 Subject: [M3devel] Re: porting m3 on intel mac In-Reply-To: <6307E3CC-8E5F-4317-8A8E-7EADE20FEE54@darko.org> References: <8A58B35B-22CD-42D5-BA19-5FBF5D3CF5CD@dsi.unive.it> <20070120164128.GA27790@elegosoft.com> <52EA8FC9-4E33-40FF-B041-5CEAE83BBDE7@darko.org> <6307E3CC-8E5F-4317-8A8E-7EADE20FEE54@darko.org> Message-ID: The ftp site ftp://ftp.cs.purdue.edu/pub/hosking/I386_DARWIN now contains up-to-date bootstrap files. I just built using the command "do-cm3-std.sh buildship" without problems. On 20/01/2007, at 5:49 PM, Darko wrote: > No worries. I'm not familiar at all with those scripts. The problem > you are having may be to do with not having the latest source, but > it most probably has to do with the version of gcc that is active > on your machine. C files are not compiled by cm3 but rather call > gcc directly. I can't remember which version of gcc is the correct > one, but mine currently is i686-apple-darwin8-gcc-4.0.1; also I > can't remember the command line for changing gcc versions. Tony may > be able to help re the correct version if 4.0.1 doesn't work. You > may need to install the latest XCode from http:// > developer.apple.com if you don't have 4.01. > > I've cc'd the list because they're actually very helpful and my > knowledge is limited... > > - Darko > > > On 21/01/2007, at 6:58 AM, Renzo Orsini wrote: > >> First of all, thank you very much for your immediate help! >> >> I downloaded the files and replaced the corresponding /usr/local/ >> cm3/bin files, >> modified cm3.cfg by replacing INSTALL_ROOT = "/usr/local/cm3- >> i386/" with INSTALL_ROOT = "/usr/local/cm3/" >> then in the full source (last version, 5.4.0) I did: scripts/do- >> cm3-core.sh buildship >> this is the result: >> >> root#./do-cm3-core.sh buildship >> CM3C = >> /Users/orsini/cm3/cm3-src-all-5.4.0/scripts/pkgmap.sh -c "cm3 - >> build -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' && cm3 -ship - >> DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' " m3gc-simple m3core >> libm3 patternmatching m3middle m3linker m3front m3quake m3cc cm3 >> m3scanner m3tools m3cgcat m3cggen m3bundle bitvector digraph >> parseparams realgeometry set slisp sortedtableextras table-list >> tempfiles >> === package /Users/orsini/cm3/cm3-src-all-5.4.0/m3-libs/m3gc- >> simple === >> +++ cm3 -build -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' && >> cm3 -ship -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' +++ >> --- building in I386_DARWIN --- >> >> new source -> compiling RTVM.c >> new source -> compiling sysdeps.c >> new source -> compiling accept.c >> ../src/runtime/I386_DARWIN/accept.c: In function 'm3_accept': >> ../src/runtime/I386_DARWIN/accept.c:13: warning: pointer targets >> in passing argument 3 of 'accept' differ in signedness >> new source -> compiling bind.c >> new source -> compiling close.c >> new source -> compiling connect.c >> new source -> compiling dup.c >> new source -> compiling dup2.c >> new source -> compiling gethostbyaddr.c >> new source -> compiling gethostbyname.c >> new source -> compiling getpeername.c >> ../src/runtime/I386_DARWIN/getpeername.c: In function >> 'm3_getpeername': >> ../src/runtime/I386_DARWIN/getpeername.c:13: warning: pointer >> targets in passing argument 3 of 'getpeername' differ in signedness >> new source -> compiling getsockname.c >> ../src/runtime/I386_DARWIN/getsockname.c: In function >> 'm3_getsockname': >> ../src/runtime/I386_DARWIN/getsockname.c:13: warning: pointer >> targets in passing argument 3 of 'getsockname' differ in signedness >> new source -> compiling listen.c >> new source -> compiling read.c >> new source -> compiling recv.c >> new source -> compiling recvfrom.c >> ../src/runtime/I386_DARWIN/recvfrom.c: In function 'm3_recvfrom': >> ../src/runtime/I386_DARWIN/recvfrom.c:15: warning: pointer targets >> in passing argument 6 of 'recvfrom' differ in signedness >> new source -> compiling select.c >> new source -> compiling send.c >> new source -> compiling sendto.c >> new source -> compiling shutdown.c >> new source -> compiling socket.c >> new source -> compiling write.c >> -> archiving libm3gcdefs.a >> ld: common symbols not allowed with MH_DYLIB output format with >> the -multi_module option >> sysdeps.o definition of common _RTCSRC_FinishVM (size 16) >> sysdeps.o definition of common _RTHeapRep_Fault (size 16) >> /usr/bin/libtool: internal link edit command failed >> --- shipping from I386_DARWIN --- >> >> . => /usr/local/cm3/pkg/m3gc-simple/I386_DARWIN >> .M3EXPORTS libm3gcdefs.5.2.dylib"/Users/orsini/cm3/cm3- >> src-all-5.4.0/m3-libs/m3gc-simple/I386_DARWIN/.M3SHIP", line 3: >> quake runtime error: unable to copy "libm3gcdefs.5.2.dylib" to "/ >> usr/local/cm3/pkg/m3gc-simple/I386_DARWIN/libm3gcdefs.5.2.dylib": >> errno=2 >> >> --procedure-- -line- -file--- >> install_file -- >> 3 /Users/orsini/cm3/cm3-src-all-5.4.0/m3-libs/ >> m3gc-simple/I386_DARWIN/.M3SHIP >> >> Fatal Error: package build failed >> *** execution of failed *** >> >> ====== >> >> >> I noticed that not all the .c files in .../m3-libs/m3gc-simple/src/ >> runtime/I386_DARWIN/ where compiled, but I do not know if this is >> a normal behaviour. >> >> Thanks in advance for your time and patience! >> >> Cordially >> >> Renzo Orsini >> >> >> On Jan 20, 2007, at 19:02, Darko wrote: >> >>> Have a look here: ftp://ftp.cs.purdue.edu/pub/hosking/m3/ >>> I386_DARWIN/ >>> >>> There you'll find the bits you need for Mac Intel. Replace your >>> existing cm3, cmcg and cm3.cfg with the ones there, then you can >>> compile the basic libraries you need like m3core and libm3, but >>> make sure you have the latest sources. >>> >>> I think they're the latest but Tony may have something more to >>> say about that. >>> >>> Darko. >>> >>> >>> >>> On 21/01/2007, at 1:41 AM, Olaf Wagner wrote: >>> >>>> On Sat, Jan 20, 2007 at 03:05:55PM +0100, Renzo Orsini wrote: >>>>> Hello, >>>>> >>>>> I installed cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz on an intel >>>>> mac, then >>>>> tried to a compile a Hello world program, but the compilation >>>>> failed >>>>> with the following message: >>>>> >>>>> pborsini:~/ProveModula3 orsini$ cm3 >>>>> --- building in PPC_DARWIN --- >>>>> >>>>> new source -> compiling Main.m3 >>>>> "../Main.m3", line 4: warning: potentially unhandled exception: >>>>> IO.Error >>>>> 1 warning encountered >>>>> Main.ms:12:no such instruction: `mflr r0' >>>>> Main.ms:13:no such instruction: `stmw r30,-8(r1)' >>>>> Main.ms:14:no such instruction: `stw r0,8(r1)' >>>>> Main.ms:15:no such instruction: `stwu r1,-96(r1)' >>>>> Main.ms:16:no such instruction: `mr r30,r1' >>>>> Main.ms:17:no such instruction: `bcl 20,31,"L00000000001$pb"' >>>>> ... >>>>> .... >>>>> >>>>> So I suppose there is PPC code to assemble and the Rosetta >>>>> emulator >>>>> for PPC on intel macs cannot do anything for this! >>>>> >>>>> Since I would like to port the Fibonacci language for databases, >>>>> which is written in Modula-3, if I understand well the situation I >>>>> should port the Modula-3 compiler by cross compiling it on a >>>>> PPC mac, >>>>> or something like that. >>>>> >>>>> I am asking you if you know about some effort of porting >>>>> Modula-3 on >>>>> intel macs, or at least if you let me know if this operation is >>>>> possible (and also reasonably feasible in terms of time and >>>>> expertise, given my teaching duties and my difficulties with >>>>> assembler languages!), and, if so, if you can point me to the >>>>> correct >>>>> documentation to start with. Of course I will be very glad to give >>>>> back to the community the result if I succeed! >>>>> >>>>> Thank you very much for your attention. >>>>> >>>>> Cordially >>>>> >>>>> Renzo Orsini >>>>> Associate Professor >>>>> Dipartimento di Informatica >>>>> Universita' Ca' Foscari di Venezia >>>> >>>> Well, I wouldn't have thought that you were even able to install >>>> the cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz system on an Intel machine; >>>> it's surely not supposed to run on one. It shouldn't be too >>>> difficult to get a port of the latest CM3 for Darwin on Intel >>>> processors; I even think somebody was already working on it, >>>> but I don't really remember who, so I forward your mail to >>>> the m3devel list, in case others have already started such an >>>> effort. >>>> >>>> Olaf >>>> -- >>>> elego Software Solutions GmbH HRB 77719 >>>> Olaf Wagner E-Mail: wagner(at)elego.de >>>> Ohmstra?e 9 Tel: +49 30 40 04 19 29 >>>> 10179 Berlin Fax: +49 30 23 45 86 95 >>>> Cranachstra?e 7 Tel: +49 30 85 58 01 81 >>>> 12157 Berlin Fax: +49 30 85 58 01 88 >>>> ------------------> WWW: http://www.elego-software-solutions.com >>>> _______________________________________________ >>>> M3devel mailing list >>>> M3devel at elegosoft.com >>>> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel >> > > > _______________________________________________ > M3devel mailing list > M3devel at elegosoft.com > https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel Antony Hosking | Associate Professor Dept of Computer Sciences | Office: (765) 494-6001 Purdue University | Mobile: (765) 427-5484 250 N. University Street | hosking at cs.purdue.edu West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking _--_|\ / \ \_.--._/ ) v / From jayk123 at hotmail.com Sun Jan 21 00:26:12 2007 From: jayk123 at hotmail.com (j k) Date: Sat, 20 Jan 2007 23:26:12 +0000 Subject: [M3devel] Re: porting m3 on intel mac In-Reply-To: Message-ID: Gcc on Mac OS X has this great "arch" flag. They support four values for it and you can pass any number of them on the command line: ROUGHLY: echo int main() { printf("hello\n"; return 0;} > hello.c gcc -arch ppc -arch i386 -arch pp64 -arch x86_64 hello.c otool a.out => quad fat (this is from memory) ld has a similar flag. Sometimes I gather gcc is looping, calling tools multiple times, or multiple tools, sometimes maybe the tools have their own loops. I think it is more gcc looping. I've always wanted compilers/lnkers to work this way. :) It eliminates or hides one axis in the two dimensional cross build matrix. (and really, each back end should be a .lib/.dll/.so, nicely integrated so you have one front end per host, n backends per host, not some big n x m matrix...) Of course when you have, say, syntax or type errors, it is a waste to attempt more than one build at a time. - Jay >From: Antony Hosking >To: Darko >CC: m3devel at elegosoft.com, Renzo Orsini >Subject: Re: [M3devel] Re: porting m3 on intel mac >Date: Sat, 20 Jan 2007 18:13:16 -0500 > >The ftp site ftp://ftp.cs.purdue.edu/pub/hosking/I386_DARWIN now contains >up-to-date bootstrap files. I just built using the command "do-cm3-std.sh >buildship" without problems. > >On 20/01/2007, at 5:49 PM, Darko wrote: > >>No worries. I'm not familiar at all with those scripts. The problem you >>are having may be to do with not having the latest source, but it most >>probably has to do with the version of gcc that is active on your >>machine. C files are not compiled by cm3 but rather call gcc directly. I >>can't remember which version of gcc is the correct one, but mine >>currently is i686-apple-darwin8-gcc-4.0.1; also I can't remember the >>command line for changing gcc versions. Tony may be able to help re the >>correct version if 4.0.1 doesn't work. You may need to install the latest >>XCode from http:// developer.apple.com if you don't have 4.01. >> >>I've cc'd the list because they're actually very helpful and my knowledge >>is limited... >> >>- Darko >> >> >>On 21/01/2007, at 6:58 AM, Renzo Orsini wrote: >> >>>First of all, thank you very much for your immediate help! >>> >>>I downloaded the files and replaced the corresponding /usr/local/ cm3/bin >>>files, >>>modified cm3.cfg by replacing INSTALL_ROOT = "/usr/local/cm3- i386/" with >>>INSTALL_ROOT = "/usr/local/cm3/" >>>then in the full source (last version, 5.4.0) I did: scripts/do- >>>cm3-core.sh buildship >>>this is the result: >>> >>> root#./do-cm3-core.sh buildship >>>CM3C = >>>/Users/orsini/cm3/cm3-src-all-5.4.0/scripts/pkgmap.sh -c "cm3 - build >>>-DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' && cm3 -ship - >>>DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' " m3gc-simple m3core libm3 >>>patternmatching m3middle m3linker m3front m3quake m3cc cm3 m3scanner >>>m3tools m3cgcat m3cggen m3bundle bitvector digraph parseparams >>>realgeometry set slisp sortedtableextras table-list tempfiles >>>=== package /Users/orsini/cm3/cm3-src-all-5.4.0/m3-libs/m3gc- simple === >>>+++ cm3 -build -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' && cm3 >>>-ship -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' +++ >>>--- building in I386_DARWIN --- >>> >>>new source -> compiling RTVM.c >>>new source -> compiling sysdeps.c >>>new source -> compiling accept.c >>>../src/runtime/I386_DARWIN/accept.c: In function 'm3_accept': >>>../src/runtime/I386_DARWIN/accept.c:13: warning: pointer targets in >>>passing argument 3 of 'accept' differ in signedness >>>new source -> compiling bind.c >>>new source -> compiling close.c >>>new source -> compiling connect.c >>>new source -> compiling dup.c >>>new source -> compiling dup2.c >>>new source -> compiling gethostbyaddr.c >>>new source -> compiling gethostbyname.c >>>new source -> compiling getpeername.c >>>../src/runtime/I386_DARWIN/getpeername.c: In function 'm3_getpeername': >>>../src/runtime/I386_DARWIN/getpeername.c:13: warning: pointer targets in >>>passing argument 3 of 'getpeername' differ in signedness >>>new source -> compiling getsockname.c >>>../src/runtime/I386_DARWIN/getsockname.c: In function 'm3_getsockname': >>>../src/runtime/I386_DARWIN/getsockname.c:13: warning: pointer targets in >>>passing argument 3 of 'getsockname' differ in signedness >>>new source -> compiling listen.c >>>new source -> compiling read.c >>>new source -> compiling recv.c >>>new source -> compiling recvfrom.c >>>../src/runtime/I386_DARWIN/recvfrom.c: In function 'm3_recvfrom': >>>../src/runtime/I386_DARWIN/recvfrom.c:15: warning: pointer targets in >>>passing argument 6 of 'recvfrom' differ in signedness >>>new source -> compiling select.c >>>new source -> compiling send.c >>>new source -> compiling sendto.c >>>new source -> compiling shutdown.c >>>new source -> compiling socket.c >>>new source -> compiling write.c >>>-> archiving libm3gcdefs.a >>>ld: common symbols not allowed with MH_DYLIB output format with the >>>-multi_module option >>>sysdeps.o definition of common _RTCSRC_FinishVM (size 16) >>>sysdeps.o definition of common _RTHeapRep_Fault (size 16) >>>/usr/bin/libtool: internal link edit command failed >>>--- shipping from I386_DARWIN --- >>> >>>. => /usr/local/cm3/pkg/m3gc-simple/I386_DARWIN >>> .M3EXPORTS libm3gcdefs.5.2.dylib"/Users/orsini/cm3/cm3- >>>src-all-5.4.0/m3-libs/m3gc-simple/I386_DARWIN/.M3SHIP", line 3: quake >>>runtime error: unable to copy "libm3gcdefs.5.2.dylib" to "/ >>>usr/local/cm3/pkg/m3gc-simple/I386_DARWIN/libm3gcdefs.5.2.dylib": >>>errno=2 >>> >>>--procedure-- -line- -file--- >>>install_file -- >>> 3 /Users/orsini/cm3/cm3-src-all-5.4.0/m3-libs/ >>>m3gc-simple/I386_DARWIN/.M3SHIP >>> >>>Fatal Error: package build failed >>>*** execution of failed *** >>> >>>====== >>> >>> >>>I noticed that not all the .c files in .../m3-libs/m3gc-simple/src/ >>>runtime/I386_DARWIN/ where compiled, but I do not know if this is a >>>normal behaviour. >>> >>>Thanks in advance for your time and patience! >>> >>>Cordially >>> >>>Renzo Orsini >>> >>> >>>On Jan 20, 2007, at 19:02, Darko wrote: >>> >>>>Have a look here: ftp://ftp.cs.purdue.edu/pub/hosking/m3/ I386_DARWIN/ >>>> >>>>There you'll find the bits you need for Mac Intel. Replace your >>>>existing cm3, cmcg and cm3.cfg with the ones there, then you can >>>>compile the basic libraries you need like m3core and libm3, but make >>>>sure you have the latest sources. >>>> >>>>I think they're the latest but Tony may have something more to say >>>>about that. >>>> >>>>Darko. >>>> >>>> >>>> >>>>On 21/01/2007, at 1:41 AM, Olaf Wagner wrote: >>>> >>>>>On Sat, Jan 20, 2007 at 03:05:55PM +0100, Renzo Orsini wrote: >>>>>>Hello, >>>>>> >>>>>>I installed cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz on an intel mac, then >>>>>>tried to a compile a Hello world program, but the compilation failed >>>>>>with the following message: >>>>>> >>>>>>pborsini:~/ProveModula3 orsini$ cm3 >>>>>>--- building in PPC_DARWIN --- >>>>>> >>>>>>new source -> compiling Main.m3 >>>>>>"../Main.m3", line 4: warning: potentially unhandled exception: >>>>>>IO.Error >>>>>>1 warning encountered >>>>>>Main.ms:12:no such instruction: `mflr r0' >>>>>>Main.ms:13:no such instruction: `stmw r30,-8(r1)' >>>>>>Main.ms:14:no such instruction: `stw r0,8(r1)' >>>>>>Main.ms:15:no such instruction: `stwu r1,-96(r1)' >>>>>>Main.ms:16:no such instruction: `mr r30,r1' >>>>>>Main.ms:17:no such instruction: `bcl 20,31,"L00000000001$pb"' >>>>>>... >>>>>>.... >>>>>> >>>>>>So I suppose there is PPC code to assemble and the Rosetta emulator >>>>>>for PPC on intel macs cannot do anything for this! >>>>>> >>>>>>Since I would like to port the Fibonacci language for databases, >>>>>>which is written in Modula-3, if I understand well the situation I >>>>>>should port the Modula-3 compiler by cross compiling it on a PPC mac, >>>>>>or something like that. >>>>>> >>>>>>I am asking you if you know about some effort of porting Modula-3 on >>>>>>intel macs, or at least if you let me know if this operation is >>>>>>possible (and also reasonably feasible in terms of time and >>>>>>expertise, given my teaching duties and my difficulties with >>>>>>assembler languages!), and, if so, if you can point me to the correct >>>>>>documentation to start with. Of course I will be very glad to give >>>>>>back to the community the result if I succeed! >>>>>> >>>>>>Thank you very much for your attention. >>>>>> >>>>>>Cordially >>>>>> >>>>>>Renzo Orsini >>>>>>Associate Professor >>>>>>Dipartimento di Informatica >>>>>>Universita' Ca' Foscari di Venezia >>>>> >>>>>Well, I wouldn't have thought that you were even able to install >>>>>the cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz system on an Intel machine; >>>>>it's surely not supposed to run on one. It shouldn't be too >>>>>difficult to get a port of the latest CM3 for Darwin on Intel >>>>>processors; I even think somebody was already working on it, >>>>>but I don't really remember who, so I forward your mail to >>>>>the m3devel list, in case others have already started such an >>>>>effort. >>>>> >>>>>Olaf >>>>>-- >>>>>elego Software Solutions GmbH HRB 77719 >>>>>Olaf Wagner E-Mail: wagner(at)elego.de >>>>>Ohmstra?e 9 Tel: +49 30 40 04 19 29 >>>>>10179 Berlin Fax: +49 30 23 45 86 95 >>>>>Cranachstra?e 7 Tel: +49 30 85 58 01 81 >>>>>12157 Berlin Fax: +49 30 85 58 01 88 >>>>> ------------------> WWW: http://www.elego-software-solutions.com >>>>>_______________________________________________ >>>>>M3devel mailing list >>>>>M3devel at elegosoft.com >>>>>https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel >>> >> >> >>_______________________________________________ >>M3devel mailing list >>M3devel at elegosoft.com >>https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel > >Antony Hosking | Associate Professor >Dept of Computer Sciences | Office: (765) 494-6001 >Purdue University | Mobile: (765) 427-5484 >250 N. University Street | hosking at cs.purdue.edu >West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking > _--_|\ > / \ > \_.--._/ ) > v / > > > >_______________________________________________ >M3devel mailing list >M3devel at elegosoft.com >https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel _________________________________________________________________ Get in the mood for Valentine's Day. View photos, recipes and more on your Live.com page. http://www.live.com/?addTemplate=ValentinesDay&ocid=T001MSN30A0701 From darko at darko.org Sun Jan 21 00:33:01 2007 From: darko at darko.org (Darko) Date: Sun, 21 Jan 2007 08:33:01 +0900 Subject: [M3devel] Re: porting m3 on intel mac In-Reply-To: <1521F74A-AF0F-48C4-B0AA-4E7DB321DA62@cs.purdue.edu> References: <8A58B35B-22CD-42D5-BA19-5FBF5D3CF5CD@dsi.unive.it> <20070120164128.GA27790@elegosoft.com> <52EA8FC9-4E33-40FF-B041-5CEAE83BBDE7@darko.org> <6307E3CC-8E5F-4317-8A8E-7EADE20FEE54@darko.org> <1521F74A-AF0F-48C4-B0AA-4E7DB321DA62@cs.purdue.edu> Message-ID: <23B90155-784C-4A47-8EAD-1451AEC4C1B9@darko.org> The latest, 10.4.8, also the latest XCode, which I think updates gcc. You were addressing me weren't you? But Renzo might like to answer that question too. XCode weighs in at about 1G, by the way. On 21/01/2007, at 7:58 AM, Antony Hosking wrote: > What version of OSX are you using? > > On 20/01/2007, at 5:49 PM, Darko wrote: > >> No worries. I'm not familiar at all with those scripts. The >> problem you are having may be to do with not having the latest >> source, but it most probably has to do with the version of gcc >> that is active on your machine. C files are not compiled by cm3 >> but rather call gcc directly. I can't remember which version of >> gcc is the correct one, but mine currently is i686-apple-darwin8- >> gcc-4.0.1; also I can't remember the command line for changing gcc >> versions. Tony may be able to help re the correct version if 4.0.1 >> doesn't work. You may need to install the latest XCode from http:// >> developer.apple.com if you don't have 4.01. >> >> I've cc'd the list because they're actually very helpful and my >> knowledge is limited... >> >> - Darko >> >> >> On 21/01/2007, at 6:58 AM, Renzo Orsini wrote: >> >>> First of all, thank you very much for your immediate help! >>> >>> I downloaded the files and replaced the corresponding /usr/local/ >>> cm3/bin files, >>> modified cm3.cfg by replacing INSTALL_ROOT = "/usr/local/cm3- >>> i386/" with INSTALL_ROOT = "/usr/local/cm3/" >>> then in the full source (last version, 5.4.0) I did: scripts/do- >>> cm3-core.sh buildship >>> this is the result: >>> >>> root#./do-cm3-core.sh buildship >>> CM3C = >>> /Users/orsini/cm3/cm3-src-all-5.4.0/scripts/pkgmap.sh -c "cm3 - >>> build -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' && cm3 -ship >>> -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' " m3gc-simple m3core >>> libm3 patternmatching m3middle m3linker m3front m3quake m3cc cm3 >>> m3scanner m3tools m3cgcat m3cggen m3bundle bitvector digraph >>> parseparams realgeometry set slisp sortedtableextras table-list >>> tempfiles >>> === package /Users/orsini/cm3/cm3-src-all-5.4.0/m3-libs/m3gc- >>> simple === >>> +++ cm3 -build -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' && >>> cm3 -ship -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' +++ >>> --- building in I386_DARWIN --- >>> >>> new source -> compiling RTVM.c >>> new source -> compiling sysdeps.c >>> new source -> compiling accept.c >>> ../src/runtime/I386_DARWIN/accept.c: In function 'm3_accept': >>> ../src/runtime/I386_DARWIN/accept.c:13: warning: pointer targets >>> in passing argument 3 of 'accept' differ in signedness >>> new source -> compiling bind.c >>> new source -> compiling close.c >>> new source -> compiling connect.c >>> new source -> compiling dup.c >>> new source -> compiling dup2.c >>> new source -> compiling gethostbyaddr.c >>> new source -> compiling gethostbyname.c >>> new source -> compiling getpeername.c >>> ../src/runtime/I386_DARWIN/getpeername.c: In function >>> 'm3_getpeername': >>> ../src/runtime/I386_DARWIN/getpeername.c:13: warning: pointer >>> targets in passing argument 3 of 'getpeername' differ in signedness >>> new source -> compiling getsockname.c >>> ../src/runtime/I386_DARWIN/getsockname.c: In function >>> 'm3_getsockname': >>> ../src/runtime/I386_DARWIN/getsockname.c:13: warning: pointer >>> targets in passing argument 3 of 'getsockname' differ in signedness >>> new source -> compiling listen.c >>> new source -> compiling read.c >>> new source -> compiling recv.c >>> new source -> compiling recvfrom.c >>> ../src/runtime/I386_DARWIN/recvfrom.c: In function 'm3_recvfrom': >>> ../src/runtime/I386_DARWIN/recvfrom.c:15: warning: pointer >>> targets in passing argument 6 of 'recvfrom' differ in signedness >>> new source -> compiling select.c >>> new source -> compiling send.c >>> new source -> compiling sendto.c >>> new source -> compiling shutdown.c >>> new source -> compiling socket.c >>> new source -> compiling write.c >>> -> archiving libm3gcdefs.a >>> ld: common symbols not allowed with MH_DYLIB output format with >>> the -multi_module option >>> sysdeps.o definition of common _RTCSRC_FinishVM (size 16) >>> sysdeps.o definition of common _RTHeapRep_Fault (size 16) >>> /usr/bin/libtool: internal link edit command failed >>> --- shipping from I386_DARWIN --- >>> >>> . => /usr/local/cm3/pkg/m3gc-simple/I386_DARWIN >>> .M3EXPORTS libm3gcdefs.5.2.dylib"/Users/orsini/cm3/cm3- >>> src-all-5.4.0/m3-libs/m3gc-simple/I386_DARWIN/.M3SHIP", line 3: >>> quake runtime error: unable to copy "libm3gcdefs.5.2.dylib" to "/ >>> usr/local/cm3/pkg/m3gc-simple/I386_DARWIN/libm3gcdefs.5.2.dylib": >>> errno=2 >>> >>> --procedure-- -line- -file--- >>> install_file -- >>> 3 /Users/orsini/cm3/cm3-src-all-5.4.0/m3- >>> libs/m3gc-simple/I386_DARWIN/.M3SHIP >>> >>> Fatal Error: package build failed >>> *** execution of failed *** >>> >>> ====== >>> >>> >>> I noticed that not all the .c files in .../m3-libs/m3gc-simple/ >>> src/runtime/I386_DARWIN/ where compiled, but I do not know if >>> this is a normal behaviour. >>> >>> Thanks in advance for your time and patience! >>> >>> Cordially >>> >>> Renzo Orsini >>> >>> >>> On Jan 20, 2007, at 19:02, Darko wrote: >>> >>>> Have a look here: ftp://ftp.cs.purdue.edu/pub/hosking/m3/ >>>> I386_DARWIN/ >>>> >>>> There you'll find the bits you need for Mac Intel. Replace your >>>> existing cm3, cmcg and cm3.cfg with the ones there, then you can >>>> compile the basic libraries you need like m3core and libm3, but >>>> make sure you have the latest sources. >>>> >>>> I think they're the latest but Tony may have something more to >>>> say about that. >>>> >>>> Darko. >>>> >>>> >>>> >>>> On 21/01/2007, at 1:41 AM, Olaf Wagner wrote: >>>> >>>>> On Sat, Jan 20, 2007 at 03:05:55PM +0100, Renzo Orsini wrote: >>>>>> Hello, >>>>>> >>>>>> I installed cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz on an intel >>>>>> mac, then >>>>>> tried to a compile a Hello world program, but the compilation >>>>>> failed >>>>>> with the following message: >>>>>> >>>>>> pborsini:~/ProveModula3 orsini$ cm3 >>>>>> --- building in PPC_DARWIN --- >>>>>> >>>>>> new source -> compiling Main.m3 >>>>>> "../Main.m3", line 4: warning: potentially unhandled >>>>>> exception: IO.Error >>>>>> 1 warning encountered >>>>>> Main.ms:12:no such instruction: `mflr r0' >>>>>> Main.ms:13:no such instruction: `stmw r30,-8(r1)' >>>>>> Main.ms:14:no such instruction: `stw r0,8(r1)' >>>>>> Main.ms:15:no such instruction: `stwu r1,-96(r1)' >>>>>> Main.ms:16:no such instruction: `mr r30,r1' >>>>>> Main.ms:17:no such instruction: `bcl 20,31,"L00000000001$pb"' >>>>>> ... >>>>>> .... >>>>>> >>>>>> So I suppose there is PPC code to assemble and the Rosetta >>>>>> emulator >>>>>> for PPC on intel macs cannot do anything for this! >>>>>> >>>>>> Since I would like to port the Fibonacci language for databases, >>>>>> which is written in Modula-3, if I understand well the >>>>>> situation I >>>>>> should port the Modula-3 compiler by cross compiling it on a >>>>>> PPC mac, >>>>>> or something like that. >>>>>> >>>>>> I am asking you if you know about some effort of porting >>>>>> Modula-3 on >>>>>> intel macs, or at least if you let me know if this operation is >>>>>> possible (and also reasonably feasible in terms of time and >>>>>> expertise, given my teaching duties and my difficulties with >>>>>> assembler languages!), and, if so, if you can point me to the >>>>>> correct >>>>>> documentation to start with. Of course I will be very glad to >>>>>> give >>>>>> back to the community the result if I succeed! >>>>>> >>>>>> Thank you very much for your attention. >>>>>> >>>>>> Cordially >>>>>> >>>>>> Renzo Orsini >>>>>> Associate Professor >>>>>> Dipartimento di Informatica >>>>>> Universita' Ca' Foscari di Venezia >>>>> >>>>> Well, I wouldn't have thought that you were even able to install >>>>> the cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz system on an Intel machine; >>>>> it's surely not supposed to run on one. It shouldn't be too >>>>> difficult to get a port of the latest CM3 for Darwin on Intel >>>>> processors; I even think somebody was already working on it, >>>>> but I don't really remember who, so I forward your mail to >>>>> the m3devel list, in case others have already started such an >>>>> effort. >>>>> >>>>> Olaf >>>>> -- >>>>> elego Software Solutions GmbH HRB 77719 >>>>> Olaf Wagner E-Mail: wagner(at)elego.de >>>>> Ohmstra?e 9 Tel: +49 30 40 04 19 29 >>>>> 10179 Berlin Fax: +49 30 23 45 86 95 >>>>> Cranachstra?e 7 Tel: +49 30 85 58 01 81 >>>>> 12157 Berlin Fax: +49 30 85 58 01 88 >>>>> ------------------> WWW: http://www.elego-software-solutions.com >>>>> _______________________________________________ >>>>> M3devel mailing list >>>>> M3devel at elegosoft.com >>>>> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel >>> >> >> >> _______________________________________________ >> M3devel mailing list >> M3devel at elegosoft.com >> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel > > Antony Hosking | Associate Professor > Dept of Computer Sciences | Office: (765) 494-6001 > Purdue University | Mobile: (765) 427-5484 > 250 N. University Street | hosking at cs.purdue.edu > West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking > _--_|\ > / \ > \_.--._/ ) > v / > > From jayk123 at hotmail.com Sun Jan 21 05:18:38 2007 From: jayk123 at hotmail.com (j k) Date: Sun, 21 Jan 2007 04:18:38 +0000 Subject: [M3devel] Modula-3 on Windows and the C runtime? Message-ID: There are some issues with the C runtime on Windows. I don't have all the information but some. For example is msvcr80.dll redistributable? By folks only with a non-Express Edition? Install it next to every .exe or centrally? Using an .msi or the .exe that Microsoft provides? Do folks mind a solution where any use/install of Modula-3 first requires a quick free download/install from Microsoft? This is the easiest option and work well, except for the next point: Like even possibly cminstall.exe will fail with a cryptic error if the download/install isn't first done? Do folks mind using the static C runtime? That seems not good. It causes bloat and Microsoft can no longer bug-fix it. Are folks interested in eliminating the C runtime dependency? It is not super difficult but also not super trivial. Compiler intrinsics get you most of the functions including most/all of the floating point (not sure yet about ldexp), memcmp, memcpy. At least with the 8.0 compiler. I haven't experimented as much here with older compilers. setjmp is tricky. setjmp could/should be eliminated imho in favor of using the "structured exception handling" which is documented enough, but not trivial. The download in question is: http://www.microsoft.com/downloads/details.aspx?familyid=32BC1BEE-A3F9-4C13-9C99-220B62A191EE This is what is holding me back from making a "release" available. - Jay _________________________________________________________________ Invite your Hotmail contacts to join your friends list with Windows Live Spaces http://clk.atdmt.com/MSN/go/msnnkwsp0070000001msn/direct/01/?href=http://spaces.live.com/spacesapi.aspx?wx_action=create&wx_url=/friends.aspx&mkt=en-us From darko at darko.org Sun Jan 21 15:17:38 2007 From: darko at darko.org (Darko) Date: Sun, 21 Jan 2007 23:17:38 +0900 Subject: [M3devel] Re: porting m3 on intel mac In-Reply-To: <69645CDA-E215-4B81-BAEE-C45EC496E4C6@dsi.unive.it> References: <8A58B35B-22CD-42D5-BA19-5FBF5D3CF5CD@dsi.unive.it> <20070120164128.GA27790@elegosoft.com> <52EA8FC9-4E33-40FF-B041-5CEAE83BBDE7@darko.org> <6307E3CC-8E5F-4317-8A8E-7EADE20FEE54@darko.org> <1521F74A-AF0F-48C4-B0AA-4E7DB321DA62@cs.purdue.edu> <23B90155-784C-4A47-8EAD-1451AEC4C1B9@darko.org> <69645CDA-E215-4B81-BAEE-C45EC496E4C6@dsi.unive.it> Message-ID: <94308270-AE01-4839-989B-DE3C8EF47EE5@darko.org> I vaguely remember tweaking my config file because of something like that, if you diff my file with yours and find some differences they may get rid of those messages - I don't get them. Darko. -------------- next part -------------- A non-text attachment was scrubbed... Name: cm3.cfg Type: application/octet-stream Size: 12591 bytes Desc: not available URL: -------------- next part -------------- On 21/01/2007, at 9:59 PM, Renzo Orsini wrote: > Hello and lot of thanks! > > Everything is working really fine! > The configuration: MacBookPro, MacOSX 10.4.8, XCode 2.4.1 (gcc > 4.0.1), X11 installed, latest cm3 sources (with anonymous CVS), > The process: > 1. unpacked cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz > 2. installed as super-user (every answer left as default, the only > problem is the fact that motif is missing, ignoring) > 3. replacing cm3, cm3.cfg, cm3cg from ftp://ftp.cs.purdue.edu/pub/ > hosking/m3/I386_DARWIN > 3. running as su: > do-cm3-core.sh buildship > install-cm3-compiler.sh upgrade > do-cm3-std.sh buildship > everything is ok a part from producing about a zillion of assembler > (?) warnings ("xxx.ms:nnn:indirect jmp without `*'), > and failing at the end the compilation of package zeus (which I > suppose is an old issue) > > So, thank again to all and each of you, I am now very happy and > busy by bringing our old modula-3 software to the new century! > > Cordially, > > Renzo Orsini > > On Jan 21, 2007, at 0:33, Darko wrote: > >> The latest, 10.4.8, also the latest XCode, which I think updates >> gcc. You were addressing me weren't you? But Renzo might like to >> answer that question too. XCode weighs in at about 1G, by the way. >> >> On 21/01/2007, at 7:58 AM, Antony Hosking wrote: >> >>> What version of OSX are you using? >>> >>> On 20/01/2007, at 5:49 PM, Darko wrote: >>> >>>> No worries. I'm not familiar at all with those scripts. The >>>> problem you are having may be to do with not having the latest >>>> source, but it most probably has to do with the version of gcc >>>> that is active on your machine. C files are not compiled by cm3 >>>> but rather call gcc directly. I can't remember which version of >>>> gcc is the correct one, but mine currently is i686-apple-darwin8- >>>> gcc-4.0.1; also I can't remember the command line for changing >>>> gcc versions. Tony may be able to help re the correct version if >>>> 4.0.1 doesn't work. You may need to install the latest XCode >>>> from http://developer.apple.com if you don't have 4.01. >>>> >>>> I've cc'd the list because they're actually very helpful and my >>>> knowledge is limited... >>>> >>>> - Darko >>>> >>>> >>>> On 21/01/2007, at 6:58 AM, Renzo Orsini wrote: >>>> >>>>> First of all, thank you very much for your immediate help! >>>>> >>>>> I downloaded the files and replaced the corresponding /usr/ >>>>> local/cm3/bin files, >>>>> modified cm3.cfg by replacing INSTALL_ROOT = "/usr/local/cm3- >>>>> i386/" with INSTALL_ROOT = "/usr/local/cm3/" >>>>> then in the full source (last version, 5.4.0) I did: scripts/do- >>>>> cm3-core.sh buildship >>>>> this is the result: >>>>> >>>>> root#./do-cm3-core.sh buildship >>>>> CM3C = >>>>> /Users/orsini/cm3/cm3-src-all-5.4.0/scripts/pkgmap.sh -c "cm3 - >>>>> build -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' && cm3 - >>>>> ship -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' " m3gc-simple >>>>> m3core libm3 patternmatching m3middle m3linker m3front m3quake >>>>> m3cc cm3 m3scanner m3tools m3cgcat m3cggen m3bundle bitvector >>>>> digraph parseparams realgeometry set slisp sortedtableextras >>>>> table-list tempfiles >>>>> === package /Users/orsini/cm3/cm3-src-all-5.4.0/m3-libs/m3gc- >>>>> simple === >>>>> +++ cm3 -build -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' >>>>> && cm3 -ship -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' +++ >>>>> --- building in I386_DARWIN --- >>>>> >>>>> new source -> compiling RTVM.c >>>>> new source -> compiling sysdeps.c >>>>> new source -> compiling accept.c >>>>> ../src/runtime/I386_DARWIN/accept.c: In function 'm3_accept': >>>>> ../src/runtime/I386_DARWIN/accept.c:13: warning: pointer >>>>> targets in passing argument 3 of 'accept' differ in signedness >>>>> new source -> compiling bind.c >>>>> new source -> compiling close.c >>>>> new source -> compiling connect.c >>>>> new source -> compiling dup.c >>>>> new source -> compiling dup2.c >>>>> new source -> compiling gethostbyaddr.c >>>>> new source -> compiling gethostbyname.c >>>>> new source -> compiling getpeername.c >>>>> ../src/runtime/I386_DARWIN/getpeername.c: In function >>>>> 'm3_getpeername': >>>>> ../src/runtime/I386_DARWIN/getpeername.c:13: warning: pointer >>>>> targets in passing argument 3 of 'getpeername' differ in >>>>> signedness >>>>> new source -> compiling getsockname.c >>>>> ../src/runtime/I386_DARWIN/getsockname.c: In function >>>>> 'm3_getsockname': >>>>> ../src/runtime/I386_DARWIN/getsockname.c:13: warning: pointer >>>>> targets in passing argument 3 of 'getsockname' differ in >>>>> signedness >>>>> new source -> compiling listen.c >>>>> new source -> compiling read.c >>>>> new source -> compiling recv.c >>>>> new source -> compiling recvfrom.c >>>>> ../src/runtime/I386_DARWIN/recvfrom.c: In function 'm3_recvfrom': >>>>> ../src/runtime/I386_DARWIN/recvfrom.c:15: warning: pointer >>>>> targets in passing argument 6 of 'recvfrom' differ in signedness >>>>> new source -> compiling select.c >>>>> new source -> compiling send.c >>>>> new source -> compiling sendto.c >>>>> new source -> compiling shutdown.c >>>>> new source -> compiling socket.c >>>>> new source -> compiling write.c >>>>> -> archiving libm3gcdefs.a >>>>> ld: common symbols not allowed with MH_DYLIB output format with >>>>> the -multi_module option >>>>> sysdeps.o definition of common _RTCSRC_FinishVM (size 16) >>>>> sysdeps.o definition of common _RTHeapRep_Fault (size 16) >>>>> /usr/bin/libtool: internal link edit command failed >>>>> --- shipping from I386_DARWIN --- >>>>> >>>>> . => /usr/local/cm3/pkg/m3gc-simple/I386_DARWIN >>>>> .M3EXPORTS libm3gcdefs.5.2.dylib"/Users/orsini/cm3/cm3- >>>>> src-all-5.4.0/m3-libs/m3gc-simple/I386_DARWIN/.M3SHIP", line 3: >>>>> quake runtime error: unable to copy "libm3gcdefs.5.2.dylib" to >>>>> "/usr/local/cm3/pkg/m3gc-simple/I386_DARWIN/libm3gcdefs. >>>>> 5.2.dylib": errno=2 >>>>> >>>>> --procedure-- -line- -file--- >>>>> install_file -- >>>>> 3 /Users/orsini/cm3/cm3-src-all-5.4.0/m3- >>>>> libs/m3gc-simple/I386_DARWIN/.M3SHIP >>>>> >>>>> Fatal Error: package build failed >>>>> *** execution of failed *** >>>>> >>>>> ====== >>>>> >>>>> >>>>> I noticed that not all the .c files in .../m3-libs/m3gc-simple/ >>>>> src/runtime/I386_DARWIN/ where compiled, but I do not know if >>>>> this is a normal behaviour. >>>>> >>>>> Thanks in advance for your time and patience! >>>>> >>>>> Cordially >>>>> >>>>> Renzo Orsini >>>>> >>>>> >>>>> On Jan 20, 2007, at 19:02, Darko wrote: >>>>> >>>>>> Have a look here: ftp://ftp.cs.purdue.edu/pub/hosking/m3/ >>>>>> I386_DARWIN/ >>>>>> >>>>>> There you'll find the bits you need for Mac Intel. Replace >>>>>> your existing cm3, cmcg and cm3.cfg with the ones there, then >>>>>> you can compile the basic libraries you need like m3core and >>>>>> libm3, but make sure you have the latest sources. >>>>>> >>>>>> I think they're the latest but Tony may have something more to >>>>>> say about that. >>>>>> >>>>>> Darko. >>>>>> >>>>>> >>>>>> >>>>>> On 21/01/2007, at 1:41 AM, Olaf Wagner wrote: >>>>>> >>>>>>> On Sat, Jan 20, 2007 at 03:05:55PM +0100, Renzo Orsini wrote: >>>>>>>> Hello, >>>>>>>> >>>>>>>> I installed cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz on an intel >>>>>>>> mac, then >>>>>>>> tried to a compile a Hello world program, but the >>>>>>>> compilation failed >>>>>>>> with the following message: >>>>>>>> >>>>>>>> pborsini:~/ProveModula3 orsini$ cm3 >>>>>>>> --- building in PPC_DARWIN --- >>>>>>>> >>>>>>>> new source -> compiling Main.m3 >>>>>>>> "../Main.m3", line 4: warning: potentially unhandled >>>>>>>> exception: IO.Error >>>>>>>> 1 warning encountered >>>>>>>> Main.ms:12:no such instruction: `mflr r0' >>>>>>>> Main.ms:13:no such instruction: `stmw r30,-8(r1)' >>>>>>>> Main.ms:14:no such instruction: `stw r0,8(r1)' >>>>>>>> Main.ms:15:no such instruction: `stwu r1,-96(r1)' >>>>>>>> Main.ms:16:no such instruction: `mr r30,r1' >>>>>>>> Main.ms:17:no such instruction: `bcl 20,31,"L00000000001$pb"' >>>>>>>> ... >>>>>>>> .... >>>>>>>> >>>>>>>> So I suppose there is PPC code to assemble and the Rosetta >>>>>>>> emulator >>>>>>>> for PPC on intel macs cannot do anything for this! >>>>>>>> >>>>>>>> Since I would like to port the Fibonacci language for >>>>>>>> databases, >>>>>>>> which is written in Modula-3, if I understand well the >>>>>>>> situation I >>>>>>>> should port the Modula-3 compiler by cross compiling it on a >>>>>>>> PPC mac, >>>>>>>> or something like that. >>>>>>>> >>>>>>>> I am asking you if you know about some effort of porting >>>>>>>> Modula-3 on >>>>>>>> intel macs, or at least if you let me know if this operation is >>>>>>>> possible (and also reasonably feasible in terms of time and >>>>>>>> expertise, given my teaching duties and my difficulties with >>>>>>>> assembler languages!), and, if so, if you can point me to >>>>>>>> the correct >>>>>>>> documentation to start with. Of course I will be very glad >>>>>>>> to give >>>>>>>> back to the community the result if I succeed! >>>>>>>> >>>>>>>> Thank you very much for your attention. >>>>>>>> >>>>>>>> Cordially >>>>>>>> >>>>>>>> Renzo Orsini >>>>>>>> Associate Professor >>>>>>>> Dipartimento di Informatica >>>>>>>> Universita' Ca' Foscari di Venezia >>>>>>> >>>>>>> Well, I wouldn't have thought that you were even able to install >>>>>>> the cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz system on an Intel >>>>>>> machine; >>>>>>> it's surely not supposed to run on one. It shouldn't be too >>>>>>> difficult to get a port of the latest CM3 for Darwin on Intel >>>>>>> processors; I even think somebody was already working on it, >>>>>>> but I don't really remember who, so I forward your mail to >>>>>>> the m3devel list, in case others have already started such an >>>>>>> effort. >>>>>>> >>>>>>> Olaf >>>>>>> -- >>>>>>> elego Software Solutions GmbH HRB >>>>>>> 77719 >>>>>>> Olaf Wagner E-Mail: wagner(at) >>>>>>> elego.de >>>>>>> Ohmstra?e 9 Tel: +49 30 40 04 >>>>>>> 19 29 >>>>>>> 10179 Berlin Fax: +49 30 23 45 >>>>>>> 86 95 >>>>>>> Cranachstra?e 7 Tel: +49 30 85 58 >>>>>>> 01 81 >>>>>>> 12157 Berlin Fax: +49 30 85 58 >>>>>>> 01 88 >>>>>>> ------------------> WWW: http://www.elego-software- >>>>>>> solutions.com >>>>>>> _______________________________________________ >>>>>>> M3devel mailing list >>>>>>> M3devel at elegosoft.com >>>>>>> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel >>>>> >>>> >>>> >>>> _______________________________________________ >>>> M3devel mailing list >>>> M3devel at elegosoft.com >>>> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel >>> >>> Antony Hosking | Associate Professor >>> Dept of Computer Sciences | Office: (765) 494-6001 >>> Purdue University | Mobile: (765) 427-5484 >>> 250 N. University Street | hosking at cs.purdue.edu >>> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking >>> _--_|\ >>> / \ >>> \_.--._/ ) >>> v / >>> >>> > From hosking at cs.purdue.edu Sun Jan 21 21:49:42 2007 From: hosking at cs.purdue.edu (Antony Hosking) Date: Sun, 21 Jan 2007 15:49:42 -0500 Subject: [M3devel] Re: porting m3 on intel mac In-Reply-To: <69645CDA-E215-4B81-BAEE-C45EC496E4C6@dsi.unive.it> References: <8A58B35B-22CD-42D5-BA19-5FBF5D3CF5CD@dsi.unive.it> <20070120164128.GA27790@elegosoft.com> <52EA8FC9-4E33-40FF-B041-5CEAE83BBDE7@darko.org> <6307E3CC-8E5F-4317-8A8E-7EADE20FEE54@darko.org> <1521F74A-AF0F-48C4-B0AA-4E7DB321DA62@cs.purdue.edu> <23B90155-784C-4A47-8EAD-1451AEC4C1B9@darko.org> <69645CDA-E215-4B81-BAEE-C45EC496E4C6@dsi.unive.it> Message-ID: On 21/01/2007, at 7:59 AM, Renzo Orsini wrote: > Hello and lot of thanks! > > Everything is working really fine! > The configuration: MacBookPro, MacOSX 10.4.8, XCode 2.4.1 (gcc > 4.0.1), X11 installed, latest cm3 sources (with anonymous CVS), > The process: > 1. unpacked cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz > 2. installed as super-user (every answer left as default, the only > problem is the fact that motif is missing, ignoring) > 3. replacing cm3, cm3.cfg, cm3cg from ftp://ftp.cs.purdue.edu/pub/ > hosking/m3/I386_DARWIN > 3. running as su: > do-cm3-core.sh buildship > install-cm3-compiler.sh upgrade > do-cm3-std.sh buildship > everything is ok a part from producing about a zillion of assembler > (?) warnings ("xxx.ms:nnn:indirect jmp without `*'), > and failing at the end the compilation of package zeus (which I > suppose is an old issue) That's odd since my builds go through cleanly. > > So, thank again to all and each of you, I am now very happy and > busy by bringing our old modula-3 software to the new century! > > Cordially, > > Renzo Orsini > > On Jan 21, 2007, at 0:33, Darko wrote: > >> The latest, 10.4.8, also the latest XCode, which I think updates >> gcc. You were addressing me weren't you? But Renzo might like to >> answer that question too. XCode weighs in at about 1G, by the way. >> >> On 21/01/2007, at 7:58 AM, Antony Hosking wrote: >> >>> What version of OSX are you using? >>> >>> On 20/01/2007, at 5:49 PM, Darko wrote: >>> >>>> No worries. I'm not familiar at all with those scripts. The >>>> problem you are having may be to do with not having the latest >>>> source, but it most probably has to do with the version of gcc >>>> that is active on your machine. C files are not compiled by cm3 >>>> but rather call gcc directly. I can't remember which version of >>>> gcc is the correct one, but mine currently is i686-apple-darwin8- >>>> gcc-4.0.1; also I can't remember the command line for changing >>>> gcc versions. Tony may be able to help re the correct version if >>>> 4.0.1 doesn't work. You may need to install the latest XCode >>>> from http://developer.apple.com if you don't have 4.01. >>>> >>>> I've cc'd the list because they're actually very helpful and my >>>> knowledge is limited... >>>> >>>> - Darko >>>> >>>> >>>> On 21/01/2007, at 6:58 AM, Renzo Orsini wrote: >>>> >>>>> First of all, thank you very much for your immediate help! >>>>> >>>>> I downloaded the files and replaced the corresponding /usr/ >>>>> local/cm3/bin files, >>>>> modified cm3.cfg by replacing INSTALL_ROOT = "/usr/local/cm3- >>>>> i386/" with INSTALL_ROOT = "/usr/local/cm3/" >>>>> then in the full source (last version, 5.4.0) I did: scripts/do- >>>>> cm3-core.sh buildship >>>>> this is the result: >>>>> >>>>> root#./do-cm3-core.sh buildship >>>>> CM3C = >>>>> /Users/orsini/cm3/cm3-src-all-5.4.0/scripts/pkgmap.sh -c "cm3 - >>>>> build -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' && cm3 - >>>>> ship -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' " m3gc-simple >>>>> m3core libm3 patternmatching m3middle m3linker m3front m3quake >>>>> m3cc cm3 m3scanner m3tools m3cgcat m3cggen m3bundle bitvector >>>>> digraph parseparams realgeometry set slisp sortedtableextras >>>>> table-list tempfiles >>>>> === package /Users/orsini/cm3/cm3-src-all-5.4.0/m3-libs/m3gc- >>>>> simple === >>>>> +++ cm3 -build -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' >>>>> && cm3 -ship -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' +++ >>>>> --- building in I386_DARWIN --- >>>>> >>>>> new source -> compiling RTVM.c >>>>> new source -> compiling sysdeps.c >>>>> new source -> compiling accept.c >>>>> ../src/runtime/I386_DARWIN/accept.c: In function 'm3_accept': >>>>> ../src/runtime/I386_DARWIN/accept.c:13: warning: pointer >>>>> targets in passing argument 3 of 'accept' differ in signedness >>>>> new source -> compiling bind.c >>>>> new source -> compiling close.c >>>>> new source -> compiling connect.c >>>>> new source -> compiling dup.c >>>>> new source -> compiling dup2.c >>>>> new source -> compiling gethostbyaddr.c >>>>> new source -> compiling gethostbyname.c >>>>> new source -> compiling getpeername.c >>>>> ../src/runtime/I386_DARWIN/getpeername.c: In function >>>>> 'm3_getpeername': >>>>> ../src/runtime/I386_DARWIN/getpeername.c:13: warning: pointer >>>>> targets in passing argument 3 of 'getpeername' differ in >>>>> signedness >>>>> new source -> compiling getsockname.c >>>>> ../src/runtime/I386_DARWIN/getsockname.c: In function >>>>> 'm3_getsockname': >>>>> ../src/runtime/I386_DARWIN/getsockname.c:13: warning: pointer >>>>> targets in passing argument 3 of 'getsockname' differ in >>>>> signedness >>>>> new source -> compiling listen.c >>>>> new source -> compiling read.c >>>>> new source -> compiling recv.c >>>>> new source -> compiling recvfrom.c >>>>> ../src/runtime/I386_DARWIN/recvfrom.c: In function 'm3_recvfrom': >>>>> ../src/runtime/I386_DARWIN/recvfrom.c:15: warning: pointer >>>>> targets in passing argument 6 of 'recvfrom' differ in signedness >>>>> new source -> compiling select.c >>>>> new source -> compiling send.c >>>>> new source -> compiling sendto.c >>>>> new source -> compiling shutdown.c >>>>> new source -> compiling socket.c >>>>> new source -> compiling write.c >>>>> -> archiving libm3gcdefs.a >>>>> ld: common symbols not allowed with MH_DYLIB output format with >>>>> the -multi_module option >>>>> sysdeps.o definition of common _RTCSRC_FinishVM (size 16) >>>>> sysdeps.o definition of common _RTHeapRep_Fault (size 16) >>>>> /usr/bin/libtool: internal link edit command failed >>>>> --- shipping from I386_DARWIN --- >>>>> >>>>> . => /usr/local/cm3/pkg/m3gc-simple/I386_DARWIN >>>>> .M3EXPORTS libm3gcdefs.5.2.dylib"/Users/orsini/cm3/cm3- >>>>> src-all-5.4.0/m3-libs/m3gc-simple/I386_DARWIN/.M3SHIP", line 3: >>>>> quake runtime error: unable to copy "libm3gcdefs.5.2.dylib" to >>>>> "/usr/local/cm3/pkg/m3gc-simple/I386_DARWIN/libm3gcdefs. >>>>> 5.2.dylib": errno=2 >>>>> >>>>> --procedure-- -line- -file--- >>>>> install_file -- >>>>> 3 /Users/orsini/cm3/cm3-src-all-5.4.0/m3- >>>>> libs/m3gc-simple/I386_DARWIN/.M3SHIP >>>>> >>>>> Fatal Error: package build failed >>>>> *** execution of failed *** >>>>> >>>>> ====== >>>>> >>>>> >>>>> I noticed that not all the .c files in .../m3-libs/m3gc-simple/ >>>>> src/runtime/I386_DARWIN/ where compiled, but I do not know if >>>>> this is a normal behaviour. >>>>> >>>>> Thanks in advance for your time and patience! >>>>> >>>>> Cordially >>>>> >>>>> Renzo Orsini >>>>> >>>>> >>>>> On Jan 20, 2007, at 19:02, Darko wrote: >>>>> >>>>>> Have a look here: ftp://ftp.cs.purdue.edu/pub/hosking/m3/ >>>>>> I386_DARWIN/ >>>>>> >>>>>> There you'll find the bits you need for Mac Intel. Replace >>>>>> your existing cm3, cmcg and cm3.cfg with the ones there, then >>>>>> you can compile the basic libraries you need like m3core and >>>>>> libm3, but make sure you have the latest sources. >>>>>> >>>>>> I think they're the latest but Tony may have something more to >>>>>> say about that. >>>>>> >>>>>> Darko. >>>>>> >>>>>> >>>>>> >>>>>> On 21/01/2007, at 1:41 AM, Olaf Wagner wrote: >>>>>> >>>>>>> On Sat, Jan 20, 2007 at 03:05:55PM +0100, Renzo Orsini wrote: >>>>>>>> Hello, >>>>>>>> >>>>>>>> I installed cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz on an intel >>>>>>>> mac, then >>>>>>>> tried to a compile a Hello world program, but the >>>>>>>> compilation failed >>>>>>>> with the following message: >>>>>>>> >>>>>>>> pborsini:~/ProveModula3 orsini$ cm3 >>>>>>>> --- building in PPC_DARWIN --- >>>>>>>> >>>>>>>> new source -> compiling Main.m3 >>>>>>>> "../Main.m3", line 4: warning: potentially unhandled >>>>>>>> exception: IO.Error >>>>>>>> 1 warning encountered >>>>>>>> Main.ms:12:no such instruction: `mflr r0' >>>>>>>> Main.ms:13:no such instruction: `stmw r30,-8(r1)' >>>>>>>> Main.ms:14:no such instruction: `stw r0,8(r1)' >>>>>>>> Main.ms:15:no such instruction: `stwu r1,-96(r1)' >>>>>>>> Main.ms:16:no such instruction: `mr r30,r1' >>>>>>>> Main.ms:17:no such instruction: `bcl 20,31,"L00000000001$pb"' >>>>>>>> ... >>>>>>>> .... >>>>>>>> >>>>>>>> So I suppose there is PPC code to assemble and the Rosetta >>>>>>>> emulator >>>>>>>> for PPC on intel macs cannot do anything for this! >>>>>>>> >>>>>>>> Since I would like to port the Fibonacci language for >>>>>>>> databases, >>>>>>>> which is written in Modula-3, if I understand well the >>>>>>>> situation I >>>>>>>> should port the Modula-3 compiler by cross compiling it on a >>>>>>>> PPC mac, >>>>>>>> or something like that. >>>>>>>> >>>>>>>> I am asking you if you know about some effort of porting >>>>>>>> Modula-3 on >>>>>>>> intel macs, or at least if you let me know if this operation is >>>>>>>> possible (and also reasonably feasible in terms of time and >>>>>>>> expertise, given my teaching duties and my difficulties with >>>>>>>> assembler languages!), and, if so, if you can point me to >>>>>>>> the correct >>>>>>>> documentation to start with. Of course I will be very glad >>>>>>>> to give >>>>>>>> back to the community the result if I succeed! >>>>>>>> >>>>>>>> Thank you very much for your attention. >>>>>>>> >>>>>>>> Cordially >>>>>>>> >>>>>>>> Renzo Orsini >>>>>>>> Associate Professor >>>>>>>> Dipartimento di Informatica >>>>>>>> Universita' Ca' Foscari di Venezia >>>>>>> >>>>>>> Well, I wouldn't have thought that you were even able to install >>>>>>> the cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz system on an Intel >>>>>>> machine; >>>>>>> it's surely not supposed to run on one. It shouldn't be too >>>>>>> difficult to get a port of the latest CM3 for Darwin on Intel >>>>>>> processors; I even think somebody was already working on it, >>>>>>> but I don't really remember who, so I forward your mail to >>>>>>> the m3devel list, in case others have already started such an >>>>>>> effort. >>>>>>> >>>>>>> Olaf >>>>>>> -- >>>>>>> elego Software Solutions GmbH HRB >>>>>>> 77719 >>>>>>> Olaf Wagner E-Mail: wagner(at) >>>>>>> elego.de >>>>>>> Ohmstra?e 9 Tel: +49 30 40 04 >>>>>>> 19 29 >>>>>>> 10179 Berlin Fax: +49 30 23 45 >>>>>>> 86 95 >>>>>>> Cranachstra?e 7 Tel: +49 30 85 58 >>>>>>> 01 81 >>>>>>> 12157 Berlin Fax: +49 30 85 58 >>>>>>> 01 88 >>>>>>> ------------------> WWW: http://www.elego-software- >>>>>>> solutions.com >>>>>>> _______________________________________________ >>>>>>> M3devel mailing list >>>>>>> M3devel at elegosoft.com >>>>>>> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel >>>>> >>>> >>>> >>>> _______________________________________________ >>>> M3devel mailing list >>>> M3devel at elegosoft.com >>>> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel >>> >>> Antony Hosking | Associate Professor >>> Dept of Computer Sciences | Office: (765) 494-6001 >>> Purdue University | Mobile: (765) 427-5484 >>> 250 N. University Street | hosking at cs.purdue.edu >>> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking >>> _--_|\ >>> / \ >>> \_.--._/ ) >>> v / >>> >>> > Antony Hosking | Associate Professor Dept of Computer Sciences | Office: (765) 494-6001 Purdue University | Mobile: (765) 427-5484 250 N. University Street | hosking at cs.purdue.edu West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking _--_|\ / \ \_.--._/ ) v / From hosking at cs.purdue.edu Sun Jan 21 22:57:41 2007 From: hosking at cs.purdue.edu (Antony Hosking) Date: Sun, 21 Jan 2007 16:57:41 -0500 Subject: [M3devel] Re: porting m3 on intel mac In-Reply-To: <4206B526-A4CF-430B-AE8C-086D27615A79@dsi.unive.it> References: <8A58B35B-22CD-42D5-BA19-5FBF5D3CF5CD@dsi.unive.it> <20070120164128.GA27790@elegosoft.com> <52EA8FC9-4E33-40FF-B041-5CEAE83BBDE7@darko.org> <6307E3CC-8E5F-4317-8A8E-7EADE20FEE54@darko.org> <1521F74A-AF0F-48C4-B0AA-4E7DB321DA62@cs.purdue.edu> <23B90155-784C-4A47-8EAD-1451AEC4C1B9@darko.org> <69645CDA-E215-4B81-BAEE-C45EC496E4C6@dsi.unive.it> <5C13EB47-D241-438A-BE6F-BBD30AF002A4@dsi.unive.it> <9125FF3E-5D5D-4DE0-95DC-DCD997D198C1@cs.purdue.edu> <4206B526-A4CF-430B-AE8C-086D27615A79@dsi.unive.it> Message-ID: <722DDD36-2973-44B2-91BF-8487DA744D6C@cs.purdue.edu> For some reason your .stabs entries are different than mine, but otherwise the assembler files are the same. Are you using the cm3cg and cm3.cfg from my ftp site? Here is the version of the assembler that I have on my Intel Mac: Apple Computer, Inc. version cctools-590.42.1.obj~1, GNU assembler version 1.38 With respect to zeus, can you build with -verbose in the zeus directory and send me the output? Sounds like one of the tools is not getting built properly. On 21/01/2007, at 4:47 PM, Renzo Orsini wrote: > You can find in the attachment the program and the compilation. > > Renzo > > > > On Jan 21, 2007, at 22:34, Antony Hosking wrote: > >> >> On 21/01/2007, at 4:27 PM, Renzo Orsini wrote: >> >>> On Jan 21, 2007, at 21:49, Antony Hosking wrote: >>> >>>> >>>> On 21/01/2007, at 7:59 AM, Renzo Orsini wrote: >>>> >>>>> Hello and lot of thanks! >>>>> >>>>> Everything is working really fine! >>>>> The configuration: MacBookPro, MacOSX 10.4.8, XCode 2.4.1 (gcc >>>>> 4.0.1), X11 installed, latest cm3 sources (with anonymous CVS), >>>>> The process: >>>>> 1. unpacked cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz >>>>> 2. installed as super-user (every answer left as default, the >>>>> only problem is the fact that motif is missing, ignoring) >>>>> 3. replacing cm3, cm3.cfg, cm3cg from ftp://ftp.cs.purdue.edu/ >>>>> pub/hosking/m3/I386_DARWIN >>>>> 3. running as su: >>>>> do-cm3-core.sh buildship >>>>> install-cm3-compiler.sh upgrade >>>>> do-cm3-std.sh buildship >>>>> everything is ok a part from producing about a zillion of >>>>> assembler (?) warnings ("xxx.ms:nnn:indirect jmp without `*'), >>>>> and failing at the end the compilation of package zeus (which I >>>>> suppose is an old issue) >>>> >>>> That's odd since my builds go through cleanly. >>> >>> This is an example of the strange "indirect jump" message: >>> >>> pborsini:~/ProveModula3 orsini$ cat Main.m3 >>> MODULE Main; IMPORT IO; BEGIN IO.Put("Hello World\n"); END Main. >>> pborsini:~/ProveModula3 orsini$ cm3 >>> --- building in I386_DARWIN --- >>> new source -> compiling Main.m3 >>> Main.ms:101:indirect jmp without `*' >>> -> linking prog >>> _m3main.ms:74:indirect jmp without `*' >>> _m3main.ms:89:indirect jmp without `*' >>> _m3main.ms:108:indirect jmp without `*' >>> pborsini:~/ProveModula3 orsini$ ./I386_DARWIN/prog >>> Hello World >>> >>> maybe there is some problem with the linker parameters, however >>> the progrum runs ok. >> >> Can you compile with "-keep" and send me the relevant .ms file? I >> can compare with mine. >> >>> >>> For what concerns zeus: the following is the output of cm3: >>> >>> === package /Users/orsini/modula3/cvsstuff/cm3/m3-ui/zeus === >>> +++ cm3 -build -override -DROOT='/Users/orsini/modula3/cvsstuff/ >>> cm3' +++ >>> --- building in I386_DARWIN --- >>> >>> new source -> compiling RemoteView_T_v1.i3 >>> "../I386_DARWIN/RemoteView_T_v1.i3", line 1: syntax error: >>> missing INTERFACE or MODULE keyword >>> "../I386_DARWIN/RemoteView_T_v1.i3", line 1: unable to find >>> interface () >>> "../I386_DARWIN/RemoteView_T_v1.i3", line 1: warning: file name >>> (RemoteView_T_v1.i3) doesn't match module name () >>> 2 errors and 1 warning encountered >>> new source -> compiling RemoteView_T_v1.m3 >>> "../I386_DARWIN/RemoteView_T_v1.m3", line 1: syntax error: >>> missing INTERFACE or MODULE keyword >>> "../I386_DARWIN/RemoteView_T_v1.m3", line 1: unable to find >>> interface () >>> "../I386_DARWIN/RemoteView_T_v1.m3", line 1: warning: file name >>> (RemoteView_T_v1.m3) doesn't match module name () >>> 2 errors and 1 warning encountered >>> compilation failed => not building library "libm3zeus.a" >>> Fatal Error: package build failed >>> *** execution of failed *** >>> >>> (and the files RemoteView_T_v1.i3 and RemoteView_T_v1.m3 are >>> empty in I386_DARWIN, and they do not exists in src) >>> >>> Several other packages cannot be compiled, like many obliq ones, >>> webvt, June and mentor. >>> >>> However the compiler seems to work for compiling my stuff, >>> altough I have to make a few corrections and debugging. >> >> This sounds problematic since it implies that the generators for >> those files are not working correctly. (If you run with "- >> commands" you'll see which generator programs are being used. >> >>> >>> Thanks, >>> >>> Renzo >>> >>>> >>>>> >>>>> So, thank again to all and each of you, I am now very happy and >>>>> busy by bringing our old modula-3 software to the new century! >>>>> >>>>> Cordially, >>>>> >>>>> Renzo Orsini >>>>> >>>>> On Jan 21, 2007, at 0:33, Darko wrote: >>>>> >>>>>> The latest, 10.4.8, also the latest XCode, which I think >>>>>> updates gcc. You were addressing me weren't you? But Renzo >>>>>> might like to answer that question too. XCode weighs in at >>>>>> about 1G, by the way. >>>>>> >>>>>> On 21/01/2007, at 7:58 AM, Antony Hosking wrote: >>>>>> >>>>>>> What version of OSX are you using? >>>>>>> >>>>>>> On 20/01/2007, at 5:49 PM, Darko wrote: >>>>>>> >>>>>>>> No worries. I'm not familiar at all with those scripts. The >>>>>>>> problem you are having may be to do with not having the >>>>>>>> latest source, but it most probably has to do with the >>>>>>>> version of gcc that is active on your machine. C files are >>>>>>>> not compiled by cm3 but rather call gcc directly. I can't >>>>>>>> remember which version of gcc is the correct one, but mine >>>>>>>> currently is i686-apple-darwin8-gcc-4.0.1; also I can't >>>>>>>> remember the command line for changing gcc versions. Tony >>>>>>>> may be able to help re the correct version if 4.0.1 doesn't >>>>>>>> work. You may need to install the latest XCode from http:// >>>>>>>> developer.apple.com if you don't have 4.01. >>>>>>>> >>>>>>>> I've cc'd the list because they're actually very helpful and >>>>>>>> my knowledge is limited... >>>>>>>> >>>>>>>> - Darko >>>>>>>> >>>>>>>> >>>>>>>> On 21/01/2007, at 6:58 AM, Renzo Orsini wrote: >>>>>>>> >>>>>>>>> First of all, thank you very much for your immediate help! >>>>>>>>> >>>>>>>>> I downloaded the files and replaced the corresponding /usr/ >>>>>>>>> local/cm3/bin files, >>>>>>>>> modified cm3.cfg by replacing INSTALL_ROOT = "/usr/local/ >>>>>>>>> cm3-i386/" with INSTALL_ROOT = "/usr/local/cm3/" >>>>>>>>> then in the full source (last version, 5.4.0) I did: >>>>>>>>> scripts/do-cm3-core.sh buildship >>>>>>>>> this is the result: >>>>>>>>> >>>>>>>>> root#./do-cm3-core.sh buildship >>>>>>>>> CM3C = >>>>>>>>> /Users/orsini/cm3/cm3-src-all-5.4.0/scripts/pkgmap.sh -c >>>>>>>>> "cm3 -build -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' >>>>>>>>> && cm3 -ship -DROOT='/Users/orsini/cm3/cm3-src-all-5.4.0' " >>>>>>>>> m3gc-simple m3core libm3 patternmatching m3middle m3linker >>>>>>>>> m3front m3quake m3cc cm3 m3scanner m3tools m3cgcat m3cggen >>>>>>>>> m3bundle bitvector digraph parseparams realgeometry set >>>>>>>>> slisp sortedtableextras table-list tempfiles >>>>>>>>> === package /Users/orsini/cm3/cm3-src-all-5.4.0/m3-libs/ >>>>>>>>> m3gc-simple === >>>>>>>>> +++ cm3 -build -DROOT='/Users/orsini/cm3/cm3-src- >>>>>>>>> all-5.4.0' && cm3 -ship -DROOT='/Users/orsini/cm3/cm3-src- >>>>>>>>> all-5.4.0' +++ >>>>>>>>> --- building in I386_DARWIN --- >>>>>>>>> >>>>>>>>> new source -> compiling RTVM.c >>>>>>>>> new source -> compiling sysdeps.c >>>>>>>>> new source -> compiling accept.c >>>>>>>>> ../src/runtime/I386_DARWIN/accept.c: In function 'm3_accept': >>>>>>>>> ../src/runtime/I386_DARWIN/accept.c:13: warning: pointer >>>>>>>>> targets in passing argument 3 of 'accept' differ in signedness >>>>>>>>> new source -> compiling bind.c >>>>>>>>> new source -> compiling close.c >>>>>>>>> new source -> compiling connect.c >>>>>>>>> new source -> compiling dup.c >>>>>>>>> new source -> compiling dup2.c >>>>>>>>> new source -> compiling gethostbyaddr.c >>>>>>>>> new source -> compiling gethostbyname.c >>>>>>>>> new source -> compiling getpeername.c >>>>>>>>> ../src/runtime/I386_DARWIN/getpeername.c: In function >>>>>>>>> 'm3_getpeername': >>>>>>>>> ../src/runtime/I386_DARWIN/getpeername.c:13: warning: >>>>>>>>> pointer targets in passing argument 3 of 'getpeername' >>>>>>>>> differ in signedness >>>>>>>>> new source -> compiling getsockname.c >>>>>>>>> ../src/runtime/I386_DARWIN/getsockname.c: In function >>>>>>>>> 'm3_getsockname': >>>>>>>>> ../src/runtime/I386_DARWIN/getsockname.c:13: warning: >>>>>>>>> pointer targets in passing argument 3 of 'getsockname' >>>>>>>>> differ in signedness >>>>>>>>> new source -> compiling listen.c >>>>>>>>> new source -> compiling read.c >>>>>>>>> new source -> compiling recv.c >>>>>>>>> new source -> compiling recvfrom.c >>>>>>>>> ../src/runtime/I386_DARWIN/recvfrom.c: In function >>>>>>>>> 'm3_recvfrom': >>>>>>>>> ../src/runtime/I386_DARWIN/recvfrom.c:15: warning: pointer >>>>>>>>> targets in passing argument 6 of 'recvfrom' differ in >>>>>>>>> signedness >>>>>>>>> new source -> compiling select.c >>>>>>>>> new source -> compiling send.c >>>>>>>>> new source -> compiling sendto.c >>>>>>>>> new source -> compiling shutdown.c >>>>>>>>> new source -> compiling socket.c >>>>>>>>> new source -> compiling write.c >>>>>>>>> -> archiving libm3gcdefs.a >>>>>>>>> ld: common symbols not allowed with MH_DYLIB output format >>>>>>>>> with the -multi_module option >>>>>>>>> sysdeps.o definition of common _RTCSRC_FinishVM (size 16) >>>>>>>>> sysdeps.o definition of common _RTHeapRep_Fault (size 16) >>>>>>>>> /usr/bin/libtool: internal link edit command failed >>>>>>>>> --- shipping from I386_DARWIN --- >>>>>>>>> >>>>>>>>> . => /usr/local/cm3/pkg/m3gc-simple/I386_DARWIN >>>>>>>>> .M3EXPORTS libm3gcdefs.5.2.dylib"/Users/orsini/cm3/ >>>>>>>>> cm3-src-all-5.4.0/m3-libs/m3gc-simple/I386_DARWIN/.M3SHIP", >>>>>>>>> line 3: quake runtime error: unable to copy "libm3gcdefs. >>>>>>>>> 5.2.dylib" to "/usr/local/cm3/pkg/m3gc-simple/I386_DARWIN/ >>>>>>>>> libm3gcdefs.5.2.dylib": errno=2 >>>>>>>>> >>>>>>>>> --procedure-- -line- -file--- >>>>>>>>> install_file -- >>>>>>>>> 3 /Users/orsini/cm3/cm3-src-all-5.4.0/ >>>>>>>>> m3-libs/m3gc-simple/I386_DARWIN/.M3SHIP >>>>>>>>> >>>>>>>>> Fatal Error: package build failed >>>>>>>>> *** execution of failed *** >>>>>>>>> >>>>>>>>> ====== >>>>>>>>> >>>>>>>>> >>>>>>>>> I noticed that not all the .c files in .../m3-libs/m3gc- >>>>>>>>> simple/src/runtime/I386_DARWIN/ where compiled, but I do >>>>>>>>> not know if this is a normal behaviour. >>>>>>>>> >>>>>>>>> Thanks in advance for your time and patience! >>>>>>>>> >>>>>>>>> Cordially >>>>>>>>> >>>>>>>>> Renzo Orsini >>>>>>>>> >>>>>>>>> >>>>>>>>> On Jan 20, 2007, at 19:02, Darko wrote: >>>>>>>>> >>>>>>>>>> Have a look here: ftp://ftp.cs.purdue.edu/pub/hosking/m3/ >>>>>>>>>> I386_DARWIN/ >>>>>>>>>> >>>>>>>>>> There you'll find the bits you need for Mac Intel. Replace >>>>>>>>>> your existing cm3, cmcg and cm3.cfg with the ones there, >>>>>>>>>> then you can compile the basic libraries you need like >>>>>>>>>> m3core and libm3, but make sure you have the latest sources. >>>>>>>>>> >>>>>>>>>> I think they're the latest but Tony may have something >>>>>>>>>> more to say about that. >>>>>>>>>> >>>>>>>>>> Darko. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On 21/01/2007, at 1:41 AM, Olaf Wagner wrote: >>>>>>>>>> >>>>>>>>>>> On Sat, Jan 20, 2007 at 03:05:55PM +0100, Renzo Orsini >>>>>>>>>>> wrote: >>>>>>>>>>>> Hello, >>>>>>>>>>>> >>>>>>>>>>>> I installed cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz on an >>>>>>>>>>>> intel mac, then >>>>>>>>>>>> tried to a compile a Hello world program, but the >>>>>>>>>>>> compilation failed >>>>>>>>>>>> with the following message: >>>>>>>>>>>> >>>>>>>>>>>> pborsini:~/ProveModula3 orsini$ cm3 >>>>>>>>>>>> --- building in PPC_DARWIN --- >>>>>>>>>>>> >>>>>>>>>>>> new source -> compiling Main.m3 >>>>>>>>>>>> "../Main.m3", line 4: warning: potentially unhandled >>>>>>>>>>>> exception: IO.Error >>>>>>>>>>>> 1 warning encountered >>>>>>>>>>>> Main.ms:12:no such instruction: `mflr r0' >>>>>>>>>>>> Main.ms:13:no such instruction: `stmw r30,-8(r1)' >>>>>>>>>>>> Main.ms:14:no such instruction: `stw r0,8(r1)' >>>>>>>>>>>> Main.ms:15:no such instruction: `stwu r1,-96(r1)' >>>>>>>>>>>> Main.ms:16:no such instruction: `mr r30,r1' >>>>>>>>>>>> Main.ms:17:no such instruction: `bcl 20,31,"L00000000001 >>>>>>>>>>>> $pb"' >>>>>>>>>>>> ... >>>>>>>>>>>> .... >>>>>>>>>>>> >>>>>>>>>>>> So I suppose there is PPC code to assemble and the >>>>>>>>>>>> Rosetta emulator >>>>>>>>>>>> for PPC on intel macs cannot do anything for this! >>>>>>>>>>>> >>>>>>>>>>>> Since I would like to port the Fibonacci language for >>>>>>>>>>>> databases, >>>>>>>>>>>> which is written in Modula-3, if I understand well the >>>>>>>>>>>> situation I >>>>>>>>>>>> should port the Modula-3 compiler by cross compiling it >>>>>>>>>>>> on a PPC mac, >>>>>>>>>>>> or something like that. >>>>>>>>>>>> >>>>>>>>>>>> I am asking you if you know about some effort of porting >>>>>>>>>>>> Modula-3 on >>>>>>>>>>>> intel macs, or at least if you let me know if this >>>>>>>>>>>> operation is >>>>>>>>>>>> possible (and also reasonably feasible in terms of time and >>>>>>>>>>>> expertise, given my teaching duties and my difficulties >>>>>>>>>>>> with >>>>>>>>>>>> assembler languages!), and, if so, if you can point me >>>>>>>>>>>> to the correct >>>>>>>>>>>> documentation to start with. Of course I will be very >>>>>>>>>>>> glad to give >>>>>>>>>>>> back to the community the result if I succeed! >>>>>>>>>>>> >>>>>>>>>>>> Thank you very much for your attention. >>>>>>>>>>>> >>>>>>>>>>>> Cordially >>>>>>>>>>>> >>>>>>>>>>>> Renzo Orsini >>>>>>>>>>>> Associate Professor >>>>>>>>>>>> Dipartimento di Informatica >>>>>>>>>>>> Universita' Ca' Foscari di Venezia >>>>>>>>>>> >>>>>>>>>>> Well, I wouldn't have thought that you were even able to >>>>>>>>>>> install >>>>>>>>>>> the cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz system on an Intel >>>>>>>>>>> machine; >>>>>>>>>>> it's surely not supposed to run on one. It shouldn't be too >>>>>>>>>>> difficult to get a port of the latest CM3 for Darwin on >>>>>>>>>>> Intel >>>>>>>>>>> processors; I even think somebody was already working on it, >>>>>>>>>>> but I don't really remember who, so I forward your mail to >>>>>>>>>>> the m3devel list, in case others have already started >>>>>>>>>>> such an >>>>>>>>>>> effort. >>>>>>>>>>> >>>>>>>>>>> Olaf >>>>>>>>>>> -- >>>>>>>>>>> elego Software Solutions GmbH >>>>>>>>>>> HRB 77719 >>>>>>>>>>> Olaf Wagner E-Mail: wagner(at) >>>>>>>>>>> elego.de >>>>>>>>>>> Ohmstra?e 9 Tel: +49 30 40 >>>>>>>>>>> 04 19 29 >>>>>>>>>>> 10179 Berlin Fax: +49 30 23 >>>>>>>>>>> 45 86 95 >>>>>>>>>>> Cranachstra?e 7 Tel: +49 30 85 >>>>>>>>>>> 58 01 81 >>>>>>>>>>> 12157 Berlin Fax: +49 30 85 >>>>>>>>>>> 58 01 88 >>>>>>>>>>> ------------------> WWW: http://www.elego-software- >>>>>>>>>>> solutions.com >>>>>>>>>>> _______________________________________________ >>>>>>>>>>> M3devel mailing list >>>>>>>>>>> M3devel at elegosoft.com >>>>>>>>>>> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> _______________________________________________ >>>>>>>> M3devel mailing list >>>>>>>> M3devel at elegosoft.com >>>>>>>> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel >>>>>>> >>>>>>> Antony Hosking | Associate Professor >>>>>>> Dept of Computer Sciences | Office: (765) 494-6001 >>>>>>> Purdue University | Mobile: (765) 427-5484 >>>>>>> 250 N. University Street | hosking at cs.purdue.edu >>>>>>> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/ >>>>>>> ~hosking >>>>>>> _--_|\ >>>>>>> / \ >>>>>>> \_.--._/ ) >>>>>>> v / >>>>>>> >>>>>>> >>>>> >>>> >>>> Antony Hosking | Associate Professor >>>> Dept of Computer Sciences | Office: (765) 494-6001 >>>> Purdue University | Mobile: (765) 427-5484 >>>> 250 N. University Street | hosking at cs.purdue.edu >>>> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking >>>> _--_|\ >>>> / \ >>>> \_.--._/ ) >>>> v / >>>> >>> >> >> Antony Hosking | Associate Professor >> Dept of Computer Sciences | Office: (765) 494-6001 >> Purdue University | Mobile: (765) 427-5484 >> 250 N. University Street | hosking at cs.purdue.edu >> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking >> _--_|\ >> / \ >> \_.--._/ ) >> v / >> > Antony Hosking | Associate Professor Dept of Computer Sciences | Office: (765) 494-6001 Purdue University | Mobile: (765) 427-5484 250 N. University Street | hosking at cs.purdue.edu West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking _--_|\ / \ \_.--._/ ) v / From hosking at cs.purdue.edu Sun Jan 21 23:32:51 2007 From: hosking at cs.purdue.edu (Antony Hosking) Date: Sun, 21 Jan 2007 17:32:51 -0500 Subject: [M3devel] Re: porting m3 on intel mac In-Reply-To: References: <8A58B35B-22CD-42D5-BA19-5FBF5D3CF5CD@dsi.unive.it> <20070120164128.GA27790@elegosoft.com> <52EA8FC9-4E33-40FF-B041-5CEAE83BBDE7@darko.org> <6307E3CC-8E5F-4317-8A8E-7EADE20FEE54@darko.org> <1521F74A-AF0F-48C4-B0AA-4E7DB321DA62@cs.purdue.edu> <23B90155-784C-4A47-8EAD-1451AEC4C1B9@darko.org> <69645CDA-E215-4B81-BAEE-C45EC496E4C6@dsi.unive.it> <5C13EB47-D241-438A-BE6F-BBD30AF002A4@dsi.unive.it> <9125FF3E-5D5D-4DE0-95DC-DCD997D198C1@cs.purdue.edu> <4206B526-A4CF-430B-AE8C-086D27615A79@dsi.unive.it> <722DDD36-2973-44B2-91BF-8487DA744D6C@cs.purdue.edu> Message-ID: <6607A270-8264-4419-AAF2-323833523695@cs.purdue.edu> On 21/01/2007, at 5:06 PM, Renzo Orsini wrote: > > On Jan 21, 2007, at 22:57, Antony Hosking wrote: > >> For some reason your .stabs entries are different than mine, but >> otherwise the assembler files are the same. Are you using the >> cm3cg and cm3.cfg from my ftp site? > > Yes, downloaded a few hours ago. > > >> Here is the version of the assembler that I have on my Intel Mac: >> >> Apple Computer, Inc. version cctools-590.42.1.obj~1, GNU assembler >> version 1.38 > > The mine is: > > Apple Computer, Inc. version cctools-622.5.obj~13, GNU assembler > version 1.38 > (If it useful, my Xcode is 2.4.1, with Xcode IDE: 762.0, Xcode > Core: 762.0, ToolSupport: 764.0, [From About XCode menu]) > Hmmm -- different versions of the assembler. Probably some flag needs adjusting. > > >> >> With respect to zeus, can you build with -verbose in the zeus >> directory and send me the output? Sounds like one of the tools is >> not getting built properly. >> > > Ok, I am sending it as attachment > > > Sorry, wrong option. Please run with -commands. I suspect stubgen is failing for you. > Renzo > > >> On 21/01/2007, at 4:47 PM, Renzo Orsini wrote: >> >>> You can find in the attachment the program and the compilation. >>> >>> Renzo >>> >>> >>> >>> On Jan 21, 2007, at 22:34, Antony Hosking wrote: >>> >>>> >>>> On 21/01/2007, at 4:27 PM, Renzo Orsini wrote: >>>> >>>>> On Jan 21, 2007, at 21:49, Antony Hosking wrote: >>>>> >>>>>> >>>>>> On 21/01/2007, at 7:59 AM, Renzo Orsini wrote: >>>>>> >>>>>>> Hello and lot of thanks! >>>>>>> >>>>>>> Everything is working really fine! >>>>>>> The configuration: MacBookPro, MacOSX 10.4.8, XCode 2.4.1 >>>>>>> (gcc 4.0.1), X11 installed, latest cm3 sources (with >>>>>>> anonymous CVS), >>>>>>> The process: >>>>>>> 1. unpacked cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz >>>>>>> 2. installed as super-user (every answer left as default, the >>>>>>> only problem is the fact that motif is missing, ignoring) >>>>>>> 3. replacing cm3, cm3.cfg, cm3cg from ftp://ftp.cs.purdue.edu/ >>>>>>> pub/hosking/m3/I386_DARWIN >>>>>>> 3. running as su: >>>>>>> do-cm3-core.sh buildship >>>>>>> install-cm3-compiler.sh upgrade >>>>>>> do-cm3-std.sh buildship >>>>>>> everything is ok a part from producing about a zillion of >>>>>>> assembler (?) warnings ("xxx.ms:nnn:indirect jmp without `*'), >>>>>>> and failing at the end the compilation of package zeus (which >>>>>>> I suppose is an old issue) >>>>>> >>>>>> That's odd since my builds go through cleanly. >>>>> >>>>> This is an example of the strange "indirect jump" message: >>>>> >>>>> pborsini:~/ProveModula3 orsini$ cat Main.m3 >>>>> MODULE Main; IMPORT IO; BEGIN IO.Put("Hello World\n"); END Main. >>>>> pborsini:~/ProveModula3 orsini$ cm3 >>>>> --- building in I386_DARWIN --- >>>>> new source -> compiling Main.m3 >>>>> Main.ms:101:indirect jmp without `*' >>>>> -> linking prog >>>>> _m3main.ms:74:indirect jmp without `*' >>>>> _m3main.ms:89:indirect jmp without `*' >>>>> _m3main.ms:108:indirect jmp without `*' >>>>> pborsini:~/ProveModula3 orsini$ ./I386_DARWIN/prog >>>>> Hello World >>>>> >>>>> maybe there is some problem with the linker parameters, however >>>>> the progrum runs ok. >>>> >>>> Can you compile with "-keep" and send me the relevant .ms file? >>>> I can compare with mine. >>>> >>>>> >>>>> For what concerns zeus: the following is the output of cm3: >>>>> >>>>> === package /Users/orsini/modula3/cvsstuff/cm3/m3-ui/zeus === >>>>> +++ cm3 -build -override -DROOT='/Users/orsini/modula3/cvsstuff/ >>>>> cm3' +++ >>>>> --- building in I386_DARWIN --- >>>>> >>>>> new source -> compiling RemoteView_T_v1.i3 >>>>> "../I386_DARWIN/RemoteView_T_v1.i3", line 1: syntax error: >>>>> missing INTERFACE or MODULE keyword >>>>> "../I386_DARWIN/RemoteView_T_v1.i3", line 1: unable to find >>>>> interface () >>>>> "../I386_DARWIN/RemoteView_T_v1.i3", line 1: warning: file name >>>>> (RemoteView_T_v1.i3) doesn't match module name () >>>>> 2 errors and 1 warning encountered >>>>> new source -> compiling RemoteView_T_v1.m3 >>>>> "../I386_DARWIN/RemoteView_T_v1.m3", line 1: syntax error: >>>>> missing INTERFACE or MODULE keyword >>>>> "../I386_DARWIN/RemoteView_T_v1.m3", line 1: unable to find >>>>> interface () >>>>> "../I386_DARWIN/RemoteView_T_v1.m3", line 1: warning: file name >>>>> (RemoteView_T_v1.m3) doesn't match module name () >>>>> 2 errors and 1 warning encountered >>>>> compilation failed => not building library "libm3zeus.a" >>>>> Fatal Error: package build failed >>>>> *** execution of failed *** >>>>> >>>>> (and the files RemoteView_T_v1.i3 and RemoteView_T_v1.m3 are >>>>> empty in I386_DARWIN, and they do not exists in src) >>>>> >>>>> Several other packages cannot be compiled, like many obliq >>>>> ones, webvt, June and mentor. >>>>> >>>>> However the compiler seems to work for compiling my stuff, >>>>> altough I have to make a few corrections and debugging. >>>> >>>> This sounds problematic since it implies that the generators for >>>> those files are not working correctly. (If you run with "- >>>> commands" you'll see which generator programs are being used. >>>> >>>>> >>>>> Thanks, >>>>> >>>>> Renzo >>>>> >>>>>> >>>>>>> >>>>>>> So, thank again to all and each of you, I am now very happy >>>>>>> and busy by bringing our old modula-3 software to the new >>>>>>> century! >>>>>>> >>>>>>> Cordially, >>>>>>> >>>>>>> Renzo Orsini >>>>>>> >>>>>>> On Jan 21, 2007, at 0:33, Darko wrote: >>>>>>> >>>>>>>> The latest, 10.4.8, also the latest XCode, which I think >>>>>>>> updates gcc. You were addressing me weren't you? But Renzo >>>>>>>> might like to answer that question too. XCode weighs in at >>>>>>>> about 1G, by the way. >>>>>>>> >>>>>>>> On 21/01/2007, at 7:58 AM, Antony Hosking wrote: >>>>>>>> >>>>>>>>> What version of OSX are you using? >>>>>>>>> >>>>>>>>> On 20/01/2007, at 5:49 PM, Darko wrote: >>>>>>>>> >>>>>>>>>> No worries. I'm not familiar at all with those scripts. >>>>>>>>>> The problem you are having may be to do with not having >>>>>>>>>> the latest source, but it most probably has to do with the >>>>>>>>>> version of gcc that is active on your machine. C files are >>>>>>>>>> not compiled by cm3 but rather call gcc directly. I can't >>>>>>>>>> remember which version of gcc is the correct one, but mine >>>>>>>>>> currently is i686-apple-darwin8-gcc-4.0.1; also I can't >>>>>>>>>> remember the command line for changing gcc versions. Tony >>>>>>>>>> may be able to help re the correct version if 4.0.1 >>>>>>>>>> doesn't work. You may need to install the latest XCode >>>>>>>>>> from http://developer.apple.com if you don't have 4.01. >>>>>>>>>> >>>>>>>>>> I've cc'd the list because they're actually very helpful >>>>>>>>>> and my knowledge is limited... >>>>>>>>>> >>>>>>>>>> - Darko >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On 21/01/2007, at 6:58 AM, Renzo Orsini wrote: >>>>>>>>>> >>>>>>>>>>> First of all, thank you very much for your immediate help! >>>>>>>>>>> >>>>>>>>>>> I downloaded the files and replaced the corresponding / >>>>>>>>>>> usr/local/cm3/bin files, >>>>>>>>>>> modified cm3.cfg by replacing INSTALL_ROOT = "/usr/local/ >>>>>>>>>>> cm3-i386/" with INSTALL_ROOT = "/usr/local/cm3/" >>>>>>>>>>> then in the full source (last version, 5.4.0) I did: >>>>>>>>>>> scripts/do-cm3-core.sh buildship >>>>>>>>>>> this is the result: >>>>>>>>>>> >>>>>>>>>>> root#./do-cm3-core.sh buildship >>>>>>>>>>> CM3C = >>>>>>>>>>> /Users/orsini/cm3/cm3-src-all-5.4.0/scripts/pkgmap.sh -c >>>>>>>>>>> "cm3 -build -DROOT='/Users/orsini/cm3/cm3-src- >>>>>>>>>>> all-5.4.0' && cm3 -ship -DROOT='/Users/orsini/cm3/cm3- >>>>>>>>>>> src-all-5.4.0' " m3gc-simple m3core libm3 patternmatching >>>>>>>>>>> m3middle m3linker m3front m3quake m3cc cm3 m3scanner >>>>>>>>>>> m3tools m3cgcat m3cggen m3bundle bitvector digraph >>>>>>>>>>> parseparams realgeometry set slisp sortedtableextras >>>>>>>>>>> table-list tempfiles >>>>>>>>>>> === package /Users/orsini/cm3/cm3-src-all-5.4.0/m3-libs/ >>>>>>>>>>> m3gc-simple === >>>>>>>>>>> +++ cm3 -build -DROOT='/Users/orsini/cm3/cm3-src- >>>>>>>>>>> all-5.4.0' && cm3 -ship -DROOT='/Users/orsini/cm3/cm3- >>>>>>>>>>> src-all-5.4.0' +++ >>>>>>>>>>> --- building in I386_DARWIN --- >>>>>>>>>>> >>>>>>>>>>> new source -> compiling RTVM.c >>>>>>>>>>> new source -> compiling sysdeps.c >>>>>>>>>>> new source -> compiling accept.c >>>>>>>>>>> ../src/runtime/I386_DARWIN/accept.c: In function >>>>>>>>>>> 'm3_accept': >>>>>>>>>>> ../src/runtime/I386_DARWIN/accept.c:13: warning: pointer >>>>>>>>>>> targets in passing argument 3 of 'accept' differ in >>>>>>>>>>> signedness >>>>>>>>>>> new source -> compiling bind.c >>>>>>>>>>> new source -> compiling close.c >>>>>>>>>>> new source -> compiling connect.c >>>>>>>>>>> new source -> compiling dup.c >>>>>>>>>>> new source -> compiling dup2.c >>>>>>>>>>> new source -> compiling gethostbyaddr.c >>>>>>>>>>> new source -> compiling gethostbyname.c >>>>>>>>>>> new source -> compiling getpeername.c >>>>>>>>>>> ../src/runtime/I386_DARWIN/getpeername.c: In function >>>>>>>>>>> 'm3_getpeername': >>>>>>>>>>> ../src/runtime/I386_DARWIN/getpeername.c:13: warning: >>>>>>>>>>> pointer targets in passing argument 3 of 'getpeername' >>>>>>>>>>> differ in signedness >>>>>>>>>>> new source -> compiling getsockname.c >>>>>>>>>>> ../src/runtime/I386_DARWIN/getsockname.c: In function >>>>>>>>>>> 'm3_getsockname': >>>>>>>>>>> ../src/runtime/I386_DARWIN/getsockname.c:13: warning: >>>>>>>>>>> pointer targets in passing argument 3 of 'getsockname' >>>>>>>>>>> differ in signedness >>>>>>>>>>> new source -> compiling listen.c >>>>>>>>>>> new source -> compiling read.c >>>>>>>>>>> new source -> compiling recv.c >>>>>>>>>>> new source -> compiling recvfrom.c >>>>>>>>>>> ../src/runtime/I386_DARWIN/recvfrom.c: In function >>>>>>>>>>> 'm3_recvfrom': >>>>>>>>>>> ../src/runtime/I386_DARWIN/recvfrom.c:15: warning: >>>>>>>>>>> pointer targets in passing argument 6 of 'recvfrom' >>>>>>>>>>> differ in signedness >>>>>>>>>>> new source -> compiling select.c >>>>>>>>>>> new source -> compiling send.c >>>>>>>>>>> new source -> compiling sendto.c >>>>>>>>>>> new source -> compiling shutdown.c >>>>>>>>>>> new source -> compiling socket.c >>>>>>>>>>> new source -> compiling write.c >>>>>>>>>>> -> archiving libm3gcdefs.a >>>>>>>>>>> ld: common symbols not allowed with MH_DYLIB output >>>>>>>>>>> format with the -multi_module option >>>>>>>>>>> sysdeps.o definition of common _RTCSRC_FinishVM (size 16) >>>>>>>>>>> sysdeps.o definition of common _RTHeapRep_Fault (size 16) >>>>>>>>>>> /usr/bin/libtool: internal link edit command failed >>>>>>>>>>> --- shipping from I386_DARWIN --- >>>>>>>>>>> >>>>>>>>>>> . => /usr/local/cm3/pkg/m3gc-simple/I386_DARWIN >>>>>>>>>>> .M3EXPORTS libm3gcdefs.5.2.dylib"/Users/orsini/ >>>>>>>>>>> cm3/cm3-src-all-5.4.0/m3-libs/m3gc-simple/ >>>>>>>>>>> I386_DARWIN/.M3SHIP", line 3: quake runtime error: unable >>>>>>>>>>> to copy "libm3gcdefs.5.2.dylib" to "/usr/local/cm3/pkg/ >>>>>>>>>>> m3gc-simple/I386_DARWIN/libm3gcdefs.5.2.dylib": errno=2 >>>>>>>>>>> >>>>>>>>>>> --procedure-- -line- -file--- >>>>>>>>>>> install_file -- >>>>>>>>>>> 3 /Users/orsini/cm3/cm3-src- >>>>>>>>>>> all-5.4.0/m3-libs/m3gc-simple/I386_DARWIN/.M3SHIP >>>>>>>>>>> >>>>>>>>>>> Fatal Error: package build failed >>>>>>>>>>> *** execution of failed *** >>>>>>>>>>> >>>>>>>>>>> ====== >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> I noticed that not all the .c files in .../m3-libs/m3gc- >>>>>>>>>>> simple/src/runtime/I386_DARWIN/ where compiled, but I do >>>>>>>>>>> not know if this is a normal behaviour. >>>>>>>>>>> >>>>>>>>>>> Thanks in advance for your time and patience! >>>>>>>>>>> >>>>>>>>>>> Cordially >>>>>>>>>>> >>>>>>>>>>> Renzo Orsini >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> On Jan 20, 2007, at 19:02, Darko wrote: >>>>>>>>>>> >>>>>>>>>>>> Have a look here: ftp://ftp.cs.purdue.edu/pub/hosking/m3/ >>>>>>>>>>>> I386_DARWIN/ >>>>>>>>>>>> >>>>>>>>>>>> There you'll find the bits you need for Mac Intel. >>>>>>>>>>>> Replace your existing cm3, cmcg and cm3.cfg with the >>>>>>>>>>>> ones there, then you can compile the basic libraries you >>>>>>>>>>>> need like m3core and libm3, but make sure you have the >>>>>>>>>>>> latest sources. >>>>>>>>>>>> >>>>>>>>>>>> I think they're the latest but Tony may have something >>>>>>>>>>>> more to say about that. >>>>>>>>>>>> >>>>>>>>>>>> Darko. >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> On 21/01/2007, at 1:41 AM, Olaf Wagner wrote: >>>>>>>>>>>> >>>>>>>>>>>>> On Sat, Jan 20, 2007 at 03:05:55PM +0100, Renzo Orsini >>>>>>>>>>>>> wrote: >>>>>>>>>>>>>> Hello, >>>>>>>>>>>>>> >>>>>>>>>>>>>> I installed cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz on an >>>>>>>>>>>>>> intel mac, then >>>>>>>>>>>>>> tried to a compile a Hello world program, but the >>>>>>>>>>>>>> compilation failed >>>>>>>>>>>>>> with the following message: >>>>>>>>>>>>>> >>>>>>>>>>>>>> pborsini:~/ProveModula3 orsini$ cm3 >>>>>>>>>>>>>> --- building in PPC_DARWIN --- >>>>>>>>>>>>>> >>>>>>>>>>>>>> new source -> compiling Main.m3 >>>>>>>>>>>>>> "../Main.m3", line 4: warning: potentially unhandled >>>>>>>>>>>>>> exception: IO.Error >>>>>>>>>>>>>> 1 warning encountered >>>>>>>>>>>>>> Main.ms:12:no such instruction: `mflr r0' >>>>>>>>>>>>>> Main.ms:13:no such instruction: `stmw r30,-8(r1)' >>>>>>>>>>>>>> Main.ms:14:no such instruction: `stw r0,8(r1)' >>>>>>>>>>>>>> Main.ms:15:no such instruction: `stwu r1,-96(r1)' >>>>>>>>>>>>>> Main.ms:16:no such instruction: `mr r30,r1' >>>>>>>>>>>>>> Main.ms:17:no such instruction: `bcl >>>>>>>>>>>>>> 20,31,"L00000000001$pb"' >>>>>>>>>>>>>> ... >>>>>>>>>>>>>> .... >>>>>>>>>>>>>> >>>>>>>>>>>>>> So I suppose there is PPC code to assemble and the >>>>>>>>>>>>>> Rosetta emulator >>>>>>>>>>>>>> for PPC on intel macs cannot do anything for this! >>>>>>>>>>>>>> >>>>>>>>>>>>>> Since I would like to port the Fibonacci language for >>>>>>>>>>>>>> databases, >>>>>>>>>>>>>> which is written in Modula-3, if I understand well the >>>>>>>>>>>>>> situation I >>>>>>>>>>>>>> should port the Modula-3 compiler by cross compiling >>>>>>>>>>>>>> it on a PPC mac, >>>>>>>>>>>>>> or something like that. >>>>>>>>>>>>>> >>>>>>>>>>>>>> I am asking you if you know about some effort of >>>>>>>>>>>>>> porting Modula-3 on >>>>>>>>>>>>>> intel macs, or at least if you let me know if this >>>>>>>>>>>>>> operation is >>>>>>>>>>>>>> possible (and also reasonably feasible in terms of >>>>>>>>>>>>>> time and >>>>>>>>>>>>>> expertise, given my teaching duties and my >>>>>>>>>>>>>> difficulties with >>>>>>>>>>>>>> assembler languages!), and, if so, if you can point me >>>>>>>>>>>>>> to the correct >>>>>>>>>>>>>> documentation to start with. Of course I will be very >>>>>>>>>>>>>> glad to give >>>>>>>>>>>>>> back to the community the result if I succeed! >>>>>>>>>>>>>> >>>>>>>>>>>>>> Thank you very much for your attention. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Cordially >>>>>>>>>>>>>> >>>>>>>>>>>>>> Renzo Orsini >>>>>>>>>>>>>> Associate Professor >>>>>>>>>>>>>> Dipartimento di Informatica >>>>>>>>>>>>>> Universita' Ca' Foscari di Venezia >>>>>>>>>>>>> >>>>>>>>>>>>> Well, I wouldn't have thought that you were even able >>>>>>>>>>>>> to install >>>>>>>>>>>>> the cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz system on an >>>>>>>>>>>>> Intel machine; >>>>>>>>>>>>> it's surely not supposed to run on one. It shouldn't be >>>>>>>>>>>>> too >>>>>>>>>>>>> difficult to get a port of the latest CM3 for Darwin on >>>>>>>>>>>>> Intel >>>>>>>>>>>>> processors; I even think somebody was already working >>>>>>>>>>>>> on it, >>>>>>>>>>>>> but I don't really remember who, so I forward your mail to >>>>>>>>>>>>> the m3devel list, in case others have already started >>>>>>>>>>>>> such an >>>>>>>>>>>>> effort. >>>>>>>>>>>>> >>>>>>>>>>>>> Olaf >>>>>>>>>>>>> -- >>>>>>>>>>>>> elego Software Solutions GmbH >>>>>>>>>>>>> HRB 77719 >>>>>>>>>>>>> Olaf Wagner E-Mail: wagner >>>>>>>>>>>>> (at)elego.de >>>>>>>>>>>>> Ohmstra?e 9 Tel: +49 30 >>>>>>>>>>>>> 40 04 19 29 >>>>>>>>>>>>> 10179 Berlin Fax: +49 30 >>>>>>>>>>>>> 23 45 86 95 >>>>>>>>>>>>> Cranachstra?e 7 Tel: +49 30 >>>>>>>>>>>>> 85 58 01 81 >>>>>>>>>>>>> 12157 Berlin Fax: +49 30 >>>>>>>>>>>>> 85 58 01 88 >>>>>>>>>>>>> ------------------> WWW: http://www.elego-software- >>>>>>>>>>>>> solutions.com >>>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>>> M3devel mailing list >>>>>>>>>>>>> M3devel at elegosoft.com >>>>>>>>>>>>> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/ >>>>>>>>>>>>> m3devel >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> _______________________________________________ >>>>>>>>>> M3devel mailing list >>>>>>>>>> M3devel at elegosoft.com >>>>>>>>>> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel >>>>>>>>> >>>>>>>>> Antony Hosking | Associate Professor >>>>>>>>> Dept of Computer Sciences | Office: (765) 494-6001 >>>>>>>>> Purdue University | Mobile: (765) 427-5484 >>>>>>>>> 250 N. University Street | hosking at cs.purdue.edu >>>>>>>>> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/ >>>>>>>>> ~hosking >>>>>>>>> _--_|\ >>>>>>>>> / \ >>>>>>>>> \_.--._/ ) >>>>>>>>> v / >>>>>>>>> >>>>>>>>> >>>>>>> >>>>>> >>>>>> Antony Hosking | Associate Professor >>>>>> Dept of Computer Sciences | Office: (765) 494-6001 >>>>>> Purdue University | Mobile: (765) 427-5484 >>>>>> 250 N. University Street | hosking at cs.purdue.edu >>>>>> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking >>>>>> _--_|\ >>>>>> / \ >>>>>> \_.--._/ ) >>>>>> v / >>>>>> >>>>> >>>> >>>> Antony Hosking | Associate Professor >>>> Dept of Computer Sciences | Office: (765) 494-6001 >>>> Purdue University | Mobile: (765) 427-5484 >>>> 250 N. University Street | hosking at cs.purdue.edu >>>> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking >>>> _--_|\ >>>> / \ >>>> \_.--._/ ) >>>> v / >>>> >>> >> >> Antony Hosking | Associate Professor >> Dept of Computer Sciences | Office: (765) 494-6001 >> Purdue University | Mobile: (765) 427-5484 >> 250 N. University Street | hosking at cs.purdue.edu >> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking >> _--_|\ >> / \ >> \_.--._/ ) >> v / >> > Antony Hosking | Associate Professor Dept of Computer Sciences | Office: (765) 494-6001 Purdue University | Mobile: (765) 427-5484 250 N. University Street | hosking at cs.purdue.edu West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking _--_|\ / \ \_.--._/ ) v / From hosking at cs.purdue.edu Sun Jan 21 23:40:34 2007 From: hosking at cs.purdue.edu (Antony Hosking) Date: Sun, 21 Jan 2007 17:40:34 -0500 Subject: [M3devel] Re: porting m3 on intel mac In-Reply-To: <6607A270-8264-4419-AAF2-323833523695@cs.purdue.edu> References: <8A58B35B-22CD-42D5-BA19-5FBF5D3CF5CD@dsi.unive.it> <20070120164128.GA27790@elegosoft.com> <52EA8FC9-4E33-40FF-B041-5CEAE83BBDE7@darko.org> <6307E3CC-8E5F-4317-8A8E-7EADE20FEE54@darko.org> <1521F74A-AF0F-48C4-B0AA-4E7DB321DA62@cs.purdue.edu> <23B90155-784C-4A47-8EAD-1451AEC4C1B9@darko.org> <69645CDA-E215-4B81-BAEE-C45EC496E4C6@dsi.unive.it> <5C13EB47-D241-438A-BE6F-BBD30AF002A4@dsi.unive.it> <9125FF3E-5D5D-4DE0-95DC-DCD997D198C1@cs.purdue.edu> <4206B526-A4CF-430B-AE8C-086D27615A79@dsi.unive.it> <722DDD36-2973-44B2-91BF-8487DA744D6C@cs.purdue.edu> <6607A270-8264-4419-AAF2-323833523695@cs.purdue.edu> Message-ID: <70415358-BF8A-45E8-9CA8-89DBDDA24148@cs.purdue.edu> PS: It looks like there are issues with the XCode 2.4.x assembler: http://www.mail-archive.com/fink-devel at lists.sourceforge.net/ msg14326.html Let me see what else I can dig up. On 21/01/2007, at 5:32 PM, Antony Hosking wrote: > On 21/01/2007, at 5:06 PM, Renzo Orsini wrote: > >> >> On Jan 21, 2007, at 22:57, Antony Hosking wrote: >> >>> For some reason your .stabs entries are different than mine, but >>> otherwise the assembler files are the same. Are you using the >>> cm3cg and cm3.cfg from my ftp site? >> >> Yes, downloaded a few hours ago. >> >> >>> Here is the version of the assembler that I have on my Intel Mac: >>> >>> Apple Computer, Inc. version cctools-590.42.1.obj~1, GNU >>> assembler version 1.38 >> >> The mine is: >> >> Apple Computer, Inc. version cctools-622.5.obj~13, GNU assembler >> version 1.38 >> (If it useful, my Xcode is 2.4.1, with Xcode IDE: 762.0, Xcode >> Core: 762.0, ToolSupport: 764.0, [From About XCode menu]) >> > > Hmmm -- different versions of the assembler. Probably some flag > needs adjusting. > >> >> >>> >>> With respect to zeus, can you build with -verbose in the zeus >>> directory and send me the output? Sounds like one of the tools >>> is not getting built properly. >>> >> >> Ok, I am sending it as attachment >> >> >> > > Sorry, wrong option. Please run with -commands. I suspect stubgen > is failing for you. > > >> Renzo >> >> >>> On 21/01/2007, at 4:47 PM, Renzo Orsini wrote: >>> >>>> You can find in the attachment the program and the compilation. >>>> >>>> Renzo >>>> >>>> >>>> >>>> On Jan 21, 2007, at 22:34, Antony Hosking wrote: >>>> >>>>> >>>>> On 21/01/2007, at 4:27 PM, Renzo Orsini wrote: >>>>> >>>>>> On Jan 21, 2007, at 21:49, Antony Hosking wrote: >>>>>> >>>>>>> >>>>>>> On 21/01/2007, at 7:59 AM, Renzo Orsini wrote: >>>>>>> >>>>>>>> Hello and lot of thanks! >>>>>>>> >>>>>>>> Everything is working really fine! >>>>>>>> The configuration: MacBookPro, MacOSX 10.4.8, XCode 2.4.1 >>>>>>>> (gcc 4.0.1), X11 installed, latest cm3 sources (with >>>>>>>> anonymous CVS), >>>>>>>> The process: >>>>>>>> 1. unpacked cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz >>>>>>>> 2. installed as super-user (every answer left as default, >>>>>>>> the only problem is the fact that motif is missing, ignoring) >>>>>>>> 3. replacing cm3, cm3.cfg, cm3cg from ftp:// >>>>>>>> ftp.cs.purdue.edu/pub/hosking/m3/I386_DARWIN >>>>>>>> 3. running as su: >>>>>>>> do-cm3-core.sh buildship >>>>>>>> install-cm3-compiler.sh upgrade >>>>>>>> do-cm3-std.sh buildship >>>>>>>> everything is ok a part from producing about a zillion of >>>>>>>> assembler (?) warnings ("xxx.ms:nnn:indirect jmp without `*'), >>>>>>>> and failing at the end the compilation of package zeus >>>>>>>> (which I suppose is an old issue) >>>>>>> >>>>>>> That's odd since my builds go through cleanly. >>>>>> >>>>>> This is an example of the strange "indirect jump" message: >>>>>> >>>>>> pborsini:~/ProveModula3 orsini$ cat Main.m3 >>>>>> MODULE Main; IMPORT IO; BEGIN IO.Put("Hello World\n"); END Main. >>>>>> pborsini:~/ProveModula3 orsini$ cm3 >>>>>> --- building in I386_DARWIN --- >>>>>> new source -> compiling Main.m3 >>>>>> Main.ms:101:indirect jmp without `*' >>>>>> -> linking prog >>>>>> _m3main.ms:74:indirect jmp without `*' >>>>>> _m3main.ms:89:indirect jmp without `*' >>>>>> _m3main.ms:108:indirect jmp without `*' >>>>>> pborsini:~/ProveModula3 orsini$ ./I386_DARWIN/prog >>>>>> Hello World >>>>>> >>>>>> maybe there is some problem with the linker parameters, >>>>>> however the progrum runs ok. >>>>> >>>>> Can you compile with "-keep" and send me the relevant .ms >>>>> file? I can compare with mine. >>>>> >>>>>> >>>>>> For what concerns zeus: the following is the output of cm3: >>>>>> >>>>>> === package /Users/orsini/modula3/cvsstuff/cm3/m3-ui/zeus === >>>>>> +++ cm3 -build -override -DROOT='/Users/orsini/modula3/ >>>>>> cvsstuff/cm3' +++ >>>>>> --- building in I386_DARWIN --- >>>>>> >>>>>> new source -> compiling RemoteView_T_v1.i3 >>>>>> "../I386_DARWIN/RemoteView_T_v1.i3", line 1: syntax error: >>>>>> missing INTERFACE or MODULE keyword >>>>>> "../I386_DARWIN/RemoteView_T_v1.i3", line 1: unable to find >>>>>> interface () >>>>>> "../I386_DARWIN/RemoteView_T_v1.i3", line 1: warning: file >>>>>> name (RemoteView_T_v1.i3) doesn't match module name (>>>>> id>) >>>>>> 2 errors and 1 warning encountered >>>>>> new source -> compiling RemoteView_T_v1.m3 >>>>>> "../I386_DARWIN/RemoteView_T_v1.m3", line 1: syntax error: >>>>>> missing INTERFACE or MODULE keyword >>>>>> "../I386_DARWIN/RemoteView_T_v1.m3", line 1: unable to find >>>>>> interface () >>>>>> "../I386_DARWIN/RemoteView_T_v1.m3", line 1: warning: file >>>>>> name (RemoteView_T_v1.m3) doesn't match module name (>>>>> id>) >>>>>> 2 errors and 1 warning encountered >>>>>> compilation failed => not building library "libm3zeus.a" >>>>>> Fatal Error: package build failed >>>>>> *** execution of failed *** >>>>>> >>>>>> (and the files RemoteView_T_v1.i3 and RemoteView_T_v1.m3 are >>>>>> empty in I386_DARWIN, and they do not exists in src) >>>>>> >>>>>> Several other packages cannot be compiled, like many obliq >>>>>> ones, webvt, June and mentor. >>>>>> >>>>>> However the compiler seems to work for compiling my stuff, >>>>>> altough I have to make a few corrections and debugging. >>>>> >>>>> This sounds problematic since it implies that the generators >>>>> for those files are not working correctly. (If you run with "- >>>>> commands" you'll see which generator programs are being used. >>>>> >>>>>> >>>>>> Thanks, >>>>>> >>>>>> Renzo >>>>>> >>>>>>> >>>>>>>> >>>>>>>> So, thank again to all and each of you, I am now very happy >>>>>>>> and busy by bringing our old modula-3 software to the new >>>>>>>> century! >>>>>>>> >>>>>>>> Cordially, >>>>>>>> >>>>>>>> Renzo Orsini >>>>>>>> >>>>>>>> On Jan 21, 2007, at 0:33, Darko wrote: >>>>>>>> >>>>>>>>> The latest, 10.4.8, also the latest XCode, which I think >>>>>>>>> updates gcc. You were addressing me weren't you? But Renzo >>>>>>>>> might like to answer that question too. XCode weighs in at >>>>>>>>> about 1G, by the way. >>>>>>>>> >>>>>>>>> On 21/01/2007, at 7:58 AM, Antony Hosking wrote: >>>>>>>>> >>>>>>>>>> What version of OSX are you using? >>>>>>>>>> >>>>>>>>>> On 20/01/2007, at 5:49 PM, Darko wrote: >>>>>>>>>> >>>>>>>>>>> No worries. I'm not familiar at all with those scripts. >>>>>>>>>>> The problem you are having may be to do with not having >>>>>>>>>>> the latest source, but it most probably has to do with >>>>>>>>>>> the version of gcc that is active on your machine. C >>>>>>>>>>> files are not compiled by cm3 but rather call gcc >>>>>>>>>>> directly. I can't remember which version of gcc is the >>>>>>>>>>> correct one, but mine currently is i686-apple-darwin8- >>>>>>>>>>> gcc-4.0.1; also I can't remember the command line for >>>>>>>>>>> changing gcc versions. Tony may be able to help re the >>>>>>>>>>> correct version if 4.0.1 doesn't work. You may need to >>>>>>>>>>> install the latest XCode from http://developer.apple.com >>>>>>>>>>> if you don't have 4.01. >>>>>>>>>>> >>>>>>>>>>> I've cc'd the list because they're actually very helpful >>>>>>>>>>> and my knowledge is limited... >>>>>>>>>>> >>>>>>>>>>> - Darko >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> On 21/01/2007, at 6:58 AM, Renzo Orsini wrote: >>>>>>>>>>> >>>>>>>>>>>> First of all, thank you very much for your immediate help! >>>>>>>>>>>> >>>>>>>>>>>> I downloaded the files and replaced the corresponding / >>>>>>>>>>>> usr/local/cm3/bin files, >>>>>>>>>>>> modified cm3.cfg by replacing INSTALL_ROOT = "/usr/local/ >>>>>>>>>>>> cm3-i386/" with INSTALL_ROOT = "/usr/local/cm3/" >>>>>>>>>>>> then in the full source (last version, 5.4.0) I did: >>>>>>>>>>>> scripts/do-cm3-core.sh buildship >>>>>>>>>>>> this is the result: >>>>>>>>>>>> >>>>>>>>>>>> root#./do-cm3-core.sh buildship >>>>>>>>>>>> CM3C = >>>>>>>>>>>> /Users/orsini/cm3/cm3-src-all-5.4.0/scripts/pkgmap.sh -c >>>>>>>>>>>> "cm3 -build -DROOT='/Users/orsini/cm3/cm3-src- >>>>>>>>>>>> all-5.4.0' && cm3 -ship -DROOT='/Users/orsini/cm3/cm3- >>>>>>>>>>>> src-all-5.4.0' " m3gc-simple m3core libm3 >>>>>>>>>>>> patternmatching m3middle m3linker m3front m3quake m3cc >>>>>>>>>>>> cm3 m3scanner m3tools m3cgcat m3cggen m3bundle bitvector >>>>>>>>>>>> digraph parseparams realgeometry set slisp >>>>>>>>>>>> sortedtableextras table-list tempfiles >>>>>>>>>>>> === package /Users/orsini/cm3/cm3-src-all-5.4.0/m3-libs/ >>>>>>>>>>>> m3gc-simple === >>>>>>>>>>>> +++ cm3 -build -DROOT='/Users/orsini/cm3/cm3-src- >>>>>>>>>>>> all-5.4.0' && cm3 -ship -DROOT='/Users/orsini/cm3/cm3- >>>>>>>>>>>> src-all-5.4.0' +++ >>>>>>>>>>>> --- building in I386_DARWIN --- >>>>>>>>>>>> >>>>>>>>>>>> new source -> compiling RTVM.c >>>>>>>>>>>> new source -> compiling sysdeps.c >>>>>>>>>>>> new source -> compiling accept.c >>>>>>>>>>>> ../src/runtime/I386_DARWIN/accept.c: In function >>>>>>>>>>>> 'm3_accept': >>>>>>>>>>>> ../src/runtime/I386_DARWIN/accept.c:13: warning: pointer >>>>>>>>>>>> targets in passing argument 3 of 'accept' differ in >>>>>>>>>>>> signedness >>>>>>>>>>>> new source -> compiling bind.c >>>>>>>>>>>> new source -> compiling close.c >>>>>>>>>>>> new source -> compiling connect.c >>>>>>>>>>>> new source -> compiling dup.c >>>>>>>>>>>> new source -> compiling dup2.c >>>>>>>>>>>> new source -> compiling gethostbyaddr.c >>>>>>>>>>>> new source -> compiling gethostbyname.c >>>>>>>>>>>> new source -> compiling getpeername.c >>>>>>>>>>>> ../src/runtime/I386_DARWIN/getpeername.c: In function >>>>>>>>>>>> 'm3_getpeername': >>>>>>>>>>>> ../src/runtime/I386_DARWIN/getpeername.c:13: warning: >>>>>>>>>>>> pointer targets in passing argument 3 of 'getpeername' >>>>>>>>>>>> differ in signedness >>>>>>>>>>>> new source -> compiling getsockname.c >>>>>>>>>>>> ../src/runtime/I386_DARWIN/getsockname.c: In function >>>>>>>>>>>> 'm3_getsockname': >>>>>>>>>>>> ../src/runtime/I386_DARWIN/getsockname.c:13: warning: >>>>>>>>>>>> pointer targets in passing argument 3 of 'getsockname' >>>>>>>>>>>> differ in signedness >>>>>>>>>>>> new source -> compiling listen.c >>>>>>>>>>>> new source -> compiling read.c >>>>>>>>>>>> new source -> compiling recv.c >>>>>>>>>>>> new source -> compiling recvfrom.c >>>>>>>>>>>> ../src/runtime/I386_DARWIN/recvfrom.c: In function >>>>>>>>>>>> 'm3_recvfrom': >>>>>>>>>>>> ../src/runtime/I386_DARWIN/recvfrom.c:15: warning: >>>>>>>>>>>> pointer targets in passing argument 6 of 'recvfrom' >>>>>>>>>>>> differ in signedness >>>>>>>>>>>> new source -> compiling select.c >>>>>>>>>>>> new source -> compiling send.c >>>>>>>>>>>> new source -> compiling sendto.c >>>>>>>>>>>> new source -> compiling shutdown.c >>>>>>>>>>>> new source -> compiling socket.c >>>>>>>>>>>> new source -> compiling write.c >>>>>>>>>>>> -> archiving libm3gcdefs.a >>>>>>>>>>>> ld: common symbols not allowed with MH_DYLIB output >>>>>>>>>>>> format with the -multi_module option >>>>>>>>>>>> sysdeps.o definition of common _RTCSRC_FinishVM (size 16) >>>>>>>>>>>> sysdeps.o definition of common _RTHeapRep_Fault (size 16) >>>>>>>>>>>> /usr/bin/libtool: internal link edit command failed >>>>>>>>>>>> --- shipping from I386_DARWIN --- >>>>>>>>>>>> >>>>>>>>>>>> . => /usr/local/cm3/pkg/m3gc-simple/I386_DARWIN >>>>>>>>>>>> .M3EXPORTS libm3gcdefs.5.2.dylib"/Users/orsini/ >>>>>>>>>>>> cm3/cm3-src-all-5.4.0/m3-libs/m3gc-simple/ >>>>>>>>>>>> I386_DARWIN/.M3SHIP", line 3: quake runtime error: >>>>>>>>>>>> unable to copy "libm3gcdefs.5.2.dylib" to "/usr/local/ >>>>>>>>>>>> cm3/pkg/m3gc-simple/I386_DARWIN/libm3gcdefs.5.2.dylib": >>>>>>>>>>>> errno=2 >>>>>>>>>>>> >>>>>>>>>>>> --procedure-- -line- -file--- >>>>>>>>>>>> install_file -- >>>>>>>>>>>> 3 /Users/orsini/cm3/cm3-src- >>>>>>>>>>>> all-5.4.0/m3-libs/m3gc-simple/I386_DARWIN/.M3SHIP >>>>>>>>>>>> >>>>>>>>>>>> Fatal Error: package build failed >>>>>>>>>>>> *** execution of failed *** >>>>>>>>>>>> >>>>>>>>>>>> ====== >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> I noticed that not all the .c files in .../m3-libs/m3gc- >>>>>>>>>>>> simple/src/runtime/I386_DARWIN/ where compiled, but I do >>>>>>>>>>>> not know if this is a normal behaviour. >>>>>>>>>>>> >>>>>>>>>>>> Thanks in advance for your time and patience! >>>>>>>>>>>> >>>>>>>>>>>> Cordially >>>>>>>>>>>> >>>>>>>>>>>> Renzo Orsini >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> On Jan 20, 2007, at 19:02, Darko wrote: >>>>>>>>>>>> >>>>>>>>>>>>> Have a look here: ftp://ftp.cs.purdue.edu/pub/hosking/ >>>>>>>>>>>>> m3/I386_DARWIN/ >>>>>>>>>>>>> >>>>>>>>>>>>> There you'll find the bits you need for Mac Intel. >>>>>>>>>>>>> Replace your existing cm3, cmcg and cm3.cfg with the >>>>>>>>>>>>> ones there, then you can compile the basic libraries >>>>>>>>>>>>> you need like m3core and libm3, but make sure you have >>>>>>>>>>>>> the latest sources. >>>>>>>>>>>>> >>>>>>>>>>>>> I think they're the latest but Tony may have something >>>>>>>>>>>>> more to say about that. >>>>>>>>>>>>> >>>>>>>>>>>>> Darko. >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> On 21/01/2007, at 1:41 AM, Olaf Wagner wrote: >>>>>>>>>>>>> >>>>>>>>>>>>>> On Sat, Jan 20, 2007 at 03:05:55PM +0100, Renzo Orsini >>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>> Hello, >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> I installed cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz on an >>>>>>>>>>>>>>> intel mac, then >>>>>>>>>>>>>>> tried to a compile a Hello world program, but the >>>>>>>>>>>>>>> compilation failed >>>>>>>>>>>>>>> with the following message: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> pborsini:~/ProveModula3 orsini$ cm3 >>>>>>>>>>>>>>> --- building in PPC_DARWIN --- >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> new source -> compiling Main.m3 >>>>>>>>>>>>>>> "../Main.m3", line 4: warning: potentially unhandled >>>>>>>>>>>>>>> exception: IO.Error >>>>>>>>>>>>>>> 1 warning encountered >>>>>>>>>>>>>>> Main.ms:12:no such instruction: `mflr r0' >>>>>>>>>>>>>>> Main.ms:13:no such instruction: `stmw r30,-8(r1)' >>>>>>>>>>>>>>> Main.ms:14:no such instruction: `stw r0,8(r1)' >>>>>>>>>>>>>>> Main.ms:15:no such instruction: `stwu r1,-96(r1)' >>>>>>>>>>>>>>> Main.ms:16:no such instruction: `mr r30,r1' >>>>>>>>>>>>>>> Main.ms:17:no such instruction: `bcl >>>>>>>>>>>>>>> 20,31,"L00000000001$pb"' >>>>>>>>>>>>>>> ... >>>>>>>>>>>>>>> .... >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> So I suppose there is PPC code to assemble and the >>>>>>>>>>>>>>> Rosetta emulator >>>>>>>>>>>>>>> for PPC on intel macs cannot do anything for this! >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Since I would like to port the Fibonacci language for >>>>>>>>>>>>>>> databases, >>>>>>>>>>>>>>> which is written in Modula-3, if I understand well >>>>>>>>>>>>>>> the situation I >>>>>>>>>>>>>>> should port the Modula-3 compiler by cross compiling >>>>>>>>>>>>>>> it on a PPC mac, >>>>>>>>>>>>>>> or something like that. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> I am asking you if you know about some effort of >>>>>>>>>>>>>>> porting Modula-3 on >>>>>>>>>>>>>>> intel macs, or at least if you let me know if this >>>>>>>>>>>>>>> operation is >>>>>>>>>>>>>>> possible (and also reasonably feasible in terms of >>>>>>>>>>>>>>> time and >>>>>>>>>>>>>>> expertise, given my teaching duties and my >>>>>>>>>>>>>>> difficulties with >>>>>>>>>>>>>>> assembler languages!), and, if so, if you can point >>>>>>>>>>>>>>> me to the correct >>>>>>>>>>>>>>> documentation to start with. Of course I will be very >>>>>>>>>>>>>>> glad to give >>>>>>>>>>>>>>> back to the community the result if I succeed! >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Thank you very much for your attention. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Cordially >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Renzo Orsini >>>>>>>>>>>>>>> Associate Professor >>>>>>>>>>>>>>> Dipartimento di Informatica >>>>>>>>>>>>>>> Universita' Ca' Foscari di Venezia >>>>>>>>>>>>>> >>>>>>>>>>>>>> Well, I wouldn't have thought that you were even able >>>>>>>>>>>>>> to install >>>>>>>>>>>>>> the cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz system on an >>>>>>>>>>>>>> Intel machine; >>>>>>>>>>>>>> it's surely not supposed to run on one. It shouldn't >>>>>>>>>>>>>> be too >>>>>>>>>>>>>> difficult to get a port of the latest CM3 for Darwin >>>>>>>>>>>>>> on Intel >>>>>>>>>>>>>> processors; I even think somebody was already working >>>>>>>>>>>>>> on it, >>>>>>>>>>>>>> but I don't really remember who, so I forward your >>>>>>>>>>>>>> mail to >>>>>>>>>>>>>> the m3devel list, in case others have already started >>>>>>>>>>>>>> such an >>>>>>>>>>>>>> effort. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Olaf >>>>>>>>>>>>>> -- >>>>>>>>>>>>>> elego Software Solutions >>>>>>>>>>>>>> GmbH HRB 77719 >>>>>>>>>>>>>> Olaf Wagner E-Mail: wagner >>>>>>>>>>>>>> (at)elego.de >>>>>>>>>>>>>> Ohmstra?e 9 Tel: +49 30 >>>>>>>>>>>>>> 40 04 19 29 >>>>>>>>>>>>>> 10179 Berlin Fax: +49 30 >>>>>>>>>>>>>> 23 45 86 95 >>>>>>>>>>>>>> Cranachstra?e 7 Tel: +49 30 >>>>>>>>>>>>>> 85 58 01 81 >>>>>>>>>>>>>> 12157 Berlin Fax: +49 30 >>>>>>>>>>>>>> 85 58 01 88 >>>>>>>>>>>>>> ------------------> WWW: http://www.elego-software- >>>>>>>>>>>>>> solutions.com >>>>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>>>> M3devel mailing list >>>>>>>>>>>>>> M3devel at elegosoft.com >>>>>>>>>>>>>> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/ >>>>>>>>>>>>>> m3devel >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> _______________________________________________ >>>>>>>>>>> M3devel mailing list >>>>>>>>>>> M3devel at elegosoft.com >>>>>>>>>>> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel >>>>>>>>>> >>>>>>>>>> Antony Hosking | Associate Professor >>>>>>>>>> Dept of Computer Sciences | Office: (765) 494-6001 >>>>>>>>>> Purdue University | Mobile: (765) 427-5484 >>>>>>>>>> 250 N. University Street | hosking at cs.purdue.edu >>>>>>>>>> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/ >>>>>>>>>> ~hosking >>>>>>>>>> _--_|\ >>>>>>>>>> / \ >>>>>>>>>> \_.--._/ ) >>>>>>>>>> v / >>>>>>>>>> >>>>>>>>>> >>>>>>>> >>>>>>> >>>>>>> Antony Hosking | Associate Professor >>>>>>> Dept of Computer Sciences | Office: (765) 494-6001 >>>>>>> Purdue University | Mobile: (765) 427-5484 >>>>>>> 250 N. University Street | hosking at cs.purdue.edu >>>>>>> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/ >>>>>>> ~hosking >>>>>>> _--_|\ >>>>>>> / \ >>>>>>> \_.--._/ ) >>>>>>> v / >>>>>>> >>>>>> >>>>> >>>>> Antony Hosking | Associate Professor >>>>> Dept of Computer Sciences | Office: (765) 494-6001 >>>>> Purdue University | Mobile: (765) 427-5484 >>>>> 250 N. University Street | hosking at cs.purdue.edu >>>>> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking >>>>> _--_|\ >>>>> / \ >>>>> \_.--._/ ) >>>>> v / >>>>> >>>> >>> >>> Antony Hosking | Associate Professor >>> Dept of Computer Sciences | Office: (765) 494-6001 >>> Purdue University | Mobile: (765) 427-5484 >>> 250 N. University Street | hosking at cs.purdue.edu >>> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking >>> _--_|\ >>> / \ >>> \_.--._/ ) >>> v / >>> >> > > Antony Hosking | Associate Professor > Dept of Computer Sciences | Office: (765) 494-6001 > Purdue University | Mobile: (765) 427-5484 > 250 N. University Street | hosking at cs.purdue.edu > West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking > _--_|\ > / \ > \_.--._/ ) > v / > > > > _______________________________________________ > M3devel mailing list > M3devel at elegosoft.com > https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel Antony Hosking | Associate Professor Dept of Computer Sciences | Office: (765) 494-6001 Purdue University | Mobile: (765) 427-5484 250 N. University Street | hosking at cs.purdue.edu West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking _--_|\ / \ \_.--._/ ) v / From hosking at cs.purdue.edu Sun Jan 21 23:55:59 2007 From: hosking at cs.purdue.edu (Antony Hosking) Date: Sun, 21 Jan 2007 17:55:59 -0500 Subject: [M3devel] Re: porting m3 on intel mac In-Reply-To: <70415358-BF8A-45E8-9CA8-89DBDDA24148@cs.purdue.edu> References: <8A58B35B-22CD-42D5-BA19-5FBF5D3CF5CD@dsi.unive.it> <20070120164128.GA27790@elegosoft.com> <52EA8FC9-4E33-40FF-B041-5CEAE83BBDE7@darko.org> <6307E3CC-8E5F-4317-8A8E-7EADE20FEE54@darko.org> <1521F74A-AF0F-48C4-B0AA-4E7DB321DA62@cs.purdue.edu> <23B90155-784C-4A47-8EAD-1451AEC4C1B9@darko.org> <69645CDA-E215-4B81-BAEE-C45EC496E4C6@dsi.unive.it> <5C13EB47-D241-438A-BE6F-BBD30AF002A4@dsi.unive.it> <9125FF3E-5D5D-4DE0-95DC-DCD997D198C1@cs.purdue.edu> <4206B526-A4CF-430B-AE8C-086D27615A79@dsi.unive.it> <722DDD36-2973-44B2-91BF-8487DA744D6C@cs.purdue.edu> <6607A270-8264-4419-AAF2-323833523695@cs.purdue.edu> <70415358-BF8A-45E8-9CA8-89DBDDA24148@cs.purdue.edu> Message-ID: <8AB408E5-F32F-4209-910D-537508CB0F6B@cs.purdue.edu> Can you try downgrading to an older version of XCode and see how things go? I am using a version of 2.3.x. I am worried about the failure of stubgen in your build of zeus, which points to a possible problem with your installation. On 21/01/2007, at 5:40 PM, Antony Hosking wrote: > PS: It looks like there are issues with the XCode 2.4.x assembler: > > http://www.mail-archive.com/fink-devel at lists.sourceforge.net/ > msg14326.html > > Let me see what else I can dig up. > > On 21/01/2007, at 5:32 PM, Antony Hosking wrote: > >> On 21/01/2007, at 5:06 PM, Renzo Orsini wrote: >> >>> >>> On Jan 21, 2007, at 22:57, Antony Hosking wrote: >>> >>>> For some reason your .stabs entries are different than mine, but >>>> otherwise the assembler files are the same. Are you using the >>>> cm3cg and cm3.cfg from my ftp site? >>> >>> Yes, downloaded a few hours ago. >>> >>> >>>> Here is the version of the assembler that I have on my Intel Mac: >>>> >>>> Apple Computer, Inc. version cctools-590.42.1.obj~1, GNU >>>> assembler version 1.38 >>> >>> The mine is: >>> >>> Apple Computer, Inc. version cctools-622.5.obj~13, GNU assembler >>> version 1.38 >>> (If it useful, my Xcode is 2.4.1, with Xcode IDE: 762.0, Xcode >>> Core: 762.0, ToolSupport: 764.0, [From About XCode menu]) >>> >> >> Hmmm -- different versions of the assembler. Probably some flag >> needs adjusting. >> >>> >>> >>>> >>>> With respect to zeus, can you build with -verbose in the zeus >>>> directory and send me the output? Sounds like one of the tools >>>> is not getting built properly. >>>> >>> >>> Ok, I am sending it as attachment >>> >>> >>> >> >> Sorry, wrong option. Please run with -commands. I suspect >> stubgen is failing for you. >> >> >>> Renzo >>> >>> >>>> On 21/01/2007, at 4:47 PM, Renzo Orsini wrote: >>>> >>>>> You can find in the attachment the program and the compilation. >>>>> >>>>> Renzo >>>>> >>>>> >>>>> >>>>> On Jan 21, 2007, at 22:34, Antony Hosking wrote: >>>>> >>>>>> >>>>>> On 21/01/2007, at 4:27 PM, Renzo Orsini wrote: >>>>>> >>>>>>> On Jan 21, 2007, at 21:49, Antony Hosking wrote: >>>>>>> >>>>>>>> >>>>>>>> On 21/01/2007, at 7:59 AM, Renzo Orsini wrote: >>>>>>>> >>>>>>>>> Hello and lot of thanks! >>>>>>>>> >>>>>>>>> Everything is working really fine! >>>>>>>>> The configuration: MacBookPro, MacOSX 10.4.8, XCode 2.4.1 >>>>>>>>> (gcc 4.0.1), X11 installed, latest cm3 sources (with >>>>>>>>> anonymous CVS), >>>>>>>>> The process: >>>>>>>>> 1. unpacked cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz >>>>>>>>> 2. installed as super-user (every answer left as default, >>>>>>>>> the only problem is the fact that motif is missing, ignoring) >>>>>>>>> 3. replacing cm3, cm3.cfg, cm3cg from ftp:// >>>>>>>>> ftp.cs.purdue.edu/pub/hosking/m3/I386_DARWIN >>>>>>>>> 3. running as su: >>>>>>>>> do-cm3-core.sh buildship >>>>>>>>> install-cm3-compiler.sh upgrade >>>>>>>>> do-cm3-std.sh buildship >>>>>>>>> everything is ok a part from producing about a zillion of >>>>>>>>> assembler (?) warnings ("xxx.ms:nnn:indirect jmp without `*'), >>>>>>>>> and failing at the end the compilation of package zeus >>>>>>>>> (which I suppose is an old issue) >>>>>>>> >>>>>>>> That's odd since my builds go through cleanly. >>>>>>> >>>>>>> This is an example of the strange "indirect jump" message: >>>>>>> >>>>>>> pborsini:~/ProveModula3 orsini$ cat Main.m3 >>>>>>> MODULE Main; IMPORT IO; BEGIN IO.Put("Hello World\n"); END Main. >>>>>>> pborsini:~/ProveModula3 orsini$ cm3 >>>>>>> --- building in I386_DARWIN --- >>>>>>> new source -> compiling Main.m3 >>>>>>> Main.ms:101:indirect jmp without `*' >>>>>>> -> linking prog >>>>>>> _m3main.ms:74:indirect jmp without `*' >>>>>>> _m3main.ms:89:indirect jmp without `*' >>>>>>> _m3main.ms:108:indirect jmp without `*' >>>>>>> pborsini:~/ProveModula3 orsini$ ./I386_DARWIN/prog >>>>>>> Hello World >>>>>>> >>>>>>> maybe there is some problem with the linker parameters, >>>>>>> however the progrum runs ok. >>>>>> >>>>>> Can you compile with "-keep" and send me the relevant .ms >>>>>> file? I can compare with mine. >>>>>> >>>>>>> >>>>>>> For what concerns zeus: the following is the output of cm3: >>>>>>> >>>>>>> === package /Users/orsini/modula3/cvsstuff/cm3/m3-ui/zeus === >>>>>>> +++ cm3 -build -override -DROOT='/Users/orsini/modula3/ >>>>>>> cvsstuff/cm3' +++ >>>>>>> --- building in I386_DARWIN --- >>>>>>> >>>>>>> new source -> compiling RemoteView_T_v1.i3 >>>>>>> "../I386_DARWIN/RemoteView_T_v1.i3", line 1: syntax error: >>>>>>> missing INTERFACE or MODULE keyword >>>>>>> "../I386_DARWIN/RemoteView_T_v1.i3", line 1: unable to find >>>>>>> interface () >>>>>>> "../I386_DARWIN/RemoteView_T_v1.i3", line 1: warning: file >>>>>>> name (RemoteView_T_v1.i3) doesn't match module name (>>>>>> id>) >>>>>>> 2 errors and 1 warning encountered >>>>>>> new source -> compiling RemoteView_T_v1.m3 >>>>>>> "../I386_DARWIN/RemoteView_T_v1.m3", line 1: syntax error: >>>>>>> missing INTERFACE or MODULE keyword >>>>>>> "../I386_DARWIN/RemoteView_T_v1.m3", line 1: unable to find >>>>>>> interface () >>>>>>> "../I386_DARWIN/RemoteView_T_v1.m3", line 1: warning: file >>>>>>> name (RemoteView_T_v1.m3) doesn't match module name (>>>>>> id>) >>>>>>> 2 errors and 1 warning encountered >>>>>>> compilation failed => not building library "libm3zeus.a" >>>>>>> Fatal Error: package build failed >>>>>>> *** execution of failed *** >>>>>>> >>>>>>> (and the files RemoteView_T_v1.i3 and RemoteView_T_v1.m3 are >>>>>>> empty in I386_DARWIN, and they do not exists in src) >>>>>>> >>>>>>> Several other packages cannot be compiled, like many obliq >>>>>>> ones, webvt, June and mentor. >>>>>>> >>>>>>> However the compiler seems to work for compiling my stuff, >>>>>>> altough I have to make a few corrections and debugging. >>>>>> >>>>>> This sounds problematic since it implies that the generators >>>>>> for those files are not working correctly. (If you run with "- >>>>>> commands" you'll see which generator programs are being used. >>>>>> >>>>>>> >>>>>>> Thanks, >>>>>>> >>>>>>> Renzo >>>>>>> >>>>>>>> >>>>>>>>> >>>>>>>>> So, thank again to all and each of you, I am now very happy >>>>>>>>> and busy by bringing our old modula-3 software to the new >>>>>>>>> century! >>>>>>>>> >>>>>>>>> Cordially, >>>>>>>>> >>>>>>>>> Renzo Orsini >>>>>>>>> >>>>>>>>> On Jan 21, 2007, at 0:33, Darko wrote: >>>>>>>>> >>>>>>>>>> The latest, 10.4.8, also the latest XCode, which I think >>>>>>>>>> updates gcc. You were addressing me weren't you? But Renzo >>>>>>>>>> might like to answer that question too. XCode weighs in at >>>>>>>>>> about 1G, by the way. >>>>>>>>>> >>>>>>>>>> On 21/01/2007, at 7:58 AM, Antony Hosking wrote: >>>>>>>>>> >>>>>>>>>>> What version of OSX are you using? >>>>>>>>>>> >>>>>>>>>>> On 20/01/2007, at 5:49 PM, Darko wrote: >>>>>>>>>>> >>>>>>>>>>>> No worries. I'm not familiar at all with those scripts. >>>>>>>>>>>> The problem you are having may be to do with not having >>>>>>>>>>>> the latest source, but it most probably has to do with >>>>>>>>>>>> the version of gcc that is active on your machine. C >>>>>>>>>>>> files are not compiled by cm3 but rather call gcc >>>>>>>>>>>> directly. I can't remember which version of gcc is the >>>>>>>>>>>> correct one, but mine currently is i686-apple-darwin8- >>>>>>>>>>>> gcc-4.0.1; also I can't remember the command line for >>>>>>>>>>>> changing gcc versions. Tony may be able to help re the >>>>>>>>>>>> correct version if 4.0.1 doesn't work. You may need to >>>>>>>>>>>> install the latest XCode from http://developer.apple.com >>>>>>>>>>>> if you don't have 4.01. >>>>>>>>>>>> >>>>>>>>>>>> I've cc'd the list because they're actually very helpful >>>>>>>>>>>> and my knowledge is limited... >>>>>>>>>>>> >>>>>>>>>>>> - Darko >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> On 21/01/2007, at 6:58 AM, Renzo Orsini wrote: >>>>>>>>>>>> >>>>>>>>>>>>> First of all, thank you very much for your immediate help! >>>>>>>>>>>>> >>>>>>>>>>>>> I downloaded the files and replaced the corresponding / >>>>>>>>>>>>> usr/local/cm3/bin files, >>>>>>>>>>>>> modified cm3.cfg by replacing INSTALL_ROOT = "/usr/ >>>>>>>>>>>>> local/cm3-i386/" with INSTALL_ROOT = "/usr/local/cm3/" >>>>>>>>>>>>> then in the full source (last version, 5.4.0) I did: >>>>>>>>>>>>> scripts/do-cm3-core.sh buildship >>>>>>>>>>>>> this is the result: >>>>>>>>>>>>> >>>>>>>>>>>>> root#./do-cm3-core.sh buildship >>>>>>>>>>>>> CM3C = >>>>>>>>>>>>> /Users/orsini/cm3/cm3-src-all-5.4.0/scripts/pkgmap.sh - >>>>>>>>>>>>> c "cm3 -build -DROOT='/Users/orsini/cm3/cm3-src- >>>>>>>>>>>>> all-5.4.0' && cm3 -ship -DROOT='/Users/orsini/cm3/cm3- >>>>>>>>>>>>> src-all-5.4.0' " m3gc-simple m3core libm3 >>>>>>>>>>>>> patternmatching m3middle m3linker m3front m3quake m3cc >>>>>>>>>>>>> cm3 m3scanner m3tools m3cgcat m3cggen m3bundle >>>>>>>>>>>>> bitvector digraph parseparams realgeometry set slisp >>>>>>>>>>>>> sortedtableextras table-list tempfiles >>>>>>>>>>>>> === package /Users/orsini/cm3/cm3-src-all-5.4.0/m3-libs/ >>>>>>>>>>>>> m3gc-simple === >>>>>>>>>>>>> +++ cm3 -build -DROOT='/Users/orsini/cm3/cm3-src- >>>>>>>>>>>>> all-5.4.0' && cm3 -ship -DROOT='/Users/orsini/cm3/cm3- >>>>>>>>>>>>> src-all-5.4.0' +++ >>>>>>>>>>>>> --- building in I386_DARWIN --- >>>>>>>>>>>>> >>>>>>>>>>>>> new source -> compiling RTVM.c >>>>>>>>>>>>> new source -> compiling sysdeps.c >>>>>>>>>>>>> new source -> compiling accept.c >>>>>>>>>>>>> ../src/runtime/I386_DARWIN/accept.c: In function >>>>>>>>>>>>> 'm3_accept': >>>>>>>>>>>>> ../src/runtime/I386_DARWIN/accept.c:13: warning: >>>>>>>>>>>>> pointer targets in passing argument 3 of 'accept' >>>>>>>>>>>>> differ in signedness >>>>>>>>>>>>> new source -> compiling bind.c >>>>>>>>>>>>> new source -> compiling close.c >>>>>>>>>>>>> new source -> compiling connect.c >>>>>>>>>>>>> new source -> compiling dup.c >>>>>>>>>>>>> new source -> compiling dup2.c >>>>>>>>>>>>> new source -> compiling gethostbyaddr.c >>>>>>>>>>>>> new source -> compiling gethostbyname.c >>>>>>>>>>>>> new source -> compiling getpeername.c >>>>>>>>>>>>> ../src/runtime/I386_DARWIN/getpeername.c: In function >>>>>>>>>>>>> 'm3_getpeername': >>>>>>>>>>>>> ../src/runtime/I386_DARWIN/getpeername.c:13: warning: >>>>>>>>>>>>> pointer targets in passing argument 3 of 'getpeername' >>>>>>>>>>>>> differ in signedness >>>>>>>>>>>>> new source -> compiling getsockname.c >>>>>>>>>>>>> ../src/runtime/I386_DARWIN/getsockname.c: In function >>>>>>>>>>>>> 'm3_getsockname': >>>>>>>>>>>>> ../src/runtime/I386_DARWIN/getsockname.c:13: warning: >>>>>>>>>>>>> pointer targets in passing argument 3 of 'getsockname' >>>>>>>>>>>>> differ in signedness >>>>>>>>>>>>> new source -> compiling listen.c >>>>>>>>>>>>> new source -> compiling read.c >>>>>>>>>>>>> new source -> compiling recv.c >>>>>>>>>>>>> new source -> compiling recvfrom.c >>>>>>>>>>>>> ../src/runtime/I386_DARWIN/recvfrom.c: In function >>>>>>>>>>>>> 'm3_recvfrom': >>>>>>>>>>>>> ../src/runtime/I386_DARWIN/recvfrom.c:15: warning: >>>>>>>>>>>>> pointer targets in passing argument 6 of 'recvfrom' >>>>>>>>>>>>> differ in signedness >>>>>>>>>>>>> new source -> compiling select.c >>>>>>>>>>>>> new source -> compiling send.c >>>>>>>>>>>>> new source -> compiling sendto.c >>>>>>>>>>>>> new source -> compiling shutdown.c >>>>>>>>>>>>> new source -> compiling socket.c >>>>>>>>>>>>> new source -> compiling write.c >>>>>>>>>>>>> -> archiving libm3gcdefs.a >>>>>>>>>>>>> ld: common symbols not allowed with MH_DYLIB output >>>>>>>>>>>>> format with the -multi_module option >>>>>>>>>>>>> sysdeps.o definition of common _RTCSRC_FinishVM (size 16) >>>>>>>>>>>>> sysdeps.o definition of common _RTHeapRep_Fault (size 16) >>>>>>>>>>>>> /usr/bin/libtool: internal link edit command failed >>>>>>>>>>>>> --- shipping from I386_DARWIN --- >>>>>>>>>>>>> >>>>>>>>>>>>> . => /usr/local/cm3/pkg/m3gc-simple/I386_DARWIN >>>>>>>>>>>>> .M3EXPORTS libm3gcdefs.5.2.dylib"/Users/orsini/ >>>>>>>>>>>>> cm3/cm3-src-all-5.4.0/m3-libs/m3gc-simple/ >>>>>>>>>>>>> I386_DARWIN/.M3SHIP", line 3: quake runtime error: >>>>>>>>>>>>> unable to copy "libm3gcdefs.5.2.dylib" to "/usr/local/ >>>>>>>>>>>>> cm3/pkg/m3gc-simple/I386_DARWIN/libm3gcdefs.5.2.dylib": >>>>>>>>>>>>> errno=2 >>>>>>>>>>>>> >>>>>>>>>>>>> --procedure-- -line- -file--- >>>>>>>>>>>>> install_file -- >>>>>>>>>>>>> 3 /Users/orsini/cm3/cm3-src- >>>>>>>>>>>>> all-5.4.0/m3-libs/m3gc-simple/I386_DARWIN/.M3SHIP >>>>>>>>>>>>> >>>>>>>>>>>>> Fatal Error: package build failed >>>>>>>>>>>>> *** execution of failed *** >>>>>>>>>>>>> >>>>>>>>>>>>> ====== >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> I noticed that not all the .c files in .../m3-libs/m3gc- >>>>>>>>>>>>> simple/src/runtime/I386_DARWIN/ where compiled, but I >>>>>>>>>>>>> do not know if this is a normal behaviour. >>>>>>>>>>>>> >>>>>>>>>>>>> Thanks in advance for your time and patience! >>>>>>>>>>>>> >>>>>>>>>>>>> Cordially >>>>>>>>>>>>> >>>>>>>>>>>>> Renzo Orsini >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> On Jan 20, 2007, at 19:02, Darko wrote: >>>>>>>>>>>>> >>>>>>>>>>>>>> Have a look here: ftp://ftp.cs.purdue.edu/pub/hosking/ >>>>>>>>>>>>>> m3/I386_DARWIN/ >>>>>>>>>>>>>> >>>>>>>>>>>>>> There you'll find the bits you need for Mac Intel. >>>>>>>>>>>>>> Replace your existing cm3, cmcg and cm3.cfg with the >>>>>>>>>>>>>> ones there, then you can compile the basic libraries >>>>>>>>>>>>>> you need like m3core and libm3, but make sure you have >>>>>>>>>>>>>> the latest sources. >>>>>>>>>>>>>> >>>>>>>>>>>>>> I think they're the latest but Tony may have something >>>>>>>>>>>>>> more to say about that. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Darko. >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> On 21/01/2007, at 1:41 AM, Olaf Wagner wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>>> On Sat, Jan 20, 2007 at 03:05:55PM +0100, Renzo >>>>>>>>>>>>>>> Orsini wrote: >>>>>>>>>>>>>>>> Hello, >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> I installed cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz on >>>>>>>>>>>>>>>> an intel mac, then >>>>>>>>>>>>>>>> tried to a compile a Hello world program, but the >>>>>>>>>>>>>>>> compilation failed >>>>>>>>>>>>>>>> with the following message: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> pborsini:~/ProveModula3 orsini$ cm3 >>>>>>>>>>>>>>>> --- building in PPC_DARWIN --- >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> new source -> compiling Main.m3 >>>>>>>>>>>>>>>> "../Main.m3", line 4: warning: potentially unhandled >>>>>>>>>>>>>>>> exception: IO.Error >>>>>>>>>>>>>>>> 1 warning encountered >>>>>>>>>>>>>>>> Main.ms:12:no such instruction: `mflr r0' >>>>>>>>>>>>>>>> Main.ms:13:no such instruction: `stmw r30,-8(r1)' >>>>>>>>>>>>>>>> Main.ms:14:no such instruction: `stw r0,8(r1)' >>>>>>>>>>>>>>>> Main.ms:15:no such instruction: `stwu r1,-96(r1)' >>>>>>>>>>>>>>>> Main.ms:16:no such instruction: `mr r30,r1' >>>>>>>>>>>>>>>> Main.ms:17:no such instruction: `bcl >>>>>>>>>>>>>>>> 20,31,"L00000000001$pb"' >>>>>>>>>>>>>>>> ... >>>>>>>>>>>>>>>> .... >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> So I suppose there is PPC code to assemble and the >>>>>>>>>>>>>>>> Rosetta emulator >>>>>>>>>>>>>>>> for PPC on intel macs cannot do anything for this! >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Since I would like to port the Fibonacci language >>>>>>>>>>>>>>>> for databases, >>>>>>>>>>>>>>>> which is written in Modula-3, if I understand well >>>>>>>>>>>>>>>> the situation I >>>>>>>>>>>>>>>> should port the Modula-3 compiler by cross compiling >>>>>>>>>>>>>>>> it on a PPC mac, >>>>>>>>>>>>>>>> or something like that. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> I am asking you if you know about some effort of >>>>>>>>>>>>>>>> porting Modula-3 on >>>>>>>>>>>>>>>> intel macs, or at least if you let me know if this >>>>>>>>>>>>>>>> operation is >>>>>>>>>>>>>>>> possible (and also reasonably feasible in terms of >>>>>>>>>>>>>>>> time and >>>>>>>>>>>>>>>> expertise, given my teaching duties and my >>>>>>>>>>>>>>>> difficulties with >>>>>>>>>>>>>>>> assembler languages!), and, if so, if you can point >>>>>>>>>>>>>>>> me to the correct >>>>>>>>>>>>>>>> documentation to start with. Of course I will be >>>>>>>>>>>>>>>> very glad to give >>>>>>>>>>>>>>>> back to the community the result if I succeed! >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Thank you very much for your attention. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Cordially >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Renzo Orsini >>>>>>>>>>>>>>>> Associate Professor >>>>>>>>>>>>>>>> Dipartimento di Informatica >>>>>>>>>>>>>>>> Universita' Ca' Foscari di Venezia >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Well, I wouldn't have thought that you were even able >>>>>>>>>>>>>>> to install >>>>>>>>>>>>>>> the cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz system on an >>>>>>>>>>>>>>> Intel machine; >>>>>>>>>>>>>>> it's surely not supposed to run on one. It shouldn't >>>>>>>>>>>>>>> be too >>>>>>>>>>>>>>> difficult to get a port of the latest CM3 for Darwin >>>>>>>>>>>>>>> on Intel >>>>>>>>>>>>>>> processors; I even think somebody was already working >>>>>>>>>>>>>>> on it, >>>>>>>>>>>>>>> but I don't really remember who, so I forward your >>>>>>>>>>>>>>> mail to >>>>>>>>>>>>>>> the m3devel list, in case others have already started >>>>>>>>>>>>>>> such an >>>>>>>>>>>>>>> effort. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Olaf >>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>> elego Software Solutions >>>>>>>>>>>>>>> GmbH HRB 77719 >>>>>>>>>>>>>>> Olaf Wagner E-Mail: wagner >>>>>>>>>>>>>>> (at)elego.de >>>>>>>>>>>>>>> Ohmstra?e 9 Tel: +49 30 >>>>>>>>>>>>>>> 40 04 19 29 >>>>>>>>>>>>>>> 10179 Berlin Fax: +49 30 >>>>>>>>>>>>>>> 23 45 86 95 >>>>>>>>>>>>>>> Cranachstra?e 7 Tel: +49 30 >>>>>>>>>>>>>>> 85 58 01 81 >>>>>>>>>>>>>>> 12157 Berlin Fax: +49 30 >>>>>>>>>>>>>>> 85 58 01 88 >>>>>>>>>>>>>>> ------------------> WWW: http://www.elego-software- >>>>>>>>>>>>>>> solutions.com >>>>>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>>>>> M3devel mailing list >>>>>>>>>>>>>>> M3devel at elegosoft.com >>>>>>>>>>>>>>> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/ >>>>>>>>>>>>>>> m3devel >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>> M3devel mailing list >>>>>>>>>>>> M3devel at elegosoft.com >>>>>>>>>>>> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel >>>>>>>>>>> >>>>>>>>>>> Antony Hosking | Associate Professor >>>>>>>>>>> Dept of Computer Sciences | Office: (765) 494-6001 >>>>>>>>>>> Purdue University | Mobile: (765) 427-5484 >>>>>>>>>>> 250 N. University Street | hosking at cs.purdue.edu >>>>>>>>>>> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/ >>>>>>>>>>> ~hosking >>>>>>>>>>> _--_|\ >>>>>>>>>>> / \ >>>>>>>>>>> \_.--._/ ) >>>>>>>>>>> v / >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> Antony Hosking | Associate Professor >>>>>>>> Dept of Computer Sciences | Office: (765) 494-6001 >>>>>>>> Purdue University | Mobile: (765) 427-5484 >>>>>>>> 250 N. University Street | hosking at cs.purdue.edu >>>>>>>> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/ >>>>>>>> ~hosking >>>>>>>> _--_|\ >>>>>>>> / \ >>>>>>>> \_.--._/ ) >>>>>>>> v / >>>>>>>> >>>>>>> >>>>>> >>>>>> Antony Hosking | Associate Professor >>>>>> Dept of Computer Sciences | Office: (765) 494-6001 >>>>>> Purdue University | Mobile: (765) 427-5484 >>>>>> 250 N. University Street | hosking at cs.purdue.edu >>>>>> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking >>>>>> _--_|\ >>>>>> / \ >>>>>> \_.--._/ ) >>>>>> v / >>>>>> >>>>> >>>> >>>> Antony Hosking | Associate Professor >>>> Dept of Computer Sciences | Office: (765) 494-6001 >>>> Purdue University | Mobile: (765) 427-5484 >>>> 250 N. University Street | hosking at cs.purdue.edu >>>> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking >>>> _--_|\ >>>> / \ >>>> \_.--._/ ) >>>> v / >>>> >>> >> >> Antony Hosking | Associate Professor >> Dept of Computer Sciences | Office: (765) 494-6001 >> Purdue University | Mobile: (765) 427-5484 >> 250 N. University Street | hosking at cs.purdue.edu >> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking >> _--_|\ >> / \ >> \_.--._/ ) >> v / >> >> >> >> _______________________________________________ >> M3devel mailing list >> M3devel at elegosoft.com >> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel > > Antony Hosking | Associate Professor > Dept of Computer Sciences | Office: (765) 494-6001 > Purdue University | Mobile: (765) 427-5484 > 250 N. University Street | hosking at cs.purdue.edu > West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking > _--_|\ > / \ > \_.--._/ ) > v / > > Antony Hosking | Associate Professor Dept of Computer Sciences | Office: (765) 494-6001 Purdue University | Mobile: (765) 427-5484 250 N. University Street | hosking at cs.purdue.edu West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking _--_|\ / \ \_.--._/ ) v / From hosking at cs.purdue.edu Sun Jan 21 23:58:32 2007 From: hosking at cs.purdue.edu (Antony Hosking) Date: Sun, 21 Jan 2007 17:58:32 -0500 Subject: [M3devel] Re: porting m3 on intel mac In-Reply-To: <70415358-BF8A-45E8-9CA8-89DBDDA24148@cs.purdue.edu> References: <8A58B35B-22CD-42D5-BA19-5FBF5D3CF5CD@dsi.unive.it> <20070120164128.GA27790@elegosoft.com> <52EA8FC9-4E33-40FF-B041-5CEAE83BBDE7@darko.org> <6307E3CC-8E5F-4317-8A8E-7EADE20FEE54@darko.org> <1521F74A-AF0F-48C4-B0AA-4E7DB321DA62@cs.purdue.edu> <23B90155-784C-4A47-8EAD-1451AEC4C1B9@darko.org> <69645CDA-E215-4B81-BAEE-C45EC496E4C6@dsi.unive.it> <5C13EB47-D241-438A-BE6F-BBD30AF002A4@dsi.unive.it> <9125FF3E-5D5D-4DE0-95DC-DCD997D198C1@cs.purdue.edu> <4206B526-A4CF-430B-AE8C-086D27615A79@dsi.unive.it> <722DDD36-2973-44B2-91BF-8487DA744D6C@cs.purdue.edu> <6607A270-8264-4419-AAF2-323833523695@cs.purdue.edu> <70415358-BF8A-45E8-9CA8-89DBDDA24148@cs.purdue.edu> Message-ID: <4E6E0525-4E9C-4819-BD6A-A0F280F58A47@cs.purdue.edu> P.S. One more thing: Can you please rebuild to use native threads on Mac OSX by giving the flag "-DPTHREAD" to your build? You would do this by defining: export CM3="cm3 -DPTHREAD" before invoking "do-cm3-std.sh buildship". My suspicion is that the user-level POSIX threading is broken somehow. You should try this before downgrading XCode to 2.3 since the problems of "indirect jmp" are just warnings as far as I can tell. On 21/01/2007, at 5:40 PM, Antony Hosking wrote: > PS: It looks like there are issues with the XCode 2.4.x assembler: > > http://www.mail-archive.com/fink-devel at lists.sourceforge.net/ > msg14326.html > > Let me see what else I can dig up. > > On 21/01/2007, at 5:32 PM, Antony Hosking wrote: > >> On 21/01/2007, at 5:06 PM, Renzo Orsini wrote: >> >>> >>> On Jan 21, 2007, at 22:57, Antony Hosking wrote: >>> >>>> For some reason your .stabs entries are different than mine, but >>>> otherwise the assembler files are the same. Are you using the >>>> cm3cg and cm3.cfg from my ftp site? >>> >>> Yes, downloaded a few hours ago. >>> >>> >>>> Here is the version of the assembler that I have on my Intel Mac: >>>> >>>> Apple Computer, Inc. version cctools-590.42.1.obj~1, GNU >>>> assembler version 1.38 >>> >>> The mine is: >>> >>> Apple Computer, Inc. version cctools-622.5.obj~13, GNU assembler >>> version 1.38 >>> (If it useful, my Xcode is 2.4.1, with Xcode IDE: 762.0, Xcode >>> Core: 762.0, ToolSupport: 764.0, [From About XCode menu]) >>> >> >> Hmmm -- different versions of the assembler. Probably some flag >> needs adjusting. >> >>> >>> >>>> >>>> With respect to zeus, can you build with -verbose in the zeus >>>> directory and send me the output? Sounds like one of the tools >>>> is not getting built properly. >>>> >>> >>> Ok, I am sending it as attachment >>> >>> >>> >> >> Sorry, wrong option. Please run with -commands. I suspect >> stubgen is failing for you. >> >> >>> Renzo >>> >>> >>>> On 21/01/2007, at 4:47 PM, Renzo Orsini wrote: >>>> >>>>> You can find in the attachment the program and the compilation. >>>>> >>>>> Renzo >>>>> >>>>> >>>>> >>>>> On Jan 21, 2007, at 22:34, Antony Hosking wrote: >>>>> >>>>>> >>>>>> On 21/01/2007, at 4:27 PM, Renzo Orsini wrote: >>>>>> >>>>>>> On Jan 21, 2007, at 21:49, Antony Hosking wrote: >>>>>>> >>>>>>>> >>>>>>>> On 21/01/2007, at 7:59 AM, Renzo Orsini wrote: >>>>>>>> >>>>>>>>> Hello and lot of thanks! >>>>>>>>> >>>>>>>>> Everything is working really fine! >>>>>>>>> The configuration: MacBookPro, MacOSX 10.4.8, XCode 2.4.1 >>>>>>>>> (gcc 4.0.1), X11 installed, latest cm3 sources (with >>>>>>>>> anonymous CVS), >>>>>>>>> The process: >>>>>>>>> 1. unpacked cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz >>>>>>>>> 2. installed as super-user (every answer left as default, >>>>>>>>> the only problem is the fact that motif is missing, ignoring) >>>>>>>>> 3. replacing cm3, cm3.cfg, cm3cg from ftp:// >>>>>>>>> ftp.cs.purdue.edu/pub/hosking/m3/I386_DARWIN >>>>>>>>> 3. running as su: >>>>>>>>> do-cm3-core.sh buildship >>>>>>>>> install-cm3-compiler.sh upgrade >>>>>>>>> do-cm3-std.sh buildship >>>>>>>>> everything is ok a part from producing about a zillion of >>>>>>>>> assembler (?) warnings ("xxx.ms:nnn:indirect jmp without `*'), >>>>>>>>> and failing at the end the compilation of package zeus >>>>>>>>> (which I suppose is an old issue) >>>>>>>> >>>>>>>> That's odd since my builds go through cleanly. >>>>>>> >>>>>>> This is an example of the strange "indirect jump" message: >>>>>>> >>>>>>> pborsini:~/ProveModula3 orsini$ cat Main.m3 >>>>>>> MODULE Main; IMPORT IO; BEGIN IO.Put("Hello World\n"); END Main. >>>>>>> pborsini:~/ProveModula3 orsini$ cm3 >>>>>>> --- building in I386_DARWIN --- >>>>>>> new source -> compiling Main.m3 >>>>>>> Main.ms:101:indirect jmp without `*' >>>>>>> -> linking prog >>>>>>> _m3main.ms:74:indirect jmp without `*' >>>>>>> _m3main.ms:89:indirect jmp without `*' >>>>>>> _m3main.ms:108:indirect jmp without `*' >>>>>>> pborsini:~/ProveModula3 orsini$ ./I386_DARWIN/prog >>>>>>> Hello World >>>>>>> >>>>>>> maybe there is some problem with the linker parameters, >>>>>>> however the progrum runs ok. >>>>>> >>>>>> Can you compile with "-keep" and send me the relevant .ms >>>>>> file? I can compare with mine. >>>>>> >>>>>>> >>>>>>> For what concerns zeus: the following is the output of cm3: >>>>>>> >>>>>>> === package /Users/orsini/modula3/cvsstuff/cm3/m3-ui/zeus === >>>>>>> +++ cm3 -build -override -DROOT='/Users/orsini/modula3/ >>>>>>> cvsstuff/cm3' +++ >>>>>>> --- building in I386_DARWIN --- >>>>>>> >>>>>>> new source -> compiling RemoteView_T_v1.i3 >>>>>>> "../I386_DARWIN/RemoteView_T_v1.i3", line 1: syntax error: >>>>>>> missing INTERFACE or MODULE keyword >>>>>>> "../I386_DARWIN/RemoteView_T_v1.i3", line 1: unable to find >>>>>>> interface () >>>>>>> "../I386_DARWIN/RemoteView_T_v1.i3", line 1: warning: file >>>>>>> name (RemoteView_T_v1.i3) doesn't match module name (>>>>>> id>) >>>>>>> 2 errors and 1 warning encountered >>>>>>> new source -> compiling RemoteView_T_v1.m3 >>>>>>> "../I386_DARWIN/RemoteView_T_v1.m3", line 1: syntax error: >>>>>>> missing INTERFACE or MODULE keyword >>>>>>> "../I386_DARWIN/RemoteView_T_v1.m3", line 1: unable to find >>>>>>> interface () >>>>>>> "../I386_DARWIN/RemoteView_T_v1.m3", line 1: warning: file >>>>>>> name (RemoteView_T_v1.m3) doesn't match module name (>>>>>> id>) >>>>>>> 2 errors and 1 warning encountered >>>>>>> compilation failed => not building library "libm3zeus.a" >>>>>>> Fatal Error: package build failed >>>>>>> *** execution of failed *** >>>>>>> >>>>>>> (and the files RemoteView_T_v1.i3 and RemoteView_T_v1.m3 are >>>>>>> empty in I386_DARWIN, and they do not exists in src) >>>>>>> >>>>>>> Several other packages cannot be compiled, like many obliq >>>>>>> ones, webvt, June and mentor. >>>>>>> >>>>>>> However the compiler seems to work for compiling my stuff, >>>>>>> altough I have to make a few corrections and debugging. >>>>>> >>>>>> This sounds problematic since it implies that the generators >>>>>> for those files are not working correctly. (If you run with "- >>>>>> commands" you'll see which generator programs are being used. >>>>>> >>>>>>> >>>>>>> Thanks, >>>>>>> >>>>>>> Renzo >>>>>>> >>>>>>>> >>>>>>>>> >>>>>>>>> So, thank again to all and each of you, I am now very happy >>>>>>>>> and busy by bringing our old modula-3 software to the new >>>>>>>>> century! >>>>>>>>> >>>>>>>>> Cordially, >>>>>>>>> >>>>>>>>> Renzo Orsini >>>>>>>>> >>>>>>>>> On Jan 21, 2007, at 0:33, Darko wrote: >>>>>>>>> >>>>>>>>>> The latest, 10.4.8, also the latest XCode, which I think >>>>>>>>>> updates gcc. You were addressing me weren't you? But Renzo >>>>>>>>>> might like to answer that question too. XCode weighs in at >>>>>>>>>> about 1G, by the way. >>>>>>>>>> >>>>>>>>>> On 21/01/2007, at 7:58 AM, Antony Hosking wrote: >>>>>>>>>> >>>>>>>>>>> What version of OSX are you using? >>>>>>>>>>> >>>>>>>>>>> On 20/01/2007, at 5:49 PM, Darko wrote: >>>>>>>>>>> >>>>>>>>>>>> No worries. I'm not familiar at all with those scripts. >>>>>>>>>>>> The problem you are having may be to do with not having >>>>>>>>>>>> the latest source, but it most probably has to do with >>>>>>>>>>>> the version of gcc that is active on your machine. C >>>>>>>>>>>> files are not compiled by cm3 but rather call gcc >>>>>>>>>>>> directly. I can't remember which version of gcc is the >>>>>>>>>>>> correct one, but mine currently is i686-apple-darwin8- >>>>>>>>>>>> gcc-4.0.1; also I can't remember the command line for >>>>>>>>>>>> changing gcc versions. Tony may be able to help re the >>>>>>>>>>>> correct version if 4.0.1 doesn't work. You may need to >>>>>>>>>>>> install the latest XCode from http://developer.apple.com >>>>>>>>>>>> if you don't have 4.01. >>>>>>>>>>>> >>>>>>>>>>>> I've cc'd the list because they're actually very helpful >>>>>>>>>>>> and my knowledge is limited... >>>>>>>>>>>> >>>>>>>>>>>> - Darko >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> On 21/01/2007, at 6:58 AM, Renzo Orsini wrote: >>>>>>>>>>>> >>>>>>>>>>>>> First of all, thank you very much for your immediate help! >>>>>>>>>>>>> >>>>>>>>>>>>> I downloaded the files and replaced the corresponding / >>>>>>>>>>>>> usr/local/cm3/bin files, >>>>>>>>>>>>> modified cm3.cfg by replacing INSTALL_ROOT = "/usr/ >>>>>>>>>>>>> local/cm3-i386/" with INSTALL_ROOT = "/usr/local/cm3/" >>>>>>>>>>>>> then in the full source (last version, 5.4.0) I did: >>>>>>>>>>>>> scripts/do-cm3-core.sh buildship >>>>>>>>>>>>> this is the result: >>>>>>>>>>>>> >>>>>>>>>>>>> root#./do-cm3-core.sh buildship >>>>>>>>>>>>> CM3C = >>>>>>>>>>>>> /Users/orsini/cm3/cm3-src-all-5.4.0/scripts/pkgmap.sh - >>>>>>>>>>>>> c "cm3 -build -DROOT='/Users/orsini/cm3/cm3-src- >>>>>>>>>>>>> all-5.4.0' && cm3 -ship -DROOT='/Users/orsini/cm3/cm3- >>>>>>>>>>>>> src-all-5.4.0' " m3gc-simple m3core libm3 >>>>>>>>>>>>> patternmatching m3middle m3linker m3front m3quake m3cc >>>>>>>>>>>>> cm3 m3scanner m3tools m3cgcat m3cggen m3bundle >>>>>>>>>>>>> bitvector digraph parseparams realgeometry set slisp >>>>>>>>>>>>> sortedtableextras table-list tempfiles >>>>>>>>>>>>> === package /Users/orsini/cm3/cm3-src-all-5.4.0/m3-libs/ >>>>>>>>>>>>> m3gc-simple === >>>>>>>>>>>>> +++ cm3 -build -DROOT='/Users/orsini/cm3/cm3-src- >>>>>>>>>>>>> all-5.4.0' && cm3 -ship -DROOT='/Users/orsini/cm3/cm3- >>>>>>>>>>>>> src-all-5.4.0' +++ >>>>>>>>>>>>> --- building in I386_DARWIN --- >>>>>>>>>>>>> >>>>>>>>>>>>> new source -> compiling RTVM.c >>>>>>>>>>>>> new source -> compiling sysdeps.c >>>>>>>>>>>>> new source -> compiling accept.c >>>>>>>>>>>>> ../src/runtime/I386_DARWIN/accept.c: In function >>>>>>>>>>>>> 'm3_accept': >>>>>>>>>>>>> ../src/runtime/I386_DARWIN/accept.c:13: warning: >>>>>>>>>>>>> pointer targets in passing argument 3 of 'accept' >>>>>>>>>>>>> differ in signedness >>>>>>>>>>>>> new source -> compiling bind.c >>>>>>>>>>>>> new source -> compiling close.c >>>>>>>>>>>>> new source -> compiling connect.c >>>>>>>>>>>>> new source -> compiling dup.c >>>>>>>>>>>>> new source -> compiling dup2.c >>>>>>>>>>>>> new source -> compiling gethostbyaddr.c >>>>>>>>>>>>> new source -> compiling gethostbyname.c >>>>>>>>>>>>> new source -> compiling getpeername.c >>>>>>>>>>>>> ../src/runtime/I386_DARWIN/getpeername.c: In function >>>>>>>>>>>>> 'm3_getpeername': >>>>>>>>>>>>> ../src/runtime/I386_DARWIN/getpeername.c:13: warning: >>>>>>>>>>>>> pointer targets in passing argument 3 of 'getpeername' >>>>>>>>>>>>> differ in signedness >>>>>>>>>>>>> new source -> compiling getsockname.c >>>>>>>>>>>>> ../src/runtime/I386_DARWIN/getsockname.c: In function >>>>>>>>>>>>> 'm3_getsockname': >>>>>>>>>>>>> ../src/runtime/I386_DARWIN/getsockname.c:13: warning: >>>>>>>>>>>>> pointer targets in passing argument 3 of 'getsockname' >>>>>>>>>>>>> differ in signedness >>>>>>>>>>>>> new source -> compiling listen.c >>>>>>>>>>>>> new source -> compiling read.c >>>>>>>>>>>>> new source -> compiling recv.c >>>>>>>>>>>>> new source -> compiling recvfrom.c >>>>>>>>>>>>> ../src/runtime/I386_DARWIN/recvfrom.c: In function >>>>>>>>>>>>> 'm3_recvfrom': >>>>>>>>>>>>> ../src/runtime/I386_DARWIN/recvfrom.c:15: warning: >>>>>>>>>>>>> pointer targets in passing argument 6 of 'recvfrom' >>>>>>>>>>>>> differ in signedness >>>>>>>>>>>>> new source -> compiling select.c >>>>>>>>>>>>> new source -> compiling send.c >>>>>>>>>>>>> new source -> compiling sendto.c >>>>>>>>>>>>> new source -> compiling shutdown.c >>>>>>>>>>>>> new source -> compiling socket.c >>>>>>>>>>>>> new source -> compiling write.c >>>>>>>>>>>>> -> archiving libm3gcdefs.a >>>>>>>>>>>>> ld: common symbols not allowed with MH_DYLIB output >>>>>>>>>>>>> format with the -multi_module option >>>>>>>>>>>>> sysdeps.o definition of common _RTCSRC_FinishVM (size 16) >>>>>>>>>>>>> sysdeps.o definition of common _RTHeapRep_Fault (size 16) >>>>>>>>>>>>> /usr/bin/libtool: internal link edit command failed >>>>>>>>>>>>> --- shipping from I386_DARWIN --- >>>>>>>>>>>>> >>>>>>>>>>>>> . => /usr/local/cm3/pkg/m3gc-simple/I386_DARWIN >>>>>>>>>>>>> .M3EXPORTS libm3gcdefs.5.2.dylib"/Users/orsini/ >>>>>>>>>>>>> cm3/cm3-src-all-5.4.0/m3-libs/m3gc-simple/ >>>>>>>>>>>>> I386_DARWIN/.M3SHIP", line 3: quake runtime error: >>>>>>>>>>>>> unable to copy "libm3gcdefs.5.2.dylib" to "/usr/local/ >>>>>>>>>>>>> cm3/pkg/m3gc-simple/I386_DARWIN/libm3gcdefs.5.2.dylib": >>>>>>>>>>>>> errno=2 >>>>>>>>>>>>> >>>>>>>>>>>>> --procedure-- -line- -file--- >>>>>>>>>>>>> install_file -- >>>>>>>>>>>>> 3 /Users/orsini/cm3/cm3-src- >>>>>>>>>>>>> all-5.4.0/m3-libs/m3gc-simple/I386_DARWIN/.M3SHIP >>>>>>>>>>>>> >>>>>>>>>>>>> Fatal Error: package build failed >>>>>>>>>>>>> *** execution of failed *** >>>>>>>>>>>>> >>>>>>>>>>>>> ====== >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> I noticed that not all the .c files in .../m3-libs/m3gc- >>>>>>>>>>>>> simple/src/runtime/I386_DARWIN/ where compiled, but I >>>>>>>>>>>>> do not know if this is a normal behaviour. >>>>>>>>>>>>> >>>>>>>>>>>>> Thanks in advance for your time and patience! >>>>>>>>>>>>> >>>>>>>>>>>>> Cordially >>>>>>>>>>>>> >>>>>>>>>>>>> Renzo Orsini >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> On Jan 20, 2007, at 19:02, Darko wrote: >>>>>>>>>>>>> >>>>>>>>>>>>>> Have a look here: ftp://ftp.cs.purdue.edu/pub/hosking/ >>>>>>>>>>>>>> m3/I386_DARWIN/ >>>>>>>>>>>>>> >>>>>>>>>>>>>> There you'll find the bits you need for Mac Intel. >>>>>>>>>>>>>> Replace your existing cm3, cmcg and cm3.cfg with the >>>>>>>>>>>>>> ones there, then you can compile the basic libraries >>>>>>>>>>>>>> you need like m3core and libm3, but make sure you have >>>>>>>>>>>>>> the latest sources. >>>>>>>>>>>>>> >>>>>>>>>>>>>> I think they're the latest but Tony may have something >>>>>>>>>>>>>> more to say about that. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Darko. >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> On 21/01/2007, at 1:41 AM, Olaf Wagner wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>>> On Sat, Jan 20, 2007 at 03:05:55PM +0100, Renzo >>>>>>>>>>>>>>> Orsini wrote: >>>>>>>>>>>>>>>> Hello, >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> I installed cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz on >>>>>>>>>>>>>>>> an intel mac, then >>>>>>>>>>>>>>>> tried to a compile a Hello world program, but the >>>>>>>>>>>>>>>> compilation failed >>>>>>>>>>>>>>>> with the following message: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> pborsini:~/ProveModula3 orsini$ cm3 >>>>>>>>>>>>>>>> --- building in PPC_DARWIN --- >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> new source -> compiling Main.m3 >>>>>>>>>>>>>>>> "../Main.m3", line 4: warning: potentially unhandled >>>>>>>>>>>>>>>> exception: IO.Error >>>>>>>>>>>>>>>> 1 warning encountered >>>>>>>>>>>>>>>> Main.ms:12:no such instruction: `mflr r0' >>>>>>>>>>>>>>>> Main.ms:13:no such instruction: `stmw r30,-8(r1)' >>>>>>>>>>>>>>>> Main.ms:14:no such instruction: `stw r0,8(r1)' >>>>>>>>>>>>>>>> Main.ms:15:no such instruction: `stwu r1,-96(r1)' >>>>>>>>>>>>>>>> Main.ms:16:no such instruction: `mr r30,r1' >>>>>>>>>>>>>>>> Main.ms:17:no such instruction: `bcl >>>>>>>>>>>>>>>> 20,31,"L00000000001$pb"' >>>>>>>>>>>>>>>> ... >>>>>>>>>>>>>>>> .... >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> So I suppose there is PPC code to assemble and the >>>>>>>>>>>>>>>> Rosetta emulator >>>>>>>>>>>>>>>> for PPC on intel macs cannot do anything for this! >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Since I would like to port the Fibonacci language >>>>>>>>>>>>>>>> for databases, >>>>>>>>>>>>>>>> which is written in Modula-3, if I understand well >>>>>>>>>>>>>>>> the situation I >>>>>>>>>>>>>>>> should port the Modula-3 compiler by cross compiling >>>>>>>>>>>>>>>> it on a PPC mac, >>>>>>>>>>>>>>>> or something like that. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> I am asking you if you know about some effort of >>>>>>>>>>>>>>>> porting Modula-3 on >>>>>>>>>>>>>>>> intel macs, or at least if you let me know if this >>>>>>>>>>>>>>>> operation is >>>>>>>>>>>>>>>> possible (and also reasonably feasible in terms of >>>>>>>>>>>>>>>> time and >>>>>>>>>>>>>>>> expertise, given my teaching duties and my >>>>>>>>>>>>>>>> difficulties with >>>>>>>>>>>>>>>> assembler languages!), and, if so, if you can point >>>>>>>>>>>>>>>> me to the correct >>>>>>>>>>>>>>>> documentation to start with. Of course I will be >>>>>>>>>>>>>>>> very glad to give >>>>>>>>>>>>>>>> back to the community the result if I succeed! >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Thank you very much for your attention. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Cordially >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Renzo Orsini >>>>>>>>>>>>>>>> Associate Professor >>>>>>>>>>>>>>>> Dipartimento di Informatica >>>>>>>>>>>>>>>> Universita' Ca' Foscari di Venezia >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Well, I wouldn't have thought that you were even able >>>>>>>>>>>>>>> to install >>>>>>>>>>>>>>> the cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz system on an >>>>>>>>>>>>>>> Intel machine; >>>>>>>>>>>>>>> it's surely not supposed to run on one. It shouldn't >>>>>>>>>>>>>>> be too >>>>>>>>>>>>>>> difficult to get a port of the latest CM3 for Darwin >>>>>>>>>>>>>>> on Intel >>>>>>>>>>>>>>> processors; I even think somebody was already working >>>>>>>>>>>>>>> on it, >>>>>>>>>>>>>>> but I don't really remember who, so I forward your >>>>>>>>>>>>>>> mail to >>>>>>>>>>>>>>> the m3devel list, in case others have already started >>>>>>>>>>>>>>> such an >>>>>>>>>>>>>>> effort. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Olaf >>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>> elego Software Solutions >>>>>>>>>>>>>>> GmbH HRB 77719 >>>>>>>>>>>>>>> Olaf Wagner E-Mail: wagner >>>>>>>>>>>>>>> (at)elego.de >>>>>>>>>>>>>>> Ohmstra?e 9 Tel: +49 30 >>>>>>>>>>>>>>> 40 04 19 29 >>>>>>>>>>>>>>> 10179 Berlin Fax: +49 30 >>>>>>>>>>>>>>> 23 45 86 95 >>>>>>>>>>>>>>> Cranachstra?e 7 Tel: +49 30 >>>>>>>>>>>>>>> 85 58 01 81 >>>>>>>>>>>>>>> 12157 Berlin Fax: +49 30 >>>>>>>>>>>>>>> 85 58 01 88 >>>>>>>>>>>>>>> ------------------> WWW: http://www.elego-software- >>>>>>>>>>>>>>> solutions.com >>>>>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>>>>> M3devel mailing list >>>>>>>>>>>>>>> M3devel at elegosoft.com >>>>>>>>>>>>>>> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/ >>>>>>>>>>>>>>> m3devel >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>> M3devel mailing list >>>>>>>>>>>> M3devel at elegosoft.com >>>>>>>>>>>> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel >>>>>>>>>>> >>>>>>>>>>> Antony Hosking | Associate Professor >>>>>>>>>>> Dept of Computer Sciences | Office: (765) 494-6001 >>>>>>>>>>> Purdue University | Mobile: (765) 427-5484 >>>>>>>>>>> 250 N. University Street | hosking at cs.purdue.edu >>>>>>>>>>> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/ >>>>>>>>>>> ~hosking >>>>>>>>>>> _--_|\ >>>>>>>>>>> / \ >>>>>>>>>>> \_.--._/ ) >>>>>>>>>>> v / >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> Antony Hosking | Associate Professor >>>>>>>> Dept of Computer Sciences | Office: (765) 494-6001 >>>>>>>> Purdue University | Mobile: (765) 427-5484 >>>>>>>> 250 N. University Street | hosking at cs.purdue.edu >>>>>>>> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/ >>>>>>>> ~hosking >>>>>>>> _--_|\ >>>>>>>> / \ >>>>>>>> \_.--._/ ) >>>>>>>> v / >>>>>>>> >>>>>>> >>>>>> >>>>>> Antony Hosking | Associate Professor >>>>>> Dept of Computer Sciences | Office: (765) 494-6001 >>>>>> Purdue University | Mobile: (765) 427-5484 >>>>>> 250 N. University Street | hosking at cs.purdue.edu >>>>>> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking >>>>>> _--_|\ >>>>>> / \ >>>>>> \_.--._/ ) >>>>>> v / >>>>>> >>>>> >>>> >>>> Antony Hosking | Associate Professor >>>> Dept of Computer Sciences | Office: (765) 494-6001 >>>> Purdue University | Mobile: (765) 427-5484 >>>> 250 N. University Street | hosking at cs.purdue.edu >>>> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking >>>> _--_|\ >>>> / \ >>>> \_.--._/ ) >>>> v / >>>> >>> >> >> Antony Hosking | Associate Professor >> Dept of Computer Sciences | Office: (765) 494-6001 >> Purdue University | Mobile: (765) 427-5484 >> 250 N. University Street | hosking at cs.purdue.edu >> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking >> _--_|\ >> / \ >> \_.--._/ ) >> v / >> >> >> >> _______________________________________________ >> M3devel mailing list >> M3devel at elegosoft.com >> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel > > Antony Hosking | Associate Professor > Dept of Computer Sciences | Office: (765) 494-6001 > Purdue University | Mobile: (765) 427-5484 > 250 N. University Street | hosking at cs.purdue.edu > West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking > _--_|\ > / \ > \_.--._/ ) > v / > > Antony Hosking | Associate Professor Dept of Computer Sciences | Office: (765) 494-6001 Purdue University | Mobile: (765) 427-5484 250 N. University Street | hosking at cs.purdue.edu West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking _--_|\ / \ \_.--._/ ) v / From jayk123 at hotmail.com Mon Jan 22 04:00:00 2007 From: jayk123 at hotmail.com (j k) Date: Mon, 22 Jan 2007 03:00:00 +0000 Subject: [M3devel] cm3 5.5 for Windows min test release Message-ID: Can folks try from ~jkrell on m3.elegosoft.com: cm3-min-WIN32-NT386-d5.3.2-symbols.tgz cm3-min-WIN32-NT386-d5.3.2.tgz Really they are version d5.5.0. There is some wierd problem where I don't have execute permissions on the extracted files, so: tar xvfz cm3-min-WIN32-NT386-d5.3.2.tgz cacls . /t /e /g everyone:f .\cminstall You will only be prompted for where to install, which defaults to c:\cm3. When using cm3, cl and link need to be in %PATH%, and %LIB% and possibly %INCLUDE% need to be set. Visual C++ includes a batch file to set these, named for example vcvars32.bat. cd \programs files dir /s/b v*bat will find it and there is a shortcut to it on the start menu. This also mitigates the problems with spaces in file paths (which were otherwise mitigated by converting to short names, which do not guaranteeably exist). On computers without Visual C++ 2005 installed and without the .NET Runtime 2.0, download and run the setup for the Visual C++ 8.0 runtime: -- vcredist_x86.exe -- from http://www.microsoft.com/downloads/details.aspx?familyid=32BC1BEE-A3F9-4C13-9C99-220B62A191EE - Jay _________________________________________________________________ Valentine?s Day -- Shop for gifts that spell L-O-V-E at MSN Shopping http://shopping.msn.com/content/shp/?ctId=8323,ptnrid=37,ptnrdata=24095&tcode=wlmtagline From jayk123 at hotmail.com Mon Jan 22 04:00:00 2007 From: jayk123 at hotmail.com (j k) Date: Mon, 22 Jan 2007 03:00:00 +0000 Subject: [M3devel] cm3 5.5 for Windows min test release Message-ID: Can folks try from ~jkrell on m3.elegosoft.com: cm3-min-WIN32-NT386-d5.3.2-symbols.tgz cm3-min-WIN32-NT386-d5.3.2.tgz Really they are version d5.5.0. There is some wierd problem where I don't have execute permissions on the extracted files, so: tar xvfz cm3-min-WIN32-NT386-d5.3.2.tgz cacls . /t /e /g everyone:f .\cminstall You will only be prompted for where to install, which defaults to c:\cm3. When using cm3, cl and link need to be in %PATH%, and %LIB% and possibly %INCLUDE% need to be set. Visual C++ includes a batch file to set these, named for example vcvars32.bat. cd \programs files dir /s/b v*bat will find it and there is a shortcut to it on the start menu. This also mitigates the problems with spaces in file paths (which were otherwise mitigated by converting to short names, which do not guaranteeably exist). On computers without Visual C++ 2005 installed and without the .NET Runtime 2.0, download and run the setup for the Visual C++ 8.0 runtime: -- vcredist_x86.exe -- from http://www.microsoft.com/downloads/details.aspx?familyid=32BC1BEE-A3F9-4C13-9C99-220B62A191EE - Jay _________________________________________________________________ Valentine?s Day -- Shop for gifts that spell L-O-V-E at MSN Shopping http://shopping.msn.com/content/shp/?ctId=8323,ptnrid=37,ptnrdata=24095&tcode=wlmtagline From jayk123 at hotmail.com Mon Jan 22 04:03:12 2007 From: jayk123 at hotmail.com (j k) Date: Mon, 22 Jan 2007 03:03:12 +0000 Subject: [M3devel] improving or removing cminstall? Message-ID: Are folks interested in refining the install? For example, on Windows, tar and gzip are both required and carried. That seems redundant. Make it just a self extracting .zip? Or is there any "self extracting" mechanism that works with bzip2? bzip2 always gets betters compression for me than gzip. Or just cut cminstall on Windows? All it does is prompt for an install location and tar xzf there. It provides no real value, yet we pay about 4 meg (uncompressed) for cminstall.exe + tar.exe + gzip.exe + cygwin.dll. I'll try some of these out. - Jay _________________________________________________________________ Turn searches into helpful donations. Make your search count. http://click4thecause.live.com/search/charity/default.aspx?source=hmemtagline_donation&FORM=WLMTAG From jayk123 at hotmail.com Mon Jan 22 05:57:50 2007 From: jayk123 at hotmail.com (j k) Date: Mon, 22 Jan 2007 04:57:50 +0000 Subject: [M3devel] cminstall vs. size of distribution Message-ID: I don't see my earlier mail yet, but this is trivial to find out, what the cost of the almost do-nothing installer is on Windows: min.tgz 4.6 meg that is system.tgz + tar/gzip/cygwin.dll/cminstall system.tgz which is really all you need 3.5meg system.tar.bz2 2.9 meg system.zip 3.6 meg making a .zip self extracting adds about 130k. Does a megabyte matter these days? - Jay _________________________________________________________________ Type your favorite song.? Get a customized station.? Try MSN Radio powered by Pandora. http://radio.msn.com/?icid=T002MSN03A07001 From wagner at elegosoft.com Mon Jan 22 10:16:18 2007 From: wagner at elegosoft.com (Olaf Wagner) Date: Mon, 22 Jan 2007 10:16:18 +0100 (CET) Subject: [M3devel] Re: porting m3 on intel mac In-Reply-To: <4E6E0525-4E9C-4819-BD6A-A0F280F58A47@cs.purdue.edu> References: <8A58B35B-22CD-42D5-BA19-5FBF5D3CF5CD@dsi.unive.it> <20070120164128.GA27790@elegosoft.com> <52EA8FC9-4E33-40FF-B041-5CEAE83BBDE7@darko.org> <6307E3CC-8E5F-4317-8A8E-7EADE20FEE54@darko.org> <1521F74A-AF0F-48C4-B0AA-4E7DB321DA62@cs.purdue.edu> <23B90155-784C-4A47-8EAD-1451AEC4C1B9@darko.org> <69645CDA-E215-4B81-BAEE-C45EC496E4C6@dsi.unive.it> <5C13EB47-D241-438A-BE6F-BBD30AF002A4@dsi.unive.it> <9125FF3E-5D5D-4DE0-95DC-DCD997D198C1@cs.purdue.edu> <4206B526-A4CF-430B-AE8C-086D27615A79@dsi.unive.it> <722DDD36-2973-44B2-91BF-8487DA744D6C@cs.purdue.edu> <6607A270-8264-4419-AAF2-323833523695@cs.purdue.edu> <70415358-BF8A-45E8-9CA8-89DBDDA24148@cs.purdue.edu> <4E6E0525-4E9C-4819-BD6A-A0F280F58A47@cs.purdue.edu> Message-ID: <51447.194.138.127.36.1169457378.squirrel@mail.elegosoft.com> On Sun, January 21, 2007 11:58 pm, Antony Hosking wrote: > P.S. One more thing: Can you please rebuild to use native threads > on Mac OSX by giving the flag "-DPTHREAD" to your build? You would > do this by defining: > > export CM3="cm3 -DPTHREAD" > > before invoking "do-cm3-std.sh buildship". > > My suspicion is that the user-level POSIX threading is broken > somehow. You should try this before downgrading XCode to 2.3 since > the problems of "indirect jmp" are just warnings as far as I can tell. Hi Antony, is the I386_DARWIN target code already included in CM3? We should also try to get all the information that is currently only floating through the mailing lists documented for all other users and make the I386_DARWIN tarballs available from the CM3 web site. Perhaps we should write up a new page about threading, document all the possibilities and problems, and change the default for certain platforms? If we get all the facts, somebody from the elego team may be available for help with the docs (Ulrike/Arne?). Olaf -- Olaf Wagner elego Software Solutions GmbH, Berlin, Germany From hosking at cs.purdue.edu Mon Jan 22 15:26:29 2007 From: hosking at cs.purdue.edu (Tony Hosking) Date: Mon, 22 Jan 2007 09:26:29 -0500 Subject: [M3devel] Re: porting m3 on intel mac In-Reply-To: <51447.194.138.127.36.1169457378.squirrel@mail.elegosoft.com> References: <8A58B35B-22CD-42D5-BA19-5FBF5D3CF5CD@dsi.unive.it> <20070120164128.GA27790@elegosoft.com> <52EA8FC9-4E33-40FF-B041-5CEAE83BBDE7@darko.org> <6307E3CC-8E5F-4317-8A8E-7EADE20FEE54@darko.org> <1521F74A-AF0F-48C4-B0AA-4E7DB321DA62@cs.purdue.edu> <23B90155-784C-4A47-8EAD-1451AEC4C1B9@darko.org> <69645CDA-E215-4B81-BAEE-C45EC496E4C6@dsi.unive.it> <5C13EB47-D241-438A-BE6F-BBD30AF002A4@dsi.unive.it> <9125FF3E-5D5D-4DE0-95DC-DCD997D198C1@cs.purdue.edu> <4206B526-A4CF-430B-AE8C-086D27615A79@dsi.unive.it> <722DDD36-2973-44B2-91BF-8487DA744D6C@cs.purdue.edu> <6607A270-8264-4419-AAF2-323833523695@cs.purdue.edu> <70415358-BF8A-45E8-9CA8-89DBDDA24148@cs.purdue.edu> <4E6E0525-4E9C-4819-BD6A-A0F280F58A47@cs.purdue.edu> <51447.194.138.127.36.1169457378.squirrel@mail.elegosoft.com> Message-ID: <138C6D50-EBE5-48F5-BDCD-89429B18427A@cs.purdue.edu> Yes, I386_DARWIN code is already in CVS. Really, there shouldn't be problems with user-level threading -- I did confirm that it worked for me, but I wonder if there have been library changes with later XCode updates. Anyway, I can try testing with XCode 2.4 sometime, but I don't want to break my existing Intel installation. On Jan 22, 2007, at 4:16 AM, Olaf Wagner wrote: > > On Sun, January 21, 2007 11:58 pm, Antony Hosking wrote: >> P.S. One more thing: Can you please rebuild to use native threads >> on Mac OSX by giving the flag "-DPTHREAD" to your build? You would >> do this by defining: >> >> export CM3="cm3 -DPTHREAD" >> >> before invoking "do-cm3-std.sh buildship". >> >> My suspicion is that the user-level POSIX threading is broken >> somehow. You should try this before downgrading XCode to 2.3 since >> the problems of "indirect jmp" are just warnings as far as I can >> tell. > > Hi Antony, > > is the I386_DARWIN target code already included in CM3? We should > also try > to get all the information that is currently only floating through the > mailing lists documented for all other users and make the I386_DARWIN > tarballs available from the CM3 web site. Perhaps we should write up > a new page about threading, document all the possibilities and > problems, > and change the default for certain platforms? > > If we get all the facts, somebody from the elego team may be available > for help with the docs (Ulrike/Arne?). > > Olaf > -- > Olaf Wagner > elego Software Solutions GmbH, Berlin, Germany Antony Hosking | Associate Professor Dept of Computer Science | Office: +1 765 494-6001 Purdue University | Mobile: +1 765 427-5484 250 N. University Street | Email: hosking at cs.purdue.edu West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking _--_|\ / \ \_.--._/ ) v / From hosking at cs.purdue.edu Mon Jan 22 20:19:37 2007 From: hosking at cs.purdue.edu (Tony Hosking) Date: Mon, 22 Jan 2007 14:19:37 -0500 Subject: [M3devel] Re: porting m3 on intel mac In-Reply-To: <701DAE45-84AC-4936-AB7C-563C26F1722C@dsi.unive.it> References: <8A58B35B-22CD-42D5-BA19-5FBF5D3CF5CD@dsi.unive.it> <20070120164128.GA27790@elegosoft.com> <52EA8FC9-4E33-40FF-B041-5CEAE83BBDE7@darko.org> <6307E3CC-8E5F-4317-8A8E-7EADE20FEE54@darko.org> <1521F74A-AF0F-48C4-B0AA-4E7DB321DA62@cs.purdue.edu> <23B90155-784C-4A47-8EAD-1451AEC4C1B9@darko.org> <69645CDA-E215-4B81-BAEE-C45EC496E4C6@dsi.unive.it> <5C13EB47-D241-438A-BE6F-BBD30AF002A4@dsi.unive.it> <9125FF3E-5D5D-4DE0-95DC-DCD997D198C1@cs.purdue.edu> <4206B526-A4CF-430B-AE8C-086D27615A79@dsi.unive.it> <722DDD36-2973-44B2-91BF-8487DA744D6C@cs.purdue.edu> <6607A270-8264-4419-AAF2-323833523695@cs.purdue.edu> <70415358-BF8A-45E8-9CA8-89DBDDA24148@cs.purdue.edu> <4E6E0525-4E9C-4819-BD6A-A0F280F58A47@cs.purdue.edu> <70! 1DAE45-84AC-4936-AB7C-563C26F1722C@dsi.unive.it> Message-ID: <241F98D6-543B-43A8-BD97-0BAE18A53C94@cs.purdue.edu> OK. So we have narrowed down the problem with stubgen, etc., to being something in the user-level (POSIX) threads system, since it appears that system-level (PTHREAD) threading now works. The X11 issue sounds like a new one, which will need to be dealt with. On Jan 22, 2007, at 1:15 PM, Renzo Orsini wrote: > On Jan 22, 2007, at 15:24, Tony Hosking wrote: > >> It looks like you forgot to run "do-cm3-std.sh realclean" before >> runnning "do-cm3-std.sh buildship". > > Yes! (I did not know I need to do it) > > The good news is that everything has been compiled now, even the > packages that did not compiled before. (If it could be useful, I > can send a ~200KB build.log). > > The bad news is that x-windows programs (like fisheye) produces: > > *** > *** runtime error: > *** Segmentation violation - possible attempt to dereference NIL > *** > > (I started X11, and from xterm, after setting PATH and > DYLD_LIBRARY_PATH tried a few of them, e.g. fisheye) > > Renzo > >> >> On Jan 22, 2007, at 2:57 AM, Renzo Orsini wrote: >> >>> Here is the result of compiling with native thread: >>> >>> pborsini:~/modula3/cvsstuff/cm3/scripts root# export CM3="cm3 - >>> DPTHREAD" >>> pborsini:~/modula3/cvsstuff/cm3/scripts root# ./do-cm3-std.sh >>> CM3C = >>> /Users/orsini/modula3/cvsstuff/cm3/scripts/pkgmap.sh -c "cm3 - >>> DPTHREAD -build -override -DROOT='/Users/orsini/modula3/cvsstuff/ >>> cm3' " m3gc-simple m3core libm3 patternmatching m3middle m3quake >>> m3scanner m3tools m3cgcat m3cggen m3bundle arithmetic bitvector >>> digraph parseparams realgeometry set slisp sortedtableextras >>> table-list tempfiles tcp udp libsio libbuf debug listfuncs >>> embutils m3tk-misc http binIO commandrw m3tk mtex m3totex >>> m3tohtml m3scan m3markup m3browser cmpdir cmpfp dirfp uniq netobj >>> netobjd stubgen events rdwr sharedobj sharedobjgen odbc >>> postgres95 db smalldb stable stablegen X11R4 ui PEX vbtkit cmvbt >>> jvideo videovbt web formsvbtpixmaps formsvbt formsview formsedit >>> codeview mg mgkit opengl anim3D zeus m3zume synloc synex metasyn >>> recordheap rehearsecode replayheap showheap shownew showthread >>> cube calculator fisheye >>> === package /Users/orsini/modula3/cvsstuff/cm3/m3-libs/m3gc- >>> simple === >>> +++ cm3 -DPTHREAD -build -override -DROOT='/Users/orsini/modula3/ >>> cvsstuff/cm3' +++ >>> --- building in I386_DARWIN --- >>> >>> unable to read ../src/m3overrides, options "-override" and "-x" >>> ignored. >>> ==> /Users/orsini/modula3/cvsstuff/cm3/m3-libs/m3gc-simple done >>> >>> === package /Users/orsini/modula3/cvsstuff/cm3/m3-libs/m3core === >>> +++ cm3 -DPTHREAD -build -override -DROOT='/Users/orsini/modula3/ >>> cvsstuff/cm3' +++ >>> --- building in I386_DARWIN --- >>> >>> new source -> compiling ThreadPThread.m3 >>> ThreadPThread.ms:13103:indirect jmp without `*' >>> ThreadPThread.ms:13118:indirect jmp without `*' >>> ThreadPThread.ms:14483:indirect jmp without `*' >>> ... (etc.) >>> ThreadPThread.ms:14498:indirect jmp without `*' >>> ThreadPThread.ms:14513:indirect jmp without `*' >>> ThreadPThread.ms:14528:indirect jmp without `*' >>> new exporters -> recompiling RTHooks.i3 >>> new exporters -> recompiling RTOS.i3 >>> new exporters -> recompiling Thread.i3 >>> new exporters -> recompiling Scheduler.i3 >>> new exporters -> recompiling SchedulerPosix.i3 >>> new exporters -> recompiling ThreadF.i3 >>> new "RTHooks.io" -> archiving libm3core.a >>> ==> /Users/orsini/modula3/cvsstuff/cm3/m3-libs/m3core done >>> >>> === package /Users/orsini/modula3/cvsstuff/cm3/m3-libs/libm3 === >>> +++ cm3 -DPTHREAD -build -override -DROOT='/Users/orsini/modula3/ >>> cvsstuff/cm3' +++ >>> --- building in I386_DARWIN --- >>> >>> new "/Users/orsini/modula3/cvsstuff/cm3/m3-libs/m3core/ >>> I386_DARWIN/libm3core.a" -> archiving libm3.a >>> >>> Fatal Error: incomplete library >>> >>> ThreadPosix.i3: missing object types: _t1541f475 >>> imported by: TimeStamp.m3 >>> *** execution of failed *** >>> >>> ============= >>> >>> Perhaps should I clean everything (how?) and then start again? >>> >>> And for what concern downgrading, if it could help I will do it. >>> >>> Renzo >>> >>> On Jan 21, 2007, at 23:58, Antony Hosking wrote: >>> >>>> P.S. One more thing: Can you please rebuild to use native >>>> threads on Mac OSX by giving the flag "-DPTHREAD" to your >>>> build? You would do this by defining: >>>> >>>> export CM3="cm3 -DPTHREAD" >>>> >>>> before invoking "do-cm3-std.sh buildship". >>>> >>>> My suspicion is that the user-level POSIX threading is broken >>>> somehow. You should try this before downgrading XCode to 2.3 >>>> since the problems of "indirect jmp" are just warnings as far as >>>> I can tell. >>>> >>>> >>>> On 21/01/2007, at 5:40 PM, Antony Hosking wrote: >>>> >>>>> PS: It looks like there are issues with the XCode 2.4.x >>>>> assembler: >>>>> >>>>> http://www.mail-archive.com/fink-devel at lists.sourceforge.net/ >>>>> msg14326.html >>>>> >>>>> Let me see what else I can dig up. >>>>> >>>>> On 21/01/2007, at 5:32 PM, Antony Hosking wrote: >>>>> >>>>>> On 21/01/2007, at 5:06 PM, Renzo Orsini wrote: >>>>>> >>>>>>> >>>>>>> On Jan 21, 2007, at 22:57, Antony Hosking wrote: >>>>>>> >>>>>>>> For some reason your .stabs entries are different than mine, >>>>>>>> but otherwise the assembler files are the same. Are you >>>>>>>> using the cm3cg and cm3.cfg from my ftp site? >>>>>>> >>>>>>> Yes, downloaded a few hours ago. >>>>>>> >>>>>>> >>>>>>>> Here is the version of the assembler that I have on my >>>>>>>> Intel Mac: >>>>>>>> >>>>>>>> Apple Computer, Inc. version cctools-590.42.1.obj~1, GNU >>>>>>>> assembler version 1.38 >>>>>>> >>>>>>> The mine is: >>>>>>> >>>>>>> Apple Computer, Inc. version cctools-622.5.obj~13, GNU >>>>>>> assembler version 1.38 >>>>>>> (If it useful, my Xcode is 2.4.1, with Xcode IDE: 762.0, >>>>>>> Xcode Core: 762.0, ToolSupport: 764.0, [From About XCode menu]) >>>>>>> >>>>>> >>>>>> Hmmm -- different versions of the assembler. Probably some >>>>>> flag needs adjusting. >>>>>> >>>>>>> >>>>>>> >>>>>>>> >>>>>>>> With respect to zeus, can you build with -verbose in the >>>>>>>> zeus directory and send me the output? Sounds like one of >>>>>>>> the tools is not getting built properly. >>>>>>>> >>>>>>> >>>>>>> Ok, I am sending it as attachment >>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>>> Sorry, wrong option. Please run with -commands. I suspect >>>>>> stubgen is failing for you. >>>>>> >>>>>> >>>>>>> Renzo >>>>>>> >>>>>>> >>>>>>>> On 21/01/2007, at 4:47 PM, Renzo Orsini wrote: >>>>>>>> >>>>>>>>> You can find in the attachment the program and the >>>>>>>>> compilation. >>>>>>>>> >>>>>>>>> Renzo >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> On Jan 21, 2007, at 22:34, Antony Hosking wrote: >>>>>>>>> >>>>>>>>>> >>>>>>>>>> On 21/01/2007, at 4:27 PM, Renzo Orsini wrote: >>>>>>>>>> >>>>>>>>>>> On Jan 21, 2007, at 21:49, Antony Hosking wrote: >>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> On 21/01/2007, at 7:59 AM, Renzo Orsini wrote: >>>>>>>>>>>> >>>>>>>>>>>>> Hello and lot of thanks! >>>>>>>>>>>>> >>>>>>>>>>>>> Everything is working really fine! >>>>>>>>>>>>> The configuration: MacBookPro, MacOSX 10.4.8, XCode >>>>>>>>>>>>> 2.4.1 (gcc 4.0.1), X11 installed, latest cm3 sources >>>>>>>>>>>>> (with anonymous CVS), >>>>>>>>>>>>> The process: >>>>>>>>>>>>> 1. unpacked cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz >>>>>>>>>>>>> 2. installed as super-user (every answer left as >>>>>>>>>>>>> default, the only problem is the fact that motif is >>>>>>>>>>>>> missing, ignoring) >>>>>>>>>>>>> 3. replacing cm3, cm3.cfg, cm3cg from ftp:// >>>>>>>>>>>>> ftp.cs.purdue.edu/pub/hosking/m3/I386_DARWIN >>>>>>>>>>>>> 3. running as su: >>>>>>>>>>>>> do-cm3-core.sh buildship >>>>>>>>>>>>> install-cm3-compiler.sh upgrade >>>>>>>>>>>>> do-cm3-std.sh buildship >>>>>>>>>>>>> everything is ok a part from producing about a zillion >>>>>>>>>>>>> of assembler (?) warnings ("xxx.ms:nnn:indirect jmp >>>>>>>>>>>>> without `*'), >>>>>>>>>>>>> and failing at the end the compilation of package zeus >>>>>>>>>>>>> (which I suppose is an old issue) >>>>>>>>>>>> >>>>>>>>>>>> That's odd since my builds go through cleanly. >>>>>>>>>>> >>>>>>>>>>> This is an example of the strange "indirect jump" message: >>>>>>>>>>> >>>>>>>>>>> pborsini:~/ProveModula3 orsini$ cat Main.m3 >>>>>>>>>>> MODULE Main; IMPORT IO; BEGIN IO.Put("Hello World\n"); >>>>>>>>>>> END Main. >>>>>>>>>>> pborsini:~/ProveModula3 orsini$ cm3 >>>>>>>>>>> --- building in I386_DARWIN --- >>>>>>>>>>> new source -> compiling Main.m3 >>>>>>>>>>> Main.ms:101:indirect jmp without `*' >>>>>>>>>>> -> linking prog >>>>>>>>>>> _m3main.ms:74:indirect jmp without `*' >>>>>>>>>>> _m3main.ms:89:indirect jmp without `*' >>>>>>>>>>> _m3main.ms:108:indirect jmp without `*' >>>>>>>>>>> pborsini:~/ProveModula3 orsini$ ./I386_DARWIN/prog >>>>>>>>>>> Hello World >>>>>>>>>>> >>>>>>>>>>> maybe there is some problem with the linker parameters, >>>>>>>>>>> however the progrum runs ok. >>>>>>>>>> >>>>>>>>>> Can you compile with "-keep" and send me the relevant .ms >>>>>>>>>> file? I can compare with mine. >>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> For what concerns zeus: the following is the output of cm3: >>>>>>>>>>> >>>>>>>>>>> === package /Users/orsini/modula3/cvsstuff/cm3/m3-ui/zeus >>>>>>>>>>> === >>>>>>>>>>> +++ cm3 -build -override -DROOT='/Users/orsini/modula3/ >>>>>>>>>>> cvsstuff/cm3' +++ >>>>>>>>>>> --- building in I386_DARWIN --- >>>>>>>>>>> >>>>>>>>>>> new source -> compiling RemoteView_T_v1.i3 >>>>>>>>>>> "../I386_DARWIN/RemoteView_T_v1.i3", line 1: syntax >>>>>>>>>>> error: missing INTERFACE or MODULE keyword >>>>>>>>>>> "../I386_DARWIN/RemoteView_T_v1.i3", line 1: unable to >>>>>>>>>>> find interface () >>>>>>>>>>> "../I386_DARWIN/RemoteView_T_v1.i3", line 1: warning: >>>>>>>>>>> file name (RemoteView_T_v1.i3) doesn't match module name >>>>>>>>>>> () >>>>>>>>>>> 2 errors and 1 warning encountered >>>>>>>>>>> new source -> compiling RemoteView_T_v1.m3 >>>>>>>>>>> "../I386_DARWIN/RemoteView_T_v1.m3", line 1: syntax >>>>>>>>>>> error: missing INTERFACE or MODULE keyword >>>>>>>>>>> "../I386_DARWIN/RemoteView_T_v1.m3", line 1: unable to >>>>>>>>>>> find interface () >>>>>>>>>>> "../I386_DARWIN/RemoteView_T_v1.m3", line 1: warning: >>>>>>>>>>> file name (RemoteView_T_v1.m3) doesn't match module name >>>>>>>>>>> () >>>>>>>>>>> 2 errors and 1 warning encountered >>>>>>>>>>> compilation failed => not building library "libm3zeus.a" >>>>>>>>>>> Fatal Error: package build failed >>>>>>>>>>> *** execution of failed *** >>>>>>>>>>> >>>>>>>>>>> (and the files RemoteView_T_v1.i3 and RemoteView_T_v1.m3 >>>>>>>>>>> are empty in I386_DARWIN, and they do not exists in src) >>>>>>>>>>> >>>>>>>>>>> Several other packages cannot be compiled, like many >>>>>>>>>>> obliq ones, webvt, June and mentor. >>>>>>>>>>> >>>>>>>>>>> However the compiler seems to work for compiling my >>>>>>>>>>> stuff, altough I have to make a few corrections and >>>>>>>>>>> debugging. >>>>>>>>>> >>>>>>>>>> This sounds problematic since it implies that the >>>>>>>>>> generators for those files are not working correctly. (If >>>>>>>>>> you run with "-commands" you'll see which generator >>>>>>>>>> programs are being used. >>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Thanks, >>>>>>>>>>> >>>>>>>>>>> Renzo >>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> So, thank again to all and each of you, I am now very >>>>>>>>>>>>> happy and busy by bringing our old modula-3 software to >>>>>>>>>>>>> the new century! >>>>>>>>>>>>> >>>>>>>>>>>>> Cordially, >>>>>>>>>>>>> >>>>>>>>>>>>> Renzo Orsini >>>>>>>>>>>>> >>>>>>>>>>>>> On Jan 21, 2007, at 0:33, Darko wrote: >>>>>>>>>>>>> >>>>>>>>>>>>>> The latest, 10.4.8, also the latest XCode, which I >>>>>>>>>>>>>> think updates gcc. You were addressing me weren't you? >>>>>>>>>>>>>> But Renzo might like to answer that question too. >>>>>>>>>>>>>> XCode weighs in at about 1G, by the way. >>>>>>>>>>>>>> >>>>>>>>>>>>>> On 21/01/2007, at 7:58 AM, Antony Hosking wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>>> What version of OSX are you using? >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> On 20/01/2007, at 5:49 PM, Darko wrote: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> No worries. I'm not familiar at all with those >>>>>>>>>>>>>>>> scripts. The problem you are having may be to do >>>>>>>>>>>>>>>> with not having the latest source, but it most >>>>>>>>>>>>>>>> probably has to do with the version of gcc that is >>>>>>>>>>>>>>>> active on your machine. C files are not compiled by >>>>>>>>>>>>>>>> cm3 but rather call gcc directly. I can't remember >>>>>>>>>>>>>>>> which version of gcc is the correct one, but mine >>>>>>>>>>>>>>>> currently is i686-apple-darwin8-gcc-4.0.1; also I >>>>>>>>>>>>>>>> can't remember the command line for changing gcc >>>>>>>>>>>>>>>> versions. Tony may be able to help re the correct >>>>>>>>>>>>>>>> version if 4.0.1 doesn't work. You may need to >>>>>>>>>>>>>>>> install the latest XCode from http:// >>>>>>>>>>>>>>>> developer.apple.com if you don't have 4.01. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> I've cc'd the list because they're actually very >>>>>>>>>>>>>>>> helpful and my knowledge is limited... >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> - Darko >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> On 21/01/2007, at 6:58 AM, Renzo Orsini wrote: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> First of all, thank you very much for your >>>>>>>>>>>>>>>>> immediate help! >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> I downloaded the files and replaced the >>>>>>>>>>>>>>>>> corresponding /usr/local/cm3/bin files, >>>>>>>>>>>>>>>>> modified cm3.cfg by replacing INSTALL_ROOT = "/usr/ >>>>>>>>>>>>>>>>> local/cm3-i386/" with INSTALL_ROOT = "/usr/local/cm3/" >>>>>>>>>>>>>>>>> then in the full source (last version, 5.4.0) I >>>>>>>>>>>>>>>>> did: scripts/do-cm3-core.sh buildship >>>>>>>>>>>>>>>>> this is the result: >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> root#./do-cm3-core.sh buildship >>>>>>>>>>>>>>>>> CM3C = >>>>>>>>>>>>>>>>> /Users/orsini/cm3/cm3-src-all-5.4.0/scripts/ >>>>>>>>>>>>>>>>> pkgmap.sh -c "cm3 -build -DROOT='/Users/orsini/cm3/ >>>>>>>>>>>>>>>>> cm3-src-all-5.4.0' && cm3 -ship -DROOT='/Users/ >>>>>>>>>>>>>>>>> orsini/cm3/cm3-src-all-5.4.0' " m3gc-simple m3core >>>>>>>>>>>>>>>>> libm3 patternmatching m3middle m3linker m3front >>>>>>>>>>>>>>>>> m3quake m3cc cm3 m3scanner m3tools m3cgcat m3cggen >>>>>>>>>>>>>>>>> m3bundle bitvector digraph parseparams realgeometry >>>>>>>>>>>>>>>>> set slisp sortedtableextras table-list tempfiles >>>>>>>>>>>>>>>>> === package /Users/orsini/cm3/cm3-src-all-5.4.0/m3- >>>>>>>>>>>>>>>>> libs/m3gc-simple === >>>>>>>>>>>>>>>>> +++ cm3 -build -DROOT='/Users/orsini/cm3/cm3-src- >>>>>>>>>>>>>>>>> all-5.4.0' && cm3 -ship -DROOT='/Users/orsini/cm3/ >>>>>>>>>>>>>>>>> cm3-src-all-5.4.0' +++ >>>>>>>>>>>>>>>>> --- building in I386_DARWIN --- >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> new source -> compiling RTVM.c >>>>>>>>>>>>>>>>> new source -> compiling sysdeps.c >>>>>>>>>>>>>>>>> new source -> compiling accept.c >>>>>>>>>>>>>>>>> ../src/runtime/I386_DARWIN/accept.c: In function >>>>>>>>>>>>>>>>> 'm3_accept': >>>>>>>>>>>>>>>>> ../src/runtime/I386_DARWIN/accept.c:13: warning: >>>>>>>>>>>>>>>>> pointer targets in passing argument 3 of 'accept' >>>>>>>>>>>>>>>>> differ in signedness >>>>>>>>>>>>>>>>> new source -> compiling bind.c >>>>>>>>>>>>>>>>> new source -> compiling close.c >>>>>>>>>>>>>>>>> new source -> compiling connect.c >>>>>>>>>>>>>>>>> new source -> compiling dup.c >>>>>>>>>>>>>>>>> new source -> compiling dup2.c >>>>>>>>>>>>>>>>> new source -> compiling gethostbyaddr.c >>>>>>>>>>>>>>>>> new source -> compiling gethostbyname.c >>>>>>>>>>>>>>>>> new source -> compiling getpeername.c >>>>>>>>>>>>>>>>> ../src/runtime/I386_DARWIN/getpeername.c: In >>>>>>>>>>>>>>>>> function 'm3_getpeername': >>>>>>>>>>>>>>>>> ../src/runtime/I386_DARWIN/getpeername.c:13: >>>>>>>>>>>>>>>>> warning: pointer targets in passing argument 3 of >>>>>>>>>>>>>>>>> 'getpeername' differ in signedness >>>>>>>>>>>>>>>>> new source -> compiling getsockname.c >>>>>>>>>>>>>>>>> ../src/runtime/I386_DARWIN/getsockname.c: In >>>>>>>>>>>>>>>>> function 'm3_getsockname': >>>>>>>>>>>>>>>>> ../src/runtime/I386_DARWIN/getsockname.c:13: >>>>>>>>>>>>>>>>> warning: pointer targets in passing argument 3 of >>>>>>>>>>>>>>>>> 'getsockname' differ in signedness >>>>>>>>>>>>>>>>> new source -> compiling listen.c >>>>>>>>>>>>>>>>> new source -> compiling read.c >>>>>>>>>>>>>>>>> new source -> compiling recv.c >>>>>>>>>>>>>>>>> new source -> compiling recvfrom.c >>>>>>>>>>>>>>>>> ../src/runtime/I386_DARWIN/recvfrom.c: In function >>>>>>>>>>>>>>>>> 'm3_recvfrom': >>>>>>>>>>>>>>>>> ../src/runtime/I386_DARWIN/recvfrom.c:15: warning: >>>>>>>>>>>>>>>>> pointer targets in passing argument 6 of 'recvfrom' >>>>>>>>>>>>>>>>> differ in signedness >>>>>>>>>>>>>>>>> new source -> compiling select.c >>>>>>>>>>>>>>>>> new source -> compiling send.c >>>>>>>>>>>>>>>>> new source -> compiling sendto.c >>>>>>>>>>>>>>>>> new source -> compiling shutdown.c >>>>>>>>>>>>>>>>> new source -> compiling socket.c >>>>>>>>>>>>>>>>> new source -> compiling write.c >>>>>>>>>>>>>>>>> -> archiving libm3gcdefs.a >>>>>>>>>>>>>>>>> ld: common symbols not allowed with MH_DYLIB output >>>>>>>>>>>>>>>>> format with the -multi_module option >>>>>>>>>>>>>>>>> sysdeps.o definition of common _RTCSRC_FinishVM >>>>>>>>>>>>>>>>> (size 16) >>>>>>>>>>>>>>>>> sysdeps.o definition of common _RTHeapRep_Fault >>>>>>>>>>>>>>>>> (size 16) >>>>>>>>>>>>>>>>> /usr/bin/libtool: internal link edit command failed >>>>>>>>>>>>>>>>> --- shipping from I386_DARWIN --- >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> . => /usr/local/cm3/pkg/m3gc-simple/I386_DARWIN >>>>>>>>>>>>>>>>> .M3EXPORTS libm3gcdefs.5.2.dylib"/Users/ >>>>>>>>>>>>>>>>> orsini/cm3/cm3-src-all-5.4.0/m3-libs/m3gc-simple/ >>>>>>>>>>>>>>>>> I386_DARWIN/.M3SHIP", line 3: quake runtime error: >>>>>>>>>>>>>>>>> unable to copy "libm3gcdefs.5.2.dylib" to "/usr/ >>>>>>>>>>>>>>>>> local/cm3/pkg/m3gc-simple/I386_DARWIN/libm3gcdefs. >>>>>>>>>>>>>>>>> 5.2.dylib": errno=2 >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> --procedure-- -line- -file--- >>>>>>>>>>>>>>>>> install_file -- >>>>>>>>>>>>>>>>> 3 /Users/orsini/cm3/cm3-src- >>>>>>>>>>>>>>>>> all-5.4.0/m3-libs/m3gc-simple/I386_DARWIN/.M3SHIP >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Fatal Error: package build failed >>>>>>>>>>>>>>>>> *** execution of failed *** >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> ====== >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> I noticed that not all the .c files in .../m3-libs/ >>>>>>>>>>>>>>>>> m3gc-simple/src/runtime/I386_DARWIN/ where >>>>>>>>>>>>>>>>> compiled, but I do not know if this is a normal >>>>>>>>>>>>>>>>> behaviour. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Thanks in advance for your time and patience! >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Cordially >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Renzo Orsini >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> On Jan 20, 2007, at 19:02, Darko wrote: >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Have a look here: ftp://ftp.cs.purdue.edu/pub/ >>>>>>>>>>>>>>>>>> hosking/m3/I386_DARWIN/ >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> There you'll find the bits you need for Mac Intel. >>>>>>>>>>>>>>>>>> Replace your existing cm3, cmcg and cm3.cfg with >>>>>>>>>>>>>>>>>> the ones there, then you can compile the basic >>>>>>>>>>>>>>>>>> libraries you need like m3core and libm3, but make >>>>>>>>>>>>>>>>>> sure you have the latest sources. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> I think they're the latest but Tony may have >>>>>>>>>>>>>>>>>> something more to say about that. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Darko. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> On 21/01/2007, at 1:41 AM, Olaf Wagner wrote: >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> On Sat, Jan 20, 2007 at 03:05:55PM +0100, Renzo >>>>>>>>>>>>>>>>>>> Orsini wrote: >>>>>>>>>>>>>>>>>>>> Hello, >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> I installed cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz >>>>>>>>>>>>>>>>>>>> on an intel mac, then >>>>>>>>>>>>>>>>>>>> tried to a compile a Hello world program, but >>>>>>>>>>>>>>>>>>>> the compilation failed >>>>>>>>>>>>>>>>>>>> with the following message: >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> pborsini:~/ProveModula3 orsini$ cm3 >>>>>>>>>>>>>>>>>>>> --- building in PPC_DARWIN --- >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> new source -> compiling Main.m3 >>>>>>>>>>>>>>>>>>>> "../Main.m3", line 4: warning: potentially >>>>>>>>>>>>>>>>>>>> unhandled exception: IO.Error >>>>>>>>>>>>>>>>>>>> 1 warning encountered >>>>>>>>>>>>>>>>>>>> Main.ms:12:no such instruction: `mflr r0' >>>>>>>>>>>>>>>>>>>> Main.ms:13:no such instruction: `stmw r30,-8(r1)' >>>>>>>>>>>>>>>>>>>> Main.ms:14:no such instruction: `stw r0,8(r1)' >>>>>>>>>>>>>>>>>>>> Main.ms:15:no such instruction: `stwu r1,-96(r1)' >>>>>>>>>>>>>>>>>>>> Main.ms:16:no such instruction: `mr r30,r1' >>>>>>>>>>>>>>>>>>>> Main.ms:17:no such instruction: `bcl >>>>>>>>>>>>>>>>>>>> 20,31,"L00000000001$pb"' >>>>>>>>>>>>>>>>>>>> ... >>>>>>>>>>>>>>>>>>>> .... >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> So I suppose there is PPC code to assemble and >>>>>>>>>>>>>>>>>>>> the Rosetta emulator >>>>>>>>>>>>>>>>>>>> for PPC on intel macs cannot do anything for this! >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> Since I would like to port the Fibonacci >>>>>>>>>>>>>>>>>>>> language for databases, >>>>>>>>>>>>>>>>>>>> which is written in Modula-3, if I understand >>>>>>>>>>>>>>>>>>>> well the situation I >>>>>>>>>>>>>>>>>>>> should port the Modula-3 compiler by cross >>>>>>>>>>>>>>>>>>>> compiling it on a PPC mac, >>>>>>>>>>>>>>>>>>>> or something like that. >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> I am asking you if you know about some effort of >>>>>>>>>>>>>>>>>>>> porting Modula-3 on >>>>>>>>>>>>>>>>>>>> intel macs, or at least if you let me know if >>>>>>>>>>>>>>>>>>>> this operation is >>>>>>>>>>>>>>>>>>>> possible (and also reasonably feasible in terms >>>>>>>>>>>>>>>>>>>> of time and >>>>>>>>>>>>>>>>>>>> expertise, given my teaching duties and my >>>>>>>>>>>>>>>>>>>> difficulties with >>>>>>>>>>>>>>>>>>>> assembler languages!), and, if so, if you can >>>>>>>>>>>>>>>>>>>> point me to the correct >>>>>>>>>>>>>>>>>>>> documentation to start with. Of course I will be >>>>>>>>>>>>>>>>>>>> very glad to give >>>>>>>>>>>>>>>>>>>> back to the community the result if I succeed! >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> Thank you very much for your attention. >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> Cordially >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> Renzo Orsini >>>>>>>>>>>>>>>>>>>> Associate Professor >>>>>>>>>>>>>>>>>>>> Dipartimento di Informatica >>>>>>>>>>>>>>>>>>>> Universita' Ca' Foscari di Venezia >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> Well, I wouldn't have thought that you were even >>>>>>>>>>>>>>>>>>> able to install >>>>>>>>>>>>>>>>>>> the cm3-min-POSIX-PPC_DARWIN-5.4.0.tgz system on >>>>>>>>>>>>>>>>>>> an Intel machine; >>>>>>>>>>>>>>>>>>> it's surely not supposed to run on one. It >>>>>>>>>>>>>>>>>>> shouldn't be too >>>>>>>>>>>>>>>>>>> difficult to get a port of the latest CM3 for >>>>>>>>>>>>>>>>>>> Darwin on Intel >>>>>>>>>>>>>>>>>>> processors; I even think somebody was already >>>>>>>>>>>>>>>>>>> working on it, >>>>>>>>>>>>>>>>>>> but I don't really remember who, so I forward >>>>>>>>>>>>>>>>>>> your mail to >>>>>>>>>>>>>>>>>>> the m3devel list, in case others have already >>>>>>>>>>>>>>>>>>> started such an >>>>>>>>>>>>>>>>>>> effort. >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> Olaf >>>>>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>>>>> elego Software Solutions >>>>>>>>>>>>>>>>>>> GmbH HRB 77719 >>>>>>>>>>>>>>>>>>> Olaf Wagner E-Mail: >>>>>>>>>>>>>>>>>>> wagner(at)elego.de >>>>>>>>>>>>>>>>>>> Ohmstra?e 9 Tel: >>>>>>>>>>>>>>>>>>> +49 30 40 04 19 29 >>>>>>>>>>>>>>>>>>> 10179 Berlin Fax: >>>>>>>>>>>>>>>>>>> +49 30 23 45 86 95 >>>>>>>>>>>>>>>>>>> Cranachstra?e 7 Tel: >>>>>>>>>>>>>>>>>>> +49 30 85 58 01 81 >>>>>>>>>>>>>>>>>>> 12157 Berlin Fax: >>>>>>>>>>>>>>>>>>> +49 30 85 58 01 88 >>>>>>>>>>>>>>>>>>> ------------------> WWW: http://www.elego- >>>>>>>>>>>>>>>>>>> software-solutions.com >>>>>>>>>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>>>>>>>>> M3devel mailing list >>>>>>>>>>>>>>>>>>> M3devel at elegosoft.com >>>>>>>>>>>>>>>>>>> https://mail.elegosoft.com/cgi-bin/mailman/ >>>>>>>>>>>>>>>>>>> listinfo/m3devel >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>>>>>> M3devel mailing list >>>>>>>>>>>>>>>> M3devel at elegosoft.com >>>>>>>>>>>>>>>> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/ >>>>>>>>>>>>>>>> m3devel >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Antony Hosking | Associate Professor >>>>>>>>>>>>>>> Dept of Computer Sciences | Office: (765) 494-6001 >>>>>>>>>>>>>>> Purdue University | Mobile: (765) 427-5484 >>>>>>>>>>>>>>> 250 N. University Street | hosking at cs.purdue.edu >>>>>>>>>>>>>>> West Lafayette, IN 47907-2066 | http:// >>>>>>>>>>>>>>> www.cs.purdue.edu/~hosking >>>>>>>>>>>>>>> _--_|\ >>>>>>>>>>>>>>> / \ >>>>>>>>>>>>>>> \_.--._/ ) >>>>>>>>>>>>>>> v / >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> Antony Hosking | Associate Professor >>>>>>>>>>>> Dept of Computer Sciences | Office: (765) 494-6001 >>>>>>>>>>>> Purdue University | Mobile: (765) 427-5484 >>>>>>>>>>>> 250 N. University Street | hosking at cs.purdue.edu >>>>>>>>>>>> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/ >>>>>>>>>>>> ~hosking >>>>>>>>>>>> _--_|\ >>>>>>>>>>>> / \ >>>>>>>>>>>> \_.--._/ ) >>>>>>>>>>>> v / >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Antony Hosking | Associate Professor >>>>>>>>>> Dept of Computer Sciences | Office: (765) 494-6001 >>>>>>>>>> Purdue University | Mobile: (765) 427-5484 >>>>>>>>>> 250 N. University Street | hosking at cs.purdue.edu >>>>>>>>>> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/ >>>>>>>>>> ~hosking >>>>>>>>>> _--_|\ >>>>>>>>>> / \ >>>>>>>>>> \_.--._/ ) >>>>>>>>>> v / >>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> Antony Hosking | Associate Professor >>>>>>>> Dept of Computer Sciences | Office: (765) 494-6001 >>>>>>>> Purdue University | Mobile: (765) 427-5484 >>>>>>>> 250 N. University Street | hosking at cs.purdue.edu >>>>>>>> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/ >>>>>>>> ~hosking >>>>>>>> _--_|\ >>>>>>>> / \ >>>>>>>> \_.--._/ ) >>>>>>>> v / >>>>>>>> >>>>>>> >>>>>> >>>>>> Antony Hosking | Associate Professor >>>>>> Dept of Computer Sciences | Office: (765) 494-6001 >>>>>> Purdue University | Mobile: (765) 427-5484 >>>>>> 250 N. University Street | hosking at cs.purdue.edu >>>>>> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking >>>>>> _--_|\ >>>>>> / \ >>>>>> \_.--._/ ) >>>>>> v / >>>>>> >>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> M3devel mailing list >>>>>> M3devel at elegosoft.com >>>>>> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel >>>>> >>>>> Antony Hosking | Associate Professor >>>>> Dept of Computer Sciences | Office: (765) 494-6001 >>>>> Purdue University | Mobile: (765) 427-5484 >>>>> 250 N. University Street | hosking at cs.purdue.edu >>>>> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking >>>>> _--_|\ >>>>> / \ >>>>> \_.--._/ ) >>>>> v / >>>>> >>>>> >>>> >>>> Antony Hosking | Associate Professor >>>> Dept of Computer Sciences | Office: (765) 494-6001 >>>> Purdue University | Mobile: (765) 427-5484 >>>> 250 N. University Street | hosking at cs.purdue.edu >>>> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking >>>> _--_|\ >>>> / \ >>>> \_.--._/ ) >>>> v / >>>> >>> >> >> Antony Hosking | Associate Professor >> Dept of Computer Science | Office: +1 765 494-6001 >> Purdue University | Mobile: +1 765 427-5484 >> 250 N. University Street | Email: hosking at cs.purdue.edu >> West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking >> _--_|\ >> / \ >> \_.--._/ ) >> v / >> >> > Antony Hosking | Associate Professor Dept of Computer Science | Office: +1 765 494-6001 Purdue University | Mobile: +1 765 427-5484 250 N. University Street | Email: hosking at cs.purdue.edu West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking _--_|\ / \ \_.--._/ ) v / From dabenavidesd at yahoo.es Tue Jan 23 00:06:43 2007 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Tue, 23 Jan 2007 00:06:43 +0100 (CET) Subject: [M3devel] cm3 5.5 for Windows min test release Message-ID: <20070122230643.33981.qmail@web86912.mail.ukl.yahoo.com> Hi, what is the exact url? Thanks, Daniel Benavides > j k wrote: Can folks try from ~jkrell on > m3.elegosoft.com: > cm3-min-WIN32-NT386-d5.3.2-symbols.tgz > cm3-min-WIN32-NT386-d5.3.2.tgz > > Really they are version d5.5.0. > > There is some wierd problem where I don't have execute permissions > on the > extracted files, so: > > tar xvfz cm3-min-WIN32-NT386-d5.3.2.tgz > cacls . /t /e /g everyone:f > .\cminstall > > You will only be prompted for where to install, which defaults to > c:\cm3. > When using cm3, cl and link need to be in %PATH%, and %LIB% and > possibly > %INCLUDE% need to be set. > Visual C++ includes a batch file to set these, named for example > vcvars32.bat. > cd \programs files > dir /s/b v*bat > will find it and there is a shortcut to it on the start menu. > > This also mitigates the problems with spaces in file paths (which > were > otherwise mitigated by converting to short names, which do not > guaranteeably > exist). > > On computers without Visual C++ 2005 installed and without the > .NET Runtime > 2.0, download and run the setup for the Visual C++ 8.0 runtime: > -- vcredist_x86.exe > -- from > http://www.microsoft.com/downloads/details.aspx?familyid=32BC1BEE- > A3F9-4C13-9C99-220B62A191EE > > - Jay > > _________________________________________________________________ --------------------------------- LLama Gratis a cualquier PC del Mundo. Llamadas a fijos y m?viles desde 1 c?ntimo por minuto. http://es.voice.yahoo.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From jayk123 at hotmail.com Tue Jan 23 03:00:57 2007 From: jayk123 at hotmail.com (j k) Date: Tue, 23 Jan 2007 02:00:57 +0000 Subject: [M3devel] cm3 5.5 for Windows min test release In-Reply-To: <20070122230643.33981.qmail@web86912.mail.ukl.yahoo.com> Message-ID: This isn't one that I know of. Folks at elegosoft help? - Jay >From: "Daniel Alejandro Benavides D." >To: m3devel at elegosoft.com, jayk123 at hotmail.com >Subject: RE: [M3devel] cm3 5.5 for Windows min test release >Date: Tue, 23 Jan 2007 00:06:43 +0100 (CET) > > >Hi, what is the exact url? > >Thanks, >Daniel Benavides > > > j k wrote: Can folks try from ~jkrell on > > m3.elegosoft.com: > > cm3-min-WIN32-NT386-d5.3.2-symbols.tgz > > cm3-min-WIN32-NT386-d5.3.2.tgz > > > > Really they are version d5.5.0. > > > > There is some wierd problem where I don't have execute permissions > > on the > > extracted files, so: > > > > tar xvfz cm3-min-WIN32-NT386-d5.3.2.tgz > > cacls . /t /e /g everyone:f > > .\cminstall > > > > You will only be prompted for where to install, which defaults to > > c:\cm3. > > When using cm3, cl and link need to be in %PATH%, and %LIB% and > > possibly > > %INCLUDE% need to be set. > > Visual C++ includes a batch file to set these, named for example > > vcvars32.bat. > > cd \programs files > > dir /s/b v*bat > > will find it and there is a shortcut to it on the start menu. > > > > This also mitigates the problems with spaces in file paths (which > > were > > otherwise mitigated by converting to short names, which do not > > guaranteeably > > exist). > > > > On computers without Visual C++ 2005 installed and without the > > .NET Runtime > > 2.0, download and run the setup for the Visual C++ 8.0 runtime: > > -- vcredist_x86.exe > > -- from > > http://www.microsoft.com/downloads/details.aspx?familyid=32BC1BEE- > > A3F9-4C13-9C99-220B62A191EE > > > > - Jay > > > > _________________________________________________________________ > > > > > >--------------------------------- > >LLama Gratis a cualquier PC del Mundo. >Llamadas a fijos y m?viles desde 1 c?ntimo por minuto. >http://es.voice.yahoo.com _________________________________________________________________ Get Hilary Duff?s homepage with her photos, music, and more. http://celebrities.live.com From wagner at elegosoft.com Tue Jan 23 10:44:53 2007 From: wagner at elegosoft.com (Olaf Wagner) Date: Tue, 23 Jan 2007 10:44:53 +0100 (CET) Subject: [M3devel] cm3 5.5 for Windows min test release In-Reply-To: References: <20070122230643.33981.qmail@web86912.mail.ukl.yahoo.com> Message-ID: <64953.194.138.127.36.1169545493.squirrel@mail.elegosoft.com> On Tue, January 23, 2007 3:00 am, j k wrote: > This isn't one that I know of. Folks at elegosoft help? We should change the wrong version number of the archives (does the cm3 compiler itself show the correct version when invoked?) and put these into our public CM3 download area. Ronny, can you do this? We should also add the URLs as experimental downloads to the download page of CM3. Ulrike, this would be a job for you... Ronny, if this hasn't already been done: there should be an m3-support group who are allowed to move documents and archives to the new WWW server for CM3 and PM3. Ulrike, Stefan, Neels, Michael, and me should at least have this permission. Olaf > - Jay > >>From: "Daniel Alejandro Benavides D." >>To: m3devel at elegosoft.com, jayk123 at hotmail.com >>Subject: RE: [M3devel] cm3 5.5 for Windows min test release >>Date: Tue, 23 Jan 2007 00:06:43 +0100 (CET) >> >> >>Hi, what is the exact url? >> >>Thanks, >>Daniel Benavides >> >> > j k wrote: Can folks try from ~jkrell on >> > m3.elegosoft.com: >> > cm3-min-WIN32-NT386-d5.3.2-symbols.tgz >> > cm3-min-WIN32-NT386-d5.3.2.tgz >> > >> > Really they are version d5.5.0. >> > >> > There is some wierd problem where I don't have execute permissions >> > on the >> > extracted files, so: >> > >> > tar xvfz cm3-min-WIN32-NT386-d5.3.2.tgz >> > cacls . /t /e /g everyone:f >> > .\cminstall >> > >> > You will only be prompted for where to install, which defaults to >> > c:\cm3. >> > When using cm3, cl and link need to be in %PATH%, and %LIB% and >> > possibly >> > %INCLUDE% need to be set. >> > Visual C++ includes a batch file to set these, named for example >> > vcvars32.bat. >> > cd \programs files >> > dir /s/b v*bat >> > will find it and there is a shortcut to it on the start menu. >> > >> > This also mitigates the problems with spaces in file paths (which >> > were >> > otherwise mitigated by converting to short names, which do not >> > guaranteeably >> > exist). >> > >> > On computers without Visual C++ 2005 installed and without the >> > .NET Runtime >> > 2.0, download and run the setup for the Visual C++ 8.0 runtime: >> > -- vcredist_x86.exe >> > -- from >> > http://www.microsoft.com/downloads/details.aspx?familyid=32BC1BEE- >> > A3F9-4C13-9C99-220B62A191EE >> > >> > - Jay -- Olaf Wagner elego Software Solutions GmbH, Berlin, Germany From dabenavidesd at yahoo.es Wed Jan 24 04:49:17 2007 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Wed, 24 Jan 2007 04:49:17 +0100 (CET) Subject: [M3devel] problem using -DPTHREAD Message-ID: <20070124034917.7363.qmail@web86910.mail.ukl.yahoo.com> Hi everybody: Im trying to start a new compilation with the PTHREAD support. So I did export CM3="/usr/cm3/bin/cm3 -DPTHREAD" This is the directory where the boot is installed with cminstall. Then I got this: root at danielb-desktop:/home/danielb/cm3-5.4-Rc_/cm3/scripts# ./do-cm3-std.sh buildship | tee "log.txt" CM3C = /home/danielb/cm3-5.4-Rc_/cm3/scripts/pkgmap.sh -c "/usr/cm3/bin/cm3 -DPTHREAD -build -DROOT='/home/danielb/cm3-5.4-Rc_/cm3' && /usr/cm3/bin/cm3 -DPTHREAD -ship -DROOT='/home/danielb/cm3-5.4-Rc_/cm3' " m3gc-simple m3core libm3 patternmatching m3middle m3quake m3scanner m3tools m3cgcat m3cggen m3gdb m3bundle arithmetic bitvector digraph parseparams realgeometry set slisp sortedtableextras table-list tempfiles tcp udp libsio libbuf debug listfuncs embutils m3tk-misc http binIO commandrw m3tk mtex m3totex m3tohtml m3scan m3markup m3browser cmpdir cmpfp dirfp uniq netobj netobjd stubgen events rdwr sharedobj sharedobjgen odbc postgres95 db smalldb stable stablegen X11R4 ui PEX vbtkit cmvbt jvideo videovbt web formsvbtpixmaps formsvbt formsview formsedit codeview mg mgkit opengl anim3D zeus m3zume synloc synex metasyn obliqrt obliqparse obliqprint obliq obliqlibemb obliqlibm3 obliqlibui obliqlibanim obliqsrvstd obliqsrvui obliqbinmin obliqbinstd obliqbinui obliqbinanim visualobliq vocgi voquery vorun webvbt recordheap rehearsecode replayheap showheap shownew showthread pkl-fonts juno-machine juno-compiler juno-app cube calculator fisheye mentor === package /home/danielb/cm3-5.4-Rc_/cm3/m3-libs/m3gc-simple === +++ /usr/cm3/bin/cm3 -DPTHREAD -build -DROOT='/home/danielb/cm3-5.4-Rc_/cm3' && /usr/cm3/bin/cm3 -DPTHREAD -ship -DROOT='/home/danielb/cm3-5.4-Rc_/cm3' +++ --- building in LINUXLIBC6 --- new source -> compiling sysdeps.c new "sysdeps.o" -> archiving libm3gcdefs.a --- shipping from LINUXLIBC6 --- . => /usr/cm3/pkg/m3gc-simple/LINUXLIBC6 .M3EXPORTS libm3gcdefs.so.5 libm3gcdefs.a libm3gcdefs.m3x .M3WEB ../src/runtime => /usr/cm3/pkg/m3gc-simple/src/runtime RTVM.c ../src/runtime/LINUXLIBC6 => /usr/cm3/pkg/m3gc-simple/src/runtime/LINUXLIBC6 sysdeps.c . => /usr/cm3/lib libm3gcdefs.a ==> /home/danielb/cm3-5.4-Rc_/cm3/m3-libs/m3gc-simple done === package /home/danielb/cm3-5.4-Rc_/cm3/m3-libs/m3core === +++ /usr/cm3/bin/cm3 -DPTHREAD -build -DROOT='/home/danielb/cm3-5.4-Rc_/cm3' && /usr/cm3/bin/cm3 -DPTHREAD -ship -DROOT='/home/danielb/cm3-5.4-Rc_/cm3' +++ --- building in LINUXLIBC6 --- ignoring ../src/m3overrides "/home/danielb/cm3-5.4-Rc_/cm3/m3-libs/m3core/src/thread/PTHREAD/m3makefile", line 10: quake runtime error: Unable to use definition of "SYSTEM_LIBS" from configuration file "/usr/cm3/bin/cm3.cfg": does not define a value for "PTHREAD" --procedure-- -line- -file--- import_sys_lib -- include_dir 10 /home/danielb/cm3-5.4-Rc_/cm3/m3-libs/m3core/src/thread/PTHREAD/m3makefile include_dir 46 /home/danielb/cm3-5.4-Rc_/cm3/m3-libs/m3core/src/thread/m3makefile include_dir 18 /home/danielb/cm3-5.4-Rc_/cm3/m3-libs/m3core/src/m3makefile 6 /home/danielb/cm3-5.4-Rc_/cm3/m3-libs/m3core/LINUXLIBC6/m3make.args Fatal Error: package build failed *** execution of failed *** root at danielb-desktop:/home/danielb/cm3-5.4-Rc_/cm3/scripts# Thanks, Daniel Benavides --------------------------------- LLama Gratis a cualquier PC del Mundo. Llamadas a fijos y m?viles desde 1 c?ntimo por minuto. http://es.voice.yahoo.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From wagner at plane.elego.de Wed Jan 24 08:04:34 2007 From: wagner at plane.elego.de (Olaf Wagner) Date: Wed, 24 Jan 2007 08:04:34 +0100 Subject: [M3devel] problem using -DPTHREAD In-Reply-To: <20070124034917.7363.qmail@web86910.mail.ukl.yahoo.com> References: <20070124034917.7363.qmail@web86910.mail.ukl.yahoo.com> Message-ID: <20070124070434.GB23599@elegosoft.com> On Wed, Jan 24, 2007 at 04:49:17AM +0100, Daniel Alejandro Benavides D. wrote: > > Hi everybody: > Im trying to start a new compilation with the PTHREAD support. > So I did > export CM3="/usr/cm3/bin/cm3 -DPTHREAD" > This is the directory where the boot is installed with cminstall. > Then I got this: > root at danielb-desktop:/home/danielb/cm3-5.4-Rc_/cm3/scripts# > ./do-cm3-std.sh buildship | tee "log.txt" CM3C = > /home/danielb/cm3-5.4-Rc_/cm3/scripts/pkgmap.sh -c "/usr/cm3/bin/cm3 > -DPTHREAD -build -DROOT='/home/danielb/cm3-5.4-Rc_/cm3' && > /usr/cm3/bin/cm3 -DPTHREAD -ship > -DROOT='/home/danielb/cm3-5.4-Rc_/cm3' " m3gc-simple m3core libm3 ... > "/home/danielb/cm3-5.4-Rc_/cm3/m3-libs/m3core/src/thread/PTHREAD/m3mak > efile", line 10: quake runtime error: Unable to use definition of > "SYSTEM_LIBS" from configuration file "/usr/cm3/bin/cm3.cfg": does not > define a value for "PTHREAD" > --procedure-- -line- -file--- > import_sys_lib -- > include_dir 10 > /home/danielb/cm3-5.4-Rc_/cm3/m3-libs/m3core/src/thread/PTHREAD/m3make > file You need to define the system's pthread library you want to link with (/usr/lib/libpthread.a?) in cm3.cfg in the SYSTEM_LIBS array. Olaf -- elego Software Solutions GmbH HRB 77719 Olaf Wagner E-Mail: wagner(at)elego.de Ohmstra?e 9 Tel: +49 30 40 04 19 29 10179 Berlin Fax: +49 30 23 45 86 95 Cranachstra?e 7 Tel: +49 30 85 58 01 81 12157 Berlin Fax: +49 30 85 58 01 88 ------------------> WWW: http://www.elego-software-solutions.com From jayk123 at hotmail.com Wed Jan 24 10:41:31 2007 From: jayk123 at hotmail.com (j k) Date: Wed, 24 Jan 2007 09:41:31 +0000 Subject: [M3devel] cm3 5.5 for Windows min test release In-Reply-To: <64953.194.138.127.36.1169545493.squirrel@mail.elegosoft.com> Message-ID: I renamed the files. Yes the compiler prints 5.5.0. I put up few more archives. They are all about the same. There is a .tar.bz2, a .zip, and a self extracting .zip/.exe. You can also just run unzip on the .exe. All but the original .tgz lack cminstall/tar/gzip/cygwin.dll and extract into cm3. So you could just do like: cd \ cm3-min-WIN32-NT386-d5.5.0 call vcvars32 set path=\cm3\bin;%path% We don't need all these formats. tar.bz2 is smallest. .zip support is "built in" to Windows. .zip is n the middle size, since I removed cminstall from it. .cab might also be good. I thought I had something around to create them easily but I don't see it now. The compiler says: \cm3\bin\cm3 -version Critical Mass Modula-3 version d5.5.0 last updated: 2006-10-30 configuration: \cm3\bin\cm3.cfg The date is fishy. Do we need to include copyright-cmass at the top? It says something about contributing changes back. But we aren't doing that, right? Feel free to delete any of the archives. I can remake them easily. (I'lll submit my automation shortly.) The self extracting .exe uses upx for the stub to save just a little space. The license encourages me to credit it. :) Upx is neat. Dynamic linking cm3.exe would really save space but I am not sure that is practical. - Jay >From: "Olaf Wagner" >To: ronny.forberger at elegosoft.com, uamoore at elegosoft.com >CC: m3devel at elegosoft.com >Subject: RE: [M3devel] cm3 5.5 for Windows min test release >Date: Tue, 23 Jan 2007 10:44:53 +0100 (CET) > > >On Tue, January 23, 2007 3:00 am, j k wrote: > > This isn't one that I know of. Folks at elegosoft help? > >We should change the wrong version number of the archives (does the >cm3 compiler itself show the correct version when invoked?) and put >these into our public CM3 download area. Ronny, can you do this? > >We should also add the URLs as experimental downloads to the download >page of CM3. Ulrike, this would be a job for you... > >Ronny, if this hasn't already been done: there should be an m3-support >group who are allowed to move documents and archives to the new WWW >server for CM3 and PM3. Ulrike, Stefan, Neels, Michael, and me should >at least have this permission. > >Olaf > > > - Jay > > > >>From: "Daniel Alejandro Benavides D." > >>To: m3devel at elegosoft.com, jayk123 at hotmail.com > >>Subject: RE: [M3devel] cm3 5.5 for Windows min test release > >>Date: Tue, 23 Jan 2007 00:06:43 +0100 (CET) > >> > >> > >>Hi, what is the exact url? > >> > >>Thanks, > >>Daniel Benavides > >> > >> > j k wrote: Can folks try from ~jkrell on > >> > m3.elegosoft.com: > >> > cm3-min-WIN32-NT386-d5.3.2-symbols.tgz > >> > cm3-min-WIN32-NT386-d5.3.2.tgz > >> > > >> > Really they are version d5.5.0. > >> > > >> > There is some wierd problem where I don't have execute permissions > >> > on the > >> > extracted files, so: > >> > > >> > tar xvfz cm3-min-WIN32-NT386-d5.3.2.tgz > >> > cacls . /t /e /g everyone:f > >> > .\cminstall > >> > > >> > You will only be prompted for where to install, which defaults to > >> > c:\cm3. > >> > When using cm3, cl and link need to be in %PATH%, and %LIB% and > >> > possibly > >> > %INCLUDE% need to be set. > >> > Visual C++ includes a batch file to set these, named for example > >> > vcvars32.bat. > >> > cd \programs files > >> > dir /s/b v*bat > >> > will find it and there is a shortcut to it on the start menu. > >> > > >> > This also mitigates the problems with spaces in file paths (which > >> > were > >> > otherwise mitigated by converting to short names, which do not > >> > guaranteeably > >> > exist). > >> > > >> > On computers without Visual C++ 2005 installed and without the > >> > .NET Runtime > >> > 2.0, download and run the setup for the Visual C++ 8.0 runtime: > >> > -- vcredist_x86.exe > >> > -- from > >> > http://www.microsoft.com/downloads/details.aspx?familyid=32BC1BEE- > >> > A3F9-4C13-9C99-220B62A191EE > >> > > >> > - Jay >-- >Olaf Wagner >elego Software Solutions GmbH, Berlin, Germany >_______________________________________________ >M3devel mailing list >M3devel at elegosoft.com >https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel _________________________________________________________________ Search for grocery stores. Find gratitude. Turn a simple search into something more. http://click4thecause.live.com/search/charity/default.aspx?source=hmemtagline_gratitude&FORM=WLMTAG From dabenavidesd at yahoo.es Wed Jan 31 18:05:57 2007 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Wed, 31 Jan 2007 18:05:57 +0100 (CET) Subject: [M3devel] problem using -DPTHREAD Message-ID: <517701.96938.qm@web27102.mail.ukl.yahoo.com> Hello: I have compiled the cm3 cvs updated with the Pthread support under kubuntu 6.06 Linux. I have done this adding the value "PTHREAD" on the array SYSTEM_LIBORDER SYSTEM_LIBORDER = [ "OPENGL", "DECPEX", "MOTIF", "X11", "TCP", "ODBC", "POSTGRES95", "FLEX-BISON", "LEX-YACC", "LIBC", "PTHREAD" ] and the variable "PTHREAD" : [ "-L/usr/lib", "-lpthread" ], on the array SYSTEM_LIBS But when running a mentor animation I get this runtime error consistently about a seconds later after began an animation, then this is the out: root at sl11:/home/danielb/cm3-5.4-Rc2/cm3/scripts# mentor showthread *** *** runtime error: *** Thread client error: attempt to release an unlocked mutex *** file "ThreadPThread.m3", line 168 *** Cancelado root at sl11:/home/danielb/cm3-5.4-Rc2/cm3/scripts# This system has "POSIX version set to 200112, including support for priority scheduling" Thanks, Daniel Benavides --------------------------------- LLama Gratis a cualquier PC del Mundo. Llamadas a fijos y m?viles desde 1 c?ntimo por minuto. http://es.voice.yahoo.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Wed Jan 31 21:02:20 2007 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 31 Jan 2007 15:02:20 -0500 Subject: [M3devel] problem using -DPTHREAD In-Reply-To: <517701.96938.qm@web27102.mail.ukl.yahoo.com> References: <517701.96938.qm@web27102.mail.ukl.yahoo.com> Message-ID: <764ED7CC-946A-4BC3-8D8B-E0C39C945A6C@cs.purdue.edu> A stack trace would be useful. Perhaps you can run again with @M3stackdump specified on the command line. Alternatively, if you run inside gdb you can show the stack dump at the point of the error by setting a breakpoint at line 168 in ThreadPThread.m3. I notice that you are using priority scheduling -- not sure what that will do to things. Can you try it with round robin scheduling? On Jan 31, 2007, at 12:05 PM, Daniel Alejandro Benavides D. wrote: > Hello: > > I have compiled the cm3 cvs updated with the Pthread support under > kubuntu 6.06 Linux. I have done this adding the value "PTHREAD" on > the array SYSTEM_LIBORDER > > SYSTEM_LIBORDER = [ "OPENGL", "DECPEX", "MOTIF", "X11", "TCP", "ODBC", > "POSTGRES95", "FLEX-BISON", "LEX-YACC", "LIBC", > "PTHREAD" ] > > and the variable "PTHREAD" : [ "-L/usr/lib", "-lpthread" ], > on the array SYSTEM_LIBS > > But when running a mentor animation I get this runtime error > consistently about a seconds later after began an animation, then > this is the out: > > root at sl11:/home/danielb/cm3-5.4-Rc2/cm3/scripts# mentor showthread > > > *** > *** runtime error: > *** Thread client error: attempt to release an unlocked mutex > *** file "ThreadPThread.m3", line 168 > *** > > Cancelado > root at sl11:/home/danielb/cm3-5.4-Rc2/cm3/scripts# > > This system has > "POSIX version set to 200112, > including support for priority scheduling" > > Thanks, > Daniel Benavides > > > LLama Gratis a cualquier PC del Mundo. > Llamadas a fijos y m?viles desde 1 c?ntimo por minuto. > http://es.voice.yahoo.com > _______________________________________________ > M3devel mailing list > M3devel at elegosoft.com > https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel From jayk123 at hotmail.com Mon Jan 1 15:39:26 2007 From: jayk123 at hotmail.com (j k) Date: Mon, 01 Jan 2007 14:39:26 +0000 Subject: [M3devel] review before checkin/submit/commit? place for user-specific or work-in-progres? Message-ID: An HTML attachment was scrubbed... URL: From jayk123 at hotmail.com Tue Jan 2 17:30:54 2007 From: jayk123 at hotmail.com (j k) Date: Tue, 02 Jan 2007 16:30:54 +0000 Subject: [M3devel] anyone want to try Windows now? Message-ID: An HTML attachment was scrubbed... URL: From dabenavidesd at yahoo.es Tue Jan 2 18:41:22 2007 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Tue, 2 Jan 2007 18:41:22 +0100 (CET) Subject: [M3devel] anyone want to try Windows now? In-Reply-To: Message-ID: <17375.25565.qm@web86910.mail.ukl.yahoo.com> I would like to install here, I have Win Xp +Sp2 on professional Ed. A project to make a Modula-3 plugin for Eclipse has been started, and it would be useful to have an installation procedure for cm3 on Windows. I have an pm3 running here with one of the latest cygwin. I just made a little changes on pm3\language\modula3\m3compiler\m3cc\gcc\m3.c, but I dont know if that could be sended to the cvs repository. Thanks Daniel Benavides j k escribi?: Anyone want to try Windows now? What should work is installing the latest release -- 5.2.6. Checking out the whole tree, copying m3-sys\cminstall\src\config\NT386 to like \cm3\bin\cm3.cfg putting cm3.exe's directory in %PATH%, running vcvars32.bat or simiplar to get a compiler/linker in the path along with %include% and %lib% (sometimes this is done by Visual C++ setup), though %include%/%lib% are hardly used, and running any of scripts\win\do* or scripts\win\upgrad or scripts\win\make-dist, or cd'ing around the tree and running cm3, using any of a variety of versions of Visual C++. (Note that sysinfo.cmd puts \cm3\lib in %LIB% and if you just cd depend, and are using a Visual C++ Express Edition, without also the Windows SDK, then you'll get errors -- the Express Editions lack the Win32 import .libs. m3-win\import-libs builds them and puts them in \cm3\lib.) \cm3 is computed by cm3.cfg to be the directory above the directory that contains cm3.exe. So you don't have to edit cm3.cfg at all. Of course probably some machine/OS/configuration-specificity crept in and it probably only works for me. If you build with Visual C++ 8.0, there is a download/setup needed for machines without it installed, see m3-win\vcredist.txt. I only tested on XP but a variety of versions of Windows should work, esp. versions of NT (as opposed to 95/98) Anyone have a bunch of test automation here? The main problem was really just the infinite recursion in startup. Should a release be made soon then? - Jay --------------------------------- Get live scores and news about your team: Add the Live.com Football Page _______________________________________________ M3devel mailing list M3devel at elegosoft.com https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel __________________________________________________ Correo Yahoo! Espacio para todos tus mensajes, antivirus y antispam ?gratis! Reg?strate ya - http://correo.yahoo.es -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: m3.c Type: text/x-csrc Size: 103827 bytes Desc: 1289283312-m3.c URL: From jayk123 at hotmail.com Wed Jan 3 09:45:34 2007 From: jayk123 at hotmail.com (j k) Date: Wed, 03 Jan 2007 08:45:34 +0000 Subject: [M3devel] m3commit not working In-Reply-To: <20070103070313.GC24460@elegosoft.com> Message-ID: An HTML attachment was scrubbed... URL: From wagner at plane.elego.de Wed Jan 3 08:03:13 2007 From: wagner at plane.elego.de (Olaf Wagner) Date: Wed, 3 Jan 2007 08:03:13 +0100 Subject: [M3devel] m3commit not working In-Reply-To: References: Message-ID: <20070103070313.GC24460@elegosoft.com> On Sun, Dec 31, 2006 at 12:58:19PM +0000, j k wrote: > > The m3commit mailing list does not appear to be working. > I have commited several Windows fixes. > But seen no mail. > > Now might be ok an time for folks to try Windows again, but I > do have more testing and more changes in the works. I got all your commit messages, so it's probably not sending the mails to the committer himself. Olaf -- elego Software Solutions GmbH HRB 77719 Olaf Wagner E-Mail: wagner(at)elego.de Ohmstra?e 9 Tel: +49 30 40 04 19 29 10179 Berlin Fax: +49 30 23 45 86 95 Cranachstra?e 7 Tel: +49 30 85 58 01 81 12157 Berlin Fax: +49 30 85 58 01 88 ------------------> WWW: http://www.elego-software-solutions.com From lemming at henning-thielemann.de Wed Jan 3 14:31:24 2007 From: lemming at henning-thielemann.de (Henning Thielemann) Date: Wed, 03 Jan 2007 14:31:24 +0100 (MET) Subject: [M3devel] Re: [M3commit] CVS Update: cm3 In-Reply-To: <200612300802.kBU82TdQ018879@birch.elego.de> References: <200612300802.kBU82TdQ018879@birch.elego.de> Message-ID: On Sat, 30 Dec 2006, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 06/12/30 09:02:29 > > Modified files: > cm3/m3-libs/arithmetic/src/: m3overrides > cm3/m3-libs/commandrw/src/: m3overrides > cm3/m3-libs/dosunixrw/src/: m3overrides > cm3/m3-libs/fftw/src/: m3overrides > cm3/m3-libs/lapack/src/: m3overrides > cm3/m3-libs/plplot/src/: m3overrides > cm3/m3-libs/unittest/src/: m3overrides > cm3/m3-tools/pp/src/: m3overrides > cm3/m3-ui/ui/src/: m3overrides > cm3/m3-ui/vbtkit/src/: m3overrides > > Log message: > Most m3overrides do not use SL (SLash -- \ for Windows or / for Unix). > These few do. > Fewer variables are better. > Removing these uses lets us not define SL in scripts\win\sysinfo.cmd. > It is still used in some m3makefiles and those uses need to be reviewed. Since I added the SLs recently in many of my m3overrides - can you elaborate on these changes? From lemming at henning-thielemann.de Wed Jan 3 14:33:05 2007 From: lemming at henning-thielemann.de (Henning Thielemann) Date: Wed, 03 Jan 2007 14:33:05 +0100 (MET) Subject: [M3devel] Re: [M3commit] CVS Update: cm3 In-Reply-To: <200612301138.kBUBcjLL020924@birch.elego.de> References: <200612301138.kBUBcjLL020924@birch.elego.de> Message-ID: On Sat, 30 Dec 2006, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 06/12/30 12:38:45 > > Modified files: > cm3/scripts/win/c-runtime/: Microsoft.VC80.CRT.manifest > msvcr80.cmd > cm3/scripts/win/lib/: make-lib-1.cmd make-lib-2.cmd make-lib.cmd > > Log message: > convert line endings to Windows format, in new files, that are used on Windows hosts I thought, that the CVS client is responsible for the correct line endings. From wagner at elegosoft.com Wed Jan 3 16:38:05 2007 From: wagner at elegosoft.com (Olaf Wagner) Date: Wed, 3 Jan 2007 16:38:05 +0100 (CET) Subject: [M3devel] Re: [M3commit] CVS Update: cm3 In-Reply-To: <200612300118.kBU1I6e5008873@birch.elego.de> References: <200612300118.kBU1I6e5008873@birch.elego.de> Message-ID: <33776.194.138.127.36.1167838685.squirrel@mail.elegosoft.com> On Sat, December 30, 2006 3:18 am, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 06/12/30 02:18:06 > > Modified files: > cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 > > Log message: > important: fix infinite recursion in Win32 startup > correct check for TlsAlloc failure (TLS_OUT_OF_INDEXES instead of < 0) > reduce critical sections slightly (esp. to avoid calling out while in a > critical section, including to DuplicateHandle, CreateThread, VirtualQuery) I would like to understand this change better (especially the first item), or at least how/why and endless recursion got into the source (as older versions have run, haven't they?). As for critical sections, you seem to have remove one completely and reduced another. Are you sure that is correct? (I've only had a short look at the diff, and haven't got a comprehensive understanding of the CM3 WIN32 runtime currently.) Olaf -- Olaf Wagner elego Software Solutions GmbH, Berlin, Germany From wagner at elegosoft.com Wed Jan 3 16:55:43 2007 From: wagner at elegosoft.com (Olaf Wagner) Date: Wed, 3 Jan 2007 16:55:43 +0100 (CET) Subject: [M3devel] anyone want to try Windows now? In-Reply-To: References: Message-ID: <46553.194.138.127.36.1167839743.squirrel@mail.elegosoft.com> On Tue, January 2, 2007 5:30 pm, j k wrote: >
Anyone want to try Windows now? >
 
>
What should work is installing the latest release -- > 5.2.6.
>
Checking out the whole tree, copying > m3-sys\cminstall\src\config\NT386 to like \cm3\bin\cm3.cfg putting cm3.exe's > directory in %PATH%, running vcvars32.bat or simiplar to get a compiler/linker > in the path along with %include% and %lib% (sometimes this is done by Visual > C++ setup), though %include%/%lib% are hardly used, and running any of > scripts\win\do* or scripts\win\upgrad or scripts\win\make-dist, or cd'ing > around the tree and running cm3, using any of a variety of versions of Visual > C++. (Note that sysinfo.cmd puts \cm3\lib in %LIB% and if you just cd depend, > and are using a Visual C++ Express Edition, without also the Windows SDK, then > you'll get errors -- the Express Editions lack the Win32 import .libs. > m3-win\import-libs builds them and puts them in \cm3\lib.)
>
 
>
\cm3 is computed by cm3.cfg to be the directory above the > directory that contains cm3.exe. So you don't have to edit cm3.cfg at > all.
>
 
>
Of course probably some machine/OS/configuration-specificity > crept in and it probably only works for me.
>
 
>
If you build with Visual C++ 8.0, there is a download/setup > needed for machines without it installed, see m3-win\vcredist.txt.
>
 
>
I only tested on XP but a variety of versions of Windows should > work, esp. versions of NT (as opposed to 95/98)
>
 
>
Anyone have a bunch of test automation here?
>
 
>
The main problem was really just the infinite recursion in > startup.
>
 
>
Should a release be made soon then?
>
 
Hi Jay, you seem to have done a lot of work for CM3 on Windows platforms; thanks for that! I understand that most things are now working for you; but I'm unsure about the actual state of the code and meaning of the above announcement (as I haven't got much Windows experience). I think we should proceed in two steps: 1. write up some documentation about the - needed prerequisites - how to get and install them - how to install/upgrade and use the system which can be understood and used by M3-experienced people. We will then hopefully get some feedback from M3 users, can fix some problems, and improve the documentation. We should also pick one or at most two standard setups. 2. write up end-user documentation for installation and use of CM3 on Windows systems based on the chosen standard setups. This should be included in the CM3 www and doc packages and bundled with the official NT386 release for CM3 5.4. We should have some test feedback before we do that, though. Olaf -- Olaf Wagner elego Software Solutions GmbH, Berlin, Germany From wagner at plane.elego.de Wed Jan 3 08:03:13 2007 From: wagner at plane.elego.de (Olaf Wagner) Date: Wed, 3 Jan 2007 08:03:13 +0100 Subject: [M3devel] m3commit not working In-Reply-To: References: Message-ID: <20070103070313.GC24460@elegosoft.com> On Sun, Dec 31, 2006 at 12:58:19PM +0000, j k wrote: > > The m3commit mailing list does not appear to be working. > I have commited several Windows fixes. > But seen no mail. > > Now might be ok an time for folks to try Windows again, but I > do have more testing and more changes in the works. I got all your commit messages, so it's probably not sending the mails to the committer himself. Olaf -- elego Software Solutions GmbH HRB 77719 Olaf Wagner E-Mail: wagner(at)elego.de Ohmstra?e 9 Tel: +49 30 40 04 19 29 10179 Berlin Fax: +49 30 23 45 86 95 Cranachstra?e 7 Tel: +49 30 85 58 01 81 12157 Berlin Fax: +49 30 85 58 01 88 ------------------> WWW: http://www.elego-software-solutions.com From wagner at elegosoft.com Wed Jan 3 15:58:00 2007 From: wagner at elegosoft.com (Olaf Wagner) Date: Wed, 3 Jan 2007 15:58:00 +0100 (CET) Subject: [M3devel] review before checkin/submit/commit? place for user-specific or work-in-progres? In-Reply-To: References: Message-ID: <36493.194.138.127.36.1167836280.squirrel@mail.elegosoft.com> On Mon, January 1, 2007 3:39 pm, j k wrote: >
Do folks here > require/prefer all things be discussed/reviewed before any > checkin/submit/commit? Or ok to do stuff kind of single-mindedly? Source > control helps it not matter imho, but cvs isn't a great source control system, > as far as I know yet and as far as I have read.
>
 
>
Is there anywhere appropriate to checkin
>
  work in progress?
>
  user/developer-specific stuff?
>
 
>
For example at work we can put stuf in > <root>\developer\<username>.
>
Can a similar namespace be carved out in the cm3 cvs tree or > would that be an abuse?
>
 
>
Maybe I should just find some generic hosting service..?
>
 
> Jay, usually it's OK to check-in changes on the main trunk if they are compiling and working OK. If you are undertaking bigger projects that might affect other development, you should create a development branch for them to isolate them until they are finished and have been tested by others. Anyway it is always a good idea to announce changes on the m3devel list to see if anybody objects. Have you read the M3 configuration management rules at http://modula3.elegosoft.com/cm3/cm3-cm-rules.html? I would really like to have automatic compilation and regression testing on different target platforms, but this is not too easy to set up and maintain. You are right that CVS is not the greatest tool for version control, but it's working reliably, the bugs are known and can be worked around or ignored :) A migration of the repository to e.g. Subversion would be quite a lot of work, and have impacts on much of the existing infrastructure. With the available human resources I wouldn't recommend such a change. Olaf PS: You may want to include non-HTML versions of the texts in your email. PPS: Please also note the other mails about the CFLF/LF line ending, which should be taken care of by your CVS client. If you don't get proper Windows-formatted texts in your workspace, you have set up something wrong. -- Olaf Wagner elego Software Solutions GmbH, Berlin, Germany From wagner at elegosoft.com Wed Jan 3 16:10:18 2007 From: wagner at elegosoft.com (Olaf Wagner) Date: Wed, 3 Jan 2007 16:10:18 +0100 (CET) Subject: [M3devel] inaccuracy of NT386 and Win32 names? In-Reply-To: References: Message-ID: <46641.194.138.127.36.1167837018.squirrel@mail.elegosoft.com> On Sun, December 31, 2006 2:22 pm, j k wrote: >

Does anyone care that neither "NT386" > nor "Win32" are accurate names?

>

Historically and probably currently the NT386 target supported Windows > 95/98, which are not NT.

>

Lately support for older processors like 386 is going away. The current > operating systems don't support 386 nor likely do the current > compilers.
 Granted as long as the compiler supported it, you could > produce binaries that'd run on old OSes that did support 386.
 And the > C++ compiler has fairly little bearing here, and probably the linker too.

>

Most "Win32" code also works asis on Win64, so just calling it "Windows" > usually or "Windows-x86" sometimes would seem right, maybe "Win" or "Winx86" > for short.

>

I assume there's really no value in renaming NT386, and that "Win32" could > just be somewhat sleazily considered to also mean Win64.
Most other > hypothetical Windows targets could rightfully include NT in their name, > NTMIPS, NTALPHA, NTPOWERPC, NTIA64, NTAMD64, etc.
Things like CE, or heck, > Xbox, would likely be different targets distinct from NT.

>

(It has always bugged me how people claim Microsoft is kind of the opposite > of portability when in fact the portability of NT has been very well > demonstrated, but that then hardly any producer of Windows software followed > suit (including Microsoft -- Office))

>

I had to at least ask. :)

>

I also wonder if Modula-3 even needs both of these identifiers, they map > one to one currently, right? Maybe this was acknowledgement of the possibility > of NTMIPS, NTALPHA, NTPOWERPC, etc?

WIN32 should encapsulate all code that is specific to the 32 bit development and runtime environment of Windows. Historically it also distinguished code from 16 bit Microsoft environments IIRC. I expect we will also need a WIN64 code set soon. NT386 was supposed to run on Windows 95/98/NT, and later 2000 and XP, on the Intel processor architecture. It is certainly a misnomer wrt. the 3 in its name, but so have been lots of other identifiers, too. There has also been a NT386GNU target which used the Cygwin POSIX emulation environment running on Windows. There have never been any other supported hardware architectures for NT/2000/... as far as I know, but then, there has been no software support at all for these, even by Microsoft... A more consistent naming scheme for M3 targets may be interesting for new target platforms, but I wouldn't change any existing names for reasons of backward compatibility and effort. Olaf -- Olaf Wagner elego Software Solutions GmbH, Berlin, Germany From jayk123 at hotmail.com Thu Jan 4 02:15:51 2007 From: jayk123 at hotmail.com (j k) Date: Thu, 04 Jan 2007 01:15:51 +0000 Subject: [M3devel] Re: [M3commit] CVS Update: cm3 In-Reply-To: Message-ID: An HTML attachment was scrubbed... URL: From jayk123 at hotmail.com Thu Jan 4 02:27:46 2007 From: jayk123 at hotmail.com (j k) Date: Thu, 04 Jan 2007 01:27:46 +0000 Subject: [M3devel] Re: [M3commit] CVS Update: cm3 In-Reply-To: Message-ID: An HTML attachment was scrubbed... URL: From jayk123 at hotmail.com Thu Jan 4 02:57:26 2007 From: jayk123 at hotmail.com (j k) Date: Thu, 04 Jan 2007 01:57:26 +0000 Subject: [M3devel] Re: [M3commit] CVS Update: cm3 In-Reply-To: <33776.194.138.127.36.1167838685.squirrel@mail.elegosoft.com> Message-ID: An HTML attachment was scrubbed... URL: From jayk123 at hotmail.com Thu Jan 4 02:57:26 2007 From: jayk123 at hotmail.com (j k) Date: Thu, 04 Jan 2007 01:57:26 +0000 Subject: [M3devel] Re: [M3commit] CVS Update: cm3 In-Reply-To: <33776.194.138.127.36.1167838685.squirrel@mail.elegosoft.com> Message-ID: An HTML attachment was scrubbed... URL: From jayk123 at hotmail.com Thu Jan 4 03:07:36 2007 From: jayk123 at hotmail.com (j k) Date: Thu, 04 Jan 2007 02:07:36 +0000 Subject: [M3devel] review before checkin/submit/commit? place for user-specific or work-in-progres? Message-ID: > PS: You may want to include non-HTML versions of the texts in your email. hm, sorry, that was hotmail's doing but I think due to a setting change I didn't notice, not sure I made it or not. This should come through better. >Have you read the M3 configuration management rules at I'll reread them. I don't like so much ahead of time oversight in my way... It looks like folks have made it easy to convert to other source controls systems, there are import tools, but I guess "easy" is relative, like all things. "Nothing" has the minimal short term cost of course, but usually not the minimal long term cost. My understanding is that Subversion isn't so great either. It doesn't have like "hierarchical branches", just a mainline and copying back and forth to it, something like that. My "random survey" says Perforce is best. Win32 mostly implies Win64. They don't need to be distinct forks. Really the problem is like of "hierarchical sharing". It bugs me how much is copy/pasted among targets in Modula-3. You want to be able to factor out arbitrarily so that targets can be "derived" from other targets, or intermediate abstract targets. (ie: Win32 would be the base of Win32-x86, Win32-PowerPC, Win32-MIPS, Win32-Alpha, and even the base of Win64, which would then be the base of Win64-AMD64, Win64-IA64..) I realize that there isn't zero sharing here in Modula-3, but there is also a lot of copy/paste. _WIN64 implies _WIN32. They are both defined if _WIN64 is defined. /Usually/ but not always #if defined(_WIN32) is around Windows-specific code, not pointer-size dependent or processor dependent code. This is true in Modula-3 where most but not all TARGET == NT386 and OS_TYPE == Win32 code would work on any Win32 or Win64 architecture. - Jay From: "Olaf Wagner" To: "j k" CC: m3devel at elegosoft.com Subject: Re: [M3devel] review before checkin/submit/commit? place for user-specific or work-in-progres? Date: Wed, 3 Jan 2007 15:58:00 +0100 (CET) > >On Mon, January 1, 2007 3:39 pm, j k wrote: > >
Do folks here > > require/prefer all things be discussed/reviewed before any > > checkin/submit/commit? Or ok to do stuff kind of single-mindedly? Source > > control helps it not matter imho, but cvs isn't a great source control >system, > > as far as I know yet and as far as I have read.
> >
 
> >
Is there anywhere appropriate to checkin
> >
  work in progress?
> >
  user/developer-specific stuff?
> >
 
> >
For example at work we can put stuf in > > <root>\developer\<username>.
> >
Can a similar namespace be carved out in the cm3 cvs tree >or > > would that be an abuse?
> >
 
> >
Maybe I should just find some generic hosting >service..?
> >
 
> > > >Jay, > >usually it's OK to check-in changes on the main trunk if they are compiling >and working OK. If you are undertaking bigger projects that might affect >other development, you should create a development branch for them to >isolate them until they are finished and have been tested by others. >Anyway it is always a good idea to announce changes on the m3devel list >to see if anybody objects. > >Have you read the M3 configuration management rules at >http://modula3.elegosoft.com/cm3/cm3-cm-rules.html? > >I would really like to have automatic compilation and regression testing >on different target platforms, but this is not too easy to set up and >maintain. > >You are right that CVS is not the greatest tool for version control, >but it's working reliably, the bugs are known and can be worked around >or ignored :) A migration of the repository to e.g. Subversion would >be quite a lot of work, and have impacts on much of the existing >infrastructure. With the available human resources I wouldn't recommend >such a change. > >Olaf > >PS: You may want to include non-HTML versions of the texts in your email. >PPS: Please also note the other mails about the CFLF/LF line ending, which > should be taken care of by your CVS client. If you don't get proper > Windows-formatted texts in your workspace, you have set up something > wrong. >-- >Olaf Wagner >elego Software Solutions GmbH, Berlin, Germany _________________________________________________________________ Dave vs. Carl: The Insignificant Championship Series. ?Who will win? http://clk.atdmt.com/MSN/go/msnnkwsp0070000001msn/direct/01/?href=http://davevscarl.spaces.live.com/?icid=T001MSN38C07001 From jayk123 at hotmail.com Thu Jan 4 04:22:58 2007 From: jayk123 at hotmail.com (j k) Date: Thu, 04 Jan 2007 03:22:58 +0000 Subject: [M3devel] review before checkin/submit/commit? place for user-specific or work-in-progres? In-Reply-To: <20070104031027.GA17926@topoi.pooq.com> Message-ID: I admit there are /lots/ of source controls systems. It seems like cvs held down the fort a while, and then everyone about the same time decided they didn't like it and wrote more stuff. I don't know anything about monotone. Compared to my little bit of use of cvs, perforce has: files are read only by default locally you have to explicitly check them out (not exclusively mind you) so you get "p4 opened", "p4 diff", where cvs doesn't have them or is slow For branching you can create an arbitrary tree of branches and "integrate" (merge) branches up or down the tree, or even across, or just individual files or changelists (aka "cherry picking). Heck, p4 diff brings up windiff which is nice. Surely I'm not using cvs to its fullest (yet). It has some model for "remote depots" where you have a local copy if all the history. I haven't used it. In fact, the one feature I'd like that Perforce does not have is doing this sort of thing by default. As I understand, I think Subversion has that feature. Every developer has all the history locally. I think in Git takes this one step further and every developer has a local repository that is a peer of all the others. There's some lack of hierarchy which turns out ok. I'd really like cvs diff to not require network use. p4 diff isn't ideal here either. Heck, at least save a local copy of any file I checkout, if not more history than that. Anyway, my "random survey" includes very little use of anything, just reading up on a little bit of marketing and "community" and parts of books. Subversion does have Perforce beat on cost+licensing, but Perforce is free for open source use, and free for a very small number of clients, I think 10, formerly 2. I plan to use it at home. We use it at work so I am very familiar with it. Open Watcom uses Perforce and I read in their newsgroup, either they or someone else, stopped using cvs partly because it was a large cpu drain on the host system. There are just a bunch of systems these days. - Jay >From: hendrik at topoi.pooq.com >To: m3devel at elegosoft.com >CC: j k >Subject: Re: [M3devel] review before checkin/submit/commit? place for >user-specific or work-in-progres? >Date: Wed, 3 Jan 2007 22:10:27 -0500 > >On Thu, Jan 04, 2007 at 02:07:36AM +0000, j k wrote: > > > > It looks like folks have made it easy to convert to other source >controls > > systems, there are import tools, but I guess "easy" is relative, like >all > > things. "Nothing" has the minimal short term cost of course, but usually > > not the minimal long term cost. My understanding is that Subversion >isn't > > so great either. It doesn't have like "hierarchical branches", just a > > mainline and copying back and forth to it, something like that. My >"random > > survey" says Perforce is best. > >I never heard of Perforce. I've been using monotone here. What did you >like about it? > >-- hendrik _________________________________________________________________ Get FREE Web site and company branded e-mail from Microsoft Office Live http://clk.atdmt.com/MRT/go/mcrssaub0050001411mrt/direct/01/ From jayk123 at hotmail.com Thu Jan 4 04:14:04 2007 From: jayk123 at hotmail.com (j k) Date: Thu, 04 Jan 2007 03:14:04 +0000 Subject: [M3devel] Re: [M3commit] CVS Update: cm3 In-Reply-To: Message-ID: >I didn't look at the history for how the recursion got there. Tony has made a bunch of changes here over the past months/years as part of using pthreads on other platforms. Revision 1.8 looks suspicious. It has Init call GetActivation. GetActivation calls EnterCriticalSection(idleMu) which Init hasn't yet initialized. Where I said "infinite recursion", substitute "entering an uninitialized critical section". That might still lead to infinite recursion, like the access violation might be caught and code rerun or something. Feel free to undo my change and run the result. :) - Jay >From: "j k" >To: wagner at elegosoft.com, jkrell at birch.elego.de >CC: m3devel at elegosoft.com >Subject: RE: [M3devel] Re: [M3commit] CVS Update: cm3 >Date: Thu, 04 Jan 2007 01:57:26 +0000 > > > >I didn't look at the history for how the recursion got there. >I didn't put it in. >It was definitely there and as it was, ANY attempt to run ANY Modula-3 code >would crash in startup due to infinite recursion, stack overflow. > >For the critical sections I just did a local analysis within the file which >proved adequate to me. You can see fairly readily what are local variables >and what are gobals. > >There is a global linked list and the critical sections are used >to protect it. But you can set up a local before putting it on the list >without the critical section. > >The shorter time you are in a critical section, the better. > >The critical sections are still overused or underused, in the pthread code >too. > >Consider this pthread code: > >PROCEDURE GetActivation (): Activation = >? (* If not the initial thread and not created by Fork, returns NIL *) >? (* LL = 0 *) >? BEGIN >??? IF initActivations THEN InitActivations() END; >??? RETURN LOOPHOLE(Upthread.getspecific(activations), Activation); >? END GetActivation; > > >PROCEDURE InitActivations () = >? VAR me := NEW(Activation); >? BEGIN >??? WITH r = Upthread.key_create(activations, NIL) DO <*ASSERT r=0*> END; >??? WITH r = Upthread.setspecific(activations, me) DO <*ASSERT r=0*> END; >??? WITH r = Upthread.mutex_lock(activeMu) DO <*ASSERT r=0*> END; >????? <* ASSERT allThreads = NIL *> >????? me.handle := Upthread.self(); >????? me.next := me; >????? me.prev := me; >????? allThreads := me; >????? initActivations := FALSE; >??? WITH r = Upthread.mutex_unlock(activeMu) DO <*ASSERT r=0*> END; >? END InitActivations; > >The critical section might need to be expanded to encompass the >"initActivations" variable. > >Possible a "double check" is ok: >?if initActivations >??? enter critical section >????? if initActivations > >In Win32 you can probably get by with a simple spin lock using >InterlockedIncrement. >Does pthreads have that? >In Vista a "once" would be appropriate. I believe pthreads has those too. >Use of simple booleans to implement "onces" is often done incorrectly. > >The critical section does not need to cover the lines: >?? me.next = me; >?? me.prev = me; >?? me.handle = Upthread.self(); > >If this all is in some "startup" code that provides its own serialization, >then more of this is unnecessary. >For example on Windows this should be in m3core.dll's DllMain(process >startup). It probably already is. I'd have to check. > >Putting it in main is just about adequate, except that someone's .dll's >DllMain(process startup) could create a thread that ends up in Modula-3 >code. (There is the assertion about being created by Fork, which is >unfortunate -- I should be able to use Modula-3 .dlls from non-Modula-3 >code and I should be able to create threads with the system-native thread >creater, CreateThread on Windows. Having to go through custom functions to >create threads is not good. It requires more control of the system than you >often have -- imagine for example providing a COM object implemented in >Modula-3...) > >It'd be nice to not roll custom linked lists btw, and then for there to be >a generic ThreadSafeList or such. > >?- Jay > > > > > > > >From:??"Olaf Wagner" >To:??jkrell at birch.elego.de >CC:??m3devel at elegosoft.com >Subject:??[M3devel] Re: [M3commit] CVS Update: cm3 >Date:??Wed, 3 Jan 2007 16:38:05 +0100 (CET) > > > >On Sat, December 30, 2006 3:18 am, Jay Krell wrote: > > > CVSROOT: /usr/cvs > > > Changes by: jkrell at birch. 06/12/30 02:18:06 > > > > > > Modified files: > > > cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 > > > > > > Log message: > > > important: fix infinite recursion in Win32 startup > > > correct check for TlsAlloc failure (TLS_OUT_OF_INDEXES instead of < 0) > > > reduce critical sections slightly (esp. to avoid calling out while in >a > > > critical section, including to >DuplicateHandle, CreateThread, VirtualQuery) > > > >I would like to understand this change better (especially the first >item), > >or at least how/why and endless recursion got into the source (as older > >versions have run, haven't they?). > > > >As for critical sections, you seem to have remove one completely and > >reduced another. Are you sure that is correct? (I've only had a short > >look at the diff, and haven't got a comprehensive understanding of the > >CM3 WIN32 runtime currently.) > > > >Olaf > >-- > >Olaf Wagner > >elego Software Solutions GmbH, Berlin, Germany > >_______________________________________________ > >M3devel mailing list > >M3devel at elegosoft.com > >https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel > > Fixing up the home? Live Search can help > >_______________________________________________ >M3devel mailing list >M3devel at elegosoft.com >https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel _________________________________________________________________ Type your favorite song.? Get a customized station.? Try MSN Radio powered by Pandora. http://radio.msn.com/?icid=T002MSN03A07001 From hosking at cs.purdue.edu Sat Jan 6 21:37:27 2007 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 6 Jan 2007 15:37:27 -0500 Subject: [M3devel] Re: [M3commit] CVS Update: cm3 In-Reply-To: References: Message-ID: <2CB0DF20-D498-4DB9-8EFE-1CAF6CA7C29A@cs.purdue.edu> Just a note that my changes to Win32 threading were intended to mirror my changes for pthreads on other platforms. I was in no situation to test the Win32 threading implementation myself as I had no platform on which to test. I will try to take a look at the Win32 threading updates in ThreadWin32.m3 to ensure that they make sense with respect to the invariants that the run-time system (heap, GC, etc.) need. On Jan 3, 2007, at 10:14 PM, j k wrote: >> I didn't look at the history for how the recursion got there. > > Tony has made a bunch of changes here over the past months/years as > part of using pthreads on other platforms. > Revision 1.8 looks suspicious. > It has Init call GetActivation. > GetActivation calls EnterCriticalSection(idleMu) which Init hasn't > yet initialized. > > Where I said "infinite recursion", substitute "entering an > uninitialized critical section". > > That might still lead to infinite recursion, like the access > violation might be caught and code rerun or something. Feel free to > undo my change and run the result. :) > > - Jay > >> From: "j k" >> To: wagner at elegosoft.com, jkrell at birch.elego.de >> CC: m3devel at elegosoft.com >> Subject: RE: [M3devel] Re: [M3commit] CVS Update: cm3 >> Date: Thu, 04 Jan 2007 01:57:26 +0000 >> >> >> >> I didn't look at the history for how the recursion got there. >> I didn't put it in. >> It was definitely there and as it was, ANY attempt to run ANY >> Modula-3 code would crash in startup due to infinite recursion, >> stack overflow. >> >> For the critical sections I just did a local analysis within the >> file which >> proved adequate to me. You can see fairly readily what are local >> variables and what are gobals. >> >> There is a global linked list and the critical sections are used >> to protect it. But you can set up a local before putting it on the >> list without the critical section. >> >> The shorter time you are in a critical section, the better. >> >> The critical sections are still overused or underused, in the >> pthread code too. >> >> Consider this pthread code: >> >> PROCEDURE GetActivation (): Activation = >> (* If not the initial thread and not created by Fork, returns >> NIL *) >> (* LL = 0 *) >> BEGIN >> IF initActivations THEN InitActivations() END; >> RETURN LOOPHOLE(Upthread.getspecific(activations), Activation); >> END GetActivation; >> >> >> PROCEDURE InitActivations () = >> VAR me := NEW(Activation); >> BEGIN >> WITH r = Upthread.key_create(activations, NIL) DO <*ASSERT >> r=0*> END; >> WITH r = Upthread.setspecific(activations, me) DO <*ASSERT >> r=0*> END; >> WITH r = Upthread.mutex_lock(activeMu) DO <*ASSERT r=0*> END; >> <* ASSERT allThreads = NIL *> >> me.handle := Upthread.self(); >> me.next := me; >> me.prev := me; >> allThreads := me; >> initActivations := FALSE; >> WITH r = Upthread.mutex_unlock(activeMu) DO <*ASSERT r=0*> END; >> END InitActivations; >> >> The critical section might need to be expanded to encompass the >> "initActivations" variable. >> >> Possible a "double check" is ok: >> if initActivations >> enter critical section >> if initActivations >> >> In Win32 you can probably get by with a simple spin lock using >> InterlockedIncrement. >> Does pthreads have that? >> In Vista a "once" would be appropriate. I believe pthreads has >> those too. >> Use of simple booleans to implement "onces" is often done >> incorrectly. >> >> The critical section does not need to cover the lines: >> me.next = me; >> me.prev = me; >> me.handle = Upthread.self(); >> >> If this all is in some "startup" code that provides its own >> serialization, then more of this is unnecessary. >> For example on Windows this should be in m3core.dll's DllMain >> (process startup). It probably already is. I'd have to check. >> >> Putting it in main is just about adequate, except that >> someone's .dll's DllMain(process startup) could create a thread >> that ends up in Modula-3 code. (There is the assertion about being >> created by Fork, which is unfortunate -- I should be able to use >> Modula-3 .dlls from non-Modula-3 code and I should be able to >> create threads with the system-native thread creater, CreateThread >> on Windows. Having to go through custom functions to create >> threads is not good. It requires more control of the system than >> you often have -- imagine for example providing a COM object >> implemented in Modula-3...) >> >> It'd be nice to not roll custom linked lists btw, and then for >> there to be a generic ThreadSafeList or such. >> >> - Jay >> >> >> >> >> >> >> >> From: "Olaf Wagner" >> To: jkrell at birch.elego.de >> CC: m3devel at elegosoft.com >> Subject: [M3devel] Re: [M3commit] CVS Update: cm3 >> Date: Wed, 3 Jan 2007 16:38:05 +0100 (CET) >> > >> >On Sat, December 30, 2006 3:18 am, Jay Krell wrote: >> > > CVSROOT: /usr/cvs >> > > Changes by: jkrell at birch. 06/12/30 02:18:06 >> > > >> > > Modified files: >> > > cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 >> > > >> > > Log message: >> > > important: fix infinite recursion in Win32 startup >> > > correct check for TlsAlloc failure (TLS_OUT_OF_INDEXES instead >> of < 0) >> > > reduce critical sections slightly (esp. to avoid calling out >> while in a >> > > critical section, including to >> DuplicateHandle, CreateThread, VirtualQuery) >> > >> >I would like to understand this change better (especially the >> first item), >> >or at least how/why and endless recursion got into the source (as >> older >> >versions have run, haven't they?). >> > >> >As for critical sections, you seem to have remove one completely and >> >reduced another. Are you sure that is correct? (I've only had a >> short >> >look at the diff, and haven't got a comprehensive understanding >> of the >> >CM3 WIN32 runtime currently.) >> > >> >Olaf >> >-- >> >Olaf Wagner >> >elego Software Solutions GmbH, Berlin, Germany >> >_______________________________________________ >> >M3devel mailing list >> >M3devel at elegosoft.com >> >https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel >> >> Fixing up the home? Live Search can help >> > > >> _______________________________________________ >> M3devel mailing list >> M3devel at elegosoft.com >> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel > > _________________________________________________________________ > Type your favorite song. Get a customized station. Try MSN Radio > powered by Pandora. http://radio.msn.com/?icid=T002MSN03A07001 > > _______________________________________________ > M3devel mailing list > M3devel at elegosoft.com > https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel Antony Hosking | Associate Professor Dept of Computer Science | Office: +1 765 494-6001 Purdue University | Mobile: +1 765 427-5484 250 N. University Street | Email: hosking at cs.purdue.edu West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking _--_|\ / \ \_.--._/ ) v / From hosking at cs.purdue.edu Sat Jan 6 21:47:05 2007 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 6 Jan 2007 15:47:05 -0500 Subject: [M3devel] Re: [M3commit] CVS Update: cm3 In-Reply-To: References: Message-ID: <8F08B2F8-CE8E-4177-9B05-25C9EB985F04@cs.purdue.edu> On Jan 3, 2007, at 8:57 PM, j k wrote: > I didn't look at the history for how the recursion got there. > I didn't put it in. > It was definitely there and as it was, ANY attempt to run ANY > Modula-3 code would crash in startup due to infinite recursion, > stack overflow. > > For the critical sections I just did a local analysis within the > file which > proved adequate to me. You can see fairly readily what are local > variables and what are gobals. > > There is a global linked list and the critical sections are used > to protect it. But you can set up a local before putting it on the > list without the critical section. > > The shorter time you are in a critical section, the better. > > The critical sections are still overused or underused, in the > pthread code too. > > Consider this pthread code: > > PROCEDURE GetActivation (): Activation = > (* If not the initial thread and not created by Fork, returns NIL *) > (* LL = 0 *) > BEGIN > IF initActivations THEN InitActivations() END; > RETURN LOOPHOLE(Upthread.getspecific(activations), Activation); > END GetActivation; > > > PROCEDURE InitActivations () = > VAR me := NEW(Activation); > BEGIN > WITH r = Upthread.key_create(activations, NIL) DO <*ASSERT > r=0*> END; > WITH r = Upthread.setspecific(activations, me) DO <*ASSERT > r=0*> END; > WITH r = Upthread.mutex_lock(activeMu) DO <*ASSERT r=0*> END; > <* ASSERT allThreads = NIL *> > me.handle := Upthread.self(); > me.next := me; > me.prev := me; > allThreads := me; > initActivations := FALSE; > WITH r = Upthread.mutex_unlock(activeMu) DO <*ASSERT r=0*> END; > END InitActivations; > > The critical section might need to be expanded to encompass the > "initActivations" variable. > > Possible a "double check" is ok: > if initActivations > enter critical section > if initActivations This is probably not safe either, since double-check will fail for relaxed memory orderings on some SMPs. > In Win32 you can probably get by with a simple spin lock using > InterlockedIncrement. > Does pthreads have that? Need to look into this even for ThreadPosix.m3. > In Vista a "once" would be appropriate. I believe pthreads has > those too. Yes, pthreads has "once". > Use of simple booleans to implement "onces" is often done incorrectly. > > The critical section does not need to cover the lines: > me.next = me; > me.prev = me; > me.handle = Upthread.self(); Indeed. > If this all is in some "startup" code that provides its own > serialization, then more of this is unnecessary. > For example on Windows this should be in m3core.dll's DllMain > (process startup). It probably already is. I'd have to check. > > Putting it in main is just about adequate, except that > someone's .dll's DllMain(process startup) could create a thread > that ends up in Modula-3 code. (There is the assertion about being > created by Fork, which is unfortunate -- I should be able to use > Modula-3 .dlls from non-Modula-3 code and I should be able to > create threads with the system-native thread creater, CreateThread > on Windows. Having to go through custom functions to create threads > is not good. It requires more control of the system than you often > have -- imagine for example providing a COM object implemented in > Modula-3...) Why would you expect the system-native thread creator to be able to create a Modula-3 thread, given that the Modula-3 run-time system needs to know about the threads to be GC'd. I think it is entirely fair that the M3 run-time system know about the threads that are running M3 code. > It'd be nice to not roll custom linked lists btw, and then for > there to be a generic ThreadSafeList or such. > > - Jay > > > > From: "Olaf Wagner" > To: jkrell at birch.elego.de > CC: m3devel at elegosoft.com > Subject: [M3devel] Re: [M3commit] CVS Update: cm3 > Date: Wed, 3 Jan 2007 16:38:05 +0100 (CET) > > > >On Sat, December 30, 2006 3:18 am, Jay Krell wrote: > > > CVSROOT: /usr/cvs > > > Changes by: jkrell at birch. 06/12/30 02:18:06 > > > > > > Modified files: > > > cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 > > > > > > Log message: > > > important: fix infinite recursion in Win32 startup > > > correct check for TlsAlloc failure (TLS_OUT_OF_INDEXES instead > of < 0) > > > reduce critical sections slightly (esp. to avoid calling out > while in a > > > critical section, including to DuplicateHandle, CreateThread, > VirtualQuery) > > > >I would like to understand this change better (especially the > first item), > >or at least how/why and endless recursion got into the source (as > older > >versions have run, haven't they?). > > > >As for critical sections, you seem to have remove one completely and > >reduced another. Are you sure that is correct? (I've only had a short > >look at the diff, and haven't got a comprehensive understanding of > the > >CM3 WIN32 runtime currently.) > > > >Olaf > >-- > >Olaf Wagner > >elego Software Solutions GmbH, Berlin, Germany > >_______________________________________________ > >M3devel mailing list > >M3devel at elegosoft.com > >https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel > > Fixing up the home? Live Search can help > _______________________________________________ > M3devel mailing list > M3devel at elegosoft.com > https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel Antony Hosking | Associate Professor Dept of Computer Science | Office: +1 765 494-6001 Purdue University | Mobile: +1 765 427-5484 250 N. University Street | Email: hosking at cs.purdue.edu West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking _--_|\ / \ \_.--._/ ) v / From hosking at cs.purdue.edu Sat Jan 6 21:50:43 2007 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 6 Jan 2007 15:50:43 -0500 Subject: [M3devel] Re: [M3commit] CVS Update: cm3 In-Reply-To: References: Message-ID: On Jan 3, 2007, at 10:14 PM, j k wrote: >> I didn't look at the history for how the recursion got there. > > Tony has made a bunch of changes here over the past months/years as > part of using pthreads on other platforms. > Revision 1.8 looks suspicious. > It has Init call GetActivation. > GetActivation calls EnterCriticalSection(idleMu) which Init hasn't > yet initialized. > Where I said "infinite recursion", substitute "entering an > uninitialized critical section". I'll need to look again at my thinking on this. As I recall there was a chicken and egg problem where we wanted *not* to run some code until certain parts of the M3 run-time system were ready. Given that one cannot fork a Modula-3 thread until after a given point in initialization of the run-time system, I figured that certain idioms would be safe even if not in the general case. > > That might still lead to infinite recursion, like the access > violation might be caught and code rerun or something. Feel free to > undo my change and run the result. :) > > - Jay > >> From: "j k" >> To: wagner at elegosoft.com, jkrell at birch.elego.de >> CC: m3devel at elegosoft.com >> Subject: RE: [M3devel] Re: [M3commit] CVS Update: cm3 >> Date: Thu, 04 Jan 2007 01:57:26 +0000 >> >> >> >> I didn't look at the history for how the recursion got there. >> I didn't put it in. >> It was definitely there and as it was, ANY attempt to run ANY >> Modula-3 code would crash in startup due to infinite recursion, >> stack overflow. >> >> For the critical sections I just did a local analysis within the >> file which >> proved adequate to me. You can see fairly readily what are local >> variables and what are gobals. >> >> There is a global linked list and the critical sections are used >> to protect it. But you can set up a local before putting it on the >> list without the critical section. >> >> The shorter time you are in a critical section, the better. >> >> The critical sections are still overused or underused, in the >> pthread code too. >> >> Consider this pthread code: >> >> PROCEDURE GetActivation (): Activation = >> (* If not the initial thread and not created by Fork, returns >> NIL *) >> (* LL = 0 *) >> BEGIN >> IF initActivations THEN InitActivations() END; >> RETURN LOOPHOLE(Upthread.getspecific(activations), Activation); >> END GetActivation; >> >> >> PROCEDURE InitActivations () = >> VAR me := NEW(Activation); >> BEGIN >> WITH r = Upthread.key_create(activations, NIL) DO <*ASSERT >> r=0*> END; >> WITH r = Upthread.setspecific(activations, me) DO <*ASSERT >> r=0*> END; >> WITH r = Upthread.mutex_lock(activeMu) DO <*ASSERT r=0*> END; >> <* ASSERT allThreads = NIL *> >> me.handle := Upthread.self(); >> me.next := me; >> me.prev := me; >> allThreads := me; >> initActivations := FALSE; >> WITH r = Upthread.mutex_unlock(activeMu) DO <*ASSERT r=0*> END; >> END InitActivations; >> >> The critical section might need to be expanded to encompass the >> "initActivations" variable. >> >> Possible a "double check" is ok: >> if initActivations >> enter critical section >> if initActivations >> >> In Win32 you can probably get by with a simple spin lock using >> InterlockedIncrement. >> Does pthreads have that? >> In Vista a "once" would be appropriate. I believe pthreads has >> those too. >> Use of simple booleans to implement "onces" is often done >> incorrectly. >> >> The critical section does not need to cover the lines: >> me.next = me; >> me.prev = me; >> me.handle = Upthread.self(); >> >> If this all is in some "startup" code that provides its own >> serialization, then more of this is unnecessary. >> For example on Windows this should be in m3core.dll's DllMain >> (process startup). It probably already is. I'd have to check. >> >> Putting it in main is just about adequate, except that >> someone's .dll's DllMain(process startup) could create a thread >> that ends up in Modula-3 code. (There is the assertion about being >> created by Fork, which is unfortunate -- I should be able to use >> Modula-3 .dlls from non-Modula-3 code and I should be able to >> create threads with the system-native thread creater, CreateThread >> on Windows. Having to go through custom functions to create >> threads is not good. It requires more control of the system than >> you often have -- imagine for example providing a COM object >> implemented in Modula-3...) >> >> It'd be nice to not roll custom linked lists btw, and then for >> there to be a generic ThreadSafeList or such. >> >> - Jay >> >> >> >> >> >> >> >> From: "Olaf Wagner" >> To: jkrell at birch.elego.de >> CC: m3devel at elegosoft.com >> Subject: [M3devel] Re: [M3commit] CVS Update: cm3 >> Date: Wed, 3 Jan 2007 16:38:05 +0100 (CET) >> > >> >On Sat, December 30, 2006 3:18 am, Jay Krell wrote: >> > > CVSROOT: /usr/cvs >> > > Changes by: jkrell at birch. 06/12/30 02:18:06 >> > > >> > > Modified files: >> > > cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 >> > > >> > > Log message: >> > > important: fix infinite recursion in Win32 startup >> > > correct check for TlsAlloc failure (TLS_OUT_OF_INDEXES instead >> of < 0) >> > > reduce critical sections slightly (esp. to avoid calling out >> while in a >> > > critical section, including to >> DuplicateHandle, CreateThread, VirtualQuery) >> > >> >I would like to understand this change better (especially the >> first item), >> >or at least how/why and endless recursion got into the source (as >> older >> >versions have run, haven't they?). >> > >> >As for critical sections, you seem to have remove one completely and >> >reduced another. Are you sure that is correct? (I've only had a >> short >> >look at the diff, and haven't got a comprehensive understanding >> of the >> >CM3 WIN32 runtime currently.) >> > >> >Olaf >> >-- >> >Olaf Wagner >> >elego Software Solutions GmbH, Berlin, Germany >> >_______________________________________________ >> >M3devel mailing list >> >M3devel at elegosoft.com >> >https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel >> >> Fixing up the home? Live Search can help >> > > >> _______________________________________________ >> M3devel mailing list >> M3devel at elegosoft.com >> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel > > _________________________________________________________________ > Type your favorite song. Get a customized station. Try MSN Radio > powered by Pandora. http://radio.msn.com/?icid=T002MSN03A07001 > > _______________________________________________ > M3devel mailing list > M3devel at elegosoft.com > https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel Antony Hosking | Associate Professor Dept of Computer Science | Office: +1 765 494-6001 Purdue University | Mobile: +1 765 427-5484 250 N. University Street | Email: hosking at cs.purdue.edu West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking _--_|\ / \ \_.--._/ ) v / From jayk123 at hotmail.com Sun Jan 7 06:36:58 2007 From: jayk123 at hotmail.com (j k) Date: Sun, 07 Jan 2007 05:36:58 +0000 Subject: [M3devel] Re: [M3commit] CVS Update: cm3 In-Reply-To: <8F08B2F8-CE8E-4177-9B05-25C9EB985F04@cs.purdue.edu> Message-ID: > Why would you expect the system-native thread creator to be able to > create a Modula-3 thread, given that the Modula-3 run-time system needs to > know about the threads to be GC'd. I think it is entirely fair that > the M3 run-time system know about the threads that are running M3 code. It would be a nice interoperability feature, for "native" code to call Modula-3 code and have it "just work". I understand that it might not be easy/doable. DllMain(thread attach) in Win32 makes it a little more doable but still not /always/ trivial. Given that the .exe staticaly directly or indirectly depends on Modula-3 code, and not using build_standalone(), then m3core.dll will get notified of all thread creations and no special thread creater needs to be called. I have in mind a relatively loosely coupled world, where, say, Modula-3 might be little used in a process, but say some sort of "plugin" might use it. In such a loosely coupled world, no special thread creation function can be agreed up except most likely CreateThread (there are others below it -- NtCreateThread, and there are fibers, both bring back this problem) Such a loosely coupled system doesn't work today because m3core.dll might not be loaded until "late". However, at some cost, what could happen is Modula-3 code could "often" check if it has ever run on this thread and if not do the initialization on demand. "Often" could be limited to every time a garbage collected allocation gets done. That may or may not be a significant cost. Most libraries do not foist their custom thread creator on you. > Possible a "double check" is ok: > This is probably not safe either, since double-check will fail for relaxed memory orderings on some SMPs Oh, I forgot: Isn't enter/leave critical section considered a full memory barrier/fence/whatever? Therefore the second read initActivation is guaranteed to not be cached by the compiler/linker? On Win32 I am pretty darn sure and it makes writing such code a fair amount easier. If you want, you can >> full memory barrie if initActivations enter critical section >> MemoryBarrier if initActivations ... initActivatio