[M3devel] [M3commit] CVS Update: cm3

Mika Nystrom mika at async.caltech.edu
Sun Jan 20 04:46:03 CET 2008


Can I add a perhaps obvious observation?

NT386GNU must, of all things, mean that the code will compile and
link cleanly, with a minimum of fuss, against Cygwin's headers
and libraries.  I have never used MS's C tools so I don't know
if this is the case with them.  It is of course the case when
you use GNU ld, etc.

When building large software in Modula-3 it's almost inevitable
that, since the language is used by so few people, you will have a
need to call out to C code (or Fortran code, or some other compiled
code, with C interfaces).  If you develop on Unix and use Cygwin
to port to Windows, it makes no sense to distinguish between NT386
and NT386GNU unless the latter has pretty much the same environment
as the Unix system.

     Mika

Tony Hosking writes:
>So, I am very confused now.  Does NT386GNU no longer mean use of the  
>full set of GNU tools m3cc/ld/as, as would be available under  
>Cygwin?  I thought the point of this was to be able to run in as much  
>of a GNU environment as possible.  GNU to me means the whole  
>toolsuite not just m3cc.  To me, a GNU-based environment on Windows  
>holds great attraction, since it consists of tools that I generally  
>always install on Windows, that I know, and are similar to the other  
>platforms I use.
>
>On Jan 19, 2008, at 4:11 AM, Jay Krell wrote:
>
>> CVSROOT:	/usr/cvs
>> Changes by:	jkrell at birch.	08/01/19 04:11:34
>>
>> Modified files:
>> 	cm3/m3-libs/m3core/src/runtime/: m3makefile
>> 	cm3/m3-sys/cminstall/src/config/: NT386GNU
>> 	cm3/m3-sys/m3front/src/builtinInfo/: InfoModule.m3
>> 	cm3/m3-sys/m3middle/src/: Target.m3
>>
>> Log message:
>> 	m3-sys/m3middle/src/Target.m3
>> 	m3-libs/m3core/src/runtime/m3makefile
>> 	m3-sys\m3front\src\builtinInfo\InfoModule.m3
>> 	
>> 	switch NT386GNU to be Win32 instead of POSIX
>> 	switch NT386GNU to _setjmp instead of setjmp
>> 	jmp_buf size still big like Cygwin
>> 	rewrite NT386GNU config file -- almost identical to NT386
>> 	mingwin required for building Modula-3 programs
>> 	mingwin AND msys required for building m3cc
>> 	
>> 	To boot:
>> 	
>> 	install Python (www.activestate.com)
>> 	
>> 	have a working NT386 system
>> 	get current source
>> 	Mine is at c:\dev2\cm3.2 (cm3 is has other paused work, dev was  
>> taken by Unix)
>> 	
>> 	get and install binary distribution (5.1.3 works, anything newer  
>> should work)
>> 	I install to c:\cm3
>> 	copy %CVSROOT%\m3-sys\cminstall\src\config\cm3.cfg to \cm3\bin 
>> \cm3.cfg
>> 	
>> 	Have a Visual C++ toolset (cl and link)
>> 	and run the vcvars link on the start menu (this can/will be made  
>> easier)
>> 	Almost any version should work.
>> 	if you are using Visual C++ 8.0 (RTM?), rename away its mt.exe
>> 	and get a newer from such as from the Platform SDK. Otherwise it  
>> crashes.
>> 	This is not specific to NT386GNU, just that I recently removed the  
>> Platform SDK
>> 	from my %PATH%.
>> 	
>> 	cd %CVSROOT%\scripts\python
>> 	.\upgrade
>> 	
>> 	install msys and mingwin from http://www.mingw.org (links to  
>> SourceForge)
>> 	for mingwin, you only need the "base"
>> 	msys tells you to avoid mingwin make, in favor of msys make, and I  
>> did that
>> 	
>> 	I install to the defaults
>> 	c:\msys\1.0
>> 	c:\mingw
>> 	
>> 	if you don't install to the defaults, add
>> 	<msys>\bin and <mingwin\bin to $PATH (in which order? I add
>> 	to the start, but which order between the two?)
>> 	
>> 	if you do install to the defaults, scripts\python will fix path  
>> for you,
>> 	if there is no gcc/as/sh on our $PATH
>> 	
>> 	cd %CVSROOT%\scripts\python
>> 	upgrade && bootntgnu
>> 	
>> 	NOTE THE RESULTING BINARIES DO NOT YET WORK, but this is still  
>> progress.
>> 	
>> 	These instructions inevitably to be further tested and refined and  
>> placed elsewhere!



More information about the M3devel mailing list