* Mon Aug 14 2023 Avindra Goolcharan <avindra@opensuse.org>
- update to 110.99.4:
* MLRISC: Modified the way that zero-extension (ZX) is handled
when the source bit width is smaller than the target.
Previously, the code assumed that the high bits would be zero,
but as demonstrated by issue #272, this is not guaranteed, so
we now mask out the high bits.
* Added the NativeInt and NativeWord structure aliases to
provide a portable way to refer to the native numeric types in signatures.
* Reimplementation of the Random structure to use the Mersenne
Twister algorithm. There are both 32-bit and 64-bit versions
of the generator (which one is included depends on the target platform).
* Reworked the code for determining the maximum hash-table size
(used in the HashSetFn and HashTableRep modules) so that it
does not depend on Int.int and Word.word being the same size (an
issue for MLton). Also split that code out into the internal
MaxHashTableSize module.
* Added support for the end-of-line assertion ("$") and full
support for intervals to the Thompson engine in the RegExp library.
* fix issue 87: ml-makedepend trashes dependency file on error
* fix issue 256: Initial numbers generated by Util/random.sml
have unexpected regularities
* fix issue 258: Thompson NFA regex engine doesn’t advance stream position when matching
* fix issue 260: 64-bit word literals are parsed incorrectly on 32-bit systems
* fix issue 264: Fix VectorSlice.all and ArraySlice.all
* fix issue 266: config: restore PPC for 10.4 and 10.6
* fix issue 272: Calling C function via NLFFI binding may give
result outside range of its C return type
* fix issue 278: CharBuffer.addSlice does not properly handle starting offsets
* fix issue 279: HashSetFn’s calculation of `maxSize can cause
Overflow during functor instantiation
- remove smlnj-kernel-6.x.patch
* fixed in upstream: f07eb71cca7c647d28dbaf195f1e61e7e23cfc6f
* Sun Jun 25 2023 Avindra Goolcharan <avindra@opensuse.org>
- update to 110.99.3:
* Implemented Basis Library proposal 2021-001 (Add getWindowSz
function to Posix.TTY structure).
* Implemented Basis Library proposal 2022-001 (Add tau to MATH signature).
* Fix for makeml and installml scripts do not like locations with spaces.
* Fix for Last branch of case expression omitted by PPAst.ppAst.
* Fix for Pretty printing of Absyn in error message does not respect fixity.
* Fix for Unable to interrupt execution by using SIGINT.
* Fixed some interfaces that did not agree with the SML Basis
Library specification. Bugs #318 (IEEEReal.decimal_approx
does not match the Basis Library) and #319 (Type of
Real.fromDecimal does not match the Basis Library).
* Fixed bug #316 (Real.fromManExp does not return expected value if man = 0.0).
* Fixed bug #317 (Conversion from string to real does not accept non-finite values).
* Fixed bug #314 (IEEEReal.float_class does not match the Basis
Library). For some reason, the NAN constructor took an
argument in our implementation. This code was probably an
early design of the API that was changed in the Basis Library
specification, but not in our code.
* Fixed bug #313 (Real.fromLargeInt crashes on large integer
input). Changed the assembly code for the AMD64 to return
infinity when the scaled exponent exceeds the maximum allowed
(instead of generating an overflow).
* Adding support for generating a SIG_GC signal when there is a garbage collection.
* Fixed bug #314 (IEEEReal.setRoundingMode is a no-op on Linux).
* Fixed bug #312 (CM.make is unable to handle filenames that
contain a backslash). We have changed the semantics of paths
given to the functions in the CM structure to be interpreted
using the native pathname syntax (instead of CM's generic syntax).
* Fixed bug #284 (Compiler bug: Contract: UsageMap on 132). The
problem was the the CPSTrans.cpstrans function was generating
code for loading spilled parameters in reverse order. In
addition to fixing the bug, added some detailed documentation of the code.
* Fixed bug #310 (Error when REPL tries to print value of type
Posix.FileSys.ST.stat).
* Fixed bug #306 (Word8VectorSlice: mapping a subslice produces
wrong result or crashes SML/NJ).
* Fix a module compilation performance bug by removing packStr
and packFct from Elaborator/modules/sigmatch.sml (reducing
the size of that file by about 25%), and removing the call of
packStr (in function constrStr) in Elaborator/elaborate/elabmod.
sml, replacing it with a call to Instantiate.instAbstr.
Goodbye at last to packStr!
* Fix for MSI installer for SMLNJ 110.99.2 reports as version 0.0.0.0.
* Fix for ml-build fails on Windows with error
* support for macOS 13 (Ventura)
- includes 110.99.2:
* Fix a benign bug where the size of a floating-point spill
record was twice as large as necessary on 64-bit systems.
* Split out the Real.toLargeInt implementation into target-word-
size versions (the Real64ToIntInf module). For 64-bit targets,
the new version uses the bit representation of the real
number to compute the result. The 32-bit version is the old code
that uses floating-point operations. This change fixes bug #279 (
Real.toLargeInt returns zero for anything in range [-512,512]).
* In the translation from Absyn to PLambda, there was a
function (inlops) that was used to build the primop and type
data structures for numeric types. This function was being
called for every primitive operator, even though its results
only depended on the numeric type. I added a hash table to cache
the results indexed numeric kind. This change speeds up the
compiler by about 3% (e.g., compiling the compiler went from 58s
to 55s on a MacBookPro with a 2.4GHz Intel i9 processor).
* support installing and running SML/NJ on macOS 12 (Monterey)
- includes 110.99.1:
* Changed the AMD64 frame layout to include a word to hold the
Overflow exception. This value is used by the LLVM backend to
generate the exception for checked arithmetic operations.
* Some minor restructuring of the logic in the generic installer.
* Fixed a bug with how FLINT numeric types were being
translated to CPS types. Specifically, types that were smaller
than the default integer size (e.g., word8) should have been
marked as having a tagged representation.
* Fixed a serious performance bug in the implementation of the
CharBuffer and MonoBuffer structures. Essentially, if one did
not reserve sufficient space for the contents, it could take
quadratic time to fill the buffer. We now grow the buffer by a
factor of 1.5 of its current size, with an upper bound on the extra growth of 256K.
* Fix for bug #280 (110.99 config/install.sh -64 fails on macOS
10.15.7). I was unable to reproduce this problem, but after
some investigation, it appears that the problem was inconsistent
build tools being picked up from the user’s path. To protect
against this issue, I made the paths to the ar and ranlib tools absolute.
* Added support for running SML/NJ on M1 Macs via the Rosetta2
emulator. The change is to identify the arm processor as amd64
in the config/_arch-n-opsys script. Note that while the system
basically seems to work okay under rosetta, trying to run the
makeml command after having compiled the complier caused a crash.
Version: 110.99-bp155.2.25
* Wed Nov 02 2022 Dominique Leuenberger <dimstar@opensuse.org>
- Add smlnj-kernel-6.x.patch: Detect kernel 6.x.
* Tue Mar 02 2021 Wolfgang Frisch <wolfgang.frisch@suse.com>
- Download the source code via https:// for authenticity.
* Fri Jan 01 2021 Avindra Goolcharan <avindra@opensuse.org>
- Correct typo in eXene source module extension
* Sun Dec 27 2020 Avindra Goolcharan <avindra@opensuse.org>
- add SMLNJ_HOME env var profile
* fixes user-facing issue when importing code from std lib
- update pack_new_version.sh
* use source structure from readme
* configure curl/script for re-use and speed
* switch to xz for compression (from bzip2)
- explicitly list binaries in spec
- format MLRISC.diff to match build directory
- remove obsolete minmem file
- add smlnj-rpmlintrc
* Fri Dec 25 2020 Avindra Goolcharan <avindra@opensuse.org>
- Update to version 110.99
* support for 64-bit architectures added
* many changes since 2017, see upstream:
https://www.smlnj.org/dist/working/110.99/HISTORY.html
- update pack_new_version.sh
* add 64bit support tarball
* add asdl tarball
* remove non-linux platform docs
- ran spec-cleaner
* Thu Jul 06 2017 idonmez@suse.com
- Update to version 110.81
Successor ML:
* The 110.81 release adds additional support for Successor ML
syntactic extensions. It is now possible to use record-punning
syntax in expressions (as well as in patterns).
* And we have added support for do syntax in let bindings.
* We have also changed the way that Successor ML features are
enabled from the REPL. Instead of assigning true to the
Control.succML variable, one should use the function
Control.setSuccML is used to enable or disable Successor ML.
Compiler
* This version eliminates dependencies on FLINT types in the
front end. In particular, uses of PlambdaType have been eliminated.
SML/NJ Library:
* Added the JSONUtil module to the JSON library.
ml-lpt
* Added --debug command-line option to ml-antlr. This flag causes
ml-antlr to generate debug actions that print the left-hand-side
non-terminal of the production.
* Added %tokentype directive to ml-antlr, which allows user-defined
datatypes to be used to represent tokens.
MLRISC:
* Changed the interface to AMD64Gen; the signBit and negateSignBit
callback functions now return an MLTree.rexp (instead of a label).
Bugfixes:
* 129 Symbolic identifiers are allowed as strids
* 149 Datatype replication exposes hidden constructors
* 153 Enabling Successor ML features is delayed
* 175 Executable stack on Linux
* 179 ml-ulex writing debug messages to stdOut
* Parser bugfix: we now allow `*` as a field label in record-punning patterns.
- Drop smlnj-linux-4.0.patch, upstream.
* Wed May 20 2015 dimstar@opensuse.org
- Add smlnj-linux-4.0.patch: Fix build with Linux kernel 4.x.
* Tue Mar 27 2012 idonmez@suse.com
- Update to version 110.74
Compiler:
* Added cuprit tracking
SML/NJ Library:
* Added hash-table-based implementation of sets to the utility
library.
* Added new S-expression library for I/O of semi-structured data.
* Fixed bug in JSON scanner.
Fixed Bugs:
* Incorrect type inference with functor taking/producing
polymorphic type (bug #60)
* Errors in ml-lpt manual (bug #74)
* blastWrite crashes (bug #76)
* strange error message for syntax error (bug #77)
* Installation fails on Linux 3.0 (bug #80)
* sml/nj does not work with Linux 3.0 (bug #81)
* No support for Kernel 3.x (bug #83)
- Drop config.diff, runtime.diff
- Add pack_new_version.sh to pack new versions
* Mon Feb 16 2009 schwab@suse.de
- Update to version 110.69.
* Thu Oct 30 2008 schwab@suse.de
- Fix embedded paths.
* Wed Feb 13 2008 schwab@suse.de
- Update to version 110.67.
* Fri Aug 10 2007 schwab@suse.de
- Update to version 110.65.
* Thu Mar 01 2007 schwab@suse.de
- Hack to build as non-root.
* Tue Nov 21 2006 schwab@suse.de
- Update to version 110.60.
* Wed Jan 25 2006 mls@suse.de
- converted neededforbuild to BuildRequires
* Fri Jul 01 2005 schwab@suse.de
- Update to version 110.54.
* Fri Feb 11 2005 schwab@suse.de
- Update to version 110.52.
* Tue Nov 16 2004 schwab@suse.de
- Update to version 110.50.
* Thu Aug 05 2004 schwab@suse.de
- Update to version 110.47.
* Mon May 17 2004 schwab@suse.de
- Update to version 110.45.
- Also build on ppc.