Revisions of smlnj

Ana Guerrero's avatar Ana Guerrero (anag+factory) accepted request 1172026 from Avindra Goolcharan's avatar Avindra Goolcharan (avindra) (revision 27)
- update to 110.95.5:
  * Changed Unsafe.Real64.toBits to Unsafe.Real64.castToWord and
    Unsafe.Real64.fromBits to Unsafe.Real64.castFromWord. These
    new names match MLton’s names for these operations.
  * Reimplement the PackReal64Big and PackReal64Big structures to 
    use the bit-casts between 64-bit reals and 64-bit words. This 
    change fixes Issue #300 (PackReal64{Big,Little}.update is not implemented).
  * Added ALIGN_STACK_16 preprocessor flag to x86 assembly code (
    mach-dep/X86.prim.asm) in runtime system. This flag controls 
    whether the SML stack frame is a multiple of 16 bytes (which 
    allows foreign function calls to ensure 16-byte stack alignment).
  * Expose the machine property functions as Unsafe.isBigEndian and 
    Unsafe.wordSize. These functions are inlined by the compiler, 
    which allows one to expect tests of the form if Unsafe.
    isBigEndian() to be evaluated at compile time. These primops are 
    also available to user code via the Unsafe structure.
  * Improved the Unsafe.Real64.fromBits implementation to use a 
    cast and a reference (instead of pack/unpack from a byte array).
  * We now use Word_t to represent lengths in the various 
    allocation routines in gc/ml-objects.c. This change fixes
    Issue #283 (TextIO.inputAll segfaults when reading 980M file).
  * Added implementation of Real64.nextAfter.
  * Rewrote the Real64.split function to use the bit-
    representation of reals in its implementation. This new 
    version fixes Issue #269 (Real.realMod and Real.split produce 
    incorrect result for values close to zero).
  * Did a complete rewrite of the mechanisms used to implement 
    conversions between strings and reals. As part of this rewrite, 
    I implemented the support for the StringCvt.EXACT formatting 
    mode and implemented the missing Real.toDecimal/fromDecimal 
    functions. These changes also fix Issue #194 (Incorrect 
    formatting of real number).  The new implementation is based on 
    the Ryũ library and related PLDI 2018 paper by Ulf Adams.
  * Fixed Issue #298 (Incorrect printing of source code in error message).
  * Added Unsafe.Real64 structure to hold conversions between 
    Real64.real and Word64.word values. The fromBits function can be 
    further improved, but it needs the new host_big_endian primop to 
    select the best code path based on endianess.
  * Refactoring the Basis implementation directory structure to 
    move code related to real numbers into its own directory. 
    Modules that support sequences of reals are not included in this 
    refactoring. This is the first step to a reimplementation of the 
    support for printing reals.
  * Added host_word_size and host_big_endian primops. These will 
    expand into constant functions (e.g., fn () ⇒ 64 for 
    host_word_size on a 64-bit system) that will be visible to the optimizer.
  * The implementations of PackWord64Little.update and PackWord64Big
    .update were swapped on 64-bit platforms (resulting in byte-
    order reversal). These have been fixed. Note that the 32-bit versions are correct.
  * Modified the implementation of OS.Path to allow for systems (
    like Windows) that support more than one valid arc separator 
    character. This change addresses Issue #280 (Support forward-
    slash ("/") as a separator in the Windows implementation of OS.Path).
  * Modified the CPS contraction phase to address Issue #292 (
    Word8.toLargeInt is broken in 32-bit version). The change is to 
    disable fusing of conversions to IntInf.int that use 64-bit 
    numbers as the intermediate type on 32-bit platforms.
  * There was an inconsistency in the way that datatypes were 
    printed in the REPL depending on if they were a top-level 
    definition or defined in a structure. It was also the case that 
    the printing of top-level declarations (TopLevel/print/ppdec.sml)
    was using relative indentation, while the printing of 
    declarations in modules (ElabData/modules/ppmod.sml) was 
    using absolute indentation. I changed the code in TopLevel/
    print/ppdec.sml to use absolute indentation.
  * Fix bug in new-literals.sml, where the integer value 231 was 
    being stored as a 32-bit signed integer in the literal table, 
    instead of as a 64-bit signed integer. This change fixes Issue
    #287 (The word literal 0wx80000000 is incorrectly converted to 0wx7FFFFFFF80000000).
  * Add contraction rule for when two calls to SETHDLR appear in 
    sequence. This situation arises when the body of a handler is optimized away.
Dominique Leuenberger's avatar Dominique Leuenberger (dimstar_suse) accepted request 1103765 from Avindra Goolcharan's avatar Avindra Goolcharan (avindra) (revision 25)
- 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
Dominique Leuenberger's avatar Dominique Leuenberger (dimstar_suse) accepted request 1095229 from Avindra Goolcharan's avatar Avindra Goolcharan (avindra) (revision 24)
- 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.
Dominique Leuenberger's avatar Dominique Leuenberger (dimstar_suse) accepted request 878058 from Factory Maintainer's avatar Factory Maintainer (factory-maintainer) (revision 22)
Automatic submission by obs-autosubmit
Dominique Leuenberger's avatar Dominique Leuenberger (dimstar_suse) accepted request 508512 from Ismail Dönmez's avatar Ismail Dönmez (namtrac) (revision 20)
- 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
Adrian Schröter's avatar Adrian Schröter (adrianSuSE) committed (revision 18)
Split 13.2 from Factory
Adrian Schröter's avatar Adrian Schröter (adrianSuSE) committed (revision 17)
Split 13.1 from Factory
Adrian Schröter's avatar Adrian Schröter (adrianSuSE) committed (revision 16)
Split 12.3 from Factory
Adrian Schröter's avatar Adrian Schröter (adrianSuSE) committed (revision 15)
branched from openSUSE:Factory
Stephan Kulow's avatar Stephan Kulow (coolo) accepted request 111513 from Ismail Dönmez's avatar Ismail Dönmez (namtrac) (revision 14)
- 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
Stephan Kulow's avatar Stephan Kulow (coolo) committed (revision 13)
replace license with spdx.org variant
Adrian Schröter's avatar Adrian Schröter (adrianSuSE) committed (revision 12)
autobuild's avatar autobuild committed (revision 11)
11.4 source split
autobuild's avatar autobuild committed (revision 10)
release number sync
autobuild's avatar autobuild committed (revision 9)
release number sync
autobuild's avatar autobuild committed (revision 8)
Displaying revisions 1 - 20 of 27
openSUSE Build Service is sponsored by