Home My Page Projects Code Snippets Project Openings SML/NJ Bugs
Summary Activity Tracker Lists

[#245] Lazy data types result in Compiler Bug error

Date:
2020-01-09 19:05
Priority:
3
State:
Closed
Submitted by:
Bug Submitter (webuser)
Assigned to:
John Reppy (jhr)
Machine Architecture:
x86
Operating System:
Linux
Component:
Compiler
Resolution:
Fixed
Severity:
Minor
OS Version:
Debian 10
SML/NJ Version:
110.96
Keywords:
URL:
Transcript (of reproduction):
$ /opt/smlnj-110.96/bin/sml -32 Standard ML of New Jersey (32-bit) v110.96 [built: Wed Jan 08 13:23:06 2020] - Control.lazysml := true ; [autoloading] ... [autoloading done] val it = () : unit - open Lazy ; [autoloading] [autoloading done] opening Lazy datatype 'a susp = $ of 'a - datatype lazy 'a stream = Cons of 'a * 'a stream ; datatype 'a stream! = Cons of 'a * 'a stream! susp type 'a stream = 'a stream! susp - val rec lazy ones = Cons(1, ones) ; Error: Compiler bug: CoreAccess: getVar - $ /opt/smlnj-110.96/bin/sml -64 Standard ML of New Jersey (64-bit) v110.96 [built: Wed Jan 08 13:23:55 2020] - Control.lazysml := true ; [autoloading] ... [autoloading done] val it = () : unit - open Lazy ; [autoloading] [autoloading done] opening Lazy datatype 'a susp = $ of 'a - datatype lazy 'a stream = Cons of 'a * 'a stream ; datatype 'a stream! = Cons of 'a * 'a stream! susp type 'a stream = 'a stream! susp - val rec lazy ones = Cons(1, ones) ; Error: Compiler bug: CoreAccess: getVar $ /opt/smlnj-110.85/bin/sml Standard ML of New Jersey v110.85 [built: Mon Feb 25 15:10:48 2019] - Control.lazysml := true ; [autoloading] ... [autoloading done] val it = () : unit - open Lazy ; [autoloading] [autoloading done] opening Lazy datatype 'a susp = $ of 'a - datatype lazy 'a stream = Cons of 'a * 'a stream ; datatype 'a stream! = Cons of 'a * 'a stream! susp type 'a stream = 'a stream! susp - val rec lazy ones = Cons(1, ones) ; val ones = $$ : int stream! susp -
Source (for reproduction):
Control.lazysml := true ; open Lazy ; datatype lazy 'a stream = Cons of 'a * 'a stream ; val rec lazy ones = Cons(1, ones) ;
Summary:
Lazy data types result in Compiler Bug error

Detailed description
Use of lazy datatypes in SMLNJ 110.96 results in a Compiler Bug error. This
happens with both the 32-bit and 64-bit versions. This doesn't appear to be a
problem with 110.85.

Submitted via web form by Norman Danner <ndanner@wesleyan.edu>

Comments:

Message  ↓
Date: 2020-02-27 19:41
Sender: John Reppy

Also reported as bug #249

Date: 2020-01-14 15:36
Sender: John Reppy

The problem was that some symbols were dropped from the _Core structure, which broke the translation of the lazy features (and also profiling).

Attached Files:

Changes

Field Old Value Date By
status_idOpen2020-01-14 15:36jhr
close_dateNone2020-01-14 15:36jhr
assigned_todbm2020-01-14 15:36jhr
ResolutionNone2020-01-14 15:36jhr
assigned_tonone2020-01-09 20:13jhr
detailsUse of lazy datatypes in SMLNJ 110.96 results in a Compiler Bug error. This happens with both the 32-bit and 64-bit versions. This doesn't appear to be a problem with 110.85. Submitted via web form by Norman Danner <ndanner@wesleyan.edu> 2020-01-09 20:13jhr
Transcript (of reproduction)$ /opt/smlnj-110.96/bin/sml -32 Standard ML of New Jersey (32-bit) v110.96 [built: Wed Jan 08 13:23:06 2020] - Control.lazysml := true ; [autoloading] ... [autoloading done] val it = () : unit - open Lazy ; [autoloading] [autoloading done] opening Lazy datatype 'a susp = $ of 'a - datatype lazy 'a stream = Cons of 'a * 'a stream ; datatype 'a stream! = Cons of 'a * 'a stream! susp type 'a stream = 'a stream! susp - val rec lazy ones = Cons(1, ones) ; Error: Compiler bug: CoreAccess: getVar - $ /opt/smlnj-110.96/bin/sml -64 Standard ML of New Jersey (64-bit) v110.96 [built: Wed Jan 08 13:23:55 2020] - Control.lazysml := true ; [autoloading] ... [autoloading done] val it = () : unit - open Lazy ; [autoloading] [autoloading done] opening Lazy datatype 'a susp = $ of 'a - datatype lazy 'a stream = Cons of 'a * 'a stream ; datatype 'a stream! = Cons of 'a * 'a stream! susp type 'a stream = 'a stream! susp - val rec lazy ones = Cons(1, ones) ; Error: Compiler bug: CoreAccess: getVar $ /opt/smlnj-110.85/bin/sml Standard ML of New Jersey v110.85 [built: Mon Feb 25 15:10:48 2019] - Control.lazysml := true ; [autoloading] ... [autoloading done] val it = () : unit - open Lazy ; [autoloading] [autoloading done] opening Lazy datatype 'a susp = $ of 'a - datatype lazy 'a stream = Cons of 'a * 'a stream ; datatype 'a stream! = Cons of 'a * 'a stream! susp type 'a stream = 'a stream! susp - val rec lazy ones = Cons(1, ones) ; val ones = $$ : int stream! susp - 2020-01-09 20:13jhr