| 172 | | Until GHC 6.4.1 is released, Linux users with x86_64 (64 bit Athlon) CPUs |
| 173 | | should consider using a development snapshot of GHC: |
| 174 | | |
| 175 | | http://www.haskell.org/ghc/dist/stable/dist/ |
| 176 | | |
| 177 | | Look for files ending with "x86_64-unknown-linux", for example: |
| 178 | | |
| 179 | | ghc-6.4.1.20050711-x86_64-unknown-linux.tar.bz2 |
| 180 | | |
| 181 | | GHC 6.4 had bugs on x86_64 which broke garbage collection and rules (regexps). |
| 182 | | These bugs were fixed in GHC CVS by around 11-May. There are hints on using |
| 183 | | snapshots at the end of this section. |
| 184 | | |
| 185 | | Here are the known problems: |
| 186 | | |
| 187 | | (1) GHC 6.4 has a garbage collector bug on x86_64 (64 bit Athlon) machines; |
| 188 | | users may see crashes complaining about "strange objects". |
| 189 | | |
| 190 | | A partial workaround is to avoid GC by requesting a large heap, using either |
| 191 | | command line arguments: |
| 192 | | |
| 193 | | ./pugs +RTS -A200M -RTS |
| 194 | | |
| 195 | | or an environment variable: |
| 196 | | |
| 197 | | GHCRTS='-A200M' |
| 198 | | |
| 199 | | These request a 200 MB heap, which is sufficient to run most programs. |
| 200 | | |
| 201 | | Running all tests unfortunately requires a lot more memory (perhaps 1000M). |
| 202 | | A possible alternative, which someone could explore and report on, would be |
| 203 | | to try using a 32-bit GHC instead. |
| 204 | | |
| 205 | | (2) Rules (regexps) may not work with GHC 6.4 on x86_64. Users may see |
| 206 | | "internal error: adjustor creation not supported on this platform". |
| 207 | | There is no known workaround. This bug has been fixed in current |
| 208 | | development snapshots. |
| 209 | | |
| 210 | | Hints on using a development snapshot of GHC: |
| 211 | | |
| 212 | | By far the simplest alternative is to use a "Stable" binary snapshot as |
| 213 | | described above. Once you untar it, see INSTALL. It's basically just |
| 214 | | |
| 215 | | ./configure |
| 216 | | make in-place or make install |
| 217 | | |
| 218 | | You could instead build from source. Note that this will take a long time, |
| 219 | | and that it may not work. Your best bet is to use a recent "Stable" source |
| 220 | | snapshot. Alternately, you might use cvs to grab your own snapshot: |
| 221 | | |
| 222 | | CVSROOT=:pserver:anoncvs@glass.cse.ogi.edu:/cvs; export CVSROOT |
| 223 | | cvs login # password cvs |
| 224 | | cvs checkout fpconfig |
| 225 | | cd fptools |
| 226 | | cvs checkout ghc hslibs libraries happy alex |
| 227 | | |
| 228 | | autoreconf |
| 229 | | ./configure |
| 230 | | make |
| 231 | | make install |
| 232 | | |
| 233 | | There are no guarantees with a CVS snapshot. It may not even compile. |
| | 172 | GHC 6.4.1 or later is required. |