latest version of the portable C compiler.
The compiler is based on the original Portable C Compiler by S. C.
Johnson, written in the late 70's. Even though much of the compiler
has been rewritten, some of the basics still remain.
The intention is to write a C99 compiler while still keeping it small,
simple, fast and understandable. I think of it as if it shall be able
to compile and run on PDP11 (even if it may not happen in reality).
But with this in mind it becomes important to think twice about what
algorithms are used.
The compiler is conceptually structured in two parts; pass1 which is
language-dependent, does parsing, typechecking and build trees, and
pass2 which is mostly language-independent.
About 50% of the frontend code and 80% of the backend code has been
rewritten. Most stuff is written by me, with the exception of the
data-flow analysis part and the SSA conversion code which is written
by Peter A Jonsson, and the Mips port that were written as part of a
project by undergraduate students at LTU.
As discussed at great length at EuroBSDcon 2007.
Changes:
* support for OS/400 Secure Sockets Layer library
* curl_easy_setopt() now allocates strings passed to it
* SCP and SFTP support now requires libssh2 0.16 or later
* LDAP libraries are now linked "regularly" and not with dlopen
* HTTP transfers have the download size info "available" earlier
* FTP transfers have the download size info "available" earlier
* builds and runs on OS/400
* several error codes and options were marked as obsolete and subject to future removal (set CURL_NO_OLDIES to see if your application is using them)
* SFTP errors can return more specific error codes
Bugfixes:
* test cases 31, 46, 61, 506, 517 now work in time zones that use leap seconds
* problem with closed proxy connection during HTTP CONNECT auth negotiation
* transfer-encoding skipping didn't ignore the 407 response bodies properly
* CURLOPT_SSL_VERIFYHOST set to 1
* CONNECT endless loop
* krb5 support builds with Heimdal
* added returned error string for connection refused case
* re-use of dead FTP control connections
* login to FTP servers that don't require (nor understand) PASS after the USER command
* bad free of memory from libssh2
* the SFTP PWD command works
* HTTP Digest auth on a re-used connection
* FTPS data connection close
* AIX 4 and 5 get to use non-blocking sockets
* small POST with NTLM
* resumed file:// transfers
* CURLOPT_DNS_CACHE_TIMEOUT and CURLOPT_DNS_USE_GLOBAL_CACHE are 64 bit "clean"
* memory leak when handling compressed data streams from broken servers
* no NTLM unicode response
* resume HTTP PUT using Digest authentication
* FTP NOBODY requests on directories sent "SIZE (null)"
* FTP NOBODY request on file crash
* excessively long FTP server responses and response lines
* file:// upload then FTP:// upload crash
* TFTP error 0 is no longer treated as success
* uploading empty file over FTP on re-used connection
* superfluous CWD command on re-used FTP connections without subdirs used
While stress-testing the soft_heap_limit feature, a bug that could
lead to database corruption was discovered and fixed. Though the
consequences of this bug are severe, the chances of hitting it in
a typical application are remote. Upgrading is recommended only if
you use the sqlite3_soft_heap_limit interface.
- New language features
- New tools
- Faster type-checking of functor applications.
- Referencing an interface compiled with -rectypes from a module
not compiled with -rectypes is now an error.
- Revised the "fragile matching" warning.
- Print a stack backtrace on an uncaught exception.
- Stack overflow detection on MS Windows 32 bits.
- Stack overflow detection on MacOS X PPC and Intel.
- Intel/AMD 64 bits: generate position-independent code by default.
- Fixed bug involving -for-pack and missing .cmx files.
- Fixed bug causing duplication of literals.
- C/Caml interface functions take "char const *" arguments
instead of "char *" when appropriate.
- Faster string comparisons (fast case if strings are ==).
- Other
* configure.in: version 1.3.1 - This version is to let people know
that Sawfish is being revived by the community, and we are awaiting
patches to be submitted for incoming 1.3.2 release
* fixed possible buffer overflow in src/fonts.c (Yoshiaki Kasahara)
1.3.1 also has many updated translations and doc fixes.
STABLE Version 1.913 (September 13, 2007) Release Notes
* change: free disk space calculation was highly CPU intensive during
write activity. This could reduce write performance severely, especially
for huge volumes if a file manager or desktop applet regularly polled
for disk space usage. Now the calculation is constant time, around only
10 microseconds on a typical desktop, and it's completely independent
of the volume size.
* fix: hibernation check was too rigid and mount was refused in read/write
mode unnecessarily in some cases.
* all performance improvements included unchanged from the 1.910-RC test
release. Please see those details below.
Version 1.910-RC (September 10, 2007) -- Release Notes
* change: significantly improved the performance of writing many files,
typically by 50-1000% (copying files, unpacking, untarring packages,
compilation, directory synchronization, ...).
* change: improved the performance of writing multi-GB size files,
particularly after the creation of many thousands of other files.
Previous disk space defragmentation is highly advised for the best
possible speed. File level defragmentation is not enough.
* change: improved concurrent write performance.