Thread: [pure-lang-svn] SF.net SVN: pure-lang: [57] pure/trunk/INSTALL
Status: Beta
Brought to you by:
agraef
From: <ag...@us...> - 2008-05-05 09:19:23
|
Revision: 57 http://pure-lang.svn.sourceforge.net/pure-lang/?rev=57&view=rev Author: agraef Date: 2008-05-05 02:19:18 -0700 (Mon, 05 May 2008) Log Message: ----------- Add system-specific notes. Modified Paths: -------------- pure/trunk/INSTALL Modified: pure/trunk/INSTALL =================================================================== --- pure/trunk/INSTALL 2008-05-05 09:17:57 UTC (rev 56) +++ pure/trunk/INSTALL 2008-05-05 09:19:18 UTC (rev 57) @@ -5,9 +5,21 @@ These instructions (by courtesy of Eddie Rucker, thanks Eddie!) explain how to compile and install LLVM (which is the compiler backend required by Pure) and the Pure interpreter itself. More information about installing LLVM and the -required LLVM source packages can be found at http://llvm.org. +required LLVM source packages can be found at http://llvm.org. Please also +have a look at the SYSTEM-SPECIFIC NOTES section at the end of this file which +describes the tweaks necessary to make Pure compile and run on various +platforms. +Pure is known to work on Linux and Mac OSX, but should compile (with the usual +amount of tweaking) on all UNIX/POSIX-based platforms. Version 4.x of the GNU +C++ compiler is known to work (it should be available almost everywhere), +earlier versions probably need some work. Other ANSI/ISO compatible C/C++ +compilers will probably work as well after you fiddled with the compilation +options, but this has not been tested. Also note that the Makefile pretty much +requires GNU make right now, so you should make sure that you have that +installed before trying to compile Pure. + BASIC INSTALLATION ===== ============ @@ -15,8 +27,8 @@ required once. Steps 2-3 can be avoided if binary LLVM packages are available for your system. Additional instructions for compiling Pure from SVN sources can be found in the INSTALLING FROM SVN SOURCES section below. Moreover, you -can refer to the OTHER COMPILATION OPTIONS section at the end of the file for -details about various options available when building and installing Pure. +can refer to the OTHER COMPILATION OPTIONS section below for details about +various options available when building and installing Pure. STEP 1. Make sure you have all the necessary dependencies installed (-dev denotes corresponding development packages): @@ -169,6 +181,52 @@ installation process and other available targets and options. +SYSTEM-SPECIFIC NOTES +=============== ===== + +ALL PLATFORMS +--- --------- + +Compiling the release version (make build=release) with gcc with all warnings +turned on (which is the default) will give you the warning "dereferencing +type-punned pointer will break strict-aliasing rules" at some point in +util.cc. This is harmless and can be ignored. + +64 BIT SYSTEMS +-- --- ------- + +Please note that at the time of this writing only the release build of Pure +(make build=release) appears to work on (some) 64 bit systems. We're working +on these issues right now, so please stay tuned. + +LINUX +----- + +Linux is the primary development platform for this software, and the sources +should build out of the box on all recent Linux distributions. (Some +unresolved issues have been reported with Ubuntu on PowerPC, though, see the +mailing list for details and updates on this.) + +MAC OSX +--- --- + +Pure is known to work on this platform, and a port by Ryan Schmidt exists in +the MacPorts collection at http://www.macports.org/. If you compile Pure from +the original sources yourself, you should remove the -rdynamic option from the +link line (it's not needed on OSX) and add the -liconv flag instead. To these +ends, build Pure with the following make command (add the build=release option +for the release build): + +$ make LDFLAGS="" LIBS="-liconv" + +Also note that with at least some current versions of the Apple gcc compiler +(4.0.1 and similar) you'll get the (bogus) warning "control reaches end of +non-void function" a couple of times in interpreter.cc. These are due to a bug +in older gcc versions (see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16558), +but they are harmless and can be ignored. These warnings should also go away +once Apple upgrades its SDK to a newer gcc version. + + May 2008 Albert Graef <Dr.Graef at t-online.de> Eddie Rucker <erucker at bmc.edu> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ag...@us...> - 2008-05-05 09:40:43
|
Revision: 59 http://pure-lang.svn.sourceforge.net/pure-lang/?rev=59&view=rev Author: agraef Date: 2008-05-05 02:40:50 -0700 (Mon, 05 May 2008) Log Message: ----------- Cosmetic changes, add notes about MS Windows. Modified Paths: -------------- pure/trunk/INSTALL Modified: pure/trunk/INSTALL =================================================================== --- pure/trunk/INSTALL 2008-05-05 09:20:02 UTC (rev 58) +++ pure/trunk/INSTALL 2008-05-05 09:40:50 UTC (rev 59) @@ -11,13 +11,13 @@ platforms. Pure is known to work on Linux and Mac OSX, but should compile (with the usual -amount of tweaking) on all UNIX/POSIX-based platforms. Version 4.x of the GNU -C++ compiler is known to work (it should be available almost everywhere), -earlier versions probably need some work. Other ANSI/ISO compatible C/C++ -compilers will probably work as well after you fiddled with the compilation -options, but this has not been tested. Also note that the Makefile pretty much -requires GNU make right now, so you should make sure that you have that -installed before trying to compile Pure. +amount of tweaking) on all UNIX/POSIX-based platforms. We recommend using +version 4.x of the GNU C++ compiler; it should be available almost everywhere. +Other ANSI/ISO compatible C/C++ compilers will probably work as well (after +some fiddling with the compilation options and the sources maybe), but this +has not been tested. Also note that the Makefile pretty much requires GNU make +right now, so you should make sure that you have that installed before trying +to compile Pure. BASIC INSTALLATION @@ -72,7 +72,7 @@ $ make build=release $ sudo make install -Here, x.y denotes the current Pure version number (0.1 at the time of this +Here, x.y denotes the current Pure version number (0.2 at the time of this writing). If you want to install the debugging-enabled version, run just 'make' instead of 'make build=release'. @@ -226,7 +226,17 @@ but they are harmless and can be ignored. These warnings should also go away once Apple upgrades its SDK to a newer gcc version. +MS WINDOWS +-- ------- +Nobody has reported a successful port to this platform yet, but it should be +rather straightforward (albeit arduous) to do this with either Cygwin +(http://www.cygwin.com/) or Mingw (http://www.mingw.org/), once you have all +the necessary dependencies and the Windows version of LLVM (available at +http://llvm.org) installed. So *you* can still be the hero who first got Pure +up and running on Windows; if you do, please let us know! :) + + May 2008 Albert Graef <Dr.Graef at t-online.de> Eddie Rucker <erucker at bmc.edu> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ag...@us...> - 2008-05-13 07:06:56
|
Revision: 78 http://pure-lang.svn.sourceforge.net/pure-lang/?rev=78&view=rev Author: agraef Date: 2008-05-13 00:07:01 -0700 (Tue, 13 May 2008) Log Message: ----------- Update INSTALL info. Modified Paths: -------------- pure/trunk/INSTALL Modified: pure/trunk/INSTALL =================================================================== --- pure/trunk/INSTALL 2008-05-12 08:05:24 UTC (rev 77) +++ pure/trunk/INSTALL 2008-05-13 07:07:01 UTC (rev 78) @@ -57,9 +57,12 @@ $ cd llvm-2.2 $ ./configure -$ make +$ make ENABLE_OPTIMIZED=1 $ sudo make install +(To do a debug build of LLVM, leave away the 'ENABLE_OPTIMIZED=1' parameter. +Note, however, that this will considerably slow down the Pure compiler.) + STEP 4. Get and unpack the Pure sources at: http://pure-lang.sf.net/ The latest release tarballs can always be found on the SourceForge project This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ag...@us...> - 2008-05-14 19:31:57
|
Revision: 84 http://pure-lang.svn.sourceforge.net/pure-lang/?rev=84&view=rev Author: agraef Date: 2008-05-14 12:32:00 -0700 (Wed, 14 May 2008) Log Message: ----------- Update installation instructions. Modified Paths: -------------- pure/trunk/INSTALL Modified: pure/trunk/INSTALL =================================================================== --- pure/trunk/INSTALL 2008-05-14 19:27:03 UTC (rev 83) +++ pure/trunk/INSTALL 2008-05-14 19:32:00 UTC (rev 84) @@ -2,22 +2,23 @@ INSTALLING PURE (AND LLVM) ========== ==== ==== ===== -These instructions (by courtesy of Eddie Rucker, thanks Eddie!) explain how to -compile and install LLVM (which is the compiler backend required by Pure) and -the Pure interpreter itself. More information about installing LLVM and the -required LLVM source packages can be found at http://llvm.org. Please also -have a look at the SYSTEM-SPECIFIC NOTES section at the end of this file which +These instructions (mostly by courtesy of Eddie Rucker, thanks Eddie!) explain +how to compile and install LLVM (which is the compiler backend required by +Pure) and the Pure interpreter itself. More information about installing LLVM +and the required LLVM source packages can be found at http://llvm.org. Please +also have a look at the SYSTEM NOTES section at the end of this file which describes the tweaks necessary to make Pure compile and run on various platforms. Pure is known to work on Linux and Mac OSX, but should compile (with the usual amount of tweaking) on all UNIX/POSIX-based platforms. We recommend using -version 4.x of the GNU C++ compiler; it should be available almost everywhere. -Other ANSI/ISO compatible C/C++ compilers will probably work as well (after -some fiddling with the compilation options and the sources maybe), but this -has not been tested. Also note that the Makefile pretty much requires GNU make -right now, so you should make sure that you have that installed before trying -to compile Pure. +version 4.x of the GNU C++ compiler; it should be available almost everywhere +(in fact, since you'll need LLVM anyway, you can also use the gcc frontend +available for LLVM). Other ANSI/ISO compatible C/C++ compilers will probably +work as well (after some fiddling with the compilation options and the sources +maybe), but this has not been tested. Also note that the Makefile pretty much +requires GNU make right now, so you should make sure that you have that +installed before trying to compile Pure. BASIC INSTALLATION @@ -76,8 +77,8 @@ $ make $ sudo make install -Please note that compiling Pure takes a while (especially runtime.cc), so -please have some patience. +Note that compiling Pure with optimizations enabled (this is the default) may +take quite a while, so please have some patience. After the build is complete, you can check that Pure is working correctly on your computer, as follows: @@ -129,6 +130,9 @@ $ svn co http://pure-lang.svn.sourceforge.net/svnroot/pure-lang pure-lang +This step needs to be done only once; once you've checked out your working +copy, you can update it to the latest revision by running 'svn up'. + STEP 5': Build and install Pure: $ cd pure-lang/pure/trunk @@ -151,10 +155,6 @@ be changed at runtime by setting corresponding environment variables, see the manpage for details). -There are a number of other variables you can set on the 'make' command line -if you need special compiler (CXXFLAGS) or linker flags (LDFLAGS), or if you -have to add platform-specific libraries (LIBS) like libiconv on OSX. - After your build is done, you can (and should) also run 'make check' to verify that your Pure interpreter works correctly. This can be done without installing the software. In fact, there's no need to install the interpreter @@ -167,32 +167,48 @@ will run the Pure interpreter with that setting in Bourne-compatible shells. -As of Pure 0.3, the standard build now also includes basic optimization (-O). -This build should be ok for most purposes, and has the advantage that it does -additional runtime checks which may give more useful diagnostics if there is -anything wrong with the interpreter. +There are a number of other variables you can set on the 'make' command line +if you need special compiler (CXXFLAGS) or linker flags (LDFLAGS), or if you +have to add platform-specific libraries (LIBS). Please see the Makefile for +additional information on these. -However, you can also build a "release" version of the interpreter, as -follows: +As of Pure 0.3, the 'default' build now also includes basic optimizations +(-O). This build should be ok for most purposes, and has the advantage that it +does additional runtime checks which provide diagnostics useful for +maintainers if anything is wrong with the interpreter. +However, you can also build a "release" version of the interpreter as follows: + $ make build=release This disables all runtime checks and debugging information in the interpreter -and also uses a higher level of optimization. (Don't worry, your Pure programs -will still be executed "safely" and shouldn't segfault unless you run out of -memory or stack space, or there's a bug in the interpreter.) The 'release' -build will usually give you faster execution times, but the differences aren't -really that big anymore (5% compared to the default flags on my Linux system -running gcc 4.1, YMMV), so you are encouraged to use the default build unless -performance is really critical. +and also uses a higher level of optimization. The 'release' build will usually +give you faster execution times, but the differences aren't really that big +anymore (5% compared to the default flags on my Linux system running gcc 4.1, +YMMV), so you are encouraged to use the 'default' build unless performance is +really critical. -Please also have a look at the Makefile for details on the build and -installation process and other available targets and options. +You can also do a 'debug' build as follows: +$ make build=debug -SYSTEM-SPECIFIC NOTES -=============== ===== +This is like the standard build, but disables all optimizations, so +compilation is faster but the compiled interpreter is *much* slower (a factor +of about 2 on my Linux box). Hence this build is only recommended for +debugging purposes. +More details on the build and installation process and other available targets +and options can be found in the Makefile. + + +SYSTEM NOTES +====== ===== + +Pure is known to work on recent Linux and Mac OSX versions, but there are a +few system-specific quirks which are discussed below. (Please also see the +CAVEATS AND NOTES section of the manual page for information on other known +limitations of the current implementation.) + ALL PLATFORMS --- --------- @@ -211,37 +227,36 @@ 64 BIT SYSTEMS -- --- ------- -In general, 64 bit systems are supported by Pure. However, if you use your own -custom set of build flags with gcc, make sure that you have at least -O -enabled when compiling runtime.cc. There's a bug (seen at least on some 64 bit -Linux versions) which causes wrong code to be executed by the Pure interpreter -if you don't do this. The default and release builds should work fine. 32 bit -builds also seem to be unaffected. +64 bit systems are supported by Pure. Alas, for unknown reasons the 'debug' +build currently does *not* work on (some?) 64 bit systems using gcc. This has +been seen on various different 64 bit Linux versions, YMMV. You can tell that +you're bitten by this bug if, after running 'make debug' (or using similar, +custom compilation flags), 'make check' fails on most tests. Fortunately, it +seems that you can easily work around this by making sure that you have at +least -O enabled when compiling runtime.cc. Also please note that the +'default' and 'release' builds should work fine. 32 bit builds also seem to be +unaffected. -We haven't been able to pin this one down yet, so if you have to use custom -build options and run into this bug (easily verified because most of the tests -run by 'make check' will fail), then for the time being please use the -workaround described above. Also please watch the mailing list for updates on -this issue. - LINUX ----- Linux is the primary development platform for this software, and the sources -should build out of the box on all recent Linux distributions. Please see -above for unresolved issues on 64 bit Linux systems and how to work around -them. Also, some issues have been reported with Ubuntu (32 bit) on PowerPC, -see the mailing list for details and updates on this. +should build out of the box on all recent Linux distributions. However, note +the issues on 64 bit Linux systems described above. Also, it has been reported +that the interpreter does *not* work under Ubuntu (32 bit) on PowerPC right +now; I can't do much about this myself since I cannot reproduce this on my x86 +and i64 Linux systems. Any input which could help to resolve these issues is +much appreciated. MAC OSX --- --- -Pure is known to work on this platform, and a port by Ryan Schmidt exists in -the MacPorts collection at http://www.macports.org/. If you compile Pure from -the original sources yourself, you should remove the -rdynamic option from the -link line (it's not needed on OSX) and add the -liconv flag instead. To these -ends, build Pure with the following make command (add the build=release option -for the release build): +A port by Ryan Schmidt exists in the MacPorts collection at +http://www.macports.org/. If you compile Pure from the original sources +yourself, you should remove the -rdynamic option from the link line (it's not +needed on OSX) and add the -liconv flag instead. To these ends, build Pure +with the following make command (add the build=release option for the release +build): $ make LDFLAGS="" LIBS="-liconv" @@ -258,9 +273,9 @@ Nobody has reported a successful port to this platform yet, but it should be rather straightforward (albeit arduous) to do this with either Cygwin (http://www.cygwin.com/) or Mingw (http://www.mingw.org/), once you have all -the necessary dependencies and the Windows version of LLVM (available at -http://llvm.org) installed. So *you* can still be the hero who first got Pure -up and running on Windows; if you do, please let us know! :) +the necessary dependencies and a suitable version of LLVM installed. So *you* +can still be the hero who first got Pure up and running on Windows; if you do, +please let us know! :) May 2008 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ag...@us...> - 2008-06-04 09:22:29
|
Revision: 172 http://pure-lang.svn.sourceforge.net/pure-lang/?rev=172&view=rev Author: agraef Date: 2008-06-04 02:22:34 -0700 (Wed, 04 Jun 2008) Log Message: ----------- Update installation instructions. Modified Paths: -------------- pure/trunk/INSTALL Modified: pure/trunk/INSTALL =================================================================== --- pure/trunk/INSTALL 2008-06-04 09:05:30 UTC (rev 171) +++ pure/trunk/INSTALL 2008-06-04 09:22:34 UTC (rev 172) @@ -259,6 +259,16 @@ is faster but the compiled interpreter is *much* slower (a factor of about 2 on my Linux box). Hence this build is only recommended for debugging purposes. +In addition, there is an option --disable-shared to build an interpreter which +is linked statically against all required libraries, instead of producing a +separate runtime library. This works with all build types and is provided as a +temporary workaround for systems like 64 bit Linux where LLVM refuses to be +linked into shared libraries (see the notes on 64 bit systems in the NOTES +section below). This isn't recommended if you don't need it, since it +drastically increases the size of the executable and thereby the memory +footprint of the interpreter if several interpreter processes are running +simultaneously. + RUNNING PURE FROM THE SOURCE DIRECTORY ------- ---- ---- --- ------ --------- @@ -323,16 +333,25 @@ 64 BIT SYSTEMS -- --- ------- -64 bit systems are fully supported by Pure. Alas, for unknown reasons the -debug build currently does *not* work on (some?) 64 bit systems using gcc. -This has been seen on various different 64 bit Linux versions, YMMV. You can -tell that you're bitten by this bug if, after running 'make debug' (or using -similar, custom compilation flags), 'make check' fails on most tests. -Fortunately, it seems that you can easily work around this by making sure that -you have at least -O enabled when compiling runtime.cc. Also please note that -the default and release builds should work fine. 32 bit builds also seem to be -unaffected. +64 bit systems are fully supported by Pure. However, LLVM 2.2 apparently +doesn't like to be linked into shared libraries on x86-64 systems. The symptom +is that you get strange relocation errors when linking the runtime library +during the build. In this case you have to build the interpreter as a +monolithic executable which statically includes all required LLVM and Pure +interpreter modules. This can be done by configuring with './configure +--disable-shared'. This has several disadvantages, but seems to be the only +way to get Pure to work on x86-64 right now. Hopefully, these issues will be +fixed with the next LLVM release. +Also, for unknown reasons the debug build currently does *not* work on (some?) +64 bit systems using gcc. This has been seen on various different 64 bit Linux +versions, YMMV. You can tell that you're bitten by this bug if a normal build +works, but 'make check' fails on most tests with the debug build (or if you +manually disable optimization). Fortunately, it seems that you can easily work +around this by making sure that you have at least -O enabled when compiling +runtime.cc. Also please note that the default and release builds should work +fine. 32 bit builds also seem to be unaffected. + LINUX ----- This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ag...@us...> - 2008-06-06 17:12:31
|
Revision: 181 http://pure-lang.svn.sourceforge.net/pure-lang/?rev=181&view=rev Author: agraef Date: 2008-06-06 10:12:35 -0700 (Fri, 06 Jun 2008) Log Message: ----------- Update installation instructions. Modified Paths: -------------- pure/trunk/INSTALL Modified: pure/trunk/INSTALL =================================================================== --- pure/trunk/INSTALL 2008-06-06 17:08:37 UTC (rev 180) +++ pure/trunk/INSTALL 2008-06-06 17:12:35 UTC (rev 181) @@ -259,6 +259,15 @@ is faster but the compiled interpreter is *much* slower (a factor of about 2 on my Linux box). Hence this build is only recommended for debugging purposes. +You can combine all build types with the following option to enable compiler +warnings (-Wall): + +$ ./configure --enable-warnings + +This option is useful to check the interpreter sources for questionable +constructs which might actually be bugs. However, for some older gcc versions +it spits out lots of bogus warnings, so it is not enabled by default. + In addition, there is an option to build a "monolithic" interpreter which is linked statically against the LLVM libraries, instead of producing a separate runtime library: @@ -323,9 +332,10 @@ ALL PLATFORMS --- --------- -Compiling the default and release versions using gcc will give you the warning -"dereferencing type-punned pointer will break strict-aliasing rules" at some -point in util.cc. This is harmless and can be ignored. +Compiling the default and release versions using gcc with all warnings turned +on (-Wall) will give you the warning "dereferencing type-punned pointer will +break strict-aliasing rules" at some point in util.cc. This is harmless and +can be ignored. If your Pure program runs out of stack space, the interpreter will segfault. This is *not* a bug, it happens because runtime stack checks are disabled by @@ -369,11 +379,12 @@ in the MacPorts collection, see http://www.macports.org/. Note that with at least some current versions of the Apple gcc compiler (4.0.1 -and similar) you'll get the (bogus) warning "control reaches end of non-void -function" a couple of times in interpreter.cc. These are due to a bug in older -gcc versions (see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16558), but they -are harmless and can be ignored. These warnings should also go away once Apple -upgrades its SDK to a newer gcc version. +and similar), with all warnings turned on you'll get the (bogus) warning +"control reaches end of non-void function" a couple of times in +interpreter.cc. These are due to a bug in older gcc versions (see +http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16558), but they are harmless and +can be ignored. These warnings should also go away once Apple upgrades its SDK +to a newer gcc version. MS WINDOWS -- ------- This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ag...@us...> - 2008-06-13 11:06:58
|
Revision: 207 http://pure-lang.svn.sourceforge.net/pure-lang/?rev=207&view=rev Author: agraef Date: 2008-06-13 04:07:04 -0700 (Fri, 13 Jun 2008) Log Message: ----------- Update installation instructions. Modified Paths: -------------- pure/trunk/INSTALL Modified: pure/trunk/INSTALL =================================================================== --- pure/trunk/INSTALL 2008-06-13 10:47:29 UTC (rev 206) +++ pure/trunk/INSTALL 2008-06-13 11:07:04 UTC (rev 207) @@ -61,13 +61,13 @@ IMPORTANT: On x86-64 systems you also have to add --enable-pic. See the comments on 64 bit support in the SYSTEM NOTES section below. -Also note the configure flags; these are for an optimized (non-debug) build -and disable all compilation targets but the one for your system. You might -wish to omit the --enable-targets=host-only if you want to use other LLVM -applications offering cross-compilation capabilities. To do a debug build of -LLVM, simply leave away all the extra configure parameters (except possibly ---enable-targets=host-only). Note, however, that this will have an impact on -the speed of the Pure compiler. +Note that the configure flags are for an optimized (non-debug) build and +disable all compilation targets but the one for your system. You might wish to +omit --enable-targets=host-only if you want to enable cross-compilation (this +isn't supported by Pure right now, but other LLVM applications offer such +capabilities). To do a debug build of LLVM, simply leave away all the extra +configure parameters (except possibly --enable-targets=host-only). Note, +however, that this will have an impact on the speed of the Pure compiler. STEP 4. Get and unpack the Pure sources at: http://pure-lang.sf.net/ @@ -193,6 +193,13 @@ $ make install DESTDIR=tmp-root +Beginning with version 0.4, Pure fully supports parallel installations of +different versions of the interpreter without any further ado. To these ends, +bin/pure, lib/libpure.so, lib/pure and man/man1/pure.1 are actually symbolic +links to the current version (bin/pure-x.y, lib/libpure-x.y.so etc., where x.y +is the version number). If you install a new version of the interpreter, the +old version remains available as pure-x.y. + SEPARATE BUILD DIRECTORY -------- ----- --------- This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ag...@us...> - 2008-05-22 06:44:12
|
Revision: 102 http://pure-lang.svn.sourceforge.net/pure-lang/?rev=102&view=rev Author: agraef Date: 2008-05-21 23:44:20 -0700 (Wed, 21 May 2008) Log Message: ----------- Update system notes. Modified Paths: -------------- pure/trunk/INSTALL Modified: pure/trunk/INSTALL =================================================================== --- pure/trunk/INSTALL 2008-05-21 21:09:55 UTC (rev 101) +++ pure/trunk/INSTALL 2008-05-22 06:44:20 UTC (rev 102) @@ -204,10 +204,10 @@ SYSTEM NOTES ====== ===== -Pure is known to work on recent Linux and Mac OSX versions, but there are a -few system-specific quirks which are discussed below. (Please also see the -CAVEATS AND NOTES section of the manual page for information on other known -limitations of the current implementation.) +Pure is known to work on recent Linux and Mac OSX versions under x86, x86-64 +and ppc, but there are a few system-specific quirks which are discussed below. +(Please also see the CAVEATS AND NOTES section of the manual page for +information on other known limitations of the current implementation.) ALL PLATFORMS --- --------- @@ -227,26 +227,22 @@ 64 BIT SYSTEMS -- --- ------- -64 bit systems are supported by Pure. Alas, for unknown reasons the 'debug' -build currently does *not* work on (some?) 64 bit systems using gcc. This has -been seen on various different 64 bit Linux versions, YMMV. You can tell that -you're bitten by this bug if, after running 'make debug' (or using similar, -custom compilation flags), 'make check' fails on most tests. Fortunately, it -seems that you can easily work around this by making sure that you have at -least -O enabled when compiling runtime.cc. Also please note that the -'default' and 'release' builds should work fine. 32 bit builds also seem to be -unaffected. +64 bit systems are fully supported by Pure. Alas, for unknown reasons the +'debug' build currently does *not* work on (some?) 64 bit systems using +gcc. This has been seen on various different 64 bit Linux versions, YMMV. You +can tell that you're bitten by this bug if, after running 'make debug' (or +using similar, custom compilation flags), 'make check' fails on most tests. +Fortunately, it seems that you can easily work around this by making sure that +you have at least -O enabled when compiling runtime.cc. Also please note that +the 'default' and 'release' builds should work fine. 32 bit builds also seem +to be unaffected. LINUX ----- Linux is the primary development platform for this software, and the sources should build out of the box on all recent Linux distributions. However, note -the issues on 64 bit Linux systems described above. Also, it has been reported -that the interpreter does *not* work under Ubuntu (32 bit) on PowerPC right -now; I can't do much about this myself since I cannot reproduce this on my x86 -and i64 Linux systems. Any input which could help to resolve these issues is -much appreciated. +the issues on 64 bit Linux systems described above. MAC OSX --- --- This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ag...@us...> - 2008-06-01 19:40:10
|
Revision: 161 http://pure-lang.svn.sourceforge.net/pure-lang/?rev=161&view=rev Author: agraef Date: 2008-06-01 12:40:15 -0700 (Sun, 01 Jun 2008) Log Message: ----------- Update installation instructions. Modified Paths: -------------- pure/trunk/INSTALL Modified: pure/trunk/INSTALL =================================================================== --- pure/trunk/INSTALL 2008-06-01 19:29:20 UTC (rev 160) +++ pure/trunk/INSTALL 2008-06-01 19:40:15 UTC (rev 161) @@ -182,8 +182,9 @@ There are a number of other variables you can set on the 'make' command line if you need special compiler (CXXFLAGS) or linker flags (LDFLAGS), or if you -have to add platform-specific libraries (LIBS). Please see the Makefile for -additional information on these. +have to add platform-specific libraries (LIBS). The DLL variable allows you to +change the shared library suffix as appropriate for your system. Please see +the Makefile for additional information on these. As of Pure 0.3, the 'default' build now also includes basic optimizations (-O). This build should be ok for most purposes, and has the advantage that it @@ -197,13 +198,14 @@ This disables all runtime checks and debugging information in the interpreter and also uses a higher level of optimization. The 'release' build will usually give you faster execution times, but the differences aren't really that big -anymore (5-10% compared to the default flags on my Linux system running gcc -4.1, YMMV), so you are encouraged to use the 'default' build unless +anymore (less than 5% compared to the default flags on my Linux system running +gcc 4.1, YMMV), so you are encouraged to use the 'default' build unless performance is really critical. To get smaller executables with either the default or the release build, add 'LDFLAGS=-s' to the 'make' command (gcc only, other compilers may provide a -similar flag to strip compiled executables and libraries). +similar flag or a separate command to strip compiled executables and +libraries). You can also do a 'debug' build as follows: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ag...@us...> - 2008-06-01 19:53:53
|
Revision: 163 http://pure-lang.svn.sourceforge.net/pure-lang/?rev=163&view=rev Author: agraef Date: 2008-06-01 12:54:01 -0700 (Sun, 01 Jun 2008) Log Message: ----------- Update installation instructions. Modified Paths: -------------- pure/trunk/INSTALL Modified: pure/trunk/INSTALL =================================================================== --- pure/trunk/INSTALL 2008-06-01 19:53:09 UTC (rev 162) +++ pure/trunk/INSTALL 2008-06-01 19:54:01 UTC (rev 163) @@ -82,9 +82,9 @@ $ sudo /sbin/ldconfig (The latter step is required on Linux systems to tell the dynamic linker to -update its cache so that it finds the Pure runtime library, libpure-x.y.so. -On other systems it may be sufficient to install the library in a location -which is searched by the dynamic linker.) +update its cache so that it finds the Pure runtime library, libpure.so. On +other systems it may be sufficient to install the library in a location which +is searched by the dynamic linker.) After the build is complete, you can check that Pure is working correctly on your computer, as follows: @@ -150,11 +150,11 @@ OTHER COMPILATION OPTIONS ===== =========== ======= -By default, the pure program is installed under /usr/local/bin, the -libpure-x.y.so library under /usr/local/lib, and the library scripts under -/usr/local/lib/pure. The installation directory can be changed by editing the -definition of the 'prefix' variable in the Makefile, or by specifying the -desired value on the 'make' command line, e.g.: +By default, the pure program goes to /usr/local/bin, the libpure.so library to +/usr/local/lib, and the Pure library scripts to /usr/local/lib/pure. The +installation directory can be changed by editing the definition of the +'prefix' variable in the Makefile, or by specifying the desired value on the +'make' command line, e.g.: $ make all install prefix=/usr @@ -163,7 +163,7 @@ be changed at runtime by setting corresponding environment variables, see the manpage for details). Also note that if you install Pure into a non-standard location, you may have to set the LD_LIBRARY_PATH variable so that the dynamic -linker finds the Pure runtime library, libpure-x.y.so. +linker finds the Pure runtime library, libpure.so. After your build is done, you can (and should) also run 'make check' to verify that your Pure interpreter works correctly. This can be done without @@ -171,7 +171,7 @@ if you just want to take it for a test drive, you can simply run it from the source directory, if you set up the following environment variables: -- LD_LIBRARY_PATH=. This is required on Linux systems so that libpure-x.y.so +- LD_LIBRARY_PATH=. This is required on Linux systems so that libpure.so is found. Other systems may require an analogous setting, or none at all. - PURELIB=./lib This is required on all systems so that the interpreter finds This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ag...@us...> - 2008-06-04 07:55:11
|
Revision: 167 http://pure-lang.svn.sourceforge.net/pure-lang/?rev=167&view=rev Author: agraef Date: 2008-06-04 00:55:18 -0700 (Wed, 04 Jun 2008) Log Message: ----------- Update installation instructions. Modified Paths: -------------- pure/trunk/INSTALL Modified: pure/trunk/INSTALL =================================================================== --- pure/trunk/INSTALL 2008-06-04 06:59:28 UTC (rev 166) +++ pure/trunk/INSTALL 2008-06-04 07:55:18 UTC (rev 167) @@ -5,20 +5,17 @@ These instructions (mostly by courtesy of Eddie Rucker, thanks Eddie!) explain how to compile and install LLVM (which is the compiler backend required by Pure) and the Pure interpreter itself. The instructions are for Linux and -similar Unix-like systems; the SYSTEM NOTES section at the end of this file +similar, Unix-like systems; the SYSTEM NOTES section at the end of this file details the tweaks necessary to make Pure compile and run on various other platforms. More information about installing LLVM and the required LLVM source packages can be found at http://llvm.org. -Pure is known to work on Linux and Mac OSX, but should compile (with the usual +Pure is known to work on Linux and Mac OSX, and should compile (with the usual amount of tweaking) on all UNIX/POSIX-based platforms. We recommend using version 4.x of the GNU C++ compiler; it should be available almost everywhere (in fact, since you'll need LLVM anyway, you can also use the gcc frontend -available for LLVM). Other ANSI/ISO compatible C/C++ compilers will probably -work as well (after some fiddling with the compilation options and the sources -maybe), but this has not been tested. Also note that the Makefile pretty much -requires GNU make right now, so you should make sure that you have that -installed before trying to compile Pure. +available for LLVM). You'll also need a Bourne-compatible shell and GNU make, +which are also readily available on most platforms. BASIC INSTALLATION @@ -58,14 +55,16 @@ $ cd llvm-2.2 $ ./configure --enable-optimized --disable-assertions --disable-expensive-checks --enable-targets=host-only -$ make ENABLE_OPTIMIZED=1 +$ make $ sudo make install Note the configure flags; these are for an optimized (non-debug) build and -disable all compilation targets except the one for your system. To do a debug -build of LLVM, simply leave away all the extra configure parameters (except -possibly --enable-targets=host-only). Note, however, that this will -considerably slow down the Pure compiler. +disable all compilation targets but the one for your system. (You might wish +to omit the --enable-targets=host-only if you want to use other LLVM +applications and offering cross-compilation capabilities.) To do a debug build +of LLVM, simply leave away all the extra configure parameters (except possibly +--enable-targets=host-only). Note, however, that this will have an impact on +the speed of the Pure compiler. STEP 4. Get and unpack the Pure sources at: http://pure-lang.sf.net/ @@ -73,24 +72,28 @@ page. See "Downloads" on the Pure website for a quick link to the download section. -STEP 5. Build and install Pure as follows (x.y denotes the current Pure -version number, 0.3 at the time of this writing): +STEP 5. Configure, build and install Pure as follows (x.y denotes the current +Pure version number, 0.3 at the time of this writing): $ cd pure-x.y +$ ./configure $ make $ sudo make install + +On some systems you may have to tell the dynamic linker to update its cache so +that it finds the Pure runtime library, libpure.so. E.g., on Linux this can be +done as follows: + $ sudo /sbin/ldconfig -(The latter step is required on Linux systems to tell the dynamic linker to -update its cache so that it finds the Pure runtime library, libpure.so. On -other systems it may be sufficient to install the library in a location which -is searched by the dynamic linker.) +After the build is complete, you can also run a few tests to check that Pure +is working correctly on your computer: -After the build is complete, you can check that Pure is working correctly on -your computer, as follows: - $ make check +If all is well, all tests should pass. If not, email the author or the Pure +mailing list for help. + STEP 6. The Pure interpreter should be ready to go now. Run Pure interactively as: @@ -134,42 +137,138 @@ STEP 4': Fetch the SVN sources. +$ svn co http://pure-lang.svn.sourceforge.net/svnroot/pure-lang/pure/trunk pure + +This will only fetch the latest development sources (the "trunk") from svn and +put it into the 'pure' subdirectory in the current directory. To check out the +entire tree, including past releases and other branches, into a subdirectory +named 'pure-lang', use the following command instead: + $ svn co http://pure-lang.svn.sourceforge.net/svnroot/pure-lang pure-lang This step needs to be done only once; once you've checked out your working copy, you can update it to the latest revision by running 'svn up'. -STEP 5': Build and install Pure: +STEP 5': Configure, build and install Pure: -$ cd pure-lang/pure/trunk +$ cd pure (or 'cd pure-lang/pure/trunk', if you checked out the entire tree) +$ ./configure $ make $ sudo make install -$ sudo /sbin/ldconfig OTHER COMPILATION OPTIONS ===== =========== ======= -By default, the pure program goes to /usr/local/bin, the libpure.so library to -/usr/local/lib, and the Pure library scripts to /usr/local/lib/pure. The -installation directory can be changed by editing the definition of the -'prefix' variable in the Makefile, or by specifying the desired value on the -'make' command line, e.g.: +The Pure configure script takes a few options which enable you to change the +installation path and control a number of other build options. Moreover, there +are some environment variables which also affect compilation and installation. -$ make all install prefix=/usr +Use './configure --help' to print a summary of the provided options. -Note that you should specify this option *both* at compile and installation -time since certain default paths are hardcoded into the interpreter (but can -be changed at runtime by setting corresponding environment variables, see the -manpage for details). Also note that if you install Pure into a non-standard -location, you may have to set the LD_LIBRARY_PATH variable so that the dynamic -linker finds the Pure runtime library, libpure.so. +INSTALLATION PATH +------------ ---- +By default, the pure program, runtime library and library scripts are +installed in /usr/local/bin, /usr/local/lib and /usr/local/lib/pure, +respectively. This can be changed by specifying the desired installation +prefix with the --prefix option, e.g.: + +$ ./configure --prefix=/usr + +(Note that if you install Pure into a non-standard location, you may have to +set LD_LIBRARY_PATH or a similar variable so that the dynamic linker finds the +Pure runtime library, libpure.so.) + +In addition, the DESTDIR variable enables package maintainers to install Pure +into a special "staging" directory, so that installed files can be packaged +more easily. If set at installation time, DESTDIR will be used as an +additional prefix to all installation paths. For instance, the following +command will put all installed files into the tmp-root subdirectory of the +current directory: + +$ make install DESTDIR=tmp-root + +SEPARATE BUILD DIRECTORY +-------- ----- --------- + +It is possible to build Pure in a separate directory, in order to keep your +source tree tidy and clean, or to build multiple versions of the interpreter +with different compilation flags from the same source tree. + +To these ends, just cd to the build directory and run configure and make +there, e.g. (this assumes that you start from the source directory): + +$ mkdir BUILD +$ cd BUILD +$ ../configure +$ make + +COMPILER AND LINKER OPTIONS +-------- --- ------ ------- + +There are a number of environment variables you can set on the 'configure' +command line if you need special compiler or linker options: + +- CPPFLAGS: preprocessor options (-I, -D, etc.) +- CXXFLAGS: compilation options (-g, -O, etc.) +- LDFLAGS: linker flags (-s, -L, etc.) +- LIBS: additional objects and libraries (-lfoo, bar.o, etc.) + +For instance, the following 'configure' command changes the default +compilation options to '-g' and adds '/opt/include' and '/opt/lib' to the +include and library search paths, respectively: + +$ CPPFLAGS=-I/opt/include CXXFLAGS=-g LDFLAGS=-L/opt/lib ./configure + +More details on the build and installation process and other available targets +and options can be found in the Makefile. + +PREDEFINED BUILD TYPES +---------- ----- ----- + +For convenience, 'configure' provides some options to set up CPPFLAGS and +CXXFLAGS for various build types. + +Note that, as of Pure 0.3, the default build already includes most +optimizations (-O2). This build should be ok for most purposes, and has the +advantage that it does additional runtime checks which provide diagnostics +useful for maintainers if anything is wrong with the interpreter. However, you +can also build a "release" version of the interpreter by running configure as +follows: + +$ ./configure --enable-release + +This disables all runtime checks and debugging information in the interpreter, +and uses a higher optimization level (-O3). The release build will usually +give you faster execution times, but the differences to the default build +aren't really that big anymore (less than 5% compared to the default flags on +my Linux system running gcc 4.1, YMMV), so you are encouraged to use the +default build unless performance is really critical. + +To get smaller executables with either the default or the release build, add +'LDFLAGS=-s' to the 'configure' command (gcc only, other compilers may provide +a similar flag or a separate command to strip compiled executables and +libraries). + +You can also do a "debug" build as follows: + +$ ./configure --enable-debug + +This is like the default build, but disables all optimizations, so compilation +is faster but the compiled interpreter is *much* slower (a factor of about 2 +on my Linux box). Hence this build is only recommended for debugging purposes. + +RUNNING PURE FROM THE SOURCE DIRECTORY +------- ---- ---- --- ------ --------- + After your build is done, you can (and should) also run 'make check' to verify that your Pure interpreter works correctly. This can be done without installing the software. In fact, there's no need to install the interpreter -if you just want to take it for a test drive, you can simply run it from the -source directory, if you set up the following environment variables: +at all if you just want to take it for a test drive, you can simply run it +from the source directory, if you set up the following environment variables +(this assumes that you built Pure in the source directory; when using a +separate build directory, you'll have to change the paths accordingly): - LD_LIBRARY_PATH=. This is required on Linux systems so that libpure.so is found. Other systems may require an analogous setting, or none at all. @@ -180,46 +279,25 @@ After that you should be able to run the Pure interpreter from the source directory, by typing './pure'. -There are a number of other variables you can set on the 'make' command line -if you need special compiler (CXXFLAGS) or linker flags (LDFLAGS), or if you -have to add platform-specific libraries (LIBS). The DLL variable allows you to -change the shared library suffix as appropriate for your system. Please see -the Makefile for additional information on these. +OTHER TARGETS +----- ------- -As of Pure 0.3, the 'default' build now also includes basic optimizations -(-O). This build should be ok for most purposes, and has the advantage that it -does additional runtime checks which provide diagnostics useful for -maintainers if anything is wrong with the interpreter. +The Makefile supports the usual 'clean' and 'distclean' targets, and +'realclean' will remove all files created by the maintainer, including test +logs and C++ source files generated from Flex and Bison grammars. (Only use +the latter if you know what you are doing, since it will remove files which +require special tools to be regenerated.) -However, you can also build a "release" version of the interpreter as follows: +There are also a number of targets like 'html' and 'pdf' which generate the +documentation in a variety of formats (this requires groff); see the Makefile +for details. -$ make build=release +Last but not least, maintainers can roll distribution tarballs with 'make +dist' and 'make distcheck' (the latter is like 'make dist', but also does a +test build and installation to verify that your tarball contains all needed +bits and pieces). -This disables all runtime checks and debugging information in the interpreter -and also uses a higher level of optimization. The 'release' build will usually -give you faster execution times, but the differences aren't really that big -anymore (less than 5% compared to the default flags on my Linux system running -gcc 4.1, YMMV), so you are encouraged to use the 'default' build unless -performance is really critical. -To get smaller executables with either the default or the release build, add -'LDFLAGS=-s' to the 'make' command (gcc only, other compilers may provide a -similar flag or a separate command to strip compiled executables and -libraries). - -You can also do a 'debug' build as follows: - -$ make build=debug - -This is like the standard build, but disables all optimizations, so -compilation is faster but the compiled interpreter is *much* slower (a factor -of about 2 on my Linux box). Hence this build is only recommended for -debugging purposes. - -More details on the build and installation process and other available targets -and options can be found in the Makefile. - - SYSTEM NOTES ====== ===== @@ -231,10 +309,9 @@ ALL PLATFORMS --- --------- -Compiling the release version (make build=release) using gcc with all warnings -turned on (which is the default) will give you the warning "dereferencing -type-punned pointer will break strict-aliasing rules" at some point in -util.cc. This is harmless and can be ignored. +Compiling the default and release versions using gcc will give you the warning +"dereferencing type-punned pointer will break strict-aliasing rules" at some +point in util.cc. This is harmless and can be ignored. If your Pure program runs out of stack space, the interpreter will segfault. This is *not* a bug, it happens because runtime stack checks are disabled by @@ -247,14 +324,14 @@ -- --- ------- 64 bit systems are fully supported by Pure. Alas, for unknown reasons the -'debug' build currently does *not* work on (some?) 64 bit systems using -gcc. This has been seen on various different 64 bit Linux versions, YMMV. You -can tell that you're bitten by this bug if, after running 'make debug' (or -using similar, custom compilation flags), 'make check' fails on most tests. +debug build currently does *not* work on (some?) 64 bit systems using gcc. +This has been seen on various different 64 bit Linux versions, YMMV. You can +tell that you're bitten by this bug if, after running 'make debug' (or using +similar, custom compilation flags), 'make check' fails on most tests. Fortunately, it seems that you can easily work around this by making sure that you have at least -O enabled when compiling runtime.cc. Also please note that -the 'default' and 'release' builds should work fine. 32 bit builds also seem -to be unaffected. +the default and release builds should work fine. 32 bit builds also seem to be +unaffected. LINUX ----- @@ -265,27 +342,22 @@ MAC OSX --- --- -A port by Ryan Schmidt exists in the MacPorts collection at -http://www.macports.org/. If you compile Pure from the original sources -yourself, you should add the -liconv flag to the link line. To these ends, -build Pure with the following make command (add the build=release option for -the release build): +Pure works on OSX just fine. A port by Ryan Schmidt exists in the MacPorts +collection, see http://www.macports.org/. -$ make LIBS="-liconv" +Note that with at least some current versions of the Apple gcc compiler (4.0.1 +and similar) you'll get the (bogus) warning "control reaches end of non-void +function" a couple of times in interpreter.cc. These are due to a bug in older +gcc versions (see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16558), but they +are harmless and can be ignored. These warnings should also go away once Apple +upgrades its SDK to a newer gcc version. -Also note that with at least some current versions of the Apple gcc compiler -(4.0.1 and similar) you'll get the (bogus) warning "control reaches end of -non-void function" a couple of times in interpreter.cc. These are due to a bug -in older gcc versions (see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16558), -but they are harmless and can be ignored. These warnings should also go away -once Apple upgrades its SDK to a newer gcc version. - MS WINDOWS -- ------- Jiri Spitz is currently working on a Windows port using Mingw. Once this is finished, we'll provide Windows installation instructions here. For the time -being, you can try for yourself; porting should be rather straightforward with +being, you can try it yourself; porting should be rather straightforward with either Cygwin (http://www.cygwin.com/) or Mingw (http://www.mingw.org/), once you have all the necessary dependencies and a suitable version of LLVM installed. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ag...@us...> - 2008-06-04 20:39:48
|
Revision: 173 http://pure-lang.svn.sourceforge.net/pure-lang/?rev=173&view=rev Author: agraef Date: 2008-06-04 13:39:54 -0700 (Wed, 04 Jun 2008) Log Message: ----------- Update installation instructions. Modified Paths: -------------- pure/trunk/INSTALL Modified: pure/trunk/INSTALL =================================================================== --- pure/trunk/INSTALL 2008-06-04 09:22:34 UTC (rev 172) +++ pure/trunk/INSTALL 2008-06-04 20:39:54 UTC (rev 173) @@ -259,16 +259,20 @@ is faster but the compiled interpreter is *much* slower (a factor of about 2 on my Linux box). Hence this build is only recommended for debugging purposes. -In addition, there is an option --disable-shared to build an interpreter which -is linked statically against all required libraries, instead of producing a -separate runtime library. This works with all build types and is provided as a -temporary workaround for systems like 64 bit Linux where LLVM refuses to be -linked into shared libraries (see the notes on 64 bit systems in the NOTES -section below). This isn't recommended if you don't need it, since it -drastically increases the size of the executable and thereby the memory -footprint of the interpreter if several interpreter processes are running -simultaneously. +In addition, there is an option to build a "monolithic" interpreter which is +linked statically against the LLVM libraries, instead of producing a separate +runtime library: +$ ./configure --disable-shared + +This works with all build types and is provided as a temporary workaround for +systems like 64 bit Linux where LLVM refuses to be linked into shared +libraries (see the notes on 64 bit systems in the NOTES section below). Please +note, however, that it is *not* recommended to do this if you don't need it, +since it drastically increases the size of the executable and thereby the +memory footprint of the interpreter if several interpreter processes are +running simultaneously. + RUNNING PURE FROM THE SOURCE DIRECTORY ------- ---- ---- --- ------ --------- @@ -298,7 +302,7 @@ the latter if you know what you are doing, since it will remove files which require special tools to be regenerated.) -There are also a number of targets like 'html' and 'pdf' which generate the +There also are a number of targets like 'html' and 'pdf' which generate the documentation in a variety of formats (this requires groff); see the Makefile for details. @@ -337,8 +341,8 @@ doesn't like to be linked into shared libraries on x86-64 systems. The symptom is that you get strange relocation errors when linking the runtime library during the build. In this case you have to build the interpreter as a -monolithic executable which statically includes all required LLVM and Pure -interpreter modules. This can be done by configuring with './configure +monolithic executable which statically includes all required LLVM and the Pure +runtime modules. This can be done by configuring with './configure --disable-shared'. This has several disadvantages, but seems to be the only way to get Pure to work on x86-64 right now. Hopefully, these issues will be fixed with the next LLVM release. @@ -356,13 +360,14 @@ ----- Linux is the primary development platform for this software, and the sources -should build out of the box on all recent Linux distributions. +should build out of the box on all recent Linux distributions. (But note the +issues on x86-64 Linux systems described above.) MAC OSX --- --- -Pure works on OSX just fine. A port by Ryan Schmidt exists in the MacPorts -collection, see http://www.macports.org/. +Pure has been reported to work on OSX just fine. A port by Ryan Schmidt exists +in the MacPorts collection, see http://www.macports.org/. Note that with at least some current versions of the Apple gcc compiler (4.0.1 and similar) you'll get the (bogus) warning "control reaches end of non-void This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ag...@us...> - 2008-06-04 22:47:06
|
Revision: 174 http://pure-lang.svn.sourceforge.net/pure-lang/?rev=174&view=rev Author: agraef Date: 2008-06-04 15:47:13 -0700 (Wed, 04 Jun 2008) Log Message: ----------- Update installation instructions. Modified Paths: -------------- pure/trunk/INSTALL Modified: pure/trunk/INSTALL =================================================================== --- pure/trunk/INSTALL 2008-06-04 20:39:54 UTC (rev 173) +++ pure/trunk/INSTALL 2008-06-04 22:47:13 UTC (rev 174) @@ -219,7 +219,7 @@ compilation options to '-g' and adds '/opt/include' and '/opt/lib' to the include and library search paths, respectively: -$ CPPFLAGS=-I/opt/include CXXFLAGS=-g LDFLAGS=-L/opt/lib ./configure +$ ./configure CPPFLAGS=-I/opt/include CXXFLAGS=-g LDFLAGS=-L/opt/lib More details on the build and installation process and other available targets and options can be found in the Makefile. @@ -342,10 +342,9 @@ is that you get strange relocation errors when linking the runtime library during the build. In this case you have to build the interpreter as a monolithic executable which statically includes all required LLVM and the Pure -runtime modules. This can be done by configuring with './configure ---disable-shared'. This has several disadvantages, but seems to be the only -way to get Pure to work on x86-64 right now. Hopefully, these issues will be -fixed with the next LLVM release. +runtime modules, by configuring with --disable-shared. This has several +disadvantages, but seems to be the only way to get Pure to work on x86-64 +right now. Hopefully, these issues will be fixed with the next LLVM release. Also, for unknown reasons the debug build currently does *not* work on (some?) 64 bit systems using gcc. This has been seen on various different 64 bit Linux This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ag...@us...> - 2008-06-06 19:10:24
|
Revision: 184 http://pure-lang.svn.sourceforge.net/pure-lang/?rev=184&view=rev Author: agraef Date: 2008-06-06 12:10:31 -0700 (Fri, 06 Jun 2008) Log Message: ----------- Update installation instructions. Modified Paths: -------------- pure/trunk/INSTALL Modified: pure/trunk/INSTALL =================================================================== --- pure/trunk/INSTALL 2008-06-06 18:04:15 UTC (rev 183) +++ pure/trunk/INSTALL 2008-06-06 19:10:31 UTC (rev 184) @@ -4,18 +4,18 @@ These instructions (mostly by courtesy of Eddie Rucker, thanks Eddie!) explain how to compile and install LLVM (which is the compiler backend required by -Pure) and the Pure interpreter itself. The instructions are for Linux and -similar, Unix-like systems; the SYSTEM NOTES section at the end of this file -details the tweaks necessary to make Pure compile and run on various other -platforms. More information about installing LLVM and the required LLVM source -packages can be found at http://llvm.org. +Pure) and the Pure interpreter itself. The instructions are somewhat biased +towards Linux and other Unix-like systems; the SYSTEM NOTES section at the end +of this file details the tweaks necessary to make Pure compile and run on +various other platforms. More information about installing LLVM and the +required LLVM source packages can be found at http://llvm.org. -Pure is known to work on Linux and Mac OSX, and should compile (with the usual -amount of tweaking) on all UNIX/POSIX-based platforms. We recommend using -version 4.x of the GNU C++ compiler; it should be available almost everywhere -(in fact, since you'll need LLVM anyway, you can also use the gcc frontend -available for LLVM). You'll also need a Bourne-compatible shell and GNU make, -which are also readily available on most platforms. +Pure is known to work on Linux, Mac OSX and MS Windows, and should compile +(with the usual amount of tweaking) on all recent UNIX/POSIX-based platforms. +We recommend using version 4.x of the GNU C++ compiler; it should be available +almost everywhere (in fact, since you'll need LLVM anyway, you can also use +the gcc frontend available for LLVM). You'll also need a Bourne-compatible +shell and GNU make, which are also readily available on most platforms. BASIC INSTALLATION @@ -325,9 +325,10 @@ ====== ===== Pure is known to work on recent Linux and Mac OSX versions under x86, x86-64 -and ppc, but there are a few system-specific quirks which are discussed below. -(Please also see the CAVEATS AND NOTES section of the manual page for -information on other known limitations of the current implementation.) +and ppc, as well as on MS Windows XP, but there are a few system-specific +quirks which are discussed below. (Please also see the CAVEATS AND NOTES +section of the manual page for information on other known limitations of the +current implementation.) ALL PLATFORMS --- --------- @@ -375,8 +376,8 @@ MAC OSX --- --- -Pure has been reported to work on OSX just fine. A port by Ryan Schmidt exists -in the MacPorts collection, see http://www.macports.org/. +Pure has been reported to work on OSX, and a port by Ryan Schmidt exists in +the MacPorts collection, see http://www.macports.org/. Note that with at least some current versions of the Apple gcc compiler (4.0.1 and similar), with all warnings turned on you'll get the (bogus) warning @@ -389,12 +390,14 @@ MS WINDOWS -- ------- -Jiri Spitz is currently working on a Windows port using Mingw. Once this is -finished, we'll provide Windows installation instructions here. For the time -being, you can try it yourself; porting should be rather straightforward with -either Cygwin (http://www.cygwin.com/) or Mingw (http://www.mingw.org/), once -you have all the necessary dependencies and a suitable version of LLVM -installed. +Thanks to Jiri Spitz' perseverance, tireless testing and bug reports, the +latest sources compile and run fine on Windows, using the Mingw port of the +GNU C++ compiler and the MSys environment from http://www.mingw.org/. (Cygwin +from http://www.cygwin.com/ probably works as well, but this has not been +tested.) Just do the usual './configure && make && make install'. You'll need +LLVM, of course (which builds with Mingw just fine), and a few additional +libraries for which headers and precompiled binaries are available from the +Pure website (http://pure-lang.sf.net/). June 2008 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ag...@us...> - 2008-06-08 09:20:04
|
Revision: 193 http://pure-lang.svn.sourceforge.net/pure-lang/?rev=193&view=rev Author: agraef Date: 2008-06-08 02:20:05 -0700 (Sun, 08 Jun 2008) Log Message: ----------- Final touches for 0.3 release. Modified Paths: -------------- pure/trunk/INSTALL Modified: pure/trunk/INSTALL =================================================================== --- pure/trunk/INSTALL 2008-06-07 23:42:04 UTC (rev 192) +++ pure/trunk/INSTALL 2008-06-08 09:20:05 UTC (rev 193) @@ -392,18 +392,16 @@ -- ------- Thanks to Jiri Spitz' perseverance, tireless testing and bug reports, the -latest sources compile and run fine on Windows, using the Mingw port of the -GNU C++ compiler and the MSYS environment from http://www.mingw.org/. Just do -the usual './configure && make && make install'. You'll need LLVM, of course +sources compile and run fine on Windows now, using the Mingw port of the GNU +C++ compiler and the MSYS environment from http://www.mingw.org/. Just do the +usual './configure && make && make install'. You'll need LLVM, of course (which builds with Mingw just fine), and a few additional libraries for which headers and precompiled binaries are available from the Pure website (http://pure-lang.sf.net/). A binary package in msi format is available as well (see "Downloads" on the -Pure website), which includes all required libraries. The package also -includes some shortcuts which will be installed in your Program menu, allowing -you to run the Pure interpreter either in a normal Windows command window or -the MSYS shell available from http://www.mingw.org/. +Pure website), which includes all required libraries and some shortcuts to run +the Pure interpreter and read online documentation in html help format. June 2008 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ag...@us...> - 2008-06-13 09:18:16
|
Revision: 202 http://pure-lang.svn.sourceforge.net/pure-lang/?rev=202&view=rev Author: agraef Date: 2008-06-13 02:18:22 -0700 (Fri, 13 Jun 2008) Log Message: ----------- Update installation instructions. Modified Paths: -------------- pure/trunk/INSTALL Modified: pure/trunk/INSTALL =================================================================== --- pure/trunk/INSTALL 2008-06-13 08:32:03 UTC (rev 201) +++ pure/trunk/INSTALL 2008-06-13 09:18:22 UTC (rev 202) @@ -58,10 +58,13 @@ $ make $ sudo make install -Note the configure flags; these are for an optimized (non-debug) build and -disable all compilation targets but the one for your system. (You might wish -to omit the --enable-targets=host-only if you want to use other LLVM -applications offering cross-compilation capabilities.) To do a debug build of +IMPORTANT: On x86-64 systems you also have to add --enable-pic. See the +comments on 64 bit support in the SYSTEM NOTES section below. + +Also note the configure flags; these are for an optimized (non-debug) build +and disable all compilation targets but the one for your system. You might +wish to omit the --enable-targets=host-only if you want to use other LLVM +applications offering cross-compilation capabilities. To do a debug build of LLVM, simply leave away all the extra configure parameters (except possibly --enable-targets=host-only). Note, however, that this will have an impact on the speed of the Pure compiler. @@ -275,13 +278,11 @@ $ ./configure --disable-shared -This works with all build types and is provided as a temporary workaround for -systems like 64 bit Linux where LLVM refuses to be linked into shared -libraries (see the notes on 64 bit systems in the NOTES section below). Please -note, however, that it is *not* recommended to do this if you don't need it, -since it drastically increases the size of the executable and thereby the -memory footprint of the interpreter if several interpreter processes are -running simultaneously. +We strongly discourage from using this option, since it drastically increases +the size of the executable and thereby the memory footprint of the interpreter +if several interpreter processes are running simultaneously. We only provide +this as a workaround for systems on which LLVM refuses to be linked into +shared libraries. RUNNING PURE FROM THE SOURCE DIRECTORY ------- ---- ---- --- ------ --------- @@ -349,19 +350,16 @@ 64 BIT SYSTEMS -- --- ------- -64 bit systems are fully supported by Pure. However, LLVM 2.2 apparently -doesn't like to be linked into shared libraries on x86-64 systems. The symptom -is that you get strange relocation errors when linking the runtime library -during the build. In this case you have to build the interpreter as a -monolithic executable which statically includes all required LLVM and the Pure -runtime modules, by configuring with --disable-shared. This has several -disadvantages, but seems to be the only way to get Pure to work on x86-64 -right now. Hopefully, these issues will be fixed with the next LLVM release. +64 bit systems are fully supported by Pure. However, you'll need to patch up +LLVM 2.2 so that it can be linked into the Pure runtime library on x86-64 +systems. You also have to configure LLVM with --enable-pic. The patch by +Cyrille Berger, which is to be applied in the llvm-2.2 source directory, is +available at http://pure-lang.sf.net/X86JITInfo.cpp.pic.patch. -Also, for unknown reasons the debug build currently does *not* work on (some?) -64 bit systems using gcc. This has been seen on various different 64 bit Linux -versions, YMMV. You can tell that you're bitten by this bug if a normal build -works, but 'make check' fails on most tests with the debug build (or if you +Also, the debug build currently does *not* work on x86-64 Linux versions. This +seems to be a bug in LLVM, so there's hope that it will go away in a future +LLVM version. You can tell that you're bitten by this bug if a normal build +works, but 'make check' fails on some tests with the debug build (or if you manually disable optimization). Fortunately, it seems that you can easily work around this by making sure that you have at least -O enabled when compiling runtime.cc. Also please note that the default and release builds should work @@ -380,13 +378,12 @@ Pure has been reported to work on OSX, and a port by Ryan Schmidt exists in the MacPorts collection, see http://www.macports.org/. -Note that with at least some current versions of the Apple gcc compiler (4.0.1 -and similar), with all warnings turned on you'll get the (bogus) warning -"control reaches end of non-void function" a couple of times in -interpreter.cc. These are due to a bug in older gcc versions (see -http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16558), but they are harmless and -can be ignored. These warnings should also go away once Apple upgrades its SDK -to a newer gcc version. +Note that with at least some versions of the Apple gcc compiler, with all +warnings turned on you'll get the (bogus) warning "control reaches end of +non-void function" a couple of times in interpreter.cc. These are due to a bug +in older gcc versions (see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16558), +but they are harmless and can be ignored. These warnings should also go away +once Apple upgrades its SDK to a newer gcc version. MS WINDOWS -- ------- This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ag...@us...> - 2008-06-16 13:58:39
|
Revision: 247 http://pure-lang.svn.sourceforge.net/pure-lang/?rev=247&view=rev Author: agraef Date: 2008-06-16 06:58:45 -0700 (Mon, 16 Jun 2008) Log Message: ----------- Fix typo. Modified Paths: -------------- pure/trunk/INSTALL Modified: pure/trunk/INSTALL =================================================================== --- pure/trunk/INSTALL 2008-06-16 09:44:43 UTC (rev 246) +++ pure/trunk/INSTALL 2008-06-16 13:58:45 UTC (rev 247) @@ -328,7 +328,7 @@ distcheck' (the latter is like 'make dist', but also does a test build and installation to verify that your tarball contains all needed bits and pieces). -Last but not least, if you modify configure.ac for some reason then you +Last but not least, if you modify configure.ac for some reason then you can regenerate the configure script and config.h.in with 'make config'. This needs autoconf, of course. (The distribution was prepared using autoconf 2.61.) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ag...@us...> - 2008-06-16 14:29:33
|
Revision: 249 http://pure-lang.svn.sourceforge.net/pure-lang/?rev=249&view=rev Author: agraef Date: 2008-06-16 07:29:41 -0700 (Mon, 16 Jun 2008) Log Message: ----------- Update installation instructions. Modified Paths: -------------- pure/trunk/INSTALL Modified: pure/trunk/INSTALL =================================================================== --- pure/trunk/INSTALL 2008-06-16 14:00:24 UTC (rev 248) +++ pure/trunk/INSTALL 2008-06-16 14:29:41 UTC (rev 249) @@ -25,8 +25,8 @@ required once. Steps 2-3 can be avoided if binary LLVM packages are available for your system. Additional instructions for compiling Pure from SVN sources can be found in the INSTALLING FROM SVN SOURCES section below. Moreover, you -can refer to the OTHER COMPILATION OPTIONS section below for details about -various options available when building and installing Pure. +can refer to the OTHER BUILD AND INSTALLATION OPTIONS section below for +details about various options available when building and installing Pure. STEP 1. Make sure you have all the necessary dependencies installed (-dev denotes corresponding development packages): @@ -83,9 +83,18 @@ $ make $ sudo make install +The last command installs the pure program, the runtime.h header file, the +runtime library libpure.so and the library scripts under /usr/local; the +installation prefix can be changed with the --prefix configure option, see +OTHER BUILD AND INSTALLATION OPTIONS for details. + +(The runtime.h header file is not needed for normal operation, but can be used +to write C/C++ extensions modules, if you need to access and manipulate Pure +expressions from C/C++.) + On some systems you may have to tell the dynamic linker to update its cache so -that it finds the Pure runtime library, libpure.so. E.g., on Linux this can be -done as follows: +that it finds the Pure runtime library. E.g., on Linux this can be done as +follows: $ sudo /sbin/ldconfig @@ -161,8 +170,8 @@ $ sudo make install -OTHER COMPILATION OPTIONS -===== =========== ======= +OTHER BUILD AND INSTALLATION OPTIONS +===== ===== === ============ ======= The Pure configure script takes a few options which enable you to change the installation path and control a number of other build options. Moreover, there @@ -173,10 +182,10 @@ INSTALLATION PATH ------------ ---- -By default, the pure program, runtime library and library scripts are -installed in /usr/local/bin, /usr/local/lib and /usr/local/lib/pure, -respectively. This can be changed by specifying the desired installation -prefix with the --prefix option, e.g.: +By default, the pure program, the runtime.h header file, the runtime library +and the library scripts are installed in /usr/local/bin, /usr/local/include, +/usr/local/lib and /usr/local/lib/pure, respectively. This can be changed by +specifying the desired installation prefix with the --prefix option, e.g.: $ ./configure --prefix=/usr @@ -195,10 +204,11 @@ Beginning with version 0.4, Pure fully supports parallel installations of different versions of the interpreter without any further ado. To these ends, -bin/pure, lib/libpure.so, lib/pure and man/man1/pure.1 are actually symbolic -links to the current version (bin/pure-x.y, lib/libpure-x.y.so etc., where x.y -is the version number). If you install a new version of the interpreter, the -old version remains available as pure-x.y. +bin/pure, include/pure, lib/libpure.so, lib/pure and man/man1/pure.1 are +actually symbolic links to the current version (bin/pure-x.y, +include/pure-x.y, lib/libpure-x.y.so etc., where x.y is the version +number). If you install a new version of the interpreter, the old version +remains available as pure-x.y. SEPARATE BUILD DIRECTORY -------- ----- --------- This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ag...@us...> - 2008-07-11 21:28:29
|
Revision: 435 http://pure-lang.svn.sourceforge.net/pure-lang/?rev=435&view=rev Author: agraef Date: 2008-07-11 14:28:39 -0700 (Fri, 11 Jul 2008) Log Message: ----------- Reworded paragraph on ldconfig. Modified Paths: -------------- pure/trunk/INSTALL Modified: pure/trunk/INSTALL =================================================================== --- pure/trunk/INSTALL 2008-07-11 02:59:08 UTC (rev 434) +++ pure/trunk/INSTALL 2008-07-11 21:28:39 UTC (rev 435) @@ -92,8 +92,8 @@ to write C/C++ extensions modules, if you need to access and manipulate Pure expressions from C/C++.) -On some systems you may have to tell the dynamic linker to update its cache so -that it finds the Pure runtime library. E.g., on Linux this can be done as +On some systems you have to tell the dynamic linker to update its cache so +that it finds the Pure runtime library. E.g., on Linux this is done as follows: $ sudo /sbin/ldconfig This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |