| 1 | Sun Sep 7 09:40:46 PDT 2008 |
|---|
| 2 | * #2533: Generic functions that take integral arguments should work the same way as their prelude counterparts |
|---|
| 3 | |
|---|
| 4 | New patches: |
|---|
| 5 | |
|---|
| 6 | [#2533: Generic functions that take integral arguments should work the same way as their prelude counterparts |
|---|
| 7 | **20080907164046] { |
|---|
| 8 | hunk ./report/haskell98-revised-bugs.html 144 |
|---|
| 9 | + |
|---|
| 10 | +<p><li> [September 2008] <strong>Page 187-188, Chapter 17, List |
|---|
| 11 | +utilities.</strong> The "<code>generic</code>" functions should behave |
|---|
| 12 | +the same way as the <tt>Prelude</tt> functions for negative |
|---|
| 13 | +arguments. The ones listed in the report call <tt>error</tt>, |
|---|
| 14 | +while the <tt>Prelude</tt> versions simply treat negative numbers |
|---|
| 15 | +as 0. The implementations are replaced by: |
|---|
| 16 | +<pre> |
|---|
| 17 | +genericTake :: (Integral a) => a -> [b] -> [b] |
|---|
| 18 | +genericTake n _ | n <= 0 = [] |
|---|
| 19 | +genericTake _ [] = [] |
|---|
| 20 | +genericTake n (x:xs) = x : genericTake (n-1) xs |
|---|
| 21 | + |
|---|
| 22 | +genericDrop :: (Integral a) => a -> [b] -> [b] |
|---|
| 23 | +genericDrop n xs | n <= 0 = xs |
|---|
| 24 | +genericDrop _ [] = [] |
|---|
| 25 | +genericDrop n (_:xs) = genericDrop (n-1) xs |
|---|
| 26 | + |
|---|
| 27 | +genericSplitAt :: (Integral a) => a -> [b] -> ([b],[b]) |
|---|
| 28 | +genericSplitAt n xs | n <= 0 = ([],xs) |
|---|
| 29 | +genericSplitAt _ [] = ([],[]) |
|---|
| 30 | +genericSplitAt n (x:xs) = (x:xs',xs'') where |
|---|
| 31 | + (xs',xs'') = genericSplitAt (n-1) xs |
|---|
| 32 | +</pre> |
|---|
| 33 | + |
|---|
| 34 | hunk ./report/lib-code/List.hs 184 |
|---|
| 35 | +genericTake n _ | n <= 0 = [] |
|---|
| 36 | hunk ./report/lib-code/List.hs 186 |
|---|
| 37 | -genericTake 0 _ = [] |
|---|
| 38 | -genericTake n (x:xs) |
|---|
| 39 | - | n > 0 = x : genericTake (n-1) xs |
|---|
| 40 | - | otherwise = error "List.genericTake: negative argument" |
|---|
| 41 | +genericTake n (x:xs) = x : genericTake (n-1) xs |
|---|
| 42 | hunk ./report/lib-code/List.hs 189 |
|---|
| 43 | -genericDrop 0 xs = xs |
|---|
| 44 | +genericDrop n xs | n <= 0 = xs |
|---|
| 45 | hunk ./report/lib-code/List.hs 191 |
|---|
| 46 | -genericDrop n (_:xs) |
|---|
| 47 | - | n > 0 = genericDrop (n-1) xs |
|---|
| 48 | - | otherwise = error "List.genericDrop: negative argument" |
|---|
| 49 | +genericDrop n (_:xs) = genericDrop (n-1) xs |
|---|
| 50 | hunk ./report/lib-code/List.hs 194 |
|---|
| 51 | -genericSplitAt 0 xs = ([],xs) |
|---|
| 52 | +genericSplitAt n xs | n <= 0 = ([],xs) |
|---|
| 53 | hunk ./report/lib-code/List.hs 196 |
|---|
| 54 | -genericSplitAt n (x:xs) |
|---|
| 55 | - | n > 0 = (x:xs',xs'') |
|---|
| 56 | - | otherwise = error "List.genericSplitAt: negative argument" |
|---|
| 57 | - where (xs',xs'') = genericSplitAt (n-1) xs |
|---|
| 58 | +genericSplitAt n (x:xs) = (x:xs',xs'') where |
|---|
| 59 | + (xs',xs'') = genericSplitAt (n-1) xs |
|---|
| 60 | } |
|---|
| 61 | |
|---|
| 62 | Context: |
|---|
| 63 | |
|---|
| 64 | [very minor typos in section 5.6 |
|---|
| 65 | Malcolm.Wallace@cs.york.ac.uk**20080317131229] |
|---|
| 66 | [note typo in 3.17.2, rule 8, on the errata webpage |
|---|
| 67 | Malcolm.Wallace@cs.york.ac.uk**20080317105732] |
|---|
| 68 | [typo in section 3.17.2, rule 8, for pattern-matching n+k. |
|---|
| 69 | Malcolm.Wallace@cs.york.ac.uk**20080317104257] |
|---|
| 70 | [Note buffering issues in an example program in Chapter 7, I/O. |
|---|
| 71 | Malcolm.Wallace@cs.york.ac.uk**20080218121534] |
|---|
| 72 | [minor typo (spotted by Stefan O'Rear) |
|---|
| 73 | Malcolm.Wallace@cs.york.ac.uk**20061127105938] |
|---|
| 74 | [typo in Prelude index for 'break' - example was incorrect |
|---|
| 75 | Malcolm.Wallace@cs.york.ac.uk**20061017151603] |
|---|
| 76 | [note ongoing errata page in the README |
|---|
| 77 | Malcolm.Wallace@cs.york.ac.uk**20061017150914] |
|---|
| 78 | [TAG Revised version of Haskell'98, converted from CVS |
|---|
| 79 | Malcolm.Wallace@cs.york.ac.uk**20060920213004] |
|---|
| 80 | [New lexical bug discovered. --: introduces a comment, but should be a varsym. |
|---|
| 81 | malcolm**20051213124051] |
|---|
| 82 | [Bug discovered by Russell O'Connor: approxRational operates over closed |
|---|
| 83 | malcolm**20050815141344 |
|---|
| 84 | intervals, not open intervals. |
|---|
| 85 | ] |
|---|
| 86 | [Note deficiencies in the printed index. |
|---|
| 87 | malcolm**20050610151719] |
|---|
| 88 | [Finally! HTML rendering of the FFI Addendum. |
|---|
| 89 | chak**20050423142704] |
|---|
| 90 | [Fix date. |
|---|
| 91 | malcolm**20050104171703] |
|---|
| 92 | [Remove a further ambiguity in section 3.17.2 #6. |
|---|
| 93 | malcolm**20050104171422] |
|---|
| 94 | [New bug discovered in the context-free syntax. |
|---|
| 95 | malcolm**20040916102328 |
|---|
| 96 | (Also tidy source to 80-column width.) |
|---|
| 97 | ] |
|---|
| 98 | [small changes |
|---|
| 99 | ijones**20040801214942] |
|---|
| 100 | [Implemented a few fixes we talked about on IRC: |
|---|
| 101 | ijones**20040801211834 |
|---|
| 102 | |
|---|
| 103 | (12:10:13) Marvin--: SyntaxLaptop: the example Setup.lhs on page 3 is wrong, it should import defaultMain and set main = defaultMain |
|---|
| 104 | (12:10:46) Marvin--: SyntaxLaptop: and I think we call it sdist, not src-dist? |
|---|
| 105 | (12:20:38) Marvin--: SyntaxLaptop: \"funky, path\\\\name\" is really broken, it should be "funky, path\\name" |
|---|
| 106 | (12:20:47) Marvin--: the escapes comes from being in a haskell string in the module! :) |
|---|
| 107 | |
|---|
| 108 | (12:22:10) Marvin--: hmm, now I think I remember what the issue with the dashes was |
|---|
| 109 | (12:23:08) Marvin--: oh, and it should be documented exactly what paths look like |
|---|
| 110 | (12:23:43) Marvin--: page 18 says import Distribution.Make (setup), that damn well should be defaultMain too ;-) |
|---|
| 111 | (13:14:15) igloo: Oh, Marvin, am I being dopey or does the new spec not answer my questions about eh example at the start? |
|---|
| 112 | (13:14:37) igloo: e.g. how does it know which files are part of the package |
|---|
| 113 | ] |
|---|
| 114 | [added more details about Setup.description fields |
|---|
| 115 | ijones**20040801153645] |
|---|
| 116 | [Added a bunch of information about the package description. |
|---|
| 117 | ijones**20040731220145] |
|---|
| 118 | [Missing operator =<< from the table of fixities. |
|---|
| 119 | malcolm**20040730094342] |
|---|
| 120 | [Page number. |
|---|
| 121 | malcolm**20040729101800] |
|---|
| 122 | [Clarify the order of matching in a named field pattern. |
|---|
| 123 | malcolm**20040729095415] |
|---|
| 124 | [* added "clean" target to setup script spec. |
|---|
| 125 | ijones**20040726042016 |
|---|
| 126 | * updated test case for package description file. |
|---|
| 127 | * Added note about chasing dependencies and "modules" field: |
|---|
| 128 | Note that in the future, though the Modules field will be |
|---|
| 129 | available, it will not be necessary to provide it for building |
|---|
| 130 | executables and libraries. Instead, the user will provide only the |
|---|
| 131 | "Main-Is" field (for executables) and the "Exposed-Modules" field |
|---|
| 132 | (for libraries). The system will chase down dependencies from |
|---|
| 133 | those modules and include them in the library or source |
|---|
| 134 | distributions. |
|---|
| 135 | ] |
|---|
| 136 | [Cleaned up package description stuff |
|---|
| 137 | ijones**20040626212122 |
|---|
| 138 | |
|---|
| 139 | FIX/TODO: Provide BNF-type grammar, especially for field contents, |
|---|
| 140 | remove below checklist and questions, fix package filename. |
|---|
| 141 | |
|---|
| 142 | Added example package description and more syntax. Please |
|---|
| 143 | double-check. |
|---|
| 144 | ] |
|---|
| 145 | [* Added new personas: |
|---|
| 146 | ijones**20040626203617 |
|---|
| 147 | ** Peter Packager, as an umbrella for Rowland et al |
|---|
| 148 | ** Isabella Installer, as someone who uses Peter's packages |
|---|
| 149 | |
|---|
| 150 | * Added some notes on the personas to clarify against the perception |
|---|
| 151 | that they are non-overlapping roles. |
|---|
| 152 | |
|---|
| 153 | * Added a little "layered tools" section, just to get this on record. |
|---|
| 154 | |
|---|
| 155 | * Some reformatting |
|---|
| 156 | ] |
|---|
| 157 | [Change maintainer's name. Make it pass W3C HTML validation. |
|---|
| 158 | malcolm**20040611154256] |
|---|
| 159 | [Add new bug reports |
|---|
| 160 | simonpj**20040611134227] |
|---|
| 161 | [Fix index bugs |
|---|
| 162 | simonpj**20040611134211] |
|---|
| 163 | [Line break changes only |
|---|
| 164 | simonpj**20040611134114] |
|---|
| 165 | [Mostl suggestions from Graham Klyne. |
|---|
| 166 | ijones**20040606212608 |
|---|
| 167 | |
|---|
| 168 | * Changed pkg.desc to Setup.description. Open to suggestions on this. |
|---|
| 169 | Made an "entity" so it can be easily changed. |
|---|
| 170 | |
|---|
| 171 | * changed "tests and design notes may be omitted" to "design notes may |
|---|
| 172 | be omitted" in order to change emphasis. |
|---|
| 173 | |
|---|
| 174 | * Clarified that --prefix and --install-prefix are for file locations |
|---|
| 175 | only, having nothing to do with "grafting" or whatever. |
|---|
| 176 | ] |
|---|
| 177 | [* changed #!runhugs (etc) to #!/usr/bin/env runhugs |
|---|
| 178 | ijones**20040606204207 |
|---|
| 179 | * Small formatting stuff |
|---|
| 180 | |
|---|
| 181 | * Implemented Keith Wansbrough's suggestions. |
|---|
| 182 | |
|---|
| 183 | ** noted that the #! line isn't a requirement, just a convinience. |
|---|
| 184 | Clarified that you can compile and run the Setup script if you want. |
|---|
| 185 | |
|---|
| 186 | ** Clarified that user and system modules where exposed modules |
|---|
| 187 | overlap can both be registered. "(However, one may register a |
|---|
| 188 | system package which exposes a module with the same name as a user |
|---|
| 189 | package, and vice-versa.)" |
|---|
| 190 | |
|---|
| 191 | ** some "setup" to "./Setup.lhs" |
|---|
| 192 | |
|---|
| 193 | ** Added rubric of --user having no effect when together with |
|---|
| 194 | --install-prefix. |
|---|
| 195 | ] |
|---|
| 196 | [Added more justification and explanation of the Setup script. |
|---|
| 197 | ijones**20040606200737] |
|---|
| 198 | [Changed HPS to Cabal. |
|---|
| 199 | ijones**20040606013107 |
|---|
| 200 | |
|---|
| 201 | Some reformatting of code. |
|---|
| 202 | ] |
|---|
| 203 | [Reverted changes from pkgname=version to pkgname-version. |
|---|
| 204 | ijones**20040525141058] |
|---|
| 205 | [* Changed "library" for "tool" in a number of places |
|---|
| 206 | ijones**20040525015138 |
|---|
| 207 | * Made this into an "entity" so it's easy to change back. |
|---|
| 208 | * changed pkgname-num to pkgname=num (revert if you want) |
|---|
| 209 | |
|---|
| 210 | * Changed "no provision for installing the compiled files anywhere |
|---|
| 211 | other than the place specified in the --prefix flag" to something |
|---|
| 212 | more accurate, since the "install" command actually has |
|---|
| 213 | --install-prefix. |
|---|
| 214 | |
|---|
| 215 | * Added "main modules" to list of things needed in a package |
|---|
| 216 | description |
|---|
| 217 | ] |
|---|
| 218 | [* Changed article ID to hps |
|---|
| 219 | ijones**20040525004702 |
|---|
| 220 | * Changed date |
|---|
| 221 | * added &hps; entity, so we can change the name if we want :) |
|---|
| 222 | ] |
|---|
| 223 | [System packagers: mention that we expect there to be external tools |
|---|
| 224 | simonmar**20040518132509 |
|---|
| 225 | which can take a Haskell package and generate a template RPM spec |
|---|
| 226 | file etc. |
|---|
| 227 | ] |
|---|
| 228 | [Markup, s/shared/global/ |
|---|
| 229 | simonmar**20040518114011] |
|---|
| 230 | [mainly markup |
|---|
| 231 | simonmar**20040518112707] |
|---|
| 232 | [uninstall updates |
|---|
| 233 | simonmar**20040518110748] |
|---|
| 234 | [Simon's updates |
|---|
| 235 | simonmar**20040518104910] |
|---|
| 236 | [Typos, and add an extra blank line in #! scripts to make them legal |
|---|
| 237 | ross**20040517150404 |
|---|
| 238 | literate scripts. |
|---|
| 239 | ] |
|---|
| 240 | [Lots of updates (mostly markup). |
|---|
| 241 | simonmar**20040517145437] |
|---|
| 242 | [markup & simple changes |
|---|
| 243 | simonmar**20040511122438] |
|---|
| 244 | [Add the draft Haskell Package System spec |
|---|
| 245 | simonpj**20040511114510] |
|---|
| 246 | [Update description of forkProcess; add descriptions for |
|---|
| 247 | wolfgang**20040506121110 |
|---|
| 248 | rtsSupportsBoundThreads, runInBoundThread and runInUnboundThread |
|---|
| 249 | ] |
|---|
| 250 | [Final version of 1.0 |
|---|
| 251 | chak**20031201064035] |
|---|
| 252 | [* 6.3: Footnote regarding __STDC_ISO_10646__ added to text introducing |
|---|
| 253 | chak**20031117091137 |
|---|
| 254 | `CWString'. |
|---|
| 255 | ] |
|---|
| 256 | [6.3: |
|---|
| 257 | chak**20031112045811 |
|---|
| 258 | - Stated explicitly that memory allocated by `newCString' and friends |
|---|
| 259 | can be deallocated by `MarshalAlloc.free' |
|---|
| 260 | - Improved documentation |
|---|
| 261 | ] |
|---|
| 262 | [Bump RC # |
|---|
| 263 | chak**20031105082456] |
|---|
| 264 | [* 6.2: CWChar -> CWchar |
|---|
| 265 | chak**20031105082053 |
|---|
| 266 | * 6.3: CWChar -> CWchar |
|---|
| 267 | ] |
|---|
| 268 | [* 5.3: Fixed typo |
|---|
| 269 | chak**20031102104034 |
|---|
| 270 | * 5.7: Fixed a mistake in the type of `peekByteOff' and `pokeByteOff' (the |
|---|
| 271 | type variable constrained by `Storable' must be different from the |
|---|
| 272 | parameter of the `Ptr') |
|---|
| 273 | * 6.3: Improved documentation |
|---|
| 274 | ] |
|---|
| 275 | [Bumped RC # |
|---|
| 276 | chak**20031031073258] |
|---|
| 277 | [* 5.5 : Added `FinalizerEnvPtr', `newForeignPtrEnv', and |
|---|
| 278 | chak**20031031072645 |
|---|
| 279 | `addForeignPtrFinalizerEnv' |
|---|
| 280 | * 6.3 : Added John Meacham proposal for `wchar_t' support as well localised |
|---|
| 281 | string marshalling; in particular, this adds `CWString' and |
|---|
| 282 | `CWStringLen' as well as the `CWString' and the `CAString' family |
|---|
| 283 | of marshalling routines. In addition, `charIsRepresentable' was |
|---|
| 284 | added. |
|---|
| 285 | ] |
|---|
| 286 | [Started restructuring the document to make it another addendum |
|---|
| 287 | wolfgang**20030918220221 |
|---|
| 288 | to the FFI addendum |
|---|
| 289 | ] |
|---|
| 290 | [Remove this file, as it has been replaced by threads.tex a long time ago. |
|---|
| 291 | wolfgang**20030918220119] |
|---|
| 292 | [Changes since RC11: |
|---|
| 293 | chak**20030801064356 |
|---|
| 294 | * 5.5: Swapped argument order of `newForeignPtr' and `addForeignPtrFinalizer' |
|---|
| 295 | ] |
|---|
| 296 | [Added a section dealing with what primitives have to be modified or added: |
|---|
| 297 | wolfgang**20030613212044 |
|---|
| 298 | forkIO, forkOS, isCurrentThreadBound and forkProcess |
|---|
| 299 | ] |
|---|
| 300 | [Zap the old proposals, leave only Proposal 4. |
|---|
| 301 | wolfgang**20030613131032] |
|---|
| 302 | [* 5.5 : added `newForeignPointer_' and renamed `foreignPtrToPtr' to |
|---|
| 303 | chak**20030612051407 |
|---|
| 304 | `unsafeForeignPtrToPtr' |
|---|
| 305 | * Fixed typos |
|---|
| 306 | ] |
|---|
| 307 | [* 3.3 : Clarified use of foreign functions of pure type |
|---|
| 308 | chak**20030609145753 |
|---|
| 309 | * 4.1.1: Clarified the meaning of foreign imports without a & that have a |
|---|
| 310 | non-functional type in Haskell |
|---|
| 311 | * 5.1 : Clarified the scope of safe use of unsafePerformIO |
|---|
| 312 | * 5.5 : "pre-emptive" dropped in footnote regarding finalizers. |
|---|
| 313 | * Typos throughout |
|---|
| 314 | ] |
|---|
| 315 | [The relevant nhc98 version number is 1.04. |
|---|
| 316 | simonmar**20030530161511] |
|---|
| 317 | [Build the PDF version automatically too. |
|---|
| 318 | simonmar**20030530161302] |
|---|
| 319 | [Add the library "policy document" to this page, so it can now be found |
|---|
| 320 | simonmar**20030530161125 |
|---|
| 321 | in a standard place. We don't claim it's an addendum, however. |
|---|
| 322 | ] |
|---|
| 323 | [date Hugs compliance |
|---|
| 324 | ross**20030530160646] |
|---|
| 325 | [Add a simple web page |
|---|
| 326 | simonmar**20030530152623] |
|---|
| 327 | [RC 10: |
|---|
| 328 | chak**20030522093809 |
|---|
| 329 | * 1: Mentioning interaction with foreign threads as an open problem. |
|---|
| 330 | * 2 & 3: Removed `threadsafe' again, as the proposal for thread support is |
|---|
| 331 | still evolving and it is not yet clear whether a new safety level |
|---|
| 332 | is required. |
|---|
| 333 | * 5.5: Added the type synonym `FinalizerPtr' and rewrite the documentation |
|---|
| 334 | of finalizers. |
|---|
| 335 | * 5.6: Clarified the description of `StablePtr' |
|---|
| 336 | * 5.8: Added `finalizerFree' |
|---|
| 337 | * 6.2: All the types in CTypes must be newtypes that are exported |
|---|
| 338 | abstractly. |
|---|
| 339 | ] |
|---|
| 340 | [RC 9: |
|---|
| 341 | chak**20030521121917 |
|---|
| 342 | * 5.8: `MarshallAlloc.reallocBytes' is no longer permitted on memory |
|---|
| 343 | allocated with `alloca' or `allocaBytes'. |
|---|
| 344 | |
|---|
| 345 | * Added extra COPYING file and a Makefile for a tarball (as requested by Igloo |
|---|
| 346 | for Debian) |
|---|
| 347 | ] |
|---|
| 348 | [Add Kevin and John as some-time editors |
|---|
| 349 | simonpj**20030516152624] |
|---|
| 350 | [Add Proposal 4 |
|---|
| 351 | simonpj**20030506112030] |
|---|
| 352 | [Third proposal, from S&S |
|---|
| 353 | simonpj**20030501105432] |
|---|
| 354 | [Corrected a typo in the formal semantics; |
|---|
| 355 | wolfgang**20030430224539 |
|---|
| 356 | Added a paragraph about a possible change to the semantics to the "Issues" section |
|---|
| 357 | ] |
|---|
| 358 | [Model forkIO in the semantics |
|---|
| 359 | wolfgang**20030425175748 |
|---|
| 360 | Remove the \ret action, as it is not needed |
|---|
| 361 | Explicitly state an important invariant |
|---|
| 362 | Clean up a bit |
|---|
| 363 | ] |
|---|
| 364 | [Added a completely new and much better [:-)] proposal, as Part II of the |
|---|
| 365 | wolfgang**20030425150459 |
|---|
| 366 | document. |
|---|
| 367 | ] |
|---|
| 368 | [Add ack |
|---|
| 369 | simonpj**20030408081826] |
|---|
| 370 | [Fix <= typo, which is fixed in the printed version |
|---|
| 371 | simonpj**20030408081819] |
|---|
| 372 | [commit bug files |
|---|
| 373 | simonpj**20030407154030] |
|---|
| 374 | [H98 revised bug list |
|---|
| 375 | simonpj**20030407150715] |
|---|
| 376 | [Added a simple proposal for setting and getting widget properties. |
|---|
| 377 | simona**20030404183730] |
|---|
| 378 | [Added Vicenzo's comment. |
|---|
| 379 | simona**20030320104603] |
|---|
| 380 | [A summary of the GUI Task force discussions. |
|---|
| 381 | simona**20030320001237 |
|---|
| 382 | |
|---|
| 383 | This document contains summaries of the discussions on the mailing lists. |
|---|
| 384 | It is hopefulle useful in specifying the CGA. |
|---|
| 385 | ] |
|---|
| 386 | [reorder sections |
|---|
| 387 | simonpj**20030303111221] |
|---|
| 388 | [Added sections about (my version of) the proposed extensions to the |
|---|
| 389 | wolfgang**20030216224823 |
|---|
| 390 | FFI syntax, about the proposed addition to the libraries, and about |
|---|
| 391 | unresolved issues. |
|---|
| 392 | ] |
|---|
| 393 | [Explained the reason for it all in the introduction. Fix a few typos. |
|---|
| 394 | wolfgang**20030207134530] |
|---|
| 395 | [Corrected a mix up with RC numbers |
|---|
| 396 | chak**20030122090159] |
|---|
| 397 | [* Clarified the lexis of C identifiers and C header file names |
|---|
| 398 | chak**20030122084826] |
|---|
| 399 | [* In `ForeignPtr', added `mallocForeignPtrArray' and `mallocForeignPtrArray0' |
|---|
| 400 | chak**20030122054714 |
|---|
| 401 | * Clarified spec of allocations functions adding constraints taken from the |
|---|
| 402 | corresponding C routines |
|---|
| 403 | ] |
|---|
| 404 | [* `mallocBytes' and `allocaBytes' must align memory sufficiently for any |
|---|
| 405 | chak**20030114122100 |
|---|
| 406 | basic foreign type that fits into the allocated block |
|---|
| 407 | * Using Ross' wording of the size/alignment constraint on Storable |
|---|
| 408 | ] |
|---|
| 409 | [Imported the grammar style used by the FFI Addendum (v0.5a) |
|---|
| 410 | chak**20030114065833] |
|---|
| 411 | [Added a `ffi.ps' target to Makefile |
|---|
| 412 | chak**20030114065553] |
|---|
| 413 | [Well, it's 2003 now. |
|---|
| 414 | chak**20030113141748] |
|---|
| 415 | [% * Removed typos in the description of the module `ForeignPtr' |
|---|
| 416 | chak**20030113141628 |
|---|
| 417 | % * Added Peter Gammie to the list of acknowledged people |
|---|
| 418 | % * `addForeignPtrFinalizer' guarantees that finalizers for a single foreign |
|---|
| 419 | % pointer are executed in the opposite order as they were added. |
|---|
| 420 | % * Added the constraint "sizeOf x `mod` alignment x = 0" to `Storable' |
|---|
| 421 | % * Added Ross Paterson to the list of acknowledged people |
|---|
| 422 | ] |
|---|
| 423 | [More small changes to |
|---|
| 424 | simonpj**20030113130856 |
|---|
| 425 | |
|---|
| 426 | a) formatting |
|---|
| 427 | b) index entries |
|---|
| 428 | |
|---|
| 429 | Many due to Ross Paterson, Simon Marlow, Malcolm Wallace. |
|---|
| 430 | |
|---|
| 431 | This is pretty much exactly what CUP will publish as the Haskell 98 book. |
|---|
| 432 | (I say "pretty much" because CUP got a set of sources a month or two ago, |
|---|
| 433 | and have been modifying them independently, so some formatting changes |
|---|
| 434 | might differ slightly.) |
|---|
| 435 | ] |
|---|
| 436 | [Corrected two typos (one of them in rule FCALL1). |
|---|
| 437 | wolfgang**20030110193146 |
|---|
| 438 | Added a note to the syntax for a native thread in section 3. |
|---|
| 439 | ] |
|---|
| 440 | [corrected a minor inconsistency in rule (FCALL2) |
|---|
| 441 | wolfgang**20030110173418] |
|---|
| 442 | [Added TEXINPUTS=../styles: to the front of the LaTeX command so it |
|---|
| 443 | reid**20030110172623 |
|---|
| 444 | doesn't assume people have hacked their paths. |
|---|
| 445 | |
|---|
| 446 | A |
|---|
| 447 | ] |
|---|
| 448 | [Reqts from Wolfgang |
|---|
| 449 | simonpj**20030110155330] |
|---|
| 450 | [Threads stuff |
|---|
| 451 | simonpj**20030110154508] |
|---|
| 452 | [Add style files |
|---|
| 453 | simonpj**20030110154454] |
|---|
| 454 | [More stuff |
|---|
| 455 | simonpj**20030110151416] |
|---|
| 456 | [Add threads document |
|---|
| 457 | simonpj**20030109172335] |
|---|
| 458 | [Added query about meaning of 'threadsafe' (from ffi mailing list 29 Nov 2002). |
|---|
| 459 | reid**20030105221826 |
|---|
| 460 | |
|---|
| 461 | It is not clear from the report what 'threadsafe' means but my best |
|---|
| 462 | guess suggests that the report is wrong to say that implementations |
|---|
| 463 | which support a single Haskell thread may safely ignore the |
|---|
| 464 | 'threadsafe' keyword. Indeed, it seems that such implementations |
|---|
| 465 | should either add extra locking or reject 'threadsafe' ffi |
|---|
| 466 | declarations. |
|---|
| 467 | ] |
|---|
| 468 | [added the second proposal |
|---|
| 469 | wolfgang**20030105174024] |
|---|
| 470 | [Added summary of final outcome of finalizers doc to introduction. |
|---|
| 471 | reid**20030105153611 |
|---|
| 472 | |
|---|
| 473 | Created a file to hold threads proposal/comments and put my proposal |
|---|
| 474 | in there and left a place for Wolfgang to put his proposal in next to |
|---|
| 475 | it. |
|---|
| 476 | ] |
|---|
| 477 | [Minor changes to |
|---|
| 478 | simonpj**20021210115111 |
|---|
| 479 | |
|---|
| 480 | a) formatting |
|---|
| 481 | b) index entries |
|---|
| 482 | c) cross references (to 'chapter' not 'section' now the |
|---|
| 483 | Report is a book) |
|---|
| 484 | |
|---|
| 485 | All due to Ross Paterson |
|---|
| 486 | ] |
|---|
| 487 | [Add ctSec to the export list for Time |
|---|
| 488 | simonpj**20021210114858] |
|---|
| 489 | [* Changed order of arguments of `mkIOError' and `annotateIOError' to match |
|---|
| 490 | chak**20021209055208 |
|---|
| 491 | with the current implementation in GHC's FFI libraries. |
|---|
| 492 | * Added change log entry for Sven's changes |
|---|
| 493 | ] |
|---|
| 494 | [Tweak title to match formatted version. |
|---|
| 495 | ross**20021203121723 |
|---|
| 496 | Also gave the brief table of contents a more compact layout. |
|---|
| 497 | ] |
|---|
| 498 | [Delete extraneous < |
|---|
| 499 | ross**20021203111441] |
|---|
| 500 | [Fix indexing of a few operators, particularly (\\), which was making a |
|---|
| 501 | ross**20021203102722 |
|---|
| 502 | a small mess. |
|---|
| 503 | ] |
|---|
| 504 | [HTML formatting fixes. |
|---|
| 505 | ross**20021203011714] |
|---|
| 506 | [wibbles |
|---|
| 507 | simonpj**20021202151600] |
|---|
| 508 | [Add haskell.idx to avoid bootstrap problems |
|---|
| 509 | simonpj**20021202145634] |
|---|
| 510 | [-------------------------------- |
|---|
| 511 | simonpj**20021202145333 |
|---|
| 512 | This version should typeset the |
|---|
| 513 | Haskell 98 language and libraries |
|---|
| 514 | as a single book rather than as |
|---|
| 515 | two separate reports. |
|---|
| 516 | -------------------------------- |
|---|
| 517 | ] |
|---|
| 518 | [Add subsection sed-ery; minor changes to tex.hs |
|---|
| 519 | simonpj**20021202145306] |
|---|
| 520 | [-------------------------------- |
|---|
| 521 | simonpj**20021202112203 |
|---|
| 522 | Just pre-CUP-publication version |
|---|
| 523 | -------------------------------- |
|---|
| 524 | |
|---|
| 525 | Includes all the changes that are in the CUP published version, |
|---|
| 526 | but still as two separate reports. Next thing to do is to merge them. |
|---|
| 527 | ] |
|---|
| 528 | [* Fixed prototypes for hs_init, hs_exit, and hs_set_argv. |
|---|
| 529 | panne**20021117142646 |
|---|
| 530 | * Added hs_free_stable_ptr and hs_free_fun_ptr. |
|---|
| 531 | ] |
|---|
| 532 | [Mentioned hs_free_fun_ptr, which is important for the same reasons |
|---|
| 533 | panne**20021117140030 |
|---|
| 534 | hs_free_stable_ptr is. |
|---|
| 535 | ] |
|---|
| 536 | [Nit-picking: hs_freeStablePtr => hs_free_stable_ptr. This is more |
|---|
| 537 | panne**20021117134336 |
|---|
| 538 | consistent with hs_perform_gc and hs_set_argv. Furthermore, it's the |
|---|
| 539 | name Hugs already uses. |
|---|
| 540 | ] |
|---|
| 541 | [Added text about problems with shared thunks. |
|---|
| 542 | reid**20021021092435 |
|---|
| 543 | Rambles a bit - feel free to edit. |
|---|
| 544 | ] |
|---|
| 545 | [Added dissenting note to the claim that case for Haskell finalizers |
|---|
| 546 | reid**20021016080535 |
|---|
| 547 | was stronger in presence of concurrency. IMHO, SimonPJ's example |
|---|
| 548 | didn't demonstrate the claim because it was an argument to be able to |
|---|
| 549 | finalize _Haskell_ objects which contain C objects using Haskell |
|---|
| 550 | finalizers and so didn't actually involve ForeignPtrs at all. |
|---|
| 551 | |
|---|
| 552 | Minor cleanups - e.g., changing back-references to forward references, |
|---|
| 553 | clarifying that 'finalizer' meant 'Haskell finalizer', etc. |
|---|
| 554 | ] |
|---|
| 555 | [Eliminate some duplication, and fix up the structure a bit. |
|---|
| 556 | simonmar**20021015130700 |
|---|
| 557 | |
|---|
| 558 | Alastair, I'm afraid I removed one or two of your comments that were |
|---|
| 559 | simply out of place or duplicated points made elsewhere. We don't |
|---|
| 560 | want to make the document any more hard to read than the email thread |
|---|
| 561 | that it is supposed to be summarising. |
|---|
| 562 | ] |
|---|
| 563 | [Added my comments from last night. |
|---|
| 564 | reid**20021015112907 |
|---|
| 565 | |
|---|
| 566 | The structure of the document isn't quite ideal (too many forward |
|---|
| 567 | references) but didn't want to mess with it too much. |
|---|
| 568 | |
|---|
| 569 | There were conflicts with the previous commit which I did my best to |
|---|
| 570 | resolve. I don't think I broke anything but I couldn't always |
|---|
| 571 | identify what had been changed in the previous commit so I may not |
|---|
| 572 | have been successful. |
|---|
| 573 | ] |
|---|
| 574 | [various additions |
|---|
| 575 | simonmar**20021015094750] |
|---|
| 576 | [attributions wibble |
|---|
| 577 | simonmar**20021014170758] |
|---|
| 578 | [Add finalizer rationale document. |
|---|
| 579 | simonmar**20021014170314] |
|---|
| 580 | [typo |
|---|
| 581 | chak**20020913020928] |
|---|
| 582 | [Add new preface |
|---|
| 583 | simonpj**20020912080711] |
|---|
| 584 | [* Added mallocForeignPtr and mallocForeignPtrBytes. |
|---|
| 585 | chak**20020912061623 |
|---|
| 586 | |
|---|
| 587 | * Added hs_perform_gc(). |
|---|
| 588 | ] |
|---|
| 589 | [Clarified that all operations in Bits are member functions of the |
|---|
| 590 | chak**20020911073130 |
|---|
| 591 | type class. Reverse the meaning of the sign of the second argument |
|---|
| 592 | for `rotate' and `shift' (this makes it the same as GHC used all |
|---|
| 593 | the time). `bitSize' on `Integer' etc is now undefined. |
|---|
| 594 | |
|---|
| 595 | Allowing multiple calls to hs_init() and clarified the constraints |
|---|
| 596 | on the relative timing between hs_set_argv() and |
|---|
| 597 | getProgName/getArgs. |
|---|
| 598 | ] |
|---|
| 599 | [Added some clarifications |
|---|
| 600 | chak**20020910134905] |
|---|
| 601 | [* 1.4: Clarified the wording |
|---|
| 602 | chak**20020910122304 |
|---|
| 603 | * 4.1.4: clarified that header files |
|---|
| 604 | do not impact the semantics of foreign calls, but may be required |
|---|
| 605 | for correct code generation by some systems |
|---|
| 606 | * 5.5: Finalisers must be external functions to facilitate the |
|---|
| 607 | implementation on Haskell systems that do not support pre-emptive |
|---|
| 608 | concurrency |
|---|
| 609 | ] |
|---|
| 610 | [I've applied all the changes discussed over the last 2 moniths that |
|---|
| 611 | reid**20020809113244 |
|---|
| 612 | received some support and no dissent. |
|---|
| 613 | |
|---|
| 614 | Changes since RC5: |
|---|
| 615 | * Author list: changed Alastair Reid's institution |
|---|
| 616 | * 4.1.1: Removed [lib] from impent syntax and discussion |
|---|
| 617 | * 4.1.3: Added parentheses round FunPtr ft to make it easier to |
|---|
| 618 | understand a tolerably complex type. |
|---|
| 619 | * 4.1.4: Removed all mention of library objects |
|---|
| 620 | * 6: Specified that HsBool==int in table2 |
|---|
| 621 | Relabelled column 1 in table 3 (C symbol -> CPP symbol) |
|---|
| 622 | Replaced 0 and 1 with HS_BOOL_FALSE/TRUE |
|---|
| 623 | |
|---|
| 624 | You will need this file: |
|---|
| 625 | |
|---|
| 626 | http://www.cse.unsw.edu.au/~chak/haskell/grammar.sty |
|---|
| 627 | |
|---|
| 628 | to build it. (I came close to adding this file to the repo but |
|---|
| 629 | figured that Manuel must have a reason for not having done so |
|---|
| 630 | himself.) |
|---|
| 631 | |
|---|
| 632 | Changes not applied: |
|---|
| 633 | |
|---|
| 634 | - I really, really want to resolve the ForeignPtr issues soon. |
|---|
| 635 | |
|---|
| 636 | http://www.mail-archive.com/ffi@haskell.org/msg00655.html |
|---|
| 637 | http://www.mail-archive.com/ffi@haskell.org/msg00544.html |
|---|
| 638 | http://www.mail-archive.com/ffi@haskell.org/msg00545.html |
|---|
| 639 | |
|---|
| 640 | - I'd like to see a standard way to call the GC from C |
|---|
| 641 | |
|---|
| 642 | http://www.mail-archive.com/ffi@haskell.org/msg00565.html |
|---|
| 643 | |
|---|
| 644 | Note that Hugs and GHC have had this for ages except that we call the |
|---|
| 645 | function 'performGC' and there's no way to control how many generations |
|---|
| 646 | are collected. |
|---|
| 647 | |
|---|
| 648 | - I see the question of Function prototypes as a portability problem |
|---|
| 649 | waiting to happen. Either Hugs and GHC are right (you should use the |
|---|
| 650 | user-supplied header file or NHC is right (you should ignore the |
|---|
| 651 | header file). They can't both be right if we want portable code |
|---|
| 652 | so the report should be clear about which one is right. |
|---|
| 653 | |
|---|
| 654 | (Given my druthers, I'd drop header files from the foreign import syntax |
|---|
| 655 | and say that you have to specify it on the command line or propose that |
|---|
| 656 | we standardize some variant of the GHCism {-# -include "foo.h" #-}. But |
|---|
| 657 | I'm not excited enough about it to push hard for this.) |
|---|
| 658 | |
|---|
| 659 | - Changes to hs_init |
|---|
| 660 | |
|---|
| 661 | http://www.mail-archive.com/ffi@haskell.org/msg00539.html |
|---|
| 662 | ] |
|---|
| 663 | [* 5.6: Clarified documentation of `StablePtr's |
|---|
| 664 | chak**20020614083802] |
|---|
| 665 | [Changes discussed on the FFI list: |
|---|
| 666 | chak**20020426074017 |
|---|
| 667 | |
|---|
| 668 | * Added threadsafe |
|---|
| 669 | |
|---|
| 670 | * Replaced `entity' by `impent' and `expent' |
|---|
| 671 | ] |
|---|
| 672 | [* 5.8: Clarified documentation for `MarshalAlloc.free'. |
|---|
| 673 | chak**20020409015241 |
|---|
| 674 | * 5.8: Added `MarshalAlloc.realloc'. |
|---|
| 675 | * 3.2: Clarified the description of foreign types; so far, `IO ()' was |
|---|
| 676 | strictly speaking not included as a valid return type. Currently, |
|---|
| 677 | functions of type `a -> ()' are included. Do we want this? Their use |
|---|
| 678 | might not be portable if they include side effects. |
|---|
| 679 | * 4.1.5: New section discussing the traps & pitfalls of type promotion with |
|---|
| 680 | C bindings. |
|---|
| 681 | ] |
|---|
| 682 | [Another erratum from Martin D. Kealey. Added him to the ack section. |
|---|
| 683 | chak**20020204093712] |
|---|
| 684 | [Correction by Martin D Kealey <martin@kurahaupo.gen.nz>. |
|---|
| 685 | chak**20020204085240] |
|---|
| 686 | [Renamed the functions constructing `ErrorType's, as `userError' collided with |
|---|
| 687 | chak**20020204083924 |
|---|
| 688 | a function name in the Prelude. |
|---|
| 689 | ] |
|---|
| 690 | [Small matters |
|---|
| 691 | simonpj**20020129094641] |
|---|
| 692 | [index changes |
|---|
| 693 | simonpj**20020128173821] |
|---|
| 694 | [Version 1.0, Release Candidate 1 |
|---|
| 695 | chak**20020110101621] |
|---|
| 696 | [Late Dec release |
|---|
| 697 | simonpj**20011221160025] |
|---|
| 698 | [Mainly Enum |
|---|
| 699 | simonpj**20011102162648] |
|---|
| 700 | [Changes in Oct |
|---|
| 701 | simonpj**20011101134343] |
|---|
| 702 | [Typos. |
|---|
| 703 | malcolm**20011030182045] |
|---|
| 704 | [Improved wording |
|---|
| 705 | chak**20011030101920] |
|---|
| 706 | [Inlined the rationale |
|---|
| 707 | chak**20011029080711] |
|---|
| 708 | [Integrated pending changes for 1.0. This is nearly finished now. |
|---|
| 709 | chak**20011028150121] |
|---|
| 710 | [Contd revision |
|---|
| 711 | chak**20011019015206] |
|---|
| 712 | [More tinies |
|---|
| 713 | simonpj**20011004162852] |
|---|
| 714 | [October release |
|---|
| 715 | simonpj**20011002090927] |
|---|
| 716 | [- revised preface & intro |
|---|
| 717 | chak**20010926140705 |
|---|
| 718 | - corrected special ids |
|---|
| 719 | ] |
|---|
| 720 | [Precedence of (:) |
|---|
| 721 | simonpj**20010924162941] |
|---|
| 722 | [Literate layout |
|---|
| 723 | simonpj**20010924150601] |
|---|
| 724 | [End Sept |
|---|
| 725 | simonpj**20010924144048] |
|---|
| 726 | [Export lists cumulative |
|---|
| 727 | simonpj**20010913132908] |
|---|
| 728 | [Simon |
|---|
| 729 | simonpj**20010911161917] |
|---|
| 730 | [Simon |
|---|
| 731 | simonpj**20010911130428] |
|---|
| 732 | [Operators and such |
|---|
| 733 | simonpj**20010910110937] |
|---|
| 734 | [Operators and such |
|---|
| 735 | simonpj**20010910110623] |
|---|
| 736 | [Sept 10 |
|---|
| 737 | simonpj**20010910083158] |
|---|
| 738 | [End August |
|---|
| 739 | simonpj**20010831160308] |
|---|
| 740 | [Processed notes |
|---|
| 741 | chak**20010830161317] |
|---|
| 742 | [Edited to reflect pre-ICFP discussion on version 1.11. |
|---|
| 743 | chak**20010830160350] |
|---|
| 744 | [August release |
|---|
| 745 | simonpj**20010823164141] |
|---|
| 746 | [Modules |
|---|
| 747 | simonpj**20010823161927] |
|---|
| 748 | [Lexical mainly |
|---|
| 749 | simonpj**20010823161657] |
|---|
| 750 | [Fix typos only. |
|---|
| 751 | malcolm**20010823154804] |
|---|
| 752 | [Done while away at c-- workshop |
|---|
| 753 | simonpj**20010820075753] |
|---|
| 754 | [* Revised the spec of which types can be marshalled as arguments |
|---|
| 755 | chak**20010819101012 |
|---|
| 756 | * Checked all FIXMEs |
|---|
| 757 | ] |
|---|
| 758 | [Covering all current marshalling libraries. |
|---|
| 759 | chak**20010818150804] |
|---|
| 760 | [Covering all language-independent marshalling modules now. |
|---|
| 761 | chak**20010818031102] |
|---|
| 762 | [Added most of the language independent marshalling functionality. |
|---|
| 763 | chak**20010817021249] |
|---|
| 764 | [Add Makefile |
|---|
| 765 | simonpj**20010814154343] |
|---|
| 766 | [Small stuff |
|---|
| 767 | simonpj**20010814153833] |
|---|
| 768 | [Extended the description of the FFI libraries. |
|---|
| 769 | chak**20010814085540] |
|---|
| 770 | [Many small changes |
|---|
| 771 | simonpj**20010814074825] |
|---|
| 772 | [* Started on the section about Marshalling libraries |
|---|
| 773 | chak**20010809073419 |
|---|
| 774 | * Covered the intro and the modules Int, Word, and Ptr |
|---|
| 775 | ] |
|---|
| 776 | [Add README |
|---|
| 777 | simonpj**20010710123527] |
|---|
| 778 | [Simon |
|---|
| 779 | simonpj**20010618095243] |
|---|
| 780 | [More towards the revised report |
|---|
| 781 | simonpj**20010611131005] |
|---|
| 782 | [Adjusting revision number to be consistent with previous releases. |
|---|
| 783 | chak**20010609125505] |
|---|
| 784 | [Initial revision |
|---|
| 785 | chak**20010609125214] |
|---|
| 786 | [Small revision to May release (deriving, tuples) |
|---|
| 787 | simonpj**20010530134712] |
|---|
| 788 | [May 2001 release |
|---|
| 789 | simonpj**20010530105906] |
|---|
| 790 | [Towards the revised Reports |
|---|
| 791 | simonpj**20010529154000] |
|---|
| 792 | [Ix and a few typos |
|---|
| 793 | simonpj**20010528143947] |
|---|
| 794 | [Empty log message |
|---|
| 795 | simonpj**20010405162240] |
|---|
| 796 | [Empty log message |
|---|
| 797 | simonpj**20010328150423] |
|---|
| 798 | Patch bundle hash: |
|---|
| 799 | b403c25c80f43ed03e790ffd64c468c20f6cd5df |
|---|