-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathRELNOTES_5_2_6
More file actions
162 lines (122 loc) · 6.5 KB
/
RELNOTES_5_2_6
File metadata and controls
162 lines (122 loc) · 6.5 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
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
Release Notes for Critical Mass Modula-3 5.2.6
----------------------------------------------
CM3 5.2.6 features a new target platform for Linux on PowerPCs, an
updated code generator based on gcc 3.2.3, and several bug fixes and
minor improvements. The originally intended support for NT386GNU does
not work yet due to problems with the code generator for the Cygwin
emulation and has been postponed till a later release.
Changes since 5.2.4
-------------------
o New target platform PPC_LINUX: Linux running on PowerPC
CM3 now supports another operating system on PPC
hardware. Cross-compilation and a complete source build have been
performed on the following system:
Linux spyro 2.4.21-ben1 #3 Mon Jun 16 23:37:01 EDT 2003 ppc 7455,
altivec supported GNU/Linux
The gcc-based code generator is configured for powerpc-apple-linuxelf.
o Import of gcc 3.2.2 and gcc 3.2.3 as base for cm3cg:
The CM3 code generator for POSIX platforms is now based on gcc
3.2.3, which should provide some bug fixes and better support for
cross-compilation. The import of gcc 3.3 into CM3 is pending.
o Fixes for the errno problem in all Unix interfaces: errno must not
be a variable since that is not guaranteed by POSIX; CM3 now uses a
short piece of C code to interface to errno. The effect is that CM3
now should run again with all recent versions of the GNU C library.
o Fix for process environment handling on WIN32 platforms:
It seems that in recent Windows releases the representation of the
environment passed to every program in main has changed from a
flat, traditional NT style to a standard POSIX pointer array. This
of course breaks some code accessing the environment variables. As
I don't know about any criterium to decide which format to expect,
I've again used an environment setting to choose between the two
and made the POSIX behaviour default: USE_FLAT_ENV=yes|true|1 will
enable the old behaviour.
o Fix for Trestle keyboard input on WIN32 platforms:
Make the interpretation of WM_CHAR events in Trestle depend on the
value of the environment variable USE_EVENT_WM_CHAR. Heeding
WM_CHAR events seems superflous to me and leeds to double input
characters on my Windows 2000 installation, but has been included
in the code forever, so I am unwilling to remove the feature
without further evidence. Instead, users can set USE_EVENT_WM_CHAR
in the environment if they experience problems for the next
time. The default now is to ignore WM_CHAR events.
o Merge-in of NT386GNU platform from PM3 (still dysfunctional)
The code for target platform NT386GNU, which supports M3 based on
the Cygwin POSIX emulation for Windows, has been merged into
CM3. Unfortunately, I haven't yet been able to successfully
cross-compile for this platform, nor have I been able to build a
working code generator (cm3cg) on Cygwin yet. Work will continue
for this platform.
o Fixes and improvements for MachineIDPosix:
Rewrite fragile MachineId.CanGet in C.
o Fix the bug reported by Jay Krell about accidental creation of
circular symbolic links when the builder runs repeatedly without
m3makefile. This was caused by incorporating the files found in the
*derived* directory into the generated m3makefile. The builder now
explicitly checks for this special case. (This was version 5.2.5 of
the compiler).
o Use of stack walker disabled for all CM3 platforms by default:
add override M3_USE_STACK_WALKER = FALSE to all currently active
platforms using stack walkers, thus turning off jump table
generation which newer gccs don't like.
Conditionally compile stack walker code for exception handling in
the libraries depending on M3_USE_STACK_WALKER (only if this
variable is defined and TRUE).
o Added support for UDP module on WIN32.
o Add import of comctl32.lib for builds on the NT386 platform.
o Fix shipping on WIN32 platforms (broken by PPC_DARWIN
optimization):
Preserving file modification times does not work under WIN32 for
unknown reasons. As it completely breaks shipping, I've ignored any
exceptions raised by trying to change permissions for the time
being. If anybody feels an urge to analyse this failure and remove
the TRY ... EXCEPT ELSE END statements or implement some proper
exception handling, this would of course be very appreciated. But
I'd doubt that this can be done in a operating system independent
way...
o Quake extensions/fixes:
Improve evaluation of environment variables for temporary directory,
shell, and shell command option; add
QUAKE_SHELL
QUAKE_SHELL_OPTION
QUAKE_TMPDIR
to override everything from the process environment.
o Add -trace option to cm3 for quake tracing.
o Fix for m3bundle: avoid segmentation violation when run without
proper arguments.
o Several fixes for the cross-compilation and bootstrapping scripts
made during the PPC_LINUX porting.
o Update porting information in www/porting.html.
Bug Reports
-----------
As always, bug reports should be send to the GNATS database at elego
Software Solutions GmbH (bugs@elego.de). The web pages at
www.elegosoft.com offer a nice interface for this.
Other Resources
---------------
Since January two mailing lists for the development of Modula-3 exist:
m3devel@elegosoft.com and m3commit@elegosoft.com. The first is for
discussions about planned CM3 and PM3 development and general
Modula-3 topics, the second distributes the commit log messages of the
CM3 and PM3 repositories via e-mail. You can read archives of these
lists at
http://mailarchive.elegosoft.com/Zope/m3/m3devel
http://mailarchive.elegosoft.com/Zope/m3/m3commit
If you want to subscribe to these lists, send mail to
wagner@elegosoft.com.
www.elegosoft.com also provides the complete CVS repositories,
distribution archives, documentation, and various download facilities
(CVS, CVSup, FTP, HTTP) for CM3 and PM3.
Acknowledgments
---------------
Mike Frysinger set up one of his PowerPC machines running Linux for me
to use for the PPC_LINUX port.
John Polstra contributed the code to fix the errno problems in the
Unix interfaces.
Anthony Hosking applied all the errno fixes to cm3, and contributed
several fixes of his own and a rewrite of the fragile MachineId.CanGet in C.
Darko Volaric added support for the UDP on WIN32 platforms.
Many people from the m3devel mailing list helped with discussing and
analyzing bugs and problems I found in the m3 and gcc code.
All mistakes and oversights should probably be blamed on Olaf Wagner
(that's me :-)