|
1 | 1 | For the latest news, visit the SparForte web site.
|
2 | 2 |
|
3 |
| -Objective: Bug fixes following 2.4 and reducing technical debt. |
| 3 | +Objective: Shell modernization and reducing technical debt. |
4 | 4 |
|
5 |
| -CHANGES SINCE 2.4 |
| 5 | +CHANGES SINCE 2.5 |
6 | 6 |
|
7 |
| -1. New: doubly_linked_lists.parcel. |
| 7 | +1. New: --session option to store history and local profiles under alternate names. |
8 | 8 |
|
9 |
| -2. Fix: fixed "positive value is less than zero" error for a zero. |
| 9 | +2. New: System.Session_Name to read the name from --session. |
10 | 10 |
|
11 |
| -3. New: renaming a generic type. |
| 11 | +3. New: pragma prompt_idle_script and prompt_idle_speed. |
12 | 12 |
|
13 |
| -4. Fix: missing filename at end-of-line for >, 2>, < no longer produce an exception. |
| 13 | +4. New: New examples rock.sp, user_input.sp, primes_asc.sp. |
14 | 14 |
|
15 |
| -5. Change: forgetting a "when" in a case statement with strings, which looks |
16 |
| -like a shell command, is now an error, detected by the presence of the big arrow |
17 |
| -(=>). |
| 15 | +5. New: case in is now case procedure. |
18 | 16 |
|
19 |
| -6. Fix: out mode formal parameters that are not written to will have a |
20 |
| -"declared but not written to" error. |
| 17 | +6. Fix: GCC-style error messages no longer contains coloured text with --colour/--color. |
21 | 18 |
|
22 |
| -7. Fix: . and .. directories ignored on file completions ending with a /. |
| 19 | +7. Fix: non-limited volatiles, which cannot be used in expressions, no longer have an error for not being declared limited. |
23 | 20 |
|
24 |
| -8. New: strings.to_hexadecimal_digits |
| 21 | +8. Fix: usable parameters in null subprograms no longer report an error if they are not used or are not referenced. |
25 | 22 |
|
26 |
| -9. Fix: added policy and configuration to built-in help. |
| 23 | +9. Refactor: end-of-line CR/LF definitions are now in the os_binding files. |
27 | 24 |
|
28 |
| -10. Fix: strings package csv_field, csv_replace, field, is_slashed_date, is_typo_of, mktemp, split, to_base64, to_escaped, to_hexadecimal_digits, to_json are now not allowed with pragma ada_95. I don't remember if there was a reason there were allowed previously. |
| 25 | +10. Fix: --gcc-errors no longer hides error messages at an interactive prompt. |
29 | 26 |
|
30 |
| -11. Fix: structured scripts no longer auto-declare variables. unstructured scripts will still auto-declare variables. |
| 27 | +11. Fix: with APQ, Makeincl no longer aborts a make clean because this generated file was removed in a previous make clean. |
31 | 28 |
|
32 |
| -12. New: tilde works with tab completions on files and commands.. |
| 29 | +12. Refactor: error reporting functions have been redesigned for better security and support for European characters. Also, highlighted keywords in source lines in error messages. |
33 | 30 |
|
34 |
| -13. Fix: tab completion of a single directory now works correctly. |
| 31 | +13. Fix: libc group_member() missing from some Ubuntu Linux where __USE_GNU is not set. Occurred on a recent Ubuntu update. Added workaround based on BSD hack. |
35 | 32 |
|
36 |
| -14. New: basic sudo tab completion handling. |
| 33 | +14. Fix: if an error occurs while parsing a pragma template, do not enable templates and get an internal error when rendering the HTTP header. |
37 | 34 |
|
38 |
| -15. Fix: tab completion of a command no longer adds "./" where there is none. |
| 35 | +15. Fix: template error messages are now consistently written to standard error as a single line for logging purposes. |
39 | 36 |
|
40 |
| -16. Change: homonymn checking no longer applies to unstructured scripts. |
| 37 | +16. New: basic TOML/INI template support. |
41 | 38 |
|
42 |
| -CHANGES SINCE 2.4.1 |
| 39 | +17. New: error messages include the percentage of distance through the script where the error occurred. |
43 | 40 |
|
44 |
| -17. New: umask built-in command (not octal values). |
| 41 | +18. Fix: extended ASCII characters render correctly in log package messages. |
45 | 42 |
|
46 |
| -18. Fix: issue with the number "2" in shell words treated as a number fixed. |
| 43 | +19. Change: normal errors (not GCC format) show the line before the error line as well as the error line, for more context. |
47 | 44 |
|
48 |
| -19. Fix: "return" no longer produces an error with pragma annotate. |
| 45 | +20. Change: replaced "let" commands in shell scripts with $((..)) to make them compatible with feature-poor dash shell. |
49 | 46 |
|
50 |
| -20. Change: style issues no longer enforced for unstructured scripts. Double-quoted shell word check no longer treated as a style issue. |
| 47 | +21. New: configure --jobs option. |
51 | 48 |
|
52 |
| -21. New: btree_io.recover, hash_io.recover. |
| 49 | +22. Refactor: standardized numeric values in the language to a dedicated type instead of using long_float's. |
53 | 50 |
|
54 |
| -22. New: pragma volatile can have a timeout duration in seconds. |
| 51 | +23. Fix: directories with spaces now tab complete correctly. |
55 | 52 |
|
56 |
| -23. New: opengl_third, opengl_fourth examples. |
| 53 | +24. Fix: type errors are now caught again in templates. |
57 | 54 |
|
58 |
| -24. New: strings.levenshtein, strings.soundex, strings.replace_all, strings.starts, strings.ends, strings.word_count, strings.compare, strings.index_set. |
| 55 | +25. Fix: built-in functions with out parameters no longer require the out variable to be declared first. |
59 | 56 |
|
60 |
| -25. Fix: to_hexadecimal_digits no longer allowed with pragma ada_95. |
| 57 | +26. New: pragma restriction( no_prompt_history ) to disable saving interactive prompt history when SparForte is shutting down. |
61 | 58 |
|
62 |
| -26. New: l10n package. |
| 59 | +27. Change: the SIGQUIT signal is now ignored, as in the BASH shell. |
63 | 60 |
|
64 |
| -27. New: hashed_maps package. |
| 61 | +28. Change: the SIGTERM signal is handled for interfactive sessions, as in the BASH shell. |
65 | 62 |
|
66 |
| -28. New: vectors package. |
| 63 | +29. Change: the provision script supports "without" options. A full install of all software dependencies is no longer required. |
67 | 64 |
|
68 |
| -29. New: case in statement can have multiple test variables and return expressions. |
| 65 | +30. Change: replaced some text_io functions within the language to deal with interrupted system calls based device_error exceptions. |
69 | 66 |
|
70 |
| -30. New: case with multiple variables (like rust, python, and some other languages). |
| 67 | +31. New: Bourne shell expansions: ${X||} for absolute value, ${X|} for rounded value, ${X|^} for ceiling value, ${X|,} for floor value. |
71 | 68 |
|
72 |
| -31. New: box <> allowed in case when conditions. |
| 69 | +32. New: provision.sh updates for Red Hat Linux 9, but SDL 1.2 is not fully included and it must be built --without-sdl. |
73 | 70 |
|
74 |
| -32. New: demonstration examples contracts, design_examples, scheduler, side_effects. |
75 |
| - |
76 |
| -33. Fix: parent contracts which raise an exception now propogate the exception. |
77 |
| - |
78 |
| -34. Change: Improved some error messages for context and ease of understanding. |
79 |
| - |
80 |
| -35. Fix: restored a unreachable code by raise test that was removed when raise..when was added. |
81 |
| - |
82 |
| -36. Fix: [Blady] various OS/X changes. |
83 |
| - |
84 |
| -37. Fix: [Zhu] Slackware / GCC 11 fix. |
85 |
| - |
86 |
| -38. New: Support for Raspian / Debian 11.1 (Bullseye) on Raspberry Pi. |
87 |
| - |
88 |
| -39. New: Support for YAML substitutions. |
89 |
| - |
90 |
| -40. Change: [Beader] identifiers must differ by more than underscores in formal scripts. |
91 |
| - |
92 |
| -41. Change: Changes to configure and provision scripts to support building in Ubuntu Docker container. Changes not yet made for other O/S. Example Dockerfile included with source code. |
93 |
| - |
94 |
| -42. Fix: use of constant on record fields vs variable fixed. Fixed subsequent issues with affirm clauses. Fixed impacted example programs. |
95 |
| - |
96 |
| -43. Fix: test cases in pragma test are now syntax checked. |
97 |
| - |
98 |
| -44. Fix: written variable test for out parameters only applies if the variable is not auto-declared. |
99 |
| - |
100 |
| -45: New: ${X^^}, ${X^}, ${X,,} for uppercase, lowercase, proper case. |
101 |
| - |
102 |
| -46: Change: default for makefile is to build with 4 threads. |
103 |
| - |
104 |
| -47: Fix: doubly linked lists parameters should work correctly. |
105 |
| - |
106 |
| -48: Fix: recursion no longer confused by new parameters being created in some circumstances. |
107 |
| - |
108 |
| -49: New: more examples: luhn.sp, hanoi.sp, ipv4.sp. |
109 |
| - |
110 |
| -50: New: -q / --quiet for brief error messages. The default is detailed error messages. |
111 |
| - |
112 |
| -51: Fix: function return values expressions now type checked and type casted where necessary. |
113 |
| - |
114 |
| -52. Fix: certain user functions not allowing return values fixed. |
115 |
| - |
116 |
| -53. Fix: contract failures in subprogram parameters no longer hidden or raised later. |
117 |
| - |
118 |
| -54: New: new logs procedures for simple metrics: logs.metrics, logs.checkpoint |
119 |
| - |
120 |
| -55: Fix: a blank line at the start of a with separate file no longer raises an exception. |
121 |
| - |
122 |
| -56: Fix: provision.sh script updated and fixed for SuSE Linux. |
123 |
| - |
124 |
| -57: Change: Updates for FreeBSD 13. Build successful without BDB support (FreeBSD BDB is very old). Tests not passing, perhaps GCC Ada is too old on FreeBSD. |
| 71 | +33. Change: l10n changed to support Red Hat Linux 9 which disables GNU extensions. |
125 | 72 |
|
0 commit comments