-
Notifications
You must be signed in to change notification settings - Fork 1
/
changes.txt
4251 lines (3889 loc) · 203 KB
/
changes.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
-*- mode: text; mode: fold -*-
Changes since 2.3.2
1. src/slposdir.c: stat_file now support open file descriptors, in
addition to filenames.
2. src/sltoken.c: Ignore the \r character in multiline strings that
appear to have CRLF line terminators. (Manfred Hanke)
3. *.tm: minor documentation updates
4. src/slang.h: SLANG_VERSION_STRING was missing the "pre" prefix.
5. src/sltermin.c: Added support for TERMINFO_DIRS (based upon a patch
forwarded by Jörg Thalheim)
6. src/slarray.c: src/slarray.c: some integer overflow checks were
resulting undefined behavior (reported by Sergey)
7. modules/csv.sl: Strip leading/trailing whitespace from column names
8. src/slsmg.c,sldisply.c: Removed static buffers with sizes dependent
upon SLTT_MAX_SCREEN_ROWS/COLS in favor of dynamically allocated
ones.
9. modules/chksum-module: added CRC-8,16,32 checksums to the chksum module
10. modules/csv.sl: An error message in the form of a dollar-string
was not marked as such.
11. modules/csv.sl: Added support for empty CSV files
12. src/sltime.c: The timegm function will ignore the tm_wday and
tm_yday fields, and instead use the tm_mon and tm_mday fields.
13. modules/mkfiles/makefile.all: Added a target for chksum_crc.o for
win32/64 platforms (see change #9)
14. modules/chksum-module.c: The memset function was used with the
wrong structure size causing a buffer overflow on 32 bit systems.
15. src/terminfo/parsecaps.sl: Tweaked an auto-generated comment
produced by parsecaps.sl to produce a more deterministic build
(Ian Rogers).
16. src/slarray.c: Changed two instances of index errors to throw an
IndexError exception instead of InvalidParmError exception.
17. src/slposdir.c; The statvfs function was returning a struct with
duplicated f_bsize fields.
18. *.c: In switch statements, changed the /* drop */ comment to /*
fall through */ to avoid gcc-8 warnings.
19. modules/csv.sl: If a comment string appears at the start of a line
forming a multiline string, then treat it as part of the string.
20. slsh/lib/timestamp.sl: Added a function timestamp_parse that parses
strings such as `Thu May 14 18:05:05 2020` and returns the number
of seconds since the Unix epoch.
21. src/slregexp.c: Added \D (non-digit), \s (whitespace), and \S
(non-whitespace).
22. src/slstrops.c: Added a compiled regexp cache
23. src/slstdio.c: Added trim qualifier to the fgetlines intrinsic:
;trim=1 ==> trim trailing whitespace
;trim=2 ==> trim leading whitespace
;trim=3 ==> trim leading and trailing whitespace
24. slsh/lib/timestamp.sl: When matching a regexp to a timestamp,
start with the RE that was used in the previous match.
25. Another timestamp RE tweak to pickup additional irregular forms
26. modules/csv.sl: If a CSV file has a byte-order mark (BOM), ignore it.
27. src/sldisply.c: Increased the buffer size for the SLtt_tgoto
function to allow for larger terminfo strings
28. modules/Makefile.in: Added STATS_OBJS to the clean target
29. src/slstrops.c: The is_substr function was not handling a NULL
argument
30. slsh/lib/timestamp.sl: Corrected a regular expression for a
timestamp with "Z" as the timezone.
31. modules/csv-module.c: Fields with an embedded \r were not being
properly handled.
32. src/slarray.c: Improved the speed of multi-dimensional array
indexing by about a factor of 2
33. slsh/lib/timestamp.sl: The computation of leap days was incorrect
for some years
34. src/slang.h: Added `typedef void (*SLFVOID_STAR)(void)', which
will replace FVOID_STAR in version 3. The library code was
updated to use this.
35. slsh/lib/fswalk.sl: Added an optional callback argument to the
fswalk that is called when leaving a directory.
36. modules/termios-module.c: Avoid a potential problem with the
tcgetpgrp intrinsic in the unlikely case that sizeof(pid_t) is
larger than sizeof(int).
37. src/slarray.c: Simplified the range checking in the
linear_get_data_addr function and removed unused code.
38. Updated the copyright year
39. slsh/lib/fswalk.sl: Change #35 regression: The get_stat function
was being called with the wrong number of arguments.
40. src/slarith.c: Additional binary arithmetic optimizations involving
arrays of char and short.
41. src/slang.c,slarray.c: Added qualifier support to the array_map
function.
42. src/slang.c: Flagged the use of an uninitialized variable as soon
as it is accessed ("pushed") rather than waiting until it is used
("popped"). Fixed a bug in slsh/lib/setfuns.sl:union that was
detected by this change.
43. src/sl-feat.h: Floating point support by the interpreter is now
required. The library has not compiled without it for a long
time. As such, this option is no longer available.
44. */test/*.sl: Surrounded regression test code that makes use of
complex numbers with `#ifexists Complex_Type' so that they run
when the interpreter is compiled without complex variable support.
45. src/slarray.c: The _pSLarray1d_push_elem needed to be exposed when
compiling the interpreter without optimization.
46. src/slarith.c,...: Rewrote the various macros used by this file to
simplify the code, permit better optimization, and easier
maintenance. Some of the loops were also unrolled.
47. src/slarray.c: Made the array bounds index checking code more
uniform for better readability.
48. src/slarray.c: The previous change introduced a bug that caused
array indexing with no (empty) indices to fail.
49. modules/chksum-module.c: When a CRC object went out of scope
without being closed, it would leave its value on the stack.
50. slsh/lib/process.sl: If the file descriptor that is used to
communicate messages from the child process back to the parent is
requested by the caller, then dup an unused one. To facilitate
testing, two additional hooks were added: exit_hook and exec_hook.
51. slsh/lib/cmdopt.sl: If a command line option is associated with a
callback function, and the value of the command line argument is
optional, pass the default value to the callback if not given on
the command line.
52. modules: Added cumulant function to the stats module; updated
regression scripts/unit tests for better code coverage; fixed a
bug in the _zlib_inflate_reset function where deflateReset was
being called instead of inflateReset.
53. slsh/lib: Updated unit/regression tests for better coverage
54. slsh/lib/print.sl: Use >= instead of > when comparing the number
of screen rows to determine if the pager should be used.
55. modules/chksum-module: Added sha224, sha256, sha384, and sha512
algorithms kindly provided by Jakob Stierhof
56. modules/chksum-module: Added HMAC message authentication code
algorithm (Jakob Stierhof)
57. modules/mkfiles/makefile.all: Added chksum_sha2 to the non-Unix
makefile.
58. src/slgetkey.c: Use memmove instead of SLMEMCPY to avoid issues
with coping to an overlapping buffer. (William Ahern)
59. modules/pcre.sl: The options qualifier was not being properly
handled by the pcre_matches function.
60. src/_slang.h,etc: replaced the dependence of the internal
_pSLang_get_run_stack* functions, which return absolute pointers,
in favor of relative offsets.
61. src/slang.c: Made the run-time stack dynamically growable up to a
maximum configured size.
62. modules/: Documentation updates
63. src/: Added _set_bos/f_compile_hook functions to specify a
function to get called when a statement or function gets compiled.
64. src/sllimits.h: Reduced the initial stack size to a value similar
to what it was before change #61.
65. src/slarrfun.c: array_swap was returning a copy of the input array
when when swapping an array element with itself (bug reported by
Jakob Stierhof)
66. modules/csv.sl: If _csv_decode_row fails, include in the error
message the line number of the file where the error was detected
67. modules/socket-module.c: Corrected an error message for the bind
function
68. Updated the copyright year
69. Added slcov script which generates lcov-compatible code coverage
data
70. autoconf/aclocal.m4: Updated to v0.3.4.1
71. slsh/Makefile.in: Changed the order of the linker flags to avoid a
linking problem on MacPorts (Ryan Schmidt)
72. slsh/lib/cmdopt.sl: Corrected a usage message
73. src/slposio.c: Added the flock function for the creation of
advisory locks
74. src/slcurses.h: Added 'extern "C"' to enable the file to be used
in C++ programs; also marked some variables as dynamically
exportable by using SL_EXTERN (Gisle Vanem)
75. src/slstrops.c: "%0*" was being flagged as invalid by the sprintf
function (Jakob Stierhof)
76. modules/csv.sl: When writing a CSV file with a single row, convert
any scalar data values to single element arrays.
77. src/Makefile.in, slsh/Makefile.in: Addressed some dependency
problems found by `make --shuffle` that were causing parallel
builds to fail (Sergei Trofimovich)
78. src/slarray.c: Flag out-of-range indexing of indefinite ranges
involving negative indexes, e.g., x = [1]; y = x[[-2:]];
Previousely this resulted in y = [1,1] instead of an error.
79. modules/csv.sl: Avoid indexing an empty array with a negative
index (detected by change #78)
80. src/slarray:c: #78 was flagging x[[:-2]] as invalid instead of
producing an empty array for x=[1]
81. src/slarray.c: Tweaked the handling of negative indices in
indefinite ranges such that x[[:-i]] will produce an empty array
wheneve i > length(x)
82. src/sltermin.c: Added support for so-called user-defined terminfo
extensions. In particular, if the terminfo file defines RGB=true,
then truecolor support will be enabled.
83. src/sldisply.c: The Has_True_Color variable was not defined for 32
bit systems
84. modules/csv.sl: Improved read speed for large CSV files
85. src/test/posixio.sl: Do not test the flock function using an NFS
mounted direcory, which requires lockd to be running on the server
{{{ Previous Versions
Changes since 2.3.1a
1. modules/stats_kendall.c: Updated to use Knight's O(NlogN)
algorithm. This update was facilitating by separating out some
integer typedefs from _slang.h and placing them in _slint.h. The
closely relation mann_kendall function was also added to the stats
module.
2. modules/stats_kendall.c: In the prtaus function, the loops were
reorganized loops to eliminate embedded if-tests, and the code that
deals with arrays were made for "C-like".
3. Merged Manfred Hanke's CSV module documentation updates.
4. slsh/lib/cmdopt.sl: The form -fVAL was not working as described for
short-options whose value (VAL) is optional.
5. src/sl*.h: Updated Unicode tables from version 5 to 9
6. src/slischar.h: Previously, if a lower(upper) case character did
not have a mapping to an upper(lower) case character, it was take
to not have a case. This restriction has been dropped. In other
words, it is nolonger necessary for an upper(lower) case character
to have a lower(upper) case equivalent.
7. src/slpack.c: Added an intrinsic function (_array_byteswap) that
may be used to convert the values of an array from one endianness
to another.
8. src/slparse.c: It is now possible to use reserved words as struct
field names without quoting them. For example, it is now possible
to write
s = struct { public = value };
Previously, this required the field name to be quoted:
s = struct { "public" = value };
9. modules/json-module.c: Malformed UTF-8 was not being properly
handled by the json-encoder.
10. modules/csv-module.c: The decode_csv_row function was ignoring the
delimiter setting after a quoted string.
11. src/slparse.c: A for statement lacking a conditional expression
was not being properly handled (noticed by rocket penguin).
12. src/struct.c: Rewrote the __add_binary function, which was not
properly handling multiple data types.
13. changes.txt: Converted to UTF-8 (Miroslav Lichvar)
14. src/slscanf.c: The sscanf function was not parsing ".0" as a
floating poing number (zero).
15. The library was failing to compile when __tmp operator
optimizations were turned off. The default is to permit such
optimizations since they can lead to faster running code and less
memory usage. Bug reported by Henry.
16. src/slsh.c: Updated copyright year.
17. INSTALL.unx: Corrected the URL for the ONIGURUMA regexp library; added
a small note that PCRE2 is not supported (Henry Nelson).
18. modules/csv-module.c: If the delimiter or quote character is
specified to be 0, then use the defaults (, and ").
19. src/sltermin.c: Added support for the new ncurses 32-bit terminfo
database entries.
20. autoconf/aclocal.m4,src/Makefile.in: Install shared objects
(modules and library) with executable permissions.
21. src/sl*.h: Updated Unicode tables from version 9 to 10
22. src/sltermin.c: Corrected a few typos in the comments (Manfred
Hanke).
23. Updated Copyright year to 2018
24. doc updates
25. src/sltermin.c: removed unnecessary "extern" function attribute.
26. src/test/syntax.sl: The version number test required the use of
isalpha and not isascii.
Changes since 2.3.1
a. Some tests were failing when compiled with a compiler that defaults
to using `unsigned char'. In the few places where a `signed char'
was assumed, `char' was changed to `signed char'. Also, a
copy-paste error was corrected in the src/test/sltest.c that caused
the test program to fail on big-endian 64 bit systems.
Changes since 2.3.0
1. modules/json-module.c: Fix a possible uninitialized variable error.
2. Define _BSD_SOURCE the few places necessary to get prototypes for
strtoll and BSD specific network struct fields.
3. src/slstd.c: define _SVID_SOURCE to get prototype for putenv
4. modules/Makefile.in: On cygwin, the libraries must be placed last
for module compilation (Marco Atzeri).
5. src/slstrops.c: The return value from pop_lut was not being
checked leading to a segv upon faiure (reported by Morten Bo
Johansen).
6. slsh/lib/slshrl.sl: Floating point literals with a leading '.' were
not being properly handled by slsh_interactive_massage_hook
(Manfred Hanke).
7. src/slarrfun.c: Added wherefirst/last_eq/ne/gt/lt/ge/le functions,
which are much faster than using just wherefirst or wherefast with
the implied binary comparison. For example:
slsh> .load rand
slsh> x = rand_uniform (100000);
slsh> tic; loop (1000) i=wherefirst(x>=0.999); toc; i;
0.597183
268
slsh> tic; loop (1000) i=wherefirst_ge(x,0.999); toc; i;
0.0024419999999999997
268
For this case, the speedup about 0.60/0.0024 = 250.
8. Rebuilt text documentation for change #7.
9. Documentation updates (Manfred Hanke).
10. src/slarrfun.inc: use a macro for the common case statements of
the wherefirst_op and wherelast_op code. (Manfred Hanke)
11. modules/stats.sl: Added Anderson-Darling tests:
ad_test: test for normality
ad_ktest: k-sample test
I also broke out some of the statistical tests into separate files.
12. Tweaked the makefiles to create a statically-linked version of
slsh when `make static` and `make install-static` are run.
13. For the static slsh build, disable dynamic linking.
14. src/slstdio.c:fread_bytes: A size_t vs unsigned int issue was
causing SLmalloc to be called with an incorrect size in some cases.
15. src/slbstr.c: Made the size of the printable representation of
binary strings customizable via get/set_printable_bstring_size
intrinsics.
16. slsh/slsh.c: A missing continue statement was causing slsh to stop
parsing command line options after the first occurrence of -D.
17. src/slang.h: Remove duplicate prototype for
SLrline_get_update_client_data. (Valdis Kletnieks)
18. src/slposdir.c: Add statvfs intrinsic that wraps corresponding
POSIX function.
19. modules/Makefile.in, png-module.c: Cygwin tweaks
(Marco Atzeri).
20. */*.c: Added explicit (unsigned char) typecast to isspace/isdigit
functions.
21. */*.c: reduced the scope of some variables; removed duplicate ||
expression from slarray.c (David Binderman)
22. src/slarray.c: The Kahan error corrections were not be added back
when summing complex arrays.
23. slsh/lib/listfuns.sl: Corrected the usage method for heap_new().
24. Found and corrected a few memory leaks that occur after a malloc
failure; added some more unit tests
25. Added more regression tests and bug fixes:
slscanf.c: %i was failing for Octal and Hex forms
slbstr.c: <, and > operators were swapped for binary strings
histogram-module.c: A missing 'break' statement was causing hist2d
to fail when binning 8 bit integers.
26. src/slposdir.c: If an fdopen'd FILE* object was closed, then do
not close the underlying fd descriptor; added more regression/unit
tests.
27. modules/test/test_stats.sl: Do not use 64 bit ints when testing
the mean and stddev functions on 32 bit systems since these
integers are not supported by the functions.
28. modules/stats-module.inc: Some arrays were causing median_nc to
not converge.
29. src/slscanf.c: Allow whitespace in the format to match 0
whitespace characters in the input string.
30. src/slproc.c: define _XOPEN_SOURCE to be 500
31. src/slproc.c: #30 caused a compilation error on macos since it
caused certain rusage fields to not be exposed. Define
_BSD_SOURCE to expose them.
32. src/slerr.c: Add a windows error handler so that windows will
return an error code instead of aborting when passed a bad file
descriptor, etc.
33. src/slproc.c: Use _XOPEN_SOURCE=1 instead of 500. This setting
works for both OSX and Windows. (See #30,31)
34. src/slcurses.h: SLtt_Char_Type and SLcurses_Char_Type were being
used interchangably.
35. src/sldisply.c: Added support for 24 bit color terminals based
upon a patch from Egmont Koblinger forwarded to me by Anton Kochkov.
See NEWS for usage. (for 64 bit systems)
36. src/slposio.c: Rename the posix_close function to avoid conflict
with an upcoming POSIX standard. (patch provided by Thomas
Petazzoni).
37. slposio.c,slstdio.c,slposdir.c: Do not include <sys/fcntl.h> if
<fcntl.h> was included. (variation on a patch provided by Thomas
Petazzoni).
38. slsh/: Move processing of the SLSH_PATH environment variable to
slsh.rc. Also, guess the slsh lib path based upon the location of
the executable.
39. modules/onig-module.c: Only allow certain flags for onig_search.
Others cause onig_search to reinterpret the meaning of the region
argument.
40. slsh/etc/slsh.rc: Add support for multiple paths to the
*_to_slang_load_path functions.
41. src/slscanf.c: The formats %x and %o were producing a signed values instead
of an unsigned ones.
42. src/slconfig.h,...: Added longlong functions to win32, use
"%I64d/u" format when printing long long on win32.
43. src/slcurses.c: Changed the data type of SLcurses_Char_Type back
to long[128] (change #34 broke backward compatibility)
44. src/slstruct.c: Optional argument to _push_struct_field_values may
be used to specify the fields to be pushed.
45. src/sllimits.h: Bumped up the size of the slsring table. A future
version will dynamically resize the table.
46. src/slstd.c,slstrops.c: Improve the speed of sprintf by reducing
the number of reallocs and special casing strings in the
_pSLstring_intrinsic function.
47. modules/cvs.sl: Reading a CSV file from an open file descriptor
(e.g., stdin) was failing. The updated regression test also
exposed a side effect of change #38: the uninstalled version of
slsh.rc lacks processing of SLSH_PATH. Processing of SLSH_PATH
was added to the test.sl include file.
48. src/slregexp.c: The RE \d? was not handled properly.
49. src/slmisc.c: Catch empty hex \x and decimal \d escape sequences.
50. autoconf/Makefile.in: Add install-pkgconfig to the install-static
target. (Max Filippov).
51. src/test/signal.sl: Skip the sigsuspend test when running from
make. The test involves the user pressing ^C, which kills the
make process. This test should be run outside of make.
52. src/slmisc.c: Corrected a typo in the error message introduced in
change #49 (Manfred Hanke).
53. src/sltime.c: Added _ftime, which returns the number of
(wallclock) seconds since an epoch.
54. Changes the array allocation routines to use a signed integer
(SLindex_Type) vs an unsigned one (SLuindex_Type). The reason for
this is that all slang arrays may be indexed from the end using a
negative index, and multidemsional arrays must allow indexing
using a single signed index, e.g.,
a = Int_Type[10,20]; ...; a[where(a<0)] = 0;
55. src/sltime.c: Fixed a windows compile error involving _ftime
(see change #53).
56. src/slnspace.c,...: Check for malformed namepace names.
57. doc/tm/: Documentation updates (Agathoklis D. Chatzimanikas)
58. slsh/slsh.c: Added __slsh_startup_hook function that slsh will
call after loading slsh.rc.
59. modules/: Updated the png and pcre modules, and added new test
scripts. Added support for setting the compression value to the
png module, and added additional symbolic constants to the pcre
module.
60. slsh/lib/test/: Have `make check` run the test scripts in this
directory.
61. modules/csv-module.c: Added line number information to error
messages.
62. src/test/: Updated some tests
63. src/sltoken.c: bug fix affecting reading byte-compiled files: Use
SLatoul for unsigned longs instead of atol; remove alignment test
from pack.sl until a new test can be devised.
64. Added support for compiling against slsyswrap testing library.
It is disabled for production code.
65. Bug fixes:
src/slarrfun.c: SLang_duplicate_array return value not checked;
src/slstdio.c: SLfree was used in an error handler instead of
SLang_free_slstring
src/slposio.c: If EINTR happens in the close function, do not
restart it. See <http://lwn.net/Articles/576478/>.
src/sltoken.c: Use unsigned char * cast for SLatol functions.
66. src/slmisc.c: \uABCD supported in string literals. Previously,
braces were required (\u{ABCD}).
67. Updated many of the unit tests/regression scripts.
68. Updated more tests. Made use of the _slang.h LONG_IS_INT macro to
eliminate some unused functions on systems where
sizeof(long)==sizeof(int).
69. modules/slsmg-module.c: was not compiling on windows; fixed a
malformed comment in src/test/sltest.c.
70. Added "#define _DEFAULT_SOURCE" to a few places to quiet gcc;
Added slsyswrap support to src/slposdir.c,slposio.c,slcommon.c
71. src/slexcept.c: The deprecated _clear_error function using in
ERROR_BLOCKs was not completely removing queued error messages.
Note: ERROR_BLOCKs will be removed in version 3.
72. src/slregexp.c: Added "\{m,n\}" support to '\1'-'\9', '.', and
'\d' REs. '$' changed to match only at the end of a string, or
just before a \n at the end of the string. Updated regexp.sl test.
73. src/slang.c: The delete_interpreter function (called upon program
exit) was not freeing local variables on the function call stack. This
showed up as a memory leak when a function called "exit", which
would not allow the function stack to unroll and trigger the
destructors.
74. src/*.c: Added a few gcc #pragmas to turn off warnings about
non-string literals as printf-style formats.
75. src/*.c, modules/*.c: If close fails with errno=EINTR, do not restart
it. Doing so invokes undefined behavior.
76. src/slerr.c: Add _pSLerr_deinit to the exit hook.
77. src/slarray.c,src/slclass.c,src/slstruct.c: Use the SLclass_set*
functions to set SLang_Class_Type fields instead of directly
accessing them.
78. Added additional unit/regresssion tests.
79. Makefiles: Add a time-stamp dependency to directory targets to
avoid race conditions when running parallel make (Based upon a
patch from Kylie McClain).
80. src/Makefile.in: Updated the libslang.a dependency to account for
change #79.
81. tweaked a few files (modules/png-module.c,src/slarith.inc,src/slimport.c)
to reduce gcc warnings.
82. modules/test/test_slsmg.sl: Test skipped if the terminal type is
"unknown".
83. Updated copyright years; some doc updates
84. src/sldisply.c: make JMAX_COLORS consistent with SLTT_MAX_COLORS.
85. src/slstrops.c: Added string_to_wchars and wchars_to_string
intrinsic functions.
86. Moved gcc diagnosic pragmas outside function bodies for
compatibility with old versions of gcc.
87. src/slwclut.c: Unclosed ranges (hyphen at the end of a character
set specification string) were not being handled properly: the
character befor the hyphen was being dropped, e.g.,
strcompress ("foo-(bar)", "_()-");
was producing "foo_bar)" instead of "foo_bar".
88. src/sllimits.h: Reduce SLANG_MAX_RECURSIVE_DEPTH to 500 on
CYGWIN/WIN32 to avoid hitting the default runtime stacklimit.
89. Updates to the mingw32/64 build system.
90. src/sltermin.c: Avoid invalid free when TERMCAP is used. See
<https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=837868>.
91. Some documentation typos corrected (Agathoklis D. Hatzimanikas;
debian patches)
92. src/_slang.h: On at least one platform, clang defines GNUC but
does not implement GNU C inline semantics. Disble inline support
for clang if GNUC defined.
93. src/sllimits.h: SLANG_MAX_RECURSIVE_DEPTH set to 1500 to decrease
the probability of running into the C runtime stacksize limit.
94. src/test/sltest.c: A missing preprocessor #else block in change
#78 was causing UTF-8 tests to fail in a non-UTF8 environment.
95. MacOSX changes: fix environ intrinsic, export DYLD_LIBRARY env
variable in test scripts.
96. slsh/lib/process.sl: If execvp fails, include the name of the executable
in the error message.
97. autoconf/config.*: Updated scripts
98. .../runtests.sh: Added LD_LIBRARY_PATH to test scripts (removed in
#96)
99. mkfiles/makefile.m32: Use mkfiles\runslsh.bat instead of
mkfiles/runslsh.bat (Windows only).
100. documentation updates
Changes since 2.2.4
1. src/slarray.c: Try to find a suitable multiplier for range arrays
to avoid roundoff errors. Using the multiplier avoids the
[1:10:0.001] from having the element 1.1260000000000001.
2. doc/tm/rtl/strops.tm: Correct typos in string_match documentation
(Manfred Hanke).
3. modules/base64-module.c: Added a base64 encoder module.
4. modules/chksum-module.c: A module to compute md5, sha1, etc
checksums.
5. Removed a few unused variables from the code.
6. Documentation updates and corrections by Agathoklis D. Hatzimanikas.
7. src/slarray.c: array_map enhanced to handle functions that return
multiple values (based upon a patch from Manfred Hanke).
8. Documentation tweaks (Manfred Hanke).
9. src/slmath.c: Added sincos intrinsic (Manfred Hanke)
10. doc/tm/rtl/array.tm: Changed an example used in the array_map
documentation.
11. More documentation updates/corrections (Agathoklis D. Hatzimanikas).
12. src/slarray.c: Tweaked the code that computes the
array-range-multiplier to avoid agressive optimization by the
compiler.
13. modules/rand.sl: The rand_int function was not working correctly
(Thomas Dauser).
14. modules/test/test_rand.sl: Added a simple statistical test for
rand_int (based upon an idea by Thomas Dauser).
15. modules/test/test_rand.sl: Corrected a typo introduced by #14.
16. src/slarray.c: #12 introduced a truncation error for some
values involving the range multiplier.
17. autoconf/aclocal.m4: Change ncurses5w-config to ncursesw5-config
(Gilles Espinasse).
18. modules/base64-module.c: Added decoder.
19. slsh/lib/sldbcore.sl: Only run the debugger from the pid that
started it. This avoids problems debugging scripts that call fork.
20. src/slrline.c: SLrline_read_line will return NULL if getkey
returns SLANG_GETKEY_ERROR.
21. doc/tm/rtl/*.tm: A few typos corrected (Manfred Hanke).
22. slsh/lib/print.sl; print binary strings differently from regular
ones (Manfred Hanke).
23. slsh/lib/print.sl: I introduced a typo in #21 (Pablo Cassatella).
24. src/slutty.c: if the flow control parameter to the SLang_init_tty
argument is negative, the terminal's flow control handling will
not be changed.
25. src/slrline.c: Ammend #20 to return NULL if errno != EINTR.
26. src/sldisply.c: Changed Termcap_Initalized -> Termcap_Initialized
27. src/slarray.c: avoid an expensive memcpy when doing
an aget via an index array on a (b)string. (Paul Boekholt).
28. slsh/scripts/badlinks: Updated to use array_map and cmdopt
(Agathoklis D. Hatzimanikas).
29. Some minor documentation tweaks (Agathoklis D. Hatzimanikas)
30. More doc tweaks (Agathoklis D. Hatzimanikas)
31. src/slposio.c: lseek was not working properly.
32. slsh/scripts/badlinks: Changed from GPLv3 to GPLv2 with permission
from Agathoklis Hatzimanikas.
33. src/slscanf.c: Call strtod in a locale where the decimal point is
".". This works around problems associated with modules that
change the locale.
34. src/slscanf.c: include <xlocale.h> if available.
35. src/slscanf.c: Avoid the use of setlocale and simply copy the
locale's decimal point before calling strtod (Paul Boekholt).
36. modules/socket-module.c: NULL was being returned when accept was
called with a single argument (Fixes bug reported by Arik
Mitschang).
37. src/slwclut.c: A logic error was causing strtrans to function
improperly for some UTF-8 encoded strings.
38. src/fork-module.c: If WCONTINUED is not defined, define it to be 0
(from debian patch).
39. src/slbstr.c: Added support for an optional offset parameter to
is_substrbytes.
40. modules/csv.sl: Allow the "names" qualifier to be a list in
addition to an array.
41. *.c/*.h: provide a path for a future change in the
return value of the malloc/free functions. Now they process char*
pointers but this will be changed to void* in the future.
42. modules/: Merged stats and histogram modules into the distribution.
43. modules/stats-module.c: removed a couple of unused variables.
Also modules/test/test_*.sl updated to use modules in the $(ARCH)objs
subdir.
44. src/slang.c: Local_Variable_Stack is now dynamically allocated,
and the value of SLANG_MAX_LOCAL_STACK made to scale with
SLANG_MAX_RECURSIVE_DEPTH.
45. modules/cmaps/: Added 3 perceptually balanced color maps derived
from matlab code by Matteo Niccoli under the BSD license.
46. src/slmath.c: Use _pSLang_peek_at_stack2 instead of the combination
SLang_peek_at_stack and SLang_peek_at_stack1. This change
provides a bit more performnce.
47. slsh/lib/fswalk.sl: Functions here facilitate walking the
filesystem.
48. Some doc updates.
49. slsh/: Using help at the prompt will invoke the pager if the
number of lines is longer than the screen size. This required add
an slsh-specific intrinsic that returns the number of rows.
50. modules/stats.sl: Avoid integer overflow when computing Spearman's
rank correlation (Victoria Grinberg).
51. modules/csv.sl; Added support for RDB tab-delimited files via the
";rdb" qualifier.
52. modules/stats-module.c: The stddev function was computing an
incorrectly normalized value when passed the optional dims argument.
53. src/slang.h: The following qualifier functions were added to the
public API:
SLang_qualifier_exists;
SLang_get_int_qualifier;
SLang_get_long_qualifier;
SLang_get_double_qualifier;
SLang_get_string_qualifier;
These functions may be used to create intrinsic functions that use
qualifiers.
54. The previous change necessitated a minor change in the qualifier
semantics such that qualifiers that are created with no value
assigned are implicitly given a value of 1. That is, foo(arg;q)
and foo(arg;q=1) are now equivalent forms. Previously, foo(arg;q)
and foo(and;q=NULL) were equivalent. Experience has shown that
the new semantics result in simpler code. This change should not
break any existing interpreter scripts.
55. Backed out change #54 because it did break some scripts.
56. src/util/mkslarith2.sl: Used "signed char" instead of "char" to
avoid problems with systems that assume unsigned characters.
(RongQing Li).
57. modules/socket-module.c: Added support for socket credentials
(Arik Mitschang).
58. src/signal.c: Added support for interval timers via the
get/setitimer functions.
59. src/test/signal.sl: Missing #endif (Paul Boekholt)
60. autoconf/slang.pc: Allow prefix and exec_prefix to be different
(Diab Jerius).
61. src/sltoken.c: Use an unsigned cast when calling putc to
work-around what looks like a VMS C library bug bug.
62. src/slarrfun.c: Added wherefirstmin/max and wherelastmin/max
functions.
63. src/slarrfun.inc: Removed an unused variable from the
wherefirst/last/min/max functions.
64. src/slcommon.c: find_interrupt_hook was not setting the prevp
variable causing some hooks to become lost during calls to
SLang_remove_interrupt_hook.
65. src/slrline.c,slsh/readline.c: Added support for SLrline
callbacks. See the slsh docs for details.
66. src/slarray.c: Added wherediff intrinsic. This returns an array
of indices where adjacent elements of an array differ.
67. modules/stats-module.c: Rewrote the log_gamma_star function to
avoid double precision overflows when computing the poisson_cdf
function for large values. Also, the poisson_cdf function now
uses the Wilson and Hilferty normal approximation for values of
lambda greater than 1000.
68. src/slrline.c: Use the SLang_set_error function instead of
manipulating the _pSLang_Error variable. Also, changed the readline
"kbd_quit" function to throw a UserBreakError.
69. src/mkfiles/mkmake.exe: Compiled as a win32 executable. The old
16bit DOS version was renamed to mkmake16.exe.
70. slsh/readline.c: Change #65 broke the slsh --no-readline option.
71. mkfiles/: Added the /y option to the DOS copy command to avoid
being prompted to overwriting files when installing on a windows
system.
72. win32-specific changes: Additional makefile tweaks. Also, permit
"./foo" to represent a "relatively-absolute" filename on
DOS/Windows.
73. modules/stats.sl: Added the correlation function.
74. src/slarray.c: _isnull was not handling Null_Type arrays.
75. src/slparse.c: If the _for statement contains two control
variables instead of 3, assume the third is 1.
76. modules/fork-module.c: The execve_intrin was not functioning
properly (Agathoklis D. Hatzimanikas).
77. slsh/readline.c: Check to see if an update_hook has been set
before adding callbacks to it.
78. modules/csv.sl: Add support for empty field names.
79. slsh/lib/slshrl.sl: Added "who" interactive command that shows the
names and values of all variables/functions defined at the prompt:
slsh> x = 1; y = "foo";
slsh> who;
Integer_Type x=1
String_Type y="foo"
80. slsh/lib/print.sl: If the string form of the object ends in a
newline, do not write another.
81. modules/stats.sl: The usage message for Welch's t-test referred to
Student's form.
82. slsh/lib/sldbcore.sl: When entering the debugger_input_loop,
initialize the SIGINT handler.
83. slsh/lib/arrayfuns.sl: New function: rearrange, which may be used
to perform an in-place rearrangement of an array or list.
84. slsh/lib/listfuns.sl: New file that includes various functions
dealing with lists and list-based data structures. Currently this
includes list_sort and a heap object.
85. slsh/lib/listfuns.sl: heap_peek was improperly declared.
86. Numerous changes from int -> SLindex_Type. Note that SLindex_Type
is currently typedefed to be an int. For version 3, SLindex_Type
will become a long. This change lays some of that groundwork.
Similarly, I added SLFUTURE_CONST here and there. Neither of
these changes break binary compatibility nor affect the API.
87. src/slarrfun.c: The prod function for complex numbers had a sign
error.
88. modules/csv.sl: Modify fixup_header_names to work with scalars.
89. modules/json-module.c: New module provided by Manfred Hanke. To
support this module several other changes were made including some
additions to the API.
90. Initial support for 64-bit windows: Use ptrdiff_t instead of long
when subtracting pointers. Also json-module added to windows
makefiles.
91. modules/rand.sl: rand_int was not properly handing intervals
larger than INT_MAX.
92. src/slbstr.c: Added bstrjoin and bstrcat intrinsics.
93. modules/json-module: Modified to use bstrcat. The
json_generate/json_parse functions were renamed to
json_encode/json_decode.
94. configure: added support for parsing /etc/ld.so.conf
95. modules/json.sl: Use bstrcat throughout json_encode; additional
renames: generate->encode, parse->decode. (Manfred Hanke).
96. src/sllist.c: To decrease memory usages by lists, a size hint may
be specified upon list creation.
97. Allow struct field names to be an arbitrary string. When
referencing such a field, quotes must be used:
X = struct {"some-field", some_other_field };
X.some_other_field = 3;
X."some-field" = 4;
New struct-related functions were added to the C API:
SLang_create_struct
SLang_push_struct_field
SLang_pop_struct_field
SLang_pop_struct_fields
98. Changed the json module to use structs instead of associative
arrays. (Paul Boekholt).
99. src/slassoc.c: Add C API SLang_assoc_key_exists (Paul Boekholt).
100. src/slang.c: Add SLstack_exch and tweak the json module to use it.
101. src/slang.h: Made the SLcompute_string_hash function public and
rewrote the hash table function in the json module to use it.
102. json-module: Doc updates, use compact encoding by default
(Manfred Hanke).
103. src/slstd.c: Added get_environ intrinsic, which returns an array of
the currently defined environment variables.
104. src/slang.c: Fixed a small memory leak introduced by the byte-code
optimizer when dealing with floating point literals.
105. src/slang.c: The changes added in #104 were a bit too aggressive.
I added code so that only literals get freed.
106. src/slstd.c: OSX has no proper environ, need to use a function
call. (Dima Pasechnik).
107. src/sldisply.c: Added support for an italic attribute if the
terminal supports it. This can be enabled using a color name
with a qualifier, e.g.,
SLtt_set_color ("menu", "white;italics", "blue");
This mechanism has also been extended to other attributes:
SLtt_set_color ("comment", "black;underline;italics", "cyan");
(Based upon a patch provided by Egmont Koblinger).
108. *.tm: Documentation updates and corrections. (Agathoklis D.
Hatzimanikas)
109. modules/csv-module.c: The store_value function was not updating
the num_allocated variable when resizing the value array. This
caused it to fail when reading a CSV table with more than 256
data columns.
110. modules/csv.sl: Since S-Lang structure field names may be
arbitrary strings, there is no need to massage the csv column
names. (See change 97).
111. modules/iconv-module.c: If the iconv descriptor has been closed,
then do not close it again in the iconv object destructor
112. src/slproc.c: Added getrusage function to get process resource
usage.
113. modules/png-module.c: Only the first 1/4 pixels of an RGB+alpha
image were getting byte-swapped. (RGB images were ok).
114. configure,*/Makefile.in: rearranged the compiler command so that
include flags occur before CFLAGS. This is a protective measure
designed to avoid issues when the CFLAGS variable also contains an
include path.
115. slsh/lib/process.sl: Added support to the pre_exec_hook callback
function for an optional argument.
116. Change 107 introduced a cut/paste error that prevented the
background color on Windows systems from being properly parsed.
(Reported by Frank and Manfred from jed-users).
117. src/sldisply.c: SLSMG_COLOR_BRIGHT_MAGENTA and
SLSMG_COLOR_BRIGHT_CYAN were swapped (patch provided by Thorben
from slang-users list).
118. Updated copyright year for upcoming release.
119. src/slposdir.c: Added lchown intrinsic.
120. src/slang.h, src/slpath.c: Added API function SLpath_getcwd
121. src/slsh.c: Use SLpath_getcwd instead of "." for CWD.
122. src/slpath.c: Added support for \\netdrive\paths for Windows, and
modified SLpath_dirname (path_dirname intrinsic) to perform some
expansion of .. and . in path names (e.g.,
path_dirname("/foo/../bar") will produce "/" instead of
"/foo/..").
The old bahavior was consident with that of the Unix
dirname command:
$ dirname `dirname /usr/bin/./slsh`
/usr/bin
The new behavior produces an arguably more accurate result:
slsh> path_dirname(path_dirname("/usr/bin/./slsh"));
/usr
123. slsh/scripts/badlinks updated to use the fswalk functions
(Agathoklis D. Hatzimanikas).
124. Various documentation updates/corrections (Agathoklis D.
Hatzimanikas).
125. slsh/slsh.c: bumped copyright year.
126. src/slconfig.h: For non-Unix, HAVE_LSTAT and HAVE_LCHOWN were
defined to be 0 instead of undef'd. Also, removed an unused
function from slposdir.c and a shadowed variable from slpath.c
127. documentation updates (Manfred Hanke)
128. modules/test/: Additional json-modules tests (Manfred Hanke)
129. src/slarray.c: Allow functions called by array_map to return
NULL. (Manfred Hanke)
130. src/slang.c: Fixed a bug in the short-circuiting of non-boolean
expressions.
131. Updated the NEWS file for release.
132. documentation updates
133. autoconf/: Updated configure scripts
134. src/mkfiles/mkmake.c: Add definitions for SLmalloc/free so that
mkmake can be built without the full slang library.
Changes since 2.2.3
1. src/slpack.c: Typo affecting 64 bit integers ('q' & 'Q') (Paul
Boekholt).
2. src/Makefile.in: Make libslang.so a symlink to libslang.so.2
instead of libslang.so.2.2.4 (Miroslav Lichvar)
3. modules/Makefile.in: Cygwin needs ELFDIR defined (Marco Atzeri).
4. src/slutty.c: Added additional baud rate values (Sergey Vlasov)
5. autoconf/configure.ac: Check for socket and socketpair in -lsocket
if it is not in libc.
6. *.tm, src/slstrops.c, src/slbstr.c: Changed occurances to
occurrences (Marcel Telka).
7. src/slparse.c: Increment the _boseos_info value for qualifier
expressions.
8. src/sltoken.c,slparse.c: The semantics of the _boseos_info variable
changed such that bos/eos callbacks are not generated for
preprocessor #ifeval statements unless bit 0x100 is set.
9. slsh/scripts/slstkchk: a new script used for running the
stack-check debugger.
10. documentation updates/tweaks (Manfred Hanke).
11. slsh/lib/rline/histsrch.sl: When building history search
completions, use most recent history first.
12. src/slarray.c: Detect integer overflows for multi-dimensional
arrays.
13. Updated year from 2010 to 2011
14. src/slcommon.c: Added _slcalloc, _slrecalloc memory allocation
functions that check for unsigned integer wrapping. A number of
vulnerable calls to SLmalloc were modified to use these functions.
(Fixes an issue reported by Pablo Cassatella).
15. src/slarray.c: Detect attempts to create a 0 dimensional array.
16. modules/csv.sl: Float and double NaNs were reversed. When
normalizing columns names, _ characters were not being properly
treated.
17. doc/tm/rtl/time.tm: Added documentation for timegm (Manfred Hanke).
18. doc/tm/crtl/slsmg.tm: Corrected prototype for SLsmg_read_raw (Manfred Hanke).
19. Tweaked doc macros and rebuilt docs.
20. src/slarray.c: Added a check for too small of a range array
increment.
Changes since 2.2.2
1. src/sltermin.c: Added support for native terminfo binary layouts.
Some systems have binary terminfo files that are incompatible with
the standard ncurses layout. Use the --terminfo=layout configure
option to specify a non-standard layout (hpux11, osf1r5, uwin,
aix4, default). This incompatibity was pointed out by River Tarnell.
2. src/slparse.c: complicated lvalue expressions were not being properly
parsed.
3. src/slstrops.c: Added strskipbytes function.
4. doc/tm/rtl/*.tm: A number of typos were corrected. (Agathoklis D.
Hatzimanikas)
5. src/slang.c,slparse.c: Qualifiers were not being passed to functions called
via derefencing an array of function references, e.g.,
(@f[n])(args;q).
6. src/slparse.c: Flag attempts to call literals as functions.
7. slsh/lib/process.sl: Added a "dir" qualifier to the new_process
function. This allows the subprocess to be started in a specified
directory.
8. src/slrline.c: Added rline_get_last_key_function, which returns the
last slang readline key function.
9. */Makefile.in: Commmened out "DESTDIR=" lines (Marcel Telka).
10. slsh/lib/rline.sl: Added rline_edit_history (allows the history to
be edited in an external editor) and rline_up/down_hist functions.
11. src/slparse.c: An incorrect check (< instead of <=) was causing -0
to generate an error.
12. .../tm/*: Corrected some documentation typos and spelling errors
(Agathoklis D. Hatzimanikas).
13. doc/tm/rtl/misc.tm: Documented the __tmp function and corrected a
few more documentation typos (Agathoklis D. Hatzimanikas).
14. src/slerrno.c: ELOOP was defined twice (Agathoklis D. Hatzimanikas).
15. doc/tm/slang.tm: Fixed a few doc errors noticed by Manfred Hanke.
16. src/slsh/scripts/mv: removed redundant call to rename, and added
force, noclobber, and verbose options (Agathoklis D. Hatzimanikas).
17. src/slsh/scripts/*: changed "static" to "private".
18. src/sldisply.c: Underlined space characters were not appearing
with the underline.
19. src/sldisply.c: Do not rely upon terminals that can
background-color-erase (BCE) to erase using the monochrome attributes (e.g.,
underline).
20. src/slarith.c: Tweaked the %S format to better round decimals with
repeated 9s or 0s.
21. autoconf/mkinsdir.sh: Updated to a newer version of
mkinstalldirs.
22. src/slagetput.c: Change 2.2.2-10 fixed a problem with aget. The
same change needed to be made to aput to avoid an access violation.
23. modules/pcre-module.c: Added support for binary strings (Paul
Boekholt).
24. src/slposdir.c: Added utime function.
25. slsh/scripts/mv: Added a missing call to stat_file (Agathoklis
Hatzimanikas).
26. src/sldisply.c: Moved the keypad init/deinit code to separate
functions for more fine-grained control.
27. slsh/rline/editor.sl: Added rline_call_editor and rline_edit_line functions
28. src/slbstr.c: Added is_substrbytes function.
29. doc/tm/rtl/strops.tm: The strncmp example used strcmp function
(Brian Murray).
30. src/sltermin.c: Changed the search order for terminfo files to:
$TERMINFO, $HOME/.terminfo, /usr/local/{etc,share,lib}/terminfo,
/etc/terminfo, ...
31. src/slparse.c: Change #6 triggered an invalid parse error for
statements involving foreach-using such as:
foreach x (y) using ("bar") (@foo)();
32. src/slstrops.c: Added an alternative interface to strreplace that
facilitates the most common case where one wants to replace all
substrings. The function now supports
new = strreplace (a, b, c);
in addition to the older usage:
(new,m) = strreplace (a, b, c, n);
33. src/sltoken.c,...: Added support for binary integer literals of
the form 0b010101. Integers may be formatted as unsigned binary using the
%B format specifier, e.g.,
sprintf ("%B", 5) ==> "101"
sprintf ("%#B", 5) ==> "0b101"
sprintf ("%#8B", 5) ==> " 0b101"
sprintf ("%#.8B", 5) ==> "0b00000101"
sprintf ("%#12.8B", 5) ==> " 0b00000101"
34. src/slarith.c: ullong_to_binary was not getting defined on systems
where sizeof(long)==sizeof(long long). (Mark Olesen).
35. src/slsh.c: The stat_mode_to_string function was using 'f' unstead
of 'p' for FIFOs. (Agathoklis Hatzimanikas).
36. src/slarray.c: Switched to using mergesort instead of qsort and
added support for sorting non-array types. For details, see the
updated documentation for array_sort.
37. src/slarray.c: Reduced the memory requirments for the mergesort
function, which produced a 5% speed improvement.
38. src/slarray.c: Added support for qsort to array_sort. See the
updated documentation for details.
39. src/slparse.c: Added a syntax enhancement to structs and
qualifiers to allow the fields of structure-valued expressions to
be used to define the structure. For example:
space = struct {x, y, z};
spacetime = struct {@space, t};
Here spacetime is a structure containing 4 fields: (x,y,z,t). In
this context, @ is not a dereference operator. Rather it is used
to tell the parser that the following expression is a structure
valued.
40. src/slcommon.c: SLmalloc inherited malloc's undefined behavior
when 0 bytes were requested. The change will cause SLmalloc to
allocate at least 1 byte if the OS version of malloc returns NULL
for 0 byte sizes.
41. src/slclass.c: The default dereference method for all scalar and
vector classes was changed from undefined to duplicate. That is,
@7 will produce 7 instead of triggering a method-undefined
exception.
42. src/slwclut.c: Added \x\c\p\,\g character classes to strtrans (See
strtrans doc).
43. src/*.c: Made numerous int->SLindex changes to match function
prototypes. Note that SLindex_Type is currently typedef'd to be
an int, but if that ever changes, these changes will be necessary.
I also added SLang_push_array_index to the public API. Also
updated copyright year since a number of files changed.
44. src/slarrfun.c: change 43 would not compile on 64 bit systems.
45. src/slnspace.c: the apropos function was not returning float,
short, long, and long long constants.
46. src/slarith.c: If LLONG_MAX is not defined, and sizeof(long long)
is 64 bits, then use the standard value.
47. src/slang.c: long long constants were not working.
48. slsh/lib/process.sl: modes[i] was being set after i was bumped.
This caused modes[0] to be NULL.
49. slsh/lib/slshrl.sl: If the first word is callable, and is followed
by a ',', then add parenthesis, i.e., "print,7" ==> "print(7);".
Note: this is a commandline convenience feature and has nothing to
do with the slang syntax.
50. slsh/lib/rline/complete.sl: Attempt to complete structure field
names.
51. src/slrline.c,slsmg.c,sldisply.c: Added support for multiline
readline.
52. configure,src/*.hin: Added autoconf support for size_t.
53. src/slang.h,...: Added 'typedef unsigned in SLstrlen_Type' to
create migration path for size_t in place of unsigned int.
54. src/slstrops.c: New intrinsics: