`A Retargetable C Compiler: Design and Implementation'
(Addison-Wesley, 1995, ISBN 0-8053-1670-1).
lcc is a production compiler with a hand crafted lexical analyzer and a
hand-coded recursive decent parser. The lexer and parser code is well
written and very easy to read (and learn from :-)).
lcc compiles much faster than FreeBSD's stock [gcc] compiler. However, it
does not under stand FreeBSD's "long long" data type.
Contributions by: Soren Schmidt
mythical MIX computer, defined in:
Donald E. Knuth, _The Art of Computer Programming, Vol. 1: Fundamental
Algorithms_. Addison-Wesley, 1973 (2nd ed.)
Some of us were playing with it at school... so I made a port of it.
want higher optimization levels result in unsafer binaries).
Fix bug, that causes core dumps when using higher optimization levels
than -O2.
Results with dhrystone 2.1 (1000000 loops):
stock cc (2.7.2.1 from current) : 136k (136xxx)
pgcc-current with -O2 : 138k
pgcc-current with -O6 : 172k
And no coredump anymore. Reason for coredump:
With -O3 cc1 does an register-to-register-copy optimization and it tries
to write some debugging information about what it is doing into a file
that does not exist unless you have instructed cc1 to dump all its
information about its internal state. (From: Sascha Blank)
BTW: PLIST is really coming soon, it's on my todo list ;-)
BTW2: Is Sascha already in the contributors list ? Have to go to work now.
Submitted by: Sascha Blank <blank@sliphost37.uni-trier.de>
optimizations. The motivation to make a separate pgcc port is, to
provide two versions, an official release, which is missing the
leading edge of developement and an interesting current version,
which fixes some things and might breake (or not) others.
Fact is, that one is able to compile and run a complete FreeBSD-current
kernel without trouble and so closes 2 PR's.
>Number: 1221
>Category: bino
and possibly
>Number: 1222
>Category: ports (should be tested by the submitter.
PLISTs.
Note: I know that this is going to break some symlinks and/or .so
includes, I will back some of these out as I run into these during
package building.
names, e.g., "m3build-4" and "m3build-4.0". This makes it possible for
ports that depend on this one to require a specific version. Since the
shared libraries have been moved into a separate port, their version
numbers can no longer be used for that purpose.
will be used to support SOCKS operation in the soon-to-be-released next
version of CVSup.
A tip of the hat to: Darryl Okahata, who developed the patches
necessary to make the SOCKS library work with Modula-3's multithreaded
I/O system.
the new "modula-3-lib" port. The split allows one to save a lot of
disk space by installing only the shared libraries needed for executing
programs. The full "modula-3" port is needed only if you want to
compile programs as well.
"modula-3-lib". It installs only the shared libraries needed for
executing Modula-3 programs. This saves a lot of disk space for
people who need to run Modula-3 programs but don't need to build
them. The original "modula-3" port now depends on this one, and
uses it to install the compiler and the rest of the development
system.
Also, everything is now built with optimization. I have been
testing this for at least a month, and haven't seen any problems
from it. It makes the libraries and executables substantially
smaller.
This new port also includes some hooks that will make SOCKS support
possible in the near future.
(The license agreement is similar to GPL and, thus, there should be
no problem with redistributing the original archive as long as we put no
restriction.)
all the COMMENTs! No package names, no version numbers, no "this is
absolutix-3.1.2" type comments that have zero information contents.
Now, without any bad examples to follow, nobody has an excuse to import
a port with those kind of comments. :)
Phew! 238 ports modified!
Closes PR ports/1728.
(But I don't know how to actually change the state of PR.
Could someone do this for me? Or tell me how?)
Submitted by: shanee@rabbit.augusta.de
sure that they are executable. On at least one user's system, the
copies taken from /usr/src/contrib did not have their execute bits
set.
Suggested by: max@wide.ad.jp
Use new custom distfiles which are MUCH smaller than the ones from
DEC.
Use the gcc-2.7.2.1 sources on the system if they are found in
/usr/src/contrib, to avoid having to fetch that distfile.
Use an existing Modula-3 compiler to bootstrap the new one, if
there happens to be one installed on the system. Again, this
eliminates the need to fetch one of the distfiles.
Update the built-in thread-safe malloc to the latest version of
phkmalloc.
Use new custom distfiles which are MUCH smaller than the ones from
DEC.
Use the gcc-2.7.2.1 sources on the system if they are found in
/usr/src/contrib, to avoid having to fetch that distfile.
Use an existing Modula-3 compiler to bootstrap the new one, if
there happens to be one installed on the system. Again, this
eliminates the need to fetch one of the distfiles.
Update the built-in thread-safe malloc to the latest version of
phkmalloc.
-n to, really happened. That's kind of weird. Anyways, I
forgot to add the patches directory and a new patch.
Oh, I specified -n now too, hope this doesn't work.
Helmet on!
Flameproof vest?
Deployed, Sir!
Heat resistant carbon-fiber cup?
In place!
All defensive systems armed and ready?
Armed and ready, Sir!
Fine, then. Let's get on with it. Reduce shared library version numbers!
Uh, Sir, with all due respect ...
DO YOU HEAR ME??? REDUCE SHARED LIBRARY VERSION NUMBERS!!!
Reducing shared library version numbers! ... <*whirr click*> Done!
All right, soldier, let's get the hell out of here... Soldier? ... Soldier??
First, change the port so that it builds a much smaller subset of
the SRC distribution. This eliminates the enormous swap space
requirements of the earlier port, greatly reduces the footprint of
the installed tree, and cuts the size of the package in half.
Second, include many important new patches. Among them is a slightly
modified version of phkmalloc that is thread-safe for Modula-3.
It eradicates some rare and baffling core dumps that cropped up
from time to time in the previous version of the port. The Modula-3
runtime itself is careful to use mutual exclusion around calls to
malloc. But there remained some sneaky backdoor paths into it from
external libraries.
Confession: In the original version of the Modula-3 port, I used
a major version number of 353 for the shared libraries, to correspond
with the SRC version number 3.5.3. That was a dumb move -- I should
have used 1. The current update is incompatible at the shared
library level, requiring me to increment the major version number
to 354, even though this is still based on SRC release 3.5.3. This
is bound to confuse some folks, unfortunately. I weighed a number
of alternatives, such as (a) cheating and going back to 1, and (b)
using a 4-digit major version such as 3531. But in the end I
decided that 354 would be the best solution, even though it's
confusing.
From: wjm@best.com (William J. Middleton)
Newsgroups: comp.lang.perl.announce,comp.lang.perl.misc
Subject: PATCH: perltrap.pod <- 425traps
Date: 1 Jul 1996 14:49:58 GMT
Approved: merlyn@stonehenge.com (comp.lang.perl.announce)
Message-ID: <4r8oim$e5q@nadine.teleport.com>
NNTP-Posting-Host: julie.teleport.com
[The rush to 5.003 couldn't integrate this, so here it is]
The following is a patch for perltrap.pod, from 5.003 (also 5.002).
It integrates the latest version of my simple 425traps
document. 425traps demonstrated, with examples, all of the traps
which have been discovered and sent to me, which have bitten
folks making the transition from perl4 to perl5. It also gave
an example for each one, including all of the existing perl4
traps in perltrap.pod.
As always, if you discover something that isn't documented in
one form or another in here, and isn't an official (or at least
reported) bug, drop me a line with it. Also, when or if any
of these is ever formally declared a bug, I'll take it out.
tcl/tk even if they are properly found by LIB_DEPENDS. Make it
only extract in that case.
While I'm here, make expect and expectk link with shared tcl/tk libs.
expectk used to be a 1/2 MB binary! (now it's 136KB)
I'd also rather change `-g' to whatever CFLAGS defined in
/etc/make.conf, but the author of expect has an explicit comment in
the Makefile about him not trusting compilers' optimization. Well,
if you say so.
master site for elk.
- Add official patch #1.
- Use dl*() for dynamic loading. This still has its quirks, but
it's usable. Plus, invoking global ctors when loading C++
object files now works; it didn't with the old incremental
loading.
before) and cvs still sent an empty log! :<
Anyway, what I was trying to say in the commit messages of patch-[ab] was
to run ldconfig right after installation of the shared libraries, so that
they can be found by subsequent runs of shared binaries.
Also, take ldconfig out of this Makefile's post-install rule.