1 |
This is a list of changes to the SML/NJ Library; the version numbers |
This is a list of changes to the SML/NJ Library; the version numbers |
2 |
correspond to SML/NJ releases. |
correspond to SML/NJ releases. |
3 |
|
|
4 |
|
[2014-12-07] |
5 |
|
New implementation of ListMergeSort. This implementation is |
6 |
|
better on sorted data (both ascending and descending) and |
7 |
|
faster on smaller lists. It is slower than the previous |
8 |
|
implementation on very large lists (e.g., 10^6 elements |
9 |
|
or more). |
10 |
|
|
11 |
|
[2014-11-17] |
12 |
|
Added HTML4Attrs module to HTML4 library. This module provides |
13 |
|
utility functions for building attribute-value pairs. |
14 |
|
|
15 |
|
-------------------------------------------------------------------------------- |
16 |
|
SML/NJ 110.77 |
17 |
|
------------------- |
18 |
|
|
19 |
|
[2014-07-15] |
20 |
|
Reimplementation of delete/remove operations in red-black-tree |
21 |
|
versions of sets and maps. The previous implementation could |
22 |
|
result in violations of the data-structure invariants, which |
23 |
|
was leading to unbalanced trees and loss of performance. Note |
24 |
|
that the order invariants were correctly maintained, so correctness |
25 |
|
of the operations was not an issue. |
26 |
|
|
27 |
|
[2014-03-27] |
28 |
|
Added XML library, which is a lightweight library for parsing XML |
29 |
|
files. The library does not support validation and will immediatly |
30 |
|
raise an exception on syntax errors. Its purpose is to ease the |
31 |
|
writing of applications that must process data files that are |
32 |
|
in XML syntax. |
33 |
|
|
34 |
|
[2013-11-20] |
35 |
|
Changes to S-expression parsing library. Allow multiple top-level |
36 |
|
values in a file (parsing now returns a list). Handle LISP/Scheme-style |
37 |
|
comments ("; ..."). |
38 |
|
|
39 |
|
-------------------------------------------------------------------------------- |
40 |
|
SML/NJ 110.76 |
41 |
|
------------------- |
42 |
|
|
43 |
|
[2012-10-30] |
44 |
|
Fixed bug in DynamicArray iterators because of bad slice dimensions |
45 |
|
(bug #108). Also switched to using Array.fromList to implement fromList |
46 |
|
function. |
47 |
|
|
48 |
|
-------------------------------------------------------------------------------- |
49 |
|
SML/NJ 110.75 |
50 |
|
------------------- |
51 |
|
|
52 |
|
[2012-09-24] |
53 |
|
Added Base64 module to support encoding and decoding Word8 vectors as |
54 |
|
base64 strings. |
55 |
|
|
56 |
|
[2012-09-23] |
57 |
|
Added exists, existsi, all, and alli functions to ORD_MAP signature and |
58 |
|
implementations. |
59 |
|
|
60 |
|
[2012-09-23] |
61 |
|
Added all function to ORD_SET signature and implementations. |
62 |
|
|
63 |
|
[2012-03-26] |
64 |
|
Added subtract, subtract', and subtractList functions to ORD_SET |
65 |
|
interface and implementations. |
66 |
|
|
67 |
|
[2012-03-09] |
68 |
|
Modified PathUtil module to handle the case where the filename is an |
69 |
|
absolute path. |
70 |
|
|
71 |
|
-------------------------------------------------------------------------------- |
72 |
|
SML/NJ 110.74 |
73 |
|
------------------- |
74 |
|
|
75 |
|
[2011-11-25] |
76 |
|
Added hash-table-based implementation of sets (HASH_SET signature and |
77 |
|
HashSetFn functor). |
78 |
|
|
79 |
|
[2011-05-23] |
80 |
|
Added new S-expression library (contributed by Damon Wang) |
81 |
|
|
82 |
|
[2011-05-17] |
83 |
|
Fixed bug in JSON scanner. It didn't handle escaped backslash or double |
84 |
|
quote correctly. |
85 |
|
|
86 |
|
-------------------------------------------------------------------------------- |
87 |
|
SML/NJ 110.73 |
88 |
|
------------------- |
89 |
|
|
90 |
|
[2011-05-12] |
91 |
|
Modified the implementation of GetOpt.usageInfo so that if the help |
92 |
|
string has embedded newlines, then the extra lines are properly |
93 |
|
indented. |
94 |
|
|
95 |
|
[2011-04-10] |
96 |
|
Changed the interface of JSONStreamParser to support both parsing files |
97 |
|
and TextIO.instreams. |
98 |
|
|
99 |
|
[2011-03-16] |
100 |
|
Added findExe function to PathUtil module. |
101 |
|
|
102 |
|
[2010-06-30] |
103 |
|
Added HTML4 library. |
104 |
|
|
105 |
|
[2010-03-09] |
106 |
|
Fixed bug in hashed cons library (bug #55). |
107 |
|
|
108 |
|
-------------------------------------------------------------------------------- |
109 |
|
SML/NJ 110.72 |
110 |
|
------------------- |
111 |
|
|
112 |
|
[2009-05-13] |
113 |
|
Added array iterators to DynamicArray module. |
114 |
|
|
115 |
|
[2009-03-15] |
116 |
|
Added support for the interval syntax to the AWK RE syntax parser (this |
117 |
|
syntax was not part of the original version of AWK, but is supported by |
118 |
|
modern variants and the POSIX standard). |
119 |
|
|
120 |
|
[2008-10-03] |
121 |
|
Improved the error messages in the JSON parser. |
122 |
|
|
123 |
|
[2008-06-11] |
124 |
|
Added support for begin marks to Thompson engine. |
125 |
|
|
126 |
|
[2008-05-12] |
127 |
|
Added parsing support to JSON library. |
128 |
|
|
129 |
|
[2008-04-18] |
130 |
|
First commit of JSON Library. Printing works, but parsing still needs |
131 |
|
to be implemented. |
132 |
|
|
133 |
|
[2008-03-18] |
134 |
|
Committed a major overhaul of the RegExp library. There is now a new |
135 |
|
engine that implements Ken Thompson's RE matching algorithm. The result |
136 |
|
type of the RE matches has also been simplified by removing an unecessary |
137 |
|
option type. |
138 |
|
NOTE: the new RE engine is not complete in that it does not yet support |
139 |
|
begin/end marks. |
140 |
|
|
141 |
|
[2007-12-13] |
142 |
|
Also added list' and listg' which are parameterized over the delimiter- |
143 |
|
and separator strings used for formatting lists. (The default for "list" and |
144 |
|
"listg" is the usual "[" ", " "]".) |
145 |
|
|
146 |
|
[2007-12-13] |
147 |
|
Added "elem" function as an inverse to "glue" to FormatComb module. |
148 |
|
This makes writing extensions possible. Also added "list" and "option" |
149 |
|
combinators for formatting list- and option types. |
150 |
|
|
151 |
|
[2007-11-02] |
152 |
|
A collection of bug fixes for machine.sml in the Reactive library. |
153 |
|
(Thanks to Timothy Bourke) |
154 |
|
|
155 |
|
[2007-05-15] |
156 |
|
Made the UnixPath.path_list type concrete (= string list). |
157 |
|
|
158 |
|
[2007-04-24] |
159 |
|
Added next function to Fifo and Queue modules. |
160 |
|
|
161 |
|
[2007-02-15] |
162 |
|
Removed vestigial IntInf and INT_INF definitions. |
163 |
|
|
164 |
|
[2007-02-14] |
165 |
|
Changed the representation type of UTF8.wchar from Word32.word to word. |
166 |
|
Also added the UTF8.maxCodePoint value. |
167 |
|
|
168 |
|
[2007-01-30] |
169 |
|
Added the lookup function to the ORD_MAP interface. |
170 |
|
|
171 |
|
[2007-01-30] |
172 |
|
Added the fromList function to the ORD_SET interface. For the red-black |
173 |
|
tree and list based implementations, this operation is linear for ordered |
174 |
|
inputs. |
175 |
|
|
176 |
|
[2007-01-28] |
177 |
|
Added UTF8 signature and structure. |
178 |
|
|
179 |
|
[2005-11-07] |
180 |
|
Internal change: replaced uses of the depreciated Substring.all |
181 |
|
with the Substring.full |
182 |
|
|
183 |
|
[2005-11-05] |
184 |
|
Tweaking of the interval set API. Added iterators on items and |
185 |
|
changed the iterators on intervals to have a "Int" suffix. |
186 |
|
Changed addInterval to addInt, changed list to intervals. Added |
187 |
|
the items function. |
188 |
|
|
189 |
|
[2005-10-31] |
190 |
|
Fixed a bug in IntervalSetFn().intersect. |
191 |
|
|
192 |
|
[2005-10-25] |
193 |
|
Added interval sets to utility library (signatures INTERVAL_DOMAIN |
194 |
|
and INTERVAL_SET, and functor IntervalSetFn). |
195 |
|
|
196 |
|
[2005-08-04] |
197 |
|
Renamed graph-scc.sml to graph-scc-fn.sml. |
198 |
|
|
199 |
|
[2005-07-23] |
200 |
|
Fix PP library to export ANSITermDev, ANSITermPP, PPDescFn, and |
201 |
|
PP_DESC. Also add nbSpace to PP_DESC signature. |
202 |
|
|
203 |
|
[2005-07-12] |
204 |
|
Added ANSITermDev device that uses ANSI terminal display attributes |
205 |
|
and added a ANSITermPP for pretty printing to such a device. |
206 |
|
|
207 |
|
[2005-07-06] |
208 |
|
Added ANSITerm structure, which provides support for ANSI terminal |
209 |
|
display attributes (e.g., red text). |
210 |
|
|
211 |
|
[2005-07-06] |
212 |
|
Refactored the pretty printing library. The declarative way to |
213 |
|
construct pretty-printing descriptions now sits on top of the |
214 |
|
PP_STREAM interface. Also removed "onNewline" function, which |
215 |
|
was not implemented. |
216 |
|
|
217 |
|
[2005-05-05] |
218 |
|
Added singleton function to MONO_PRIORITYQ interface. |
219 |
|
|
220 |
|
[2005-05-04] |
221 |
|
Added the "join" combinator to ParserComb. |
222 |
|
|
223 |
|
[2005-03-21] |
224 |
|
Fixed a bug in GetOpt.getOpt. The argument processing functions |
225 |
|
for ReqArg and OptArg, and the embedding function for ReturnInOrder |
226 |
|
were getting applied to all arguments, even past a "--". |
227 |
|
|
228 |
|
[2005-02-11] |
229 |
|
Added Atom.same and Atom.lexCompare to the Atom structure. Eventually, |
230 |
|
Atom.sameAtom will be removed. |
231 |
|
|
232 |
|
[2004-12-15] |
233 |
|
Change HashString.hashString' to hashSubstring. |
234 |
|
|
235 |
|
[2004-12-09] |
236 |
|
Added two simple statistics modules: |
237 |
|
* RealOrderStats implements selection of arbitrary order |
238 |
|
statistics as well as the median of an array of reals |
239 |
|
in randomized linear time. |
240 |
|
* UnivariateStats implements mean, variance, standard and average |
241 |
|
deviation, skew, kurtosis, and median of a univariate sample |
242 |
|
(i.e., a set of reals). |
243 |
|
|
244 |
|
[2004-11-29] |
245 |
|
Added HashString.hashString' for substrings. |
246 |
|
Hand-inlined CharVector.fold into HashString for efficiency. |
247 |
|
Modified atom.sml so that Atom.atom' first tries to find an |
248 |
|
existing atom before turning its argument into a string. [-blume] |
249 |
|
|
250 |
|
[2003-09-03] |
251 |
|
Minor modifications to random.sml due to changes to some |
252 |
|
Basis interfaces (slices). |
253 |
|
Significant surgery on bit-array.sml to make it compile with |
254 |
|
new signature MONO_ARRAY. This will require further cleanup |
255 |
|
in the future. |
256 |
|
|
257 |
|
[2003-08-28] |
258 |
|
Made compilation of int-inf* conditional. (The Basis now has |
259 |
|
a spec-conforming implementation of IntInf, so the one here is |
260 |
|
no longer needed.) [-blume] |
261 |
|
|
262 |
|
[2003-07-31] |
263 |
|
Added getDevice function to PP_STREAM signature. |
264 |
|
|
265 |
|
[2003-05-27] |
266 |
|
Avoid poly-eq in Util/parser-comb.sml. |
267 |
|
|
268 |
|
[2003-05-22] |
269 |
|
More cleanup (all in the name of eliminating incomplete matches): |
270 |
|
- in HTML/html-attrs-fn.sml: fill in missing patterns in two |
271 |
|
case expressions |
272 |
|
- in HTML/html-gram: rewrote function groupDefListContents |
273 |
|
to avoid the (unnecessary) incomplete match |
274 |
|
- in PP/devices/html-dev.sml: made the implementation of popStyle |
275 |
|
agree with the comment above it (popStyle on an empty |
276 |
|
stack is supposed to be a nop) |
277 |
|
- in PP/src/pp-stream-fn.sml: function setSize: handle case of |
278 |
|
an empty scanStk |
279 |
|
- in Util/prime-sizes.sml: raise Fail exceptions instead of |
280 |
|
Match exceptions when reaching the end of a list |
281 |
|
(Perhaps this should eventually be rewritten using an on-demand |
282 |
|
prime-number generator that kicks when needed.) |
283 |
|
|
284 |
|
[2003-05-22] |
285 |
|
Cleanup logic in Scan.scanf function. |
286 |
|
|
287 |
|
[2002-10-03] |
288 |
|
Fixed bug in formating reals with the %g format. |
289 |
|
|
290 |
|
[2002-06-18] |
291 |
|
Fixed a bug in MatchTree.nth (regexp library). Thanks to |
292 |
|
Sami Nopanen. |
293 |
|
|
294 |
|
[2002-05-20] |
295 |
|
Fixed bug in IntInf module: scanning of hex literals was not |
296 |
|
handling "0x" prefixes. |
297 |
|
|
298 |
|
[2002-05-20] |
299 |
|
Added ControlUtil module and stringControls function. |
300 |
|
|
301 |
|
[2002-05-17] |
302 |
|
Added tyName field to ValueSyntax exception in Controls module |
303 |
|
and path field to registry tree in ControlRegistry module. |
304 |
|
|
305 |
|
[2002-05-17] |
306 |
|
Added == and != operators to INT_INF interface. These are a |
307 |
|
placeholder until IntInf moves into the SML/NJ compiler. |
308 |
|
|
309 |
|
[2002-05-16] |
310 |
|
Added mergeWith function to ORD_MAP interface. |
311 |
|
|
312 |
|
[2002-05-15] |
313 |
|
Revised Controls library. |
314 |
|
|
315 |
|
[2002-04-17] |
316 |
|
Added Matthias Blume's implementation of Danvey-style format |
317 |
|
combinators to the Util library. |
318 |
|
|
319 |
|
[2002-03-14] |
320 |
|
Merged in Matthias Blume's Controls library. Warning: the API |
321 |
|
to this library is likely to change as we get some experience |
322 |
|
with it. |
323 |
|
|
324 |
|
[2002-03-11] |
325 |
|
Added consR1 .. consR5 functions to HashCons library. These |
326 |
|
can be used to hash-cons record types. |
327 |
|
|
328 |
|
[2002-02-21] |
329 |
|
Fixed infinite loop in LeftPriorityQFn.fromList when given a |
330 |
|
singleton list as input (Chris Okasaki provided the fix). |
331 |
|
|
332 |
|
[2002-02-12] |
333 |
|
Added implementation of priority queues to Util library (using |
334 |
|
Okasaki's leftist-tree implementation). |
335 |
|
|
336 |
|
[2001-10-19] |
337 |
|
Added new HashCons library. |
338 |
|
|
339 |
|
[2001-10-19] |
340 |
|
Added PrimeSizes module to Util library. |
341 |
|
|
342 |
|
[2001-09-27] |
343 |
|
Fixed bug in UnixEnv module (reported by Leunga). |
344 |
|
|
345 |
|
[2001-05-05] |
346 |
|
Added addrToString function to SockUtil module in INet library. |
347 |
|
|
348 |
|
[2001-05-04] |
349 |
|
Modified GraphSCC module to support a list of roots (Blume). |
350 |
|
The old interface still works, but will be dropped when we move |
351 |
|
to the new Util library. |
352 |
|
|
353 |
|
[2001-04-06] |
354 |
|
Added partition function to ORD_SET interface. |
355 |
|
|
356 |
|
[2001-04-05] |
357 |
|
Added hasProps function to PropList module. |
358 |
|
|
359 |
|
[2001-03-16] |
360 |
|
Minor bug fix in GetOpt: don't pad the help string, since it causes |
361 |
|
line wraps when one of the help lines is longer than the screen |
362 |
|
width. It was also unneccesary. |
363 |
|
|
364 |
|
[2001-02-23] |
365 |
|
Added inDomain function to the various kinds of hash tables. |
366 |
|
|
367 |
|
[2001-02-22] |
368 |
|
Fixed bug in {Int,Word}RedBlackMapFn.insert (bug 1591). |
369 |
|
|
370 |
|
[2000-12-13] |
371 |
|
Added the bit operations to the IntInf module (Leung). |
372 |
|
|
373 |
|
[2000-11-17] |
374 |
|
Added where clause to GraphSCCFn result signature (Blume). |
375 |
|
|
376 |
|
[2000-10-20] |
377 |
|
Made the result signature of the RegExpFn functor be opaque. |
378 |
|
|
379 |
|
[2000-09-28] |
380 |
|
SML/NJ 110.0.7 release. |
381 |
|
|
382 |
|
[2000-09-02] |
383 |
|
Added Word versions of hash tables (WordHashTable), finite |
384 |
|
maps (WordRedBlackMap), and sets (WordRedBlackSet). |
385 |
|
|
386 |
|
[2000-09-02] |
387 |
|
fixed bug in Format module (infinity caused infinite loop). |
388 |
|
|
389 |
|
[2000-07-19] |
390 |
|
added anchored paths in CM files for NEW_CM. |
391 |
|
|
392 |
|
[2000-06-30] |
393 |
|
added implementation of LWORD in Format module. |
394 |
|
|
395 |
|
[2000-05-16] |
396 |
|
Fixed bug in dfa-engine.sml (bug number 1559). |
397 |
|
|
398 |
|
[2000-05-08] |
399 |
|
Added setFn to PList.newProp return type. |
400 |
|
|
401 |
|
[2000-05-05] |
402 |
|
Added sameHolder function to PropList module. |
403 |
|
|
404 |
|
[2000-04-05] |
405 |
|
Fixed a bug in the filter/filteri hash table functions: the number |
406 |
|
of items in the table was not being recomputed. |
407 |
|
|
408 |
|
[2000-04-04] |
409 |
|
Added modify and modifyi iterators to hash tables. |
410 |
|
|
411 |
|
[2000-03-28] |
412 |
|
Added anchorLink style to HTMLDev structure in PP/devices. |
413 |
|
|
414 |
|
[1999-12-03] |
415 |
|
Added IntHashTable structure to Util library; this structure is |
416 |
|
a specialization of hash tables to integer keys. |
417 |
|
|
418 |
|
[1999-12-03] |
419 |
|
Added default cases to avoid "match not exhaustive" warnings. |
420 |
|
|
421 |
|
[1999-12-03] |
422 |
|
Added GraphSCCFn functor to Util library, which implements a |
423 |
|
strongly-connected components algorithm on directed graphs (written |
424 |
|
by Matthias Blume). |
425 |
|
|
426 |
|
[1999-11-10] |
427 |
|
Fixed a benign type error in RegExp/BackEnd/fsm.sml that was exposed by |
428 |
|
the previous change. |
429 |
|
|
430 |
|
[1999-11-7] |
431 |
|
Made the result signatures of ListSetFn and ListMapFn opaque. |
432 |
|
|
433 |
|
[1999-11-1] |
434 |
|
Fixed bug in PP/devices/sources.cm under new CM (missing smlnj-lib.cm). |
435 |
|
|
436 |
|
[1999-10-20] |
437 |
|
Fixed bug in RedBlack trees (the linear time construction of |
438 |
|
trees from ordered sequences was producing backwards trees). |
439 |
|
|
440 |
|
[1999-10-18] |
441 |
|
Changed UREF signature so that union, unify, and link operations |
442 |
|
now return a boolean. |
443 |
|
|
444 |
|
[1999-10-18] |
445 |
|
Added peekFn to PropList.newProp return result. |
446 |
|
|
447 |
|
[1999-10-14] |
448 |
|
Added TextIOPP structure to pp-lib.cm (it was not being exported). |
449 |
|
|
450 |
|
[1999-09-21] |
451 |
|
Changed the getOpt API. Errors are now reported using a callback |
452 |
|
and both usage and getOpt take records as arguments. Also changed |
453 |
|
the NoArg descriptor to take a function so that imperative argument |
454 |
|
processing can be supported. |
455 |
|
|
456 |
|
[1999-09-20] |
457 |
|
Changed CM files to be compatible with both the old (110.0.x) and |
458 |
|
new (110.20+) versions of CM. |
459 |
|
|
460 |
|
[1999-09-17] |
461 |
|
Added PropList:PROP_LIST structure. This structure implements |
462 |
|
property lists using Stephen Weeks's technique. |
463 |
|
|
464 |
|
[1999-09-17] |
465 |
|
Improved the red-black tree implementations with linear-time union, |
466 |
|
intersection, difference, and filter operations. Also reimplemented |
467 |
|
the delete function in a way that does not require an extra constructor. |
468 |
|
|
469 |
|
[1999-09-09] |
470 |
|
Added Red-Black-Tree implementation of sets and maps. Two new |
471 |
|
functors (RedBlackMapFn and RedBlackSetFn) and four new structures |
472 |
|
(IntRedBlackMap, IntRedBlackSet, AtomIntRedBlackMap, and IntRedBlackSet). |
473 |
|
Also added aliases AtomMap and AtomSet that for the RB implementations. |
474 |
|
|
475 |
|
[1999-09-03] |
476 |
|
Added missing support for WORD and WORD8 format items to Format structure. |
477 |
|
Still need to handle LWORD items!! |
478 |
|
|
479 |
|
[1999-08-17] |
480 |
|
Added DynamicArray:DYNAMIC_ARRAY structure. |
481 |
|
|
482 |
|
[1999-07-06] |
483 |
|
Added declarative representation of pretty-printing to PPStreamFn. |
484 |
|
This replaces the PPDescFn and PP_DESC components (which were not |
485 |
|
implemented anyway). |
486 |
|
|
487 |
|
[1999-07-02] |
488 |
|
Moved SockUtil structure into a new INet library. Also split out the |
489 |
|
Unix-specific socket operations into a UnixSockUtil module. (Sockets |
490 |
|
are now supported on Win32). |
491 |
|
|
492 |
|
[1999-06-17] |
493 |
|
Added listKeys function to ORD_MAP API. |
494 |
|
|
495 |
|
[1999-06-14] |
496 |
|
Added Riccardo Pucella's GetOpt structure to Util library. |
497 |
|
|
498 |
|
[1999-06-14] |
499 |
|
Added singleton and inDomain functions to ORD_MAP API. |
500 |
|
|
501 |
|
[1999-06-02] |
502 |
|
Merged in some bug fixes from the compiler's version of the IntInf |
503 |
|
structure. |
504 |
|
|
505 |
|
[1999-05-05] |
506 |
|
Fixed a couple of bugs in the PP library having to do with nesting |
507 |
|
absolute and relative indentations. |
508 |
|
|
509 |
|
[1999-04-21] |
510 |
|
Added a way to pass control information to a PP device via the PP |
511 |
|
stream (function control in PP_STREAM). |
512 |
|
|
513 |
|
[1999-04-16] |
514 |
|
Added better style support to the HTML PP device. |
515 |
|
|
516 |
|
[1998-09-04] |
517 |
|
Added isEmpty predicate and first fucntion to ORD_MAP |
518 |
|
signature (and to implementations). |
519 |
|
|
520 |
[1998-06-23] |
[1998-06-23] |
521 |
Fixed a bug in ParserComb.bind (reported by Andrew Kennedy). |
Fixed a bug in ParserComb.bind (reported by Andrew Kennedy). |