FS#52850 - [smlnj] 110.80-2 unexpected exception IO when evaluating standard library function

Attached to Project: Community Packages
Opened by Cheuk Yin Ng (chucksys) - Saturday, 04 February 2017, 19:06 GMT
Last edited by Alexander F. Rødseth (xyproto) - Monday, 27 February 2017, 10:40 GMT
Task Type Bug Report
Category Packages
Status Closed
Assigned To Alexander F. Rødseth (xyproto)
Architecture x86_64
Severity High
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description:
smlnj throws an uncaught exception IO when it evaluates a standard library function.

Error message:

unexpected exception (bug?) in SML/NJ: Io [Io: openIn failed on "/build/smlnj/src/sml.boot.x86-unix/smlnj/basis/.cm/x86-unix/basis.cm", No such file or directory]
raised at: Basis/Implementation/IO/bin-io-fn.sml:617.25-617.71
../cm/util/safeio.sml:30.11
../compiler/TopLevel/interact/evalloop.sml:42.54

Additional info:
* version 110.80-2


Steps to reproduce:
- start smlnj repl
- type `List.filter;'
- throws exception
This task depends upon

Closed by  Alexander F. Rødseth (xyproto)
Monday, 27 February 2017, 10:40 GMT
Reason for closing:  None
Additional comments about closing:  Added message about re-login or sourcing /etc/profile.d/smlnj.sh
Comment by Alexander F. Rødseth (xyproto) - Wednesday, 08 February 2017, 09:18 GMT
Hi, thanks for reporting! Will look into it.
Comment by Alexander F. Rødseth (xyproto) - Wednesday, 15 February 2017, 09:07 GMT
I'm unable to reproduce the issue here:

% sml
Standard ML of New Jersey v110.80 [built: Sun Jan 1 21:45:53 2017]
- 1 + 2;
val it = 3 : int
- List.filter;
[autoloading]
[library $SMLNJ-BASIS/basis.cm is stable]
[library $SMLNJ-BASIS/(basis.cm):basis-common.cm is stable]
[autoloading done]
val it = fn : ('a -> bool) -> 'a list -> 'a list

* Does it work if you reinstall smlnj?
* Which command do you use to start the smlnj repl?
Comment by Cheuk Yin Ng (chucksys) - Wednesday, 15 February 2017, 14:36 GMT
* Does it work if you reinstall smlnj?
No.

* Which command do you use to start the smlnj repl?
`sml'
Comment by Alexander F. Rødseth (xyproto) - Friday, 24 February 2017, 15:18 GMT
I see that the /build path exists in several files.

for f in $(pacman -Ql smlnj | cut -d" " -f2); do grep -sHI "build/smlnj" $f; done

Will try to figure out how to modify the akward smlnj build process to respect the given paths.
Comment by Alexander F. Rødseth (xyproto) - Saturday, 25 February 2017, 20:39 GMT
Tryed on another system. List.filter; works great there too.

Do you have any special environment variables? Is it x86_64 or i686?
Comment by Cheuk Yin Ng (chucksys) - Saturday, 25 February 2017, 20:43 GMT
Running on x86_64
Comment by Jussi Timperi (Beini) - Sunday, 26 February 2017, 12:42 GMT
Looks like the environment variables are not set correctly. Did you source /etc/profile.d/smlnj.sh or reboot before running sml?
Comment by Cheuk Yin Ng (chucksys) - Sunday, 26 February 2017, 15:31 GMT
No. Sourcing smlnj.sh worked.
Comment by Alexander F. Rødseth (xyproto) - Monday, 27 February 2017, 10:39 GMT
Added a friendly notice when installing the package telling users to re-login or source /etc/profile.d/smlnj.sh.

Loading...