| 1 | |
|---|
| 2 | New patches: |
|---|
| 3 | |
|---|
| 4 | [Don't link the GHC library with hschooks.o |
|---|
| 5 | Lemmih <lemmih@gmail.com>**20060119191003] { |
|---|
| 6 | hunk ./ghc/compiler/Makefile 759 |
|---|
| 7 | -LIBOBJS = $(filter-out $(odir)/main/Main.o, $(OBJS)) |
|---|
| 8 | +LIBOBJS = $(filter-out $(odir)/main/Main.o $(odir)/parser/hschooks.o, $(OBJS)) |
|---|
| 9 | } |
|---|
| 10 | |
|---|
| 11 | Context: |
|---|
| 12 | |
|---|
| 13 | [test |
|---|
| 14 | Simon Marlow <simonmar@microsoft.com>**20060119164155] |
|---|
| 15 | [[project @ 2006-01-19 16:15:58 by simonmar] |
|---|
| 16 | simonmar**20060119161558 |
|---|
| 17 | omit the Main module from libHSghc.a |
|---|
| 18 | ] |
|---|
| 19 | [[project @ 2006-01-19 16:11:04 by simonmar] |
|---|
| 20 | simonmar**20060119161104 |
|---|
| 21 | exposed-modules should include Config |
|---|
| 22 | ] |
|---|
| 23 | [[project @ 2006-01-19 02:15:38 by sof] |
|---|
| 24 | sof**20060119021538 |
|---|
| 25 | tryPutMVarzh_fast: make it work in the non-full case. |
|---|
| 26 | |
|---|
| 27 | Merge to STABLE. |
|---|
| 28 | ] |
|---|
| 29 | [respect the -q switch in this script |
|---|
| 30 | Simon Marlow <simonmar@microsoft.com>**20060119095759] |
|---|
| 31 | [Hack around whatsnew failing if there are no changes |
|---|
| 32 | Ian Lynagh <igloo@earth.li>**20060113231249] |
|---|
| 33 | [Pass anything through to darcs and let it do the failing on bad commands |
|---|
| 34 | Ian Lynagh <igloo@earth.li>**20060113212420] |
|---|
| 35 | [[project @ 2006-01-18 12:16:06 by simonpj] |
|---|
| 36 | simonpj**20060118121606 |
|---|
| 37 | Check for constructors in type signatures |
|---|
| 38 | ] |
|---|
| 39 | [[project @ 2006-01-18 12:15:37 by simonpj] |
|---|
| 40 | simonpj**20060118121537 |
|---|
| 41 | Expunge all mention of CCallable/CReturnable |
|---|
| 42 | ] |
|---|
| 43 | [[project @ 2006-01-18 11:13:06 by simonpj] |
|---|
| 44 | simonpj**20060118111306 |
|---|
| 45 | Ghci wibble; weaken assert |
|---|
| 46 | ] |
|---|
| 47 | [[project @ 2006-01-18 11:00:35 by simonmar] |
|---|
| 48 | simonmar**20060118110035 |
|---|
| 49 | Remove dead code |
|---|
| 50 | ] |
|---|
| 51 | [[project @ 2006-01-18 10:59:54 by simonmar] |
|---|
| 52 | simonmar**20060118105954 |
|---|
| 53 | Remove dead panic |
|---|
| 54 | ] |
|---|
| 55 | [[project @ 2006-01-18 10:58:15 by simonmar] |
|---|
| 56 | simonmar**20060118105815 |
|---|
| 57 | Remove dead error |
|---|
| 58 | |
|---|
| 59 | (darcs patch from Ian Lynagh) |
|---|
| 60 | ] |
|---|
| 61 | [[project @ 2006-01-18 10:49:32 by simonmar] |
|---|
| 62 | simonmar**20060118104932 |
|---|
| 63 | Implement :main (see ticket #662) |
|---|
| 64 | |
|---|
| 65 | Patch from Volker Stolz, minor mods by me |
|---|
| 66 | |
|---|
| 67 | When matching commands, we now look for (a) an exact match, and (b) |
|---|
| 68 | the first prefix match we find in the list. This is so that :module |
|---|
| 69 | can still be abbreviated by :m, to avoid surprise. |
|---|
| 70 | |
|---|
| 71 | Docs still to do. |
|---|
| 72 | ] |
|---|
| 73 | [[project @ 2006-01-18 10:40:46 by simonmar] |
|---|
| 74 | simonmar**20060118104046 |
|---|
| 75 | add a couple of missing symbols |
|---|
| 76 | ] |
|---|
| 77 | [[project @ 2006-01-18 10:31:50 by simonmar] |
|---|
| 78 | simonmar**20060118103150 |
|---|
| 79 | - fix a mixup in Capability.c regarding signals: signals_pending() is not |
|---|
| 80 | used in THREADED_RTS |
|---|
| 81 | |
|---|
| 82 | - some cleanups and warning removal while I'm here |
|---|
| 83 | ] |
|---|
| 84 | [[project @ 2006-01-18 10:06:36 by simonmar] |
|---|
| 85 | simonmar**20060118100636 |
|---|
| 86 | Fix build on 5.04.x again |
|---|
| 87 | ] |
|---|
| 88 | [[project @ 2006-01-17 16:13:18 by simonmar] |
|---|
| 89 | simonmar**20060117161318 |
|---|
| 90 | Improve the GC behaviour of IORefs (see Ticket #650). |
|---|
| 91 | |
|---|
| 92 | This is a small change to the way IORefs interact with the GC, which |
|---|
| 93 | should improve GC performance for programs with plenty of IORefs. |
|---|
| 94 | |
|---|
| 95 | Previously we had a single closure type for mutable variables, |
|---|
| 96 | MUT_VAR. Mutable variables were *always* on the mutable list in older |
|---|
| 97 | generations, and always traversed on every GC. |
|---|
| 98 | |
|---|
| 99 | Now, we have two closure types: MUT_VAR_CLEAN and MUT_VAR_DIRTY. The |
|---|
| 100 | latter is on the mutable list, but the former is not. (NB. this |
|---|
| 101 | differs from MUT_ARR_PTRS_CLEAN and MUT_ARR_PTRS_DIRTY, both of which |
|---|
| 102 | are on the mutable list). writeMutVar# now implements a write |
|---|
| 103 | barrier, by calling dirty_MUT_VAR() in the runtime, that does the |
|---|
| 104 | necessary modification of MUT_VAR_CLEAN into MUT_VAR_DIRY, and adding |
|---|
| 105 | to the mutable list if necessary. |
|---|
| 106 | |
|---|
| 107 | This results in some pretty dramatic speedups for GHC itself. I've |
|---|
| 108 | just measureed a 30% overall speedup compiling a 31-module program |
|---|
| 109 | (anna) with the default heap settings :-D |
|---|
| 110 | ] |
|---|
| 111 | [[project @ 2006-01-17 16:03:47 by simonmar] |
|---|
| 112 | simonmar**20060117160347 |
|---|
| 113 | Improve the GC behaviour of IOArrays/STArrays |
|---|
| 114 | |
|---|
| 115 | See Ticket #650 |
|---|
| 116 | |
|---|
| 117 | This is a small change to the way mutable arrays interact with the GC, |
|---|
| 118 | that can have a dramatic effect on performance, and make tricks with |
|---|
| 119 | unsafeThaw/unsafeFreeze redundant. Data.HashTable should be faster |
|---|
| 120 | now (I haven't measured it yet). |
|---|
| 121 | |
|---|
| 122 | We now have two mutable array closure types, MUT_ARR_PTRS_CLEAN and |
|---|
| 123 | MUT_ARR_PTRS_DIRTY. Both are on the mutable list if the array is in |
|---|
| 124 | an old generation. writeArray# sets the type to MUT_ARR_PTRS_DIRTY. |
|---|
| 125 | The garbage collector can set the type to MUT_ARR_PTRS_CLEAN if it |
|---|
| 126 | finds that no element of the array points into a younger generation |
|---|
| 127 | (discovering this required a small addition to evacuate(), but rough |
|---|
| 128 | tests indicate that it doesn't measurably affect performance). |
|---|
| 129 | |
|---|
| 130 | NOTE: none of this affects unboxed arrays (IOUArray/STUArray), only |
|---|
| 131 | boxed arrays (IOArray/STArray). |
|---|
| 132 | |
|---|
| 133 | We could go further and extend the DIRTY bit to be per-block rather |
|---|
| 134 | than for the whole array, but for now this is an easy improvement. |
|---|
| 135 | ] |
|---|
| 136 | [[project @ 2006-01-17 13:50:06 by simonmar] |
|---|
| 137 | simonmar**20060117135006 |
|---|
| 138 | statDescribeGens: count large blocks in the "live" figure |
|---|
| 139 | ] |
|---|
| 140 | [[project @ 2006-01-17 13:28:01 by simonmar] |
|---|
| 141 | simonmar**20060117132801 |
|---|
| 142 | take into account unscavenged copied words in +RTS -t stats. |
|---|
| 143 | ] |
|---|
| 144 | [[project @ 2006-01-17 02:13:16 by wolfgang] |
|---|
| 145 | wolfgang**20060117021316 |
|---|
| 146 | Linux/PPC64: remove some dead code that accidentally slipped in. |
|---|
| 147 | |
|---|
| 148 | MERGE TO STABLE |
|---|
| 149 | ] |
|---|
| 150 | [[project @ 2006-01-17 01:51:56 by wolfgang] |
|---|
| 151 | wolfgang**20060117015156 |
|---|
| 152 | Darwin/PPC: |
|---|
| 153 | Make StgRunIsImplementedInAssembler non-static; gcc has recently acquired |
|---|
| 154 | a habit of dead-stripping it. |
|---|
| 155 | |
|---|
| 156 | MERGE TO STABLE |
|---|
| 157 | ] |
|---|
| 158 | [[project @ 2006-01-16 16:38:24 by simonmar] |
|---|
| 159 | simonmar**20060116163825 |
|---|
| 160 | Default signal handlers weren't being installed; amazing that this has |
|---|
| 161 | been broken ever since I rearranged the signal handling code. |
|---|
| 162 | ] |
|---|
| 163 | [improvements to darcs-all |
|---|
| 164 | Simon Marlow <simonmar@microsoft.com>**20060113163207 |
|---|
| 165 | - get from the same repo as the main GHC repo, if that was a local filesystem |
|---|
| 166 | - allow darcs whatsnew |
|---|
| 167 | - use --repodir if possible |
|---|
| 168 | ] |
|---|
| 169 | [Add infrastructure for multiple library packages |
|---|
| 170 | Simon Marlow <simonmar@microsoft.com>**20060113150505 |
|---|
| 171 | The ./darcs-all script at the top level is an easier way to do darcs |
|---|
| 172 | pull/push/get on the whole tree (it should probably allow more |
|---|
| 173 | commands; I'll fix that later). |
|---|
| 174 | |
|---|
| 175 | libraries/default-packages is a list of darcs repositories with which |
|---|
| 176 | to populate the libraries tree. |
|---|
| 177 | |
|---|
| 178 | ] |
|---|
| 179 | [Add a skeleton libraries directory |
|---|
| 180 | Simon Marlow <simonmar@microsoft.com>**20060113131949 |
|---|
| 181 | Adding files from libraries that aren't in the other |
|---|
| 182 | packages sub-repos. I haven't bothered to try to keep |
|---|
| 183 | history for these files, for history go back to the CVS |
|---|
| 184 | repo. |
|---|
| 185 | ] |
|---|
| 186 | [[project @ 2006-01-12 16:16:28 by simonmar] |
|---|
| 187 | simonmar**20060112161628 |
|---|
| 188 | GHC.runStmt: run the statement in a new thread to insulate the |
|---|
| 189 | environment from bad things that the user code might do, such as fork |
|---|
| 190 | a thread to send an exception back at a later time. In order to do |
|---|
| 191 | this, we had to keep track of which thread the ^C exception should go |
|---|
| 192 | to in a global variable. |
|---|
| 193 | |
|---|
| 194 | Also, bullet-proof the top-level exception handler in GHCi a bit; |
|---|
| 195 | there was a small window where an exception could get through, so if |
|---|
| 196 | you lean on ^C for a while then press enter you could cause GHCi to |
|---|
| 197 | exit. |
|---|
| 198 | ] |
|---|
| 199 | [[project @ 2006-01-12 14:42:25 by simonmar] |
|---|
| 200 | simonmar**20060112144225 |
|---|
| 201 | +RTS -S: replace "collected" with "copied", which is more useful. |
|---|
| 202 | +RTS -Dg: print size of mutable list, and breakdown by type of closure |
|---|
| 203 | (MUT_VAR, MUT_ARR, others). |
|---|
| 204 | ] |
|---|
| 205 | [[project @ 2006-01-12 13:49:24 by simonmar] |
|---|
| 206 | simonmar**20060112134924 |
|---|
| 207 | fix calculation of copied bytes, we had a words/bytes mismatch when |
|---|
| 208 | adding the size of the mutable list |
|---|
| 209 | ] |
|---|
| 210 | [[project @ 2006-01-12 12:41:03 by simonmar] |
|---|
| 211 | simonmar**20060112124103 |
|---|
| 212 | time_str: |
|---|
| 213 | - use ctime_r if available |
|---|
| 214 | - avoid use of strcpy on overlapping regions |
|---|
| 215 | |
|---|
| 216 | Ticket #480 (patch modified by me) |
|---|
| 217 | ] |
|---|
| 218 | [[project @ 2006-01-12 12:40:01 by simonmar] |
|---|
| 219 | simonmar**20060112124001 |
|---|
| 220 | check for ctime_r |
|---|
| 221 | ] |
|---|
| 222 | [[project @ 2006-01-12 10:04:36 by simonmar] |
|---|
| 223 | simonmar**20060112100436 |
|---|
| 224 | Document that source files are ASCII or UTF-8 |
|---|
| 225 | ] |
|---|
| 226 | [[project @ 2006-01-12 09:33:16 by simonmar] |
|---|
| 227 | simonmar**20060112093316 |
|---|
| 228 | put unicode keywords under -fglasgow-exts, they aren't Hasell98 |
|---|
| 229 | ] |
|---|
| 230 | [[project @ 2006-01-11 16:58:53 by simonmar] |
|---|
| 231 | simonmar**20060111165853 |
|---|
| 232 | MAYBE_GC: we should check alloc_blocks in addition to CurrentNursery, |
|---|
| 233 | since some allocateLocal calls don't allocate from the nursery. |
|---|
| 234 | ] |
|---|
| 235 | [[project @ 2006-01-11 13:12:09 by simonmar] |
|---|
| 236 | simonmar**20060111131209 |
|---|
| 237 | fix string desugaring: we can only use the ASCII unpackCString# if all |
|---|
| 238 | the chars are <= 0x7F, not <= 0xFF. |
|---|
| 239 | |
|---|
| 240 | (fixes recent breakage in nofib/real/compress2) |
|---|
| 241 | ] |
|---|
| 242 | [[project @ 2006-01-11 12:20:30 by simonmar] |
|---|
| 243 | simonmar**20060111122030 |
|---|
| 244 | Add -threaded when building stage2+ again |
|---|
| 245 | ] |
|---|
| 246 | [[project @ 2006-01-11 12:17:41 by simonmar] |
|---|
| 247 | simonmar**20060111121741 |
|---|
| 248 | understand Unicode lambda as a synonym for \ |
|---|
| 249 | ] |
|---|
| 250 | [[project @ 2006-01-10 14:47:23 by simonmar] |
|---|
| 251 | simonmar**20060110144723 |
|---|
| 252 | Fix a comment |
|---|
| 253 | ] |
|---|
| 254 | [[project @ 2006-01-10 14:46:50 by simonmar] |
|---|
| 255 | simonmar**20060110144650 |
|---|
| 256 | Char primops: the Char# rep is wordRep, not I32 (fixed -dcmm-lint |
|---|
| 257 | problems on x86_64) |
|---|
| 258 | ] |
|---|
| 259 | [[project @ 2006-01-10 14:39:38 by simonmar] |
|---|
| 260 | simonmar**20060110143938 |
|---|
| 261 | prevChar: don't back up over decoding errors |
|---|
| 262 | ] |
|---|
| 263 | [[project @ 2006-01-10 14:39:01 by simonmar] |
|---|
| 264 | simonmar**20060110143901 |
|---|
| 265 | Add a TODO |
|---|
| 266 | ] |
|---|
| 267 | [[project @ 2006-01-10 14:37:53 by simonmar] |
|---|
| 268 | simonmar**20060110143753 |
|---|
| 269 | reportLexError: don't back up one character, the buffer returned by |
|---|
| 270 | Alex is the one *before* the erroneous lexeme started. |
|---|
| 271 | ] |
|---|
| 272 | [[project @ 2006-01-10 13:35:04 by simonmar] |
|---|
| 273 | simonmar**20060110133504 |
|---|
| 274 | Z-encode cost centre symbols when printing them out. |
|---|
| 275 | ] |
|---|
| 276 | [[project @ 2006-01-10 09:47:51 by simonmar] |
|---|
| 277 | simonmar**20060110094751 |
|---|
| 278 | Fix compilation with GHC 6.2.x, hopefully |
|---|
| 279 | ] |
|---|
| 280 | [[project @ 2006-01-10 09:05:18 by simonmar] |
|---|
| 281 | simonmar**20060110090518 |
|---|
| 282 | add file argument to docs for +RTS -t |
|---|
| 283 | ] |
|---|
| 284 | [[project @ 2006-01-09 14:38:01 by simonmar] |
|---|
| 285 | simonmar**20060109143801 |
|---|
| 286 | Initialise part of a structure to NULL to avoid a gcc warning |
|---|
| 287 | I haven't checked the code on this one to be sure this isn't just a bug. |
|---|
| 288 | ] |
|---|
| 289 | [[project @ 2006-01-09 14:37:07 by simonmar] |
|---|
| 290 | simonmar**20060109143707 |
|---|
| 291 | Put entry_is_read_only and tvar_is_locked |
|---|
| 292 | ] |
|---|
| 293 | [[project @ 2006-01-09 14:35:53 by simonmar] |
|---|
| 294 | simonmar**20060109143553 |
|---|
| 295 | Avoid "dereferencing type-punned pointer will break strict-aliasing rules" warning |
|---|
| 296 | ] |
|---|
| 297 | [[project @ 2006-01-09 14:35:31 by simonmar] |
|---|
| 298 | simonmar**20060109143531 |
|---|
| 299 | Avoid "dereferencing type-punned pointer will break strict-aliasing rules" warnings |
|---|
| 300 | ] |
|---|
| 301 | [[project @ 2006-01-09 14:33:50 by simonmar] |
|---|
| 302 | simonmar**20060109143350 |
|---|
| 303 | Remove duplicate imports |
|---|
| 304 | ] |
|---|
| 305 | [[project @ 2006-01-09 14:33:21 by simonmar] |
|---|
| 306 | simonmar**20060109143321 |
|---|
| 307 | Remove dead panic |
|---|
| 308 | ] |
|---|
| 309 | [[project @ 2006-01-09 14:32:57 by simonmar] |
|---|
| 310 | simonmar**20060109143257 |
|---|
| 311 | Put a dummy record initialisation in to fix a warning |
|---|
| 312 | ] |
|---|
| 313 | [[project @ 2006-01-09 14:32:31 by simonmar] |
|---|
| 314 | simonmar**20060109143231 |
|---|
| 315 | Use correct format specifier for a size_t value |
|---|
| 316 | ] |
|---|
| 317 | [[project @ 2006-01-09 14:32:03 by simonmar] |
|---|
| 318 | simonmar**20060109143203 |
|---|
| 319 | Include string.h in unlit, fixing gcc "implicit declaration" warnings |
|---|
| 320 | ] |
|---|
| 321 | [[project @ 2006-01-09 14:31:37 by simonmar] |
|---|
| 322 | simonmar**20060109143137 |
|---|
| 323 | Include stdlib in lndir, fixing gcc "implicit declaration" warnings |
|---|
| 324 | ] |
|---|
| 325 | [[project @ 2006-01-09 14:25:44 by simonmar] |
|---|
| 326 | simonmar**20060109142544] |
|---|
| 327 | [[project @ 2006-01-09 13:29:02 by simonmar] |
|---|
| 328 | simonmar**20060109132902 |
|---|
| 329 | Avoid desugaring bug in HEAD (see test ds057). |
|---|
| 330 | ] |
|---|
| 331 | [[project @ 2006-01-09 13:25:50 by simonmar] |
|---|
| 332 | simonmar**20060109132550 |
|---|
| 333 | Fix up to compile with GHC 5.04.x again. |
|---|
| 334 | |
|---|
| 335 | Also includes a fix for a memory error I discovered along the way: |
|---|
| 336 | should fix the "scavenge_one" crash in the stage2 build of recent |
|---|
| 337 | HEADs. |
|---|
| 338 | ] |
|---|
| 339 | [[project @ 2006-01-09 10:31:14 by simonmar] |
|---|
| 340 | simonmar**20060109103114 |
|---|
| 341 | ord# and chr# should be no-ops, not conversions between wordRep and I32. |
|---|
| 342 | ] |
|---|
| 343 | [[project @ 2006-01-06 16:30:17 by simonmar] |
|---|
| 344 | simonmar**20060106163019 |
|---|
| 345 | Add support for UTF-8 source files |
|---|
| 346 | |
|---|
| 347 | GHC finally has support for full Unicode in source files. Source |
|---|
| 348 | files are now assumed to be UTF-8 encoded, and the full range of |
|---|
| 349 | Unicode characters can be used, with classifications recognised using |
|---|
| 350 | the implementation from Data.Char. This incedentally means that only |
|---|
| 351 | the stage2 compiler will recognise Unicode in source files, because I |
|---|
| 352 | was too lazy to port the unicode classifier code into libcompat. |
|---|
| 353 | |
|---|
| 354 | Additionally, the following synonyms for keywords are now recognised: |
|---|
| 355 | |
|---|
| 356 | forall symbol (U+2200) forall |
|---|
| 357 | right arrow (U+2192) -> |
|---|
| 358 | left arrow (U+2190) <- |
|---|
| 359 | horizontal ellipsis (U+22EF) .. |
|---|
| 360 | |
|---|
| 361 | there are probably more things we could add here. |
|---|
| 362 | |
|---|
| 363 | This will break some source files if Latin-1 characters are being used. |
|---|
| 364 | In most cases this should result in a UTF-8 decoding error. Later on |
|---|
| 365 | if we want to support more encodings (perhaps with a pragma to specify |
|---|
| 366 | the encoding), I plan to do it by recoding into UTF-8 before parsing. |
|---|
| 367 | |
|---|
| 368 | Internally, there were some pretty big changes: |
|---|
| 369 | |
|---|
| 370 | - FastStrings are now stored in UTF-8 |
|---|
| 371 | |
|---|
| 372 | - Z-encoding has been moved right to the back end. Previously we |
|---|
| 373 | used to Z-encode every identifier on the way in for simplicity, |
|---|
| 374 | and only decode when we needed to show something to the user. |
|---|
| 375 | Instead, we now keep every string in its UTF-8 encoding, and |
|---|
| 376 | Z-encode right before printing it out. To avoid Z-encoding the |
|---|
| 377 | same string multiple times, the Z-encoding is cached inside the |
|---|
| 378 | FastString the first time it is requested. |
|---|
| 379 | |
|---|
| 380 | This speeds up the compiler - I've measured some definite |
|---|
| 381 | improvement in parsing at least, and I expect compilations overall |
|---|
| 382 | to be faster too. It also cleans up a lot of cruft from the |
|---|
| 383 | OccName interface. Z-encoding is nicely hidden inside the |
|---|
| 384 | Outputable instance for Names & OccNames now. |
|---|
| 385 | |
|---|
| 386 | - StringBuffers are UTF-8 too, and are now represented as |
|---|
| 387 | ForeignPtrs. |
|---|
| 388 | |
|---|
| 389 | - I've put together some test cases, not by any means exhaustive, |
|---|
| 390 | but there are some interesting UTF-8 decoding error cases that |
|---|
| 391 | aren't obvious. Also, take a look at unicode001.hs for a demo. |
|---|
| 392 | ] |
|---|
| 393 | [[project @ 2006-01-06 11:04:07 by simonmar] |
|---|
| 394 | simonmar**20060106110407 |
|---|
| 395 | Document -Rghc-timing |
|---|
| 396 | ] |
|---|
| 397 | [[project @ 2006-01-05 13:10:55 by simonpj] |
|---|
| 398 | simonpj**20060105131055 |
|---|
| 399 | MERGE TO STABLE |
|---|
| 400 | |
|---|
| 401 | This commit fixes a nasty problem discovered by Volker Stolz. |
|---|
| 402 | The problem is described in Note [Multiple instantiation] in |
|---|
| 403 | TcExpr, which is reproduced below. |
|---|
| 404 | |
|---|
| 405 | (Core Lint identifies the problem, incidentally.) |
|---|
| 406 | |
|---|
| 407 | tc200 is a test case. |
|---|
| 408 | |
|---|
| 409 | |
|---|
| 410 | Note [Multiple instantiation] |
|---|
| 411 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|---|
| 412 | We are careful never to make a MethodInst that has, as its meth_id, another MethodInst. |
|---|
| 413 | For example, consider |
|---|
| 414 | f :: forall a. Eq a => forall b. Ord b => a -> b |
|---|
| 415 | At a call to f, at say [Int, Bool], it's tempting to translate the call to |
|---|
| 416 | |
|---|
| 417 | f_m1 |
|---|
| 418 | where |
|---|
| 419 | f_m1 :: forall b. Ord b => Int -> b |
|---|
| 420 | f_m1 = f Int dEqInt |
|---|
| 421 | |
|---|
| 422 | f_m2 :: Int -> Bool |
|---|
| 423 | f_m2 = f_m1 Bool dOrdBool |
|---|
| 424 | |
|---|
| 425 | But notice that f_m2 has f_m1 as its meth_id. Now the danger is that if we do |
|---|
| 426 | a tcSimplCheck with a Given f_mx :: f Int dEqInt, we may make a binding |
|---|
| 427 | f_m1 = f_mx |
|---|
| 428 | But it's entirely possible that f_m2 will continue to float out, because it |
|---|
| 429 | mentions no type variables. Result, f_m1 isn't in scope. |
|---|
| 430 | |
|---|
| 431 | Here's a concrete example that does this (test tc200): |
|---|
| 432 | |
|---|
| 433 | class C a where |
|---|
| 434 | f :: Eq b => b -> a -> Int |
|---|
| 435 | baz :: Eq a => Int -> a -> Int |
|---|
| 436 | |
|---|
| 437 | instance C Int where |
|---|
| 438 | baz = f |
|---|
| 439 | |
|---|
| 440 | Current solution: only do the "method sharing" thing for the first type/dict |
|---|
| 441 | application, not for the iterated ones. A horribly subtle point. |
|---|
| 442 | ] |
|---|
| 443 | [[project @ 2006-01-05 10:02:58 by simonpj] |
|---|
| 444 | simonpj**20060105100258 |
|---|
| 445 | 'newtype' declarations are now parsed exactly like data type declarations, |
|---|
| 446 | so that you can declare newtypes using GADT syntax. But that means we |
|---|
| 447 | must check all the newtype restrictions separately, and I mised one. |
|---|
| 448 | This commit checks that there is no existential context on the newtype. |
|---|
| 449 | |
|---|
| 450 | Test is tcfail156 |
|---|
| 451 | ] |
|---|
| 452 | [[project @ 2006-01-05 09:42:54 by simonmar] |
|---|
| 453 | simonmar**20060105094254 |
|---|
| 454 | This file is not quite POSIX compliant; hopefully fix build on MacOS X |
|---|
| 455 | (Tiger) |
|---|
| 456 | ] |
|---|
| 457 | [[project @ 2006-01-04 12:51:59 by simonmar] |
|---|
| 458 | simonmar**20060104125159 |
|---|
| 459 | remove duplicate definition |
|---|
| 460 | ] |
|---|
| 461 | [[project @ 2006-01-04 12:49:38 by simonmar] |
|---|
| 462 | simonmar**20060104124938 |
|---|
| 463 | make 3.79.1 is ok |
|---|
| 464 | ] |
|---|
| 465 | [[project @ 2006-01-04 11:52:54 by simonpj] |
|---|
| 466 | simonpj**20060104115254 |
|---|
| 467 | Resolve ticket 644; crash when data con returns wrong type |
|---|
| 468 | ] |
|---|
| 469 | [[project @ 2006-01-03 16:15:37 by simonmar] |
|---|
| 470 | simonmar**20060103161537 |
|---|
| 471 | setContextAfterLoad: try to load a target if possible, otherwise load |
|---|
| 472 | the topmost module in the graph. Previously we were loading the first |
|---|
| 473 | module in the list, which happened to be right a lot of the time, but |
|---|
| 474 | not always. |
|---|
| 475 | |
|---|
| 476 | Fixes ticket #642 |
|---|
| 477 | ] |
|---|
| 478 | [[project @ 2006-01-03 16:14:20 by simonmar] |
|---|
| 479 | simonmar**20060103161420 |
|---|
| 480 | export ModLocation(..) |
|---|
| 481 | ] |
|---|
| 482 | [[project @ 2006-01-03 12:57:10 by simonmar] |
|---|
| 483 | simonmar**20060103125710 |
|---|
| 484 | sanity bugfix: use TSO_OFFSET_stack instead of OFFSET_stack |
|---|
| 485 | ] |
|---|
| 486 | [[project @ 2006-01-03 12:56:10 by simonmar] |
|---|
| 487 | simonmar**20060103125610 |
|---|
| 488 | two fixes for the case when a (synchronous) exception is propagated to |
|---|
| 489 | the top of a thread's stack, i.e. it is unhandled. |
|---|
| 490 | |
|---|
| 491 | 1. store the exception in the right place (we were using the |
|---|
| 492 | OFFSET_StgTSO_stack macro and not accounting for the TSO's |
|---|
| 493 | header size) |
|---|
| 494 | |
|---|
| 495 | 2. put an stg_enter_info on the stack so that the GC can understand |
|---|
| 496 | this thread's stack. |
|---|
| 497 | ] |
|---|
| 498 | [[project @ 2006-01-03 12:53:40 by simonmar] |
|---|
| 499 | simonmar**20060103125340 |
|---|
| 500 | for TSO fields, define a Cmm macro TSO_OFFSET_xxx to get the actual |
|---|
| 501 | offset including the header and variable parts (we were misusing the |
|---|
| 502 | headerless OFFSET_xxx macros in a couple of places). |
|---|
| 503 | ] |
|---|
| 504 | [[project @ 2006-01-03 12:16:26 by simonmar] |
|---|
| 505 | simonmar**20060103121626 |
|---|
| 506 | wibble in panic message |
|---|
| 507 | ] |
|---|
| 508 | [[project @ 2006-01-03 11:06:45 by simonmar] |
|---|
| 509 | simonmar**20060103110645 |
|---|
| 510 | emit an error message if GNU make 3.7x is found (3.80 is required). |
|---|
| 511 | ] |
|---|
| 512 | [[project @ 2006-01-03 11:01:09 by simonmar] |
|---|
| 513 | simonmar**20060103110109 |
|---|
| 514 | mention that GNU make 3.80 is required. |
|---|
| 515 | ] |
|---|
| 516 | [[project @ 2005-12-29 12:06:13 by simonpj] |
|---|
| 517 | simonpj**20051229120613 |
|---|
| 518 | Trim imports |
|---|
| 519 | ] |
|---|
| 520 | [[project @ 2005-12-29 09:19:24 by simonpj] |
|---|
| 521 | simonpj**20051229091924 |
|---|
| 522 | Document SPECIALISE INLNE |
|---|
| 523 | ] |
|---|
| 524 | [[project @ 2005-12-21 11:43:29 by simonpj] |
|---|
| 525 | simonpj**20051221114329 |
|---|
| 526 | Missing Show instance for FreeRegs on PowerPC |
|---|
| 527 | ] |
|---|
| 528 | [[project @ 2005-12-19 13:08:19 by simonpj] |
|---|
| 529 | simonpj**20051219130819 |
|---|
| 530 | Wibble to printing FunTyCon in GHCi that makes :b GHC.Base work |
|---|
| 531 | ] |
|---|
| 532 | [[project @ 2005-12-19 11:00:59 by simonpj] |
|---|
| 533 | simonpj**20051219110059 |
|---|
| 534 | Marginally improve the error message on a failure in DsMeta |
|---|
| 535 | ] |
|---|
| 536 | [[project @ 2005-12-19 11:00:40 by simonpj] |
|---|
| 537 | simonpj**20051219110040 |
|---|
| 538 | Tiny fix to patterns with type sigs |
|---|
| 539 | ] |
|---|
| 540 | [[project @ 2005-12-19 09:48:14 by simonpj] |
|---|
| 541 | simonpj**20051219094814 |
|---|
| 542 | Allow trailing parens in GADT signatures |
|---|
| 543 | ] |
|---|
| 544 | [[project @ 2005-12-19 09:32:33 by simonpj] |
|---|
| 545 | simonpj**20051219093233 |
|---|
| 546 | ** Wibble to Friday's commit (fixes HEAD build) ** |
|---|
| 547 | |
|---|
| 548 | ----------------------------------------- |
|---|
| 549 | Make deriving work for infix constructors |
|---|
| 550 | ----------------------------------------- |
|---|
| 551 | |
|---|
| 552 | Merge to stable branch |
|---|
| 553 | |
|---|
| 554 | Back quotes were not being done correctly in deriving Read and Show. |
|---|
| 555 | Now they are. I think. |
|---|
| 556 | |
|---|
| 557 | Test is drvrun018 |
|---|
| 558 | ] |
|---|
| 559 | [[project @ 2005-12-16 16:04:03 by simonpj] |
|---|
| 560 | simonpj**20051216160403 |
|---|
| 561 | ----------------------------------------- |
|---|
| 562 | Make deriving work for infix constructors |
|---|
| 563 | ----------------------------------------- |
|---|
| 564 | |
|---|
| 565 | Merge to stable branch |
|---|
| 566 | |
|---|
| 567 | Back quotes were not being done correctly in deriving Read and Show. |
|---|
| 568 | Now they are. I think. |
|---|
| 569 | |
|---|
| 570 | Test is drvrun018 |
|---|
| 571 | ] |
|---|
| 572 | [[project @ 2005-12-16 15:17:29 by simonpj] |
|---|
| 573 | simonpj**20051216151729 |
|---|
| 574 | Document that type variables in instance context must be distinct; merge to stable |
|---|
| 575 | ] |
|---|
| 576 | [[project @ 2005-12-16 15:15:08 by simonpj] |
|---|
| 577 | simonpj**20051216151508 |
|---|
| 578 | ----------------------------------------- |
|---|
| 579 | Test for repated type variables in an instance decl context; |
|---|
| 580 | this should require -fallow-undecidable-instances' |
|---|
| 581 | ----------------------------------------- |
|---|
| 582 | |
|---|
| 583 | Merge to stable branch |
|---|
| 584 | ] |
|---|
| 585 | [[project @ 2005-12-16 11:41:51 by simonmar] |
|---|
| 586 | simonmar**20051216114151 |
|---|
| 587 | Avoid building the GHCi version of this lib |
|---|
| 588 | ] |
|---|
| 589 | [[project @ 2005-12-16 11:26:01 by simonmar] |
|---|
| 590 | simonmar**20051216112601 |
|---|
| 591 | Use standard calloc rather than rolling our own. |
|---|
| 592 | |
|---|
| 593 | As a small bonus, the standard libc version is more effecient about zeroing |
|---|
| 594 | the memory. |
|---|
| 595 | |
|---|
| 596 | From: Duncan Coutts <duncan.coutts@worc.ox.ac.uk> |
|---|
| 597 | ] |
|---|
| 598 | [[project @ 2005-12-15 23:32:29 by desrt] |
|---|
| 599 | desrt**20051215233229 |
|---|
| 600 | (( PLEASE MERGE TO STABLE )) |
|---|
| 601 | |
|---|
| 602 | Linker.c: linux/ppc: We call mmap() to allocate additional pages to |
|---|
| 603 | create jump islands. In the case where no |
|---|
| 604 | additional memory was needed the mmap call was |
|---|
| 605 | being made with a size of 0 which would fail. |
|---|
| 606 | The call is now conditionalised and documentation |
|---|
| 607 | has been added to the code. Closes trac #439. |
|---|
| 608 | ] |
|---|
| 609 | [[project @ 2005-12-15 10:36:03 by simonmar] |
|---|
| 610 | simonmar**20051215103603 |
|---|
| 611 | ignore _darcs |
|---|
| 612 | ] |
|---|
| 613 | [[project @ 2005-12-15 10:05:54 by simonmar] |
|---|
| 614 | simonmar**20051215100554 |
|---|
| 615 | fix missing symbol |
|---|
| 616 | ] |
|---|
| 617 | [[project @ 2005-12-13 15:57:49 by simonmar] |
|---|
| 618 | simonmar**20051213155750 |
|---|
| 619 | Raise the (new) exception NestedAtomically when atomically is nested |
|---|
| 620 | (using unsafePerformIO). This is a small improvement over crashing. |
|---|
| 621 | ] |
|---|
| 622 | [[project @ 2005-12-13 12:52:25 by simonmar] |
|---|
| 623 | simonmar**20051213125225 |
|---|
| 624 | fix FAQ links |
|---|
| 625 | ] |
|---|
| 626 | [[project @ 2005-12-13 12:45:08 by simonmar] |
|---|
| 627 | simonmar**20051213124508 |
|---|
| 628 | the FAQ is now in the Wiki |
|---|
| 629 | ] |
|---|
| 630 | [[project @ 2005-12-13 12:42:51 by simonmar] |
|---|
| 631 | simonmar**20051213124251 |
|---|
| 632 | while I'm here, bring various other bits of this page up to date |
|---|
| 633 | ] |
|---|
| 634 | [[project @ 2005-12-13 12:26:06 by simonmar] |
|---|
| 635 | simonmar**20051213122606 |
|---|
| 636 | Update bug reporting instructions to point to the new bug tracker |
|---|
| 637 | ] |
|---|
| 638 | [[project @ 2005-12-13 12:18:51 by simonmar] |
|---|
| 639 | simonmar**20051213121851 |
|---|
| 640 | Update the bug reporting instructions, I've now installed a redirect from |
|---|
| 641 | |
|---|
| 642 | http://www.haskel.org/ghc/reportabug |
|---|
| 643 | |
|---|
| 644 | to the bug reporting instructions, just in case we want to move that |
|---|
| 645 | page in the future. |
|---|
| 646 | ] |
|---|
| 647 | [[project @ 2005-12-13 12:09:42 by simonmar] |
|---|
| 648 | simonmar**20051213120942 |
|---|
| 649 | In the panic message, point to the bug reporting page in the User's |
|---|
| 650 | Guide rather than directly to the bug reporting page. That way people |
|---|
| 651 | will see the bug reporting instructions as well as the direct link |
|---|
| 652 | (which has now changed). |
|---|
| 653 | ] |
|---|
| 654 | [[project @ 2005-12-13 11:30:33 by simonmar] |
|---|
| 655 | simonmar**20051213113033 |
|---|
| 656 | undo accidental commit of snapshot version number |
|---|
| 657 | ] |
|---|
| 658 | [[project @ 2005-12-12 15:06:11 by simonmar] |
|---|
| 659 | simonmar**20051212150611 |
|---|
| 660 | Add -threaded for stage[23] |
|---|
| 661 | ] |
|---|
| 662 | [[project @ 2005-12-12 14:22:30 by simonmar] |
|---|
| 663 | simonmar**20051212142230 |
|---|
| 664 | Prevent --: from being interpreted as a comment |
|---|
| 665 | ] |
|---|
| 666 | [[project @ 2005-12-09 11:35:44 by simonmar] |
|---|
| 667 | simonmar**20051209113544 |
|---|
| 668 | Make the front panel compile again, submitted by Duncan Coutts |
|---|
| 669 | <duncan.coutts@worc.ox.ac.uk>. From his email: |
|---|
| 670 | |
|---|
| 671 | Attached is a patch to port the GHC RTS font panel to Gtk+ 2.x rather |
|---|
| 672 | than the obsolete Gtk+ 1.2. |
|---|
| 673 | |
|---|
| 674 | There were basically two changes needed. Change the configure check to |
|---|
| 675 | look for the pkg-config utility rather than the old gtk-config. At it's |
|---|
| 676 | just checking for Gtk+ 2.0 or later. It may be that the new code |
|---|
| 677 | actually needs a slightly later version than that. I'm not quite sure. |
|---|
| 678 | |
|---|
| 679 | The other change was to convert the ghc-fontpanel.glade file to the |
|---|
| 680 | glade-2 format using the libglade-convert script and then to re-generate |
|---|
| 681 | the C code for constructing the GUI, that is the Vis*.c Vis*.h files in |
|---|
| 682 | ghc/rts. |
|---|
| 683 | |
|---|
| 684 | The front panel has been bit-rotting for quite some time so it has not |
|---|
| 685 | kept up with changes in the rts structures. So I had to comment out |
|---|
| 686 | references to 3 bits that no longer exist. I've left FIXMEs in the code |
|---|
| 687 | at the appropriate places so that someone wiser than me can make the |
|---|
| 688 | appropriate changes. |
|---|
| 689 | |
|---|
| 690 | So the thing does now build though I have no doubt that it will not run, |
|---|
| 691 | or at least will not do the right thing because it has not yet been |
|---|
| 692 | updated to the current state of the rts. However hopefully now that it |
|---|
| 693 | is at least buildable with a modern Gtk+ version someone else might be |
|---|
| 694 | able to fix it up. |
|---|
| 695 | |
|---|
| 696 | This also relates to trac ticket #599: |
|---|
| 697 | |
|---|
| 698 | http://cvs.haskell.org/trac/ghc/ticket/599 |
|---|
| 699 | ] |
|---|
| 700 | [[project @ 2005-12-02 15:16:08 by simonmar] |
|---|
| 701 | simonmar**20051202151608 |
|---|
| 702 | remove one mention of hslibs |
|---|
| 703 | ] |
|---|
| 704 | [[project @ 2005-12-02 14:22:06 by simonmar] |
|---|
| 705 | simonmar**20051202142206 |
|---|
| 706 | - remove hslibs link |
|---|
| 707 | - add Building Guide link |
|---|
| 708 | - remove the word "hierarchical" from "hierarchical libraries" |
|---|
| 709 | ] |
|---|
| 710 | [[project @ 2005-12-02 14:09:21 by simonmar] |
|---|
| 711 | simonmar**20051202140921 |
|---|
| 712 | revert rev. 1.22 again, just in case this is the cause of the |
|---|
| 713 | segfaults reported on OpenBSD and SuSE. |
|---|
| 714 | ] |
|---|
| 715 | [[project @ 2005-12-02 12:45:16 by simonmar] |
|---|
| 716 | simonmar**20051202124516 |
|---|
| 717 | Fix Windows build |
|---|
| 718 | |
|---|
| 719 | Patch submitted by: Esa Ilari Vuokko <eivuokko at gmail.com> |
|---|
| 720 | ] |
|---|
| 721 | [[project @ 2005-11-30 16:56:51 by simonmar] |
|---|
| 722 | simonmar**20051130165651 |
|---|
| 723 | fix bug in the case of an uncaught exception |
|---|
| 724 | ] |
|---|
| 725 | [[project @ 2005-11-30 15:58:47 by simonmar] |
|---|
| 726 | simonmar**20051130155847 |
|---|
| 727 | check for overrun of the fd_set, some OSs give you more descriptors |
|---|
| 728 | than FD_SETSIZE |
|---|
| 729 | ] |
|---|
| 730 | [[project @ 2005-11-30 14:20:06 by simonpj] |
|---|
| 731 | simonpj**20051130142006 |
|---|
| 732 | ----------------------------------------- |
|---|
| 733 | Fix 'mkName' operator in Template Haskell |
|---|
| 734 | so that it handles built-in syntax |
|---|
| 735 | ----------------------------------------- |
|---|
| 736 | |
|---|
| 737 | Merge to stable branch |
|---|
| 738 | |
|---|
| 739 | The 'mkName' function in Template Haskell wasn't dealing correctly with |
|---|
| 740 | built-in syntax. The parser generates Exact RdrNames for built-in syntax |
|---|
| 741 | operators, such as ':' and '[]'; and hence so should Convert. |
|---|
| 742 | |
|---|
| 743 | At the same time I'm now generating a better error message in TH when |
|---|
| 744 | you use a constructor as a variable or vice versa. |
|---|
| 745 | ] |
|---|
| 746 | [.hi is now boring |
|---|
| 747 | John Goerzen <jgoerzen@complete.org>**20051130185834] |
|---|
| 748 | [TAG Last state before ghc 6.4 branch split |
|---|
| 749 | John Goerzen <jgoerzen@complete.org>**20051130171550] |
|---|
| 750 | [Removed more obsolete dirs |
|---|
| 751 | John Goerzen <jgoerzen@complete.org>**20051130171526] |
|---|
| 752 | [Removed obsolete directories |
|---|
| 753 | John Goerzen <jgoerzen@complete.org>**20051130171453] |
|---|
| 754 | [TAG Initial conversion from CVS complete |
|---|
| 755 | John Goerzen <jgoerzen@complete.org>**20051130033234] |
|---|
| 756 | Patch bundle hash: |
|---|
| 757 | 9ca897ea4542128a808a28232b56167631ca1074 |
|---|