diff options
author | Josh Suereth <joshua.suereth@gmail.com> | 2011-11-30 12:58:39 -0500 |
---|---|---|
committer | Josh Suereth <joshua.suereth@gmail.com> | 2011-11-30 12:58:39 -0500 |
commit | 789e3d8b66005d70c463d923b8493d52ab5994b8 (patch) | |
tree | 94be5d8fdb1296285ca13bf5a6b4de8ff90375c2 /README | |
parent | fe38e54ca169014f70c455e77d72d3c935bb6ddc (diff) | |
download | scala-789e3d8b66005d70c463d923b8493d52ab5994b8.tar.gz scala-789e3d8b66005d70c463d923b8493d52ab5994b8.tar.bz2 scala-789e3d8b66005d70c463d923b8493d52ab5994b8.zip |
Modified README to rst for github move
Diffstat (limited to 'README')
-rw-r--r-- | README | 181 |
1 files changed, 0 insertions, 181 deletions
diff --git a/README b/README deleted file mode 100644 index 566ab853be..0000000000 --- a/README +++ /dev/null @@ -1,181 +0,0 @@ -================================================================================ - THE SCALA REPOSITORY - Structure and build system -================================================================================ - -This document describes the Scala core (core library and compiler) repository -and how to build it. For information about Scala as a language, you can visit -the web site http://www.scala-lang.org/ - -Part I. The repository layout --------------------------------------------------------------------------------- - -Follows the file layout of the Scala repository. Files marked with a † are not -part of the Subversion repository but are either automatically generated by the -build script or user-created if needed. This is not a complete listing. - -scala/ - build/ † Build products output directory for ant. - build.number The version number of the current distribution. - build.xml The main Ant build script. - dist/ † The destination folder for Scala distributions. - docs/ Documentation and sample code. - lib/ Pre-compiled libraries for the build. - fjbg.jar The Java byte-code generation library. - scala-compiler.jar The stable reference ('starr') compiler jar - scala-library.jar The stable reference ('starr') library jar - scala-library-src.jar A snapshot of the source used to build starr. - ant/ Support libraries for ant. - project/ The (already legacy) 0.7 sbt build. - README The file you are currently reading. - src/ All the source files of Scala. - actors/ The sources of the Actor library. - compiler/ The sources of the Scala compiler. - library/ The sources of the core Scala library. - swing/ The sources of the Swing library. - target/ † Build products output directory for sbt. - test/ The Scala test suite. - tools/ Developer utilities. - -Part II. Building Scala with SABBUS --------------------------------------------------------------------------------- - -SABBUS is the name of the Ant build script used to compile Scala. It is mostly -automated and takes care of managing the dependencies. - -LAYERS: - -In order to guarantee the bootstrapping of the Scala compiler, SABBUS builds -Scala in layers. Each layer is a complete compiled Scala compiler and library. -A superior layer is always compiled by the layer just below it. Here is a short -description of the four layers that SABBUS uses, from bottom to top: - -'starr': the stable reference Scala release which is shared by all the -developers. It is found in the repository as 'lib/scala-compiler.jar' and -'lib/scala-library.jar'. Any committable source code must be compiled directly -by starr to guarantee the bootstrapping of the compiler. - -'locker': the local reference which is compiled by starr and is the work -compiler in a typical development cycle. When it has been built once, it is -“frozen” in this state. Updating it to fit the current source code must be -explicitly requested (see below). - -'quick': the layer which is incrementally built when testing changes in the -compiler or library. This is considered an actual new version when locker is -up-to-date in relation to the source code. - -'strap': a test layer used to check stability of the build. - -DEPENDANT CHANGES: - -SABBUS compiles, for each layer, the Scala library first and the compiler next. -That means that any changes in the library can immediately be used in the -compiler without an intermediate build. On the other hand, if building the -library requires changes in the compiler, a new locker must be built if -bootstrapping is still possible, or a new starr if it is not. - -REQUIREMENTS FOR SABBUS: - -The Scala build system is based on Apache Ant. Most required pre-compiled -libraries are part of the repository (in 'lib/'). The following however is -assumed to be installed on the build machine: - - A Java runtime environment (JRE) or SDK 1.6 or above. - - Apache Ant version 1.7.0 or above. - - -Part III. Common use-cases --------------------------------------------------------------------------------- - -'ant -p' - Prints out information about the commonly used ant targets. The interested - developer can find the rest in the XML files. - -'ant' or 'ant build' - A quick compilation (to quick) of your changes using the locker compiler. - - This will rebuild all quick if locker changed. - - This will also rebuild locker if starr changed. - -'ln -s build/quick/bin qbin' (once) -'ant && qbin/scalac -d sandbox sandbox/test.scala && qbin/scala -cp sandbox Test' - Incrementally builds quick, and then uses it to compile and run the file - 'sandbox/test.scala'. This is a typical debug cycle. - -'ant replacelocker' - "unfreezes" locker by updating it to match the current source code. - - This will delete quick so as not to mix classes compiled with different - versions of locker. - -'ant test' - Tests that your code is working and fit to be committed. - - Runs the test suite and bootstrapping test on quick. - - You can run the suite only (skipping strap) with 'ant test.suite'. - -'ant docs' - Generates the HTML documentation for the library from the sources using the - scaladoc tool in quick. Note: on most machines this requires more heap than - is allocate by default. You can adjust the parameters with ANT_OPTS. - Example command line: - ANT_OPTS="-Xms512M -Xmx2048M -Xss1M -XX:MaxPermSize=128M" ant docs - -'ant dist' - Builds a distribution. - - Rebuilds locker from scratch (to make sure it bootstraps). - - Builds everything twice more and compares bit-to-bit the two builds (to - make sure it is stable). - - Runs the test suite (and refuses to build a distribution if it fails). - - Creates a local distribution in 'dists/latest'. - -'ant clean' - Removes all temporary build files (locker is preserved). - -'ant locker.clean' - Removes all build files. - -'ant all.clean' - Removes all build files (including locker) and all distributions. - -Many of these targets offer a variant which runs with -optimise enabled. -Optimized targets include build-opt, test-opt, dist-opt, fastdist-opt, -replacestarr-opt, replacelocker-opt, and distpack-opt. - -Part V. Contributing to Scala --------------------------------------------------------------------------------- - -If you wish to contribute, you can find all of the necessary information on -the official Scala website: www.scala-lang.org. - -Specifically, you can subscribe to the Scala mailing lists, read all of the -available documentation, and browse the live SVN repository. You can contact -the Scala team by sending us a message on one of the mailing lists, or by using -the available contact form. - -In detail: - -- Scala website (links to everything else): - http://www.scala-lang.org - -- Scala documentation: - http://www.scala-lang.org/node/197 - -- Scala mailing lists: - http://www.scala-lang.org/node/199 - -- Scala bug and issue tracker: - https://issues.scala-lang.org - -- Scala live SVN source tree: - http://www.scala-lang.org/node/213 - -- Contact form: - http://www.scala-lang.org/node/188 - - -If you are interested in contributing code, we ask you to complete and submit -to us the Scala Contributor License Agreement, which allows us to ensure that -all code submitted to the project is unencumbered by copyrights or patents. -The form is available at: -http://www.scala-lang.org/sites/default/files/contributor_agreement.pdf - -Thank you! -The Scala Team - |