-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathRELNOTES_5_2_0
More file actions
134 lines (98 loc) · 5.16 KB
/
RELNOTES_5_2_0
File metadata and controls
134 lines (98 loc) · 5.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
Release Notes for Critical Mass Modula-3 5.2.0
----------------------------------------------
There are basically two main changes in 5.2.0 compared with the
previous releases:
(1) integration of a new gcc back-end based on gcc 3.2.1
(2) support for the PPC_DARWIN platform (Darwin on Power PC
architecture)
(2) depends on (1) as cross-compilation to PPC_DARWIN proved
impossible with the older code generation back-ends.
There have also been some minor extensions to the the builder (cm3)
and several minor corrections have been made.
Code Generator based on gcc 3.2.1 (cm3cg)
-----------------------------------------
The M3 support to make gcc 3.2.1 into a code generator for Modula-3
has been completely redone from scratch by John Polstra for PM3 and
the EZM3 distributions. Olaf Wagner is responsible for the CM3
integration. Tests on the platforms FreeBSD4, LINUXLIBC6, and SOLgnu
have shown that the new code generator seems to work well, however there
is one major drawback: Due to structural improvements in gcc code it
is no longer possible to use the stack walkers implemented on several
M3 platforms for fast exception support, as the new gcc disallows the
use of labels outside of functions. There is no easy fix or
work-around for this; the best solution seems to be to make the m3
front-end use the built-in exception support of gcc. However, there is
currently no code for this, nor has anybody committed to this task, so
it may take some months (or even longer) for this to realize.
To sum up, this means that
(1) the use of the new code generator is not recommended for all
platforms featuring stack walkers (e.g. ALPHA_OSF, SOLgnu,
SOLsun)
(2) 5.2.0 will be no complete release covering all platforms and is
chiefly done to get the PPC_DARWIN support out.
New Target Platform PPC_DARWIN (Darwin, MacOS X on PowerPC Hardware)
--------------------------------------------------------------------
CM3 5.2.0 is the first Modula-3 release in history that will run on
some of Apple Computer's operating systems, i.e. those that are based
on Darwin. Cross-compilation was done from a FreeBSD4 system using the
new gcc back-end; the target host was a Darwin 6.3 machine identifying
itself as
Darwin lamancha.opendarwin.org 6.3 Darwin Kernel Version 6.3: \
Sat Dec 14 03:11:25 PST 2002; root:xnu/xnu-344.23.obj~4/RELEASE_PPC \
Power Macintosh powerpc
All the runtime and Unix implementation modules were initially copied
from the FreeBSD3 platform; in hindsight, this was only a mediocre
choice, as FreeBSD3 and PPC_DARWIN differ in endianness.
The following list gives detailed information about the status of
PPC_DARWIN support:
o Compiler front end (cm3) and code generator (cm3cg) work without
warnings or failures for all core and standard packages
(do-cm3-core.sh (core system compilation), do-cm3-std.sh (standard
packages installation)).
o The runtime is still very basic, it only supports the necessary
minimum, i.e.
- multi threading based on setjmp/longjmp and signals
- simple copy-and-sweep garbage collection (no incremental,
generational collector)
- access to all standard operating system services via m3core and
libm3
- no virtual memory protection, no system call wrappers
- no thread stack protection via vm
- exception handling based on setjmp/longjmp (no table based
exception handling (impossible with new gcc))
Several of the basic Unix interfaces in m3core have been carefully
checked; others haven't been reviewed at all, so that there will be
room for improvements ;-)
o The system configuration (cm3.cfg) supports static and dynamic
linking of M3 libraries (but not of external (system) libraries,
those are always linked dynamically); debugging support via stabs
is on by default; profiling hasn't been tested yet; all generated
code is position independent (-fPIC).
o Graphical user interface programming is supported by Trestle on X
and seems to work fine; there is of course no native GUI support
yet (Trestle on Aqua?).
o The following applications have been tested on PPC_DARWIN and seem
to work as expected: m3tohtml, formsedit, solitaire, badbricks,
columns, fisheye, obliq, Juno-2, CVSup.
Bug Reports
-----------
As always, bug reports should be send to the GNATS data base at elego
Software Solutions GmbH (bugs@elego.de). The web pages at
www.elegosoft.com offer a nice interface for this.
Acknowledgments
----------------
John D. Polstra has done the basic work of integrating a new gcc
back-end. This release wouldn't be possible without his work.
Jordan K. Hubbard has provided an account on opendarwin.org with lots
of disk and computing resources where all the target work was
performed. Without it, there would also be no working PPC_DARWIN
platform now.
Darko Volaric has provided huge amounts of documentation about MacOS
X and PowerPC and helped testing the new port.
Louis Chrétien helped in early phases of the project with tests of
gcc and other basics, but seems to have disappeared now (email
bounces).
I've done the rest and am most likely to blame for anything that doesn't
work as expected.
Berlin, 2003-02-10
Olaf Wagner