New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Installation of SML/NJ 2021.1 fails on Ubuntu 20.04 #233
Comments
I just installed a fresh copy of 110.99.3 on my Ubuntu (20.04 LTS) system, and I can’t reproduce this bug,
though I need to run the regression tests to check more thoroughly (and we need many more tests for floating point, anyway). I expect your installation is still corrupted somehow, but I am not sure what to suggest for trouble shooting your installation.
Dave MacQueen
On Aug 3, 2022, at 1:51 AM, PeterSk ***@***.***> wrote:
I have Ubuntu 20.04 too, 64-bit, and I had the same (or very similar) problem now installing 110.99.3 version. Then I realized, I have some smlnj files/folders all over the place from the previous installation and my guess was there is some "interference" with that files/folders so I created folder named (say) smlnj, and moved the config.tgz file there, and there I run "tar -xzf config.tgz" and "config/install.sh". I it worked. So now I have SML/NJ on my computer. I love SML/NJ, and I know there are other SML implementations and of course, the "Rambo" version of SML, so to speak, her industrial majesty OCaml. But for the sake of pure beauty of functional programming, SML is small and beautiful.
Or I loved SML/NJ, past tense, because I can use it only with integers. Or I can love old, old version of SML/NJ from Ubuntu repository. But with recent versions, when I write, in REPL, say, "2.5; ENTER" it will crash. Illegal instruction. I'm not C or assembly programmer, I'm not a "hard core" programmer and I'm even new to Linux system or OS architecture of computer as such. And I'm not eager buyer of new hardware. I guess, my CPU is not the same as intended CPU of the installation of SML/NJ for Linux. Maybe I need something like a compilation from the scratch, where every bit of machine code is generated by my CPU.
I thank you, I like you and admire you, creators and maintainers of the SML/NJ but I know, if you can't replicate the issue, it's not a issue.
—
Reply to this email directly, view it on GitHub <#233 (comment)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AAGXNPO5KMQCERE3KJCOSPTVXIXJPANCNFSM53XJSACA>.
You are receiving this because you are subscribed to this thread.
David MacQueen
***@***.***
|
Thank you very much. I appreciate your response and effort. Yes, my installation is still integer only, so to speak, but I will try future versions of SML/NJ and anyway, at some point, I will buy new or newer computer, with more fitting CPU, concerning the floats, I'm sure. Though, the true is, right now, I have installed some other programming languages, the newest versions, without the float problem. I think, and I'm not good at low-level things, but I see it that If in my installation process there is no pre-built binary or there is no assembly code not fitting my CPU, then indeed, it's very hard to suggest something, even to point to something. Anyway thank you. |
Peter:
For some reason, this comment is not showing up for the issue thread.
Therefore, I'll reply directly and hope the response makes it to you.
I don't understand the problem you are having with floating-point, unless
it is a case of using a very old CPU that does not support the basic SSE
instructions. In that case, the 32-bit version should still work for you,
since it uses the 80-bit FP registers from the FPU.
To see what your CPU supports in terms of hardware, you can run the
following shell command:
cat /proc/cpuinfo | head -30
The "model name" will tell you the processor version and the "flags" line
will tell you what features your processor has.
In 64-bit mode, we require at least SSE-2 (introduced in 2000), but we may
actually require SSE-3 (introduced in 2004).
- John
… On Aug 3, 2022, at 3:51 AM, PeterSk ***@***.***> wrote:
I have Ubuntu 20.04 too, 64-bit, and I had the same (or very similar) problem now installing 110.99.3 version. Then I realized, I have some smlnj files/folders all over the place from the previous installation and my guess was there is some "interference" with that files/folders so I created folder named (say) smlnj, and moved the config.tgz file there, and there I run "tar -xzf config.tgz" and "config/install.sh". I it worked. So now I have SML/NJ on my computer. I love SML/NJ, and I know there are other SML implementations and of course, the "Rambo" version of SML, so to speak, her industrial majesty OCaml. But for the sake of pure beauty of functional programming, SML is small and beautiful.
Or I loved SML/NJ, past tense, because I can use it only with integers. Or I can love old, old version of SML/NJ from Ubuntu repository. But with recent versions, when I write, in REPL, say, "2.5; ENTER" it will crash. Illegal instruction. I'm not C or assembly programmer, I'm not a "hard core" programmer and I'm even new to Linux system or OS architecture of computer as such. And I'm not eager buyer of new hardware. I guess, my CPU is not the same as intended CPU of the installation of SML/NJ for Linux. Maybe I need something like a compilation from the scratch, where every bit of machine code is generated by my CPU.
I thank you, I like you and admire you, creators and maintainers of the SML/NJ but I know, if you can't replicate the issue, it's not a issue.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were assigned.
|
John, sir, thank you, very, very much... I didn't try 32-bit version yet, but according to the shell command it seems that my CPU have "ssse3" (if it means the "SSE-3"), and "sse2" as well. Thank you. Peter |
For the record, so to speak, now (version: 64-bit v110.99.4 on Ubuntu 22.04.3) with newer hardware (including the key thing: a newer processor) it seems that my problem with non-integer numbers has gone. I won't test this new version of SMLNJ on my old "problematic" hardware, so I don't know if it has something to do with my new processor, but anyway, thank you very much for the language. |
Glad to hear that it is working for you. |
The problems with the LLVM-based backend own Linux were owing to complications in the way that the ELF object-file format treats relocation. These have now been fixed and the system bootstraps on Linux and can compile itself. |
Version
2021.1
Operating System
OS Version
Ubuntu 20.04
Processor
x86 (32-bit)
Component
Installation
Severity
No response
Description of the problem
Installing SML/NJ 2021.1 on Ubuntu 20.04 fails, raising exception CFunNotFound with "CodeGen.setTarget". (Curiously, the same installation procedure seems to succeed on macOS.)
Transcript
Expected Behavior
No response
Steps to Reproduce
config/install.sh
(run on Ubuntu 20.04)
Additional Information
No response
Email address
No response
Comments from smlnj-gforge
Original smlnj-gforge bug number 300
Submitted on 2022-54-02 at 18:5400
comment by @JohnReppy on 2022-27-31 16:2700 +000 UTC
This appears to be a problem with the in-memory object file produced by LLVM on Linux.
The text was updated successfully, but these errors were encountered: