-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathRELNOTES_5_4_0
More file actions
115 lines (84 loc) · 4.52 KB
/
RELNOTES_5_4_0
File metadata and controls
115 lines (84 loc) · 4.52 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
Release Notes for Critical Mass Modula-3 5.4.0
----------------------------------------------
CM3 5.4.0 features an updated code generator based on gcc 3.4.5,
uses generational/incremental garbage collection by default,
supports system-level threading and ships with the m3gdb debugger.
This release supports the targets FreeBSD4, LINUXLIBC6, SOLgnu,
PPC_DARWIN and NetBSD2_i386. The NT386 and PPC_LINUX targets are
currently broken and need fixing. They will probably be included
again in a future release. Work is being done on NT386 already.
Changes since d5.3.x
-------------------
o Import of gcc 3.4.5 as base for cm3cg:
The CM3 code generator for POSIX platforms is now based on gcc
3.4.5, which provides new and improved support for current operating
system / hardware platforms as well as improved code generation and
optimization for existing targets.
o The traditional user-level threading system of M3 on POSIX platforms has
been complemented by an operating system-level threading system on several
platforms (currently SunOS, Linux, DarwinPPC). More implementations of
system-level threads are expected. This allows the scheduling of CM3
threads on concurrent processors and will be appreciated by those
implementing scalable and highly-responsive server processes in M3.
o Import of a new version of m3gdb, based on gdb-6.4.3.
It works on all supported targets except PPC_DARWIN, where even vanilla
gdb releases won't compile.
o Generational/incremental garbage collection is now default.
This greatly improves the portabilty of the code base, as system call
wrappers are no longer required. A detailed description of the work done
in this area can be found in the article "Portable, mostly-concurrent,
mostly-copying garbage collection for multi-processors" available at
http://doi.acm.org/10.1145/1133956.1133963 .
The new garbage collector also supports fast-path allocation for
concurrent system-level threads.
o CM3 now dynamically links to system libraries on Linux. This
was done because some Linux distributions have stopped shipping
static libraries. cminstall now looks for files matching *.so instead
of *.a on both Linux and Solaris (dynamic linking has been the default
on Solaris for some time).
o The arithmetic package providing improved support for arithmetic
calculations is now a standard package.
o Support for plotting has been added in the m3-libs/plplot package.
It is not built by default, however, as it requires plplot to be
installed.
o The documentation and many www pages have been updated and partly
rewritten. The goal was to make CM3 more accessible to people who
are new to CM3. Time will tell if this goal has been reached.
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
---------------
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
https://mail.elegosoft.com/pipermail/m3devel/
https://mail.elegosoft.com/pipermail/m3commit/
If you want to subscribe to these lists, send mail to
m3support@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
---------------
Anthony Hosking contributed the cm3cg backend, the new garbage
collection mechanisms and was extremely helpful with any issues
that came up while this release was being worked at.
Rodney M. Bates contributed m3gdb.
Henning Thielemann provided the arithmetic package, and also
other packages such as plplot.
Olaf Wagner supervised my activities as a first-time "release
engineer", and managed to stay very patient and kind even when
things didn't really work as expected.
Dragisa Duric rescued the LINUXLIBC6 target by pointing out a
workaround for CM3 segfaulting reliably on Fedora Core Linux.
Many people from the m3devel mailing list helped with discussing and
analyzing bugs and problems found in the m3 and gcc code.
All mistakes and oversights should probably be blamed on Stefan Sperling,
who was responsible for creating this release, and updated the documentation
and www pages.