russellallen/self — pull request #9 by krono (2013-01-08 16:00:11+00:00)
Title: Integrate 2012 VM changes

## *Shortlog* ##

* Support for **PPC**, **Mac Classic**, and **MetroWerks** compiler
**removed**

* New supported compilers: **GCC** ≥ 4.2, **Clang**
* Experimental Mac OS X support for Self as double-clickable Application

## New Features ##

* [CLANG] Self can now be built with the Clang C++ compiler
* [OSX] Self can be compiled on Mac OS 10.6 and 10.7 [08544b3 et al.]

## Removed Features ###

* [VM] PPC, Mac OS pre-X, and the MetroWerks Compiler are gone.
[c2aacb7, ed4495c, 4d476d9]

## Build-Process ##

* [Assembler] Renamed all `.s` files to `.S` files, as most of them need
preprocessing. GCC then does the right thing™ with them.
* [Assembler] Unified GNU/Apple `as` handling for i386.

## De-Deprecation ##

* [C++] String literals are now all “const char*”
* [C++] Friend injection is gone, no “-ffriend-injection” needed. See Blog:
* “True” friend functions, i.e., those that are accessible globally and
not class-bound but have to access private members of other classes,
were left as is. However, their implementation has been moved to a
respective implementation (i.e., .cpp) file.
* Friend functions, that were mere shortcuts and so could be used without
full qualification have been turned into normal static functions. They
now have to be called with their class prefixed.
* Constructors (like create_objVector) and converters (like as_mapOop) are
now static members of their class and also have a static inline
non-member function.
[cdeb93c]
* [C++] Standard bodies and compilers encourage and require `0` instead of
`NULL`. Self compiles now visibly. [a6e2fbf]
* [GCC] Self can be built with GCC 4.2.1, GCC 4.5, GCC 4.6, GCC 4.7,
and LLVM-GCC 4.2
* [OSX/Carbon] Some functionality used by certain primitives was deprecated in
10.5 and removed in 10.7. Theses were replaced using newer functionality.
This includes:
* Clipboard/pasteboard handling (now done using Pasteboard-API) [4564b38]
* Window creation/Quartz (now done using HIToolbox) [08544b3]

## Misc ##

* [LICENSE] Update (nearly) all source-files to 2012 copyright.
* [CODING] Converted stray tabs to spaces, whenever encountered
* Added travis-ci configuration.

## To Be Done ##

* [OSX] Carbon Text uses a deprecated API. This should be changed. Probably,
all Carbon stuff should be replaced using Coca.
* [SUN] Testing and compiling on SunOSen, SPARC.