Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0006361OCamlOCaml standard librarypublic2014-04-03 23:392014-05-12 13:51
Reporterlpw25 
Assigned To 
PrioritynormalSeverityminorReproducibilityalways
StatusresolvedResolutionfixed 
PlatformOSOS Version
Product Version4.01.0 
Target VersionFixed in Version4.02.0+dev 
Summary0006361: Hashtbl.hash does not terminate on recursive lazy value
DescriptionThe generic hash function does not terminate on this recursive lazy value:

            OCaml version 4.01.0
    
    # #rectypes;;
    # #print_length 4;;
    # let rec x = lazy x;;
    val x : 'a lazy_t as 'a = lazy (lazy (lazy (lazy ...)))
    # Hashtbl.hash x;;
TagsNo tags attached.
Attached Files

- Relationships

-  Notes
(0011328)
xleroy (administrator)
2014-04-26 19:12

Nasty example. Fixed in commit 14693.
(0011429)
frisch (developer)
2014-05-12 13:51

An unfortunate consequence of the fix is that a GC (which short-circuits forward pointers) run can change the hash value (of already forced lazy values).

- Issue History
Date Modified Username Field Change
2014-04-03 23:39 lpw25 New Issue
2014-04-26 19:12 xleroy Note Added: 0011328
2014-04-26 19:12 xleroy Status new => resolved
2014-04-26 19:12 xleroy Resolution open => fixed
2014-04-26 19:12 xleroy Fixed in Version => 4.02.0+dev
2014-05-12 13:51 frisch Note Added: 0011429


Copyright © 2000 - 2011 MantisBT Group
Powered by Mantis Bugtracker