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
|
2025-12-20
Fixed type checking so that <boolean> is equal to
(:union (:unit-type #f) (:unit-type #t)) as a type.
2025-12-04
- Fixed bugs with type checking in match-type and match-type-weak
expressions.
- Fixed a bug in checking if an atomic object is an instance of a class.
- Implemented Guile vector support in the standard library in module raw-vector.
2025-11-12
Optimized some equality checks for union arguments to use Scheme predicate
eq? in the target code. In particular, this optimization is invoked by types
(:maybe %x) and (:alt-maybe %x) with certain parameter types %x.
2025-11-10
- Improved union type check optimization in the linker.
In particular, this optimization is invoked when casting objects
of type (:maybe %x) or (:alt-maybe %x) to %x.
2025-11-05
- Fixed equality predicates to work with pair structures containing
nonprimitive objects.
- Optimized handling match-type expressions in the bootstrapped linker
Tree-IL backend.
2025-11-04
- Fixed predicate equal-contents? to work with cyclic objects.
- Fixed a bug with typechecking incomplete unions.
- Improved internal cycle handling in variable substitution.
2025-10-19
- Speed optimizations for the generated code and the bootstrapped translator.
- Fixed a bug with <none> as a union component type.
2025-09-10
Fixed bugs in the type system. In particular, the check whether a type inherits
from <object> is fixed. Note that this is equivalent to checking if the type is
not <none> or a union evaluating to <none>.
2025-09-06
Changed the names of linked interfaces from MODULE.go to __intf_MODULE.go.
The purpose of this change is to prevent name collisions between linked
interfaces and native Guile modules.
2025-02-08
Optimize apply expressions.
2025-01-31
Improved handling unit types as procedure argument types and components
of procedure argument types.
2025-01-02
New release 6.0.0. See ChangeLog.
2024-12-29
Added form static-type-of0 and special procedure type-of. See
sections 6.15.8 and 7.3.4 in the new language manual.
2024-12-26
Optimized the default constructors.
2024-12-23
Implemented the keyword based make for Theme-D classes. The old-style make has
been renamed to "create". For more information, see:
- Sections 4.14 and 6.16.2 of the new language manual.
- Section 6.1 of the new standard library reference (for create).
- Test programs test892.thp, test894.thp, and test895.thp.
2024-12-19
- Implemented type checking for GOOPS foreign class make expressions.
- Implemented GOOPS class attribute pure-make.
- Bug fixes.
2024-12-13
The prerelease 6.0.0~pre7 has been published. See
https://www.iki.fi/tohoyn/theme-d/download.html.
Changes to version 6.0.0~pre6:
- The bootstrapped compiler and linker work.
2024-12-08
Use eqv? as the default implementation of the equal-objects? predicate
for foreign classes. This can be changed by class attribute use-eq?.
2024-12-01
Fixed a bug in generic procedure dispatch in the BST.
Fixed a bug in the BST Tree-IL backend.
2024-11-30
Fixes to the BST linker.
More optimizations to match-type and match-type-strong.
2024-11-29
Optimized cycle detection in subtype checking and type deduction.
Optimized methods reverse and d-reverse in the standard library.
Added methods d-fold1 and d-fold-right1 into the standard library.
2024-11-28
Optimized match-type and match-type-strong.
2024-11-27
Fixed a bug in the equality predicate optimization.
2024-11-24
Optimized classes that are not atomic and not foreign GOOPS classes to use
eq? as the implementation for predicate equal-objects?.
2024-11-22
Improved the libthemedsupport library by using source code of Guile 3.0.10.
2024-11-22
Allow the use of translator keyword as symbols.
Allow the use of non-class types in forward declarations.
2024-11-20
Runtime type check for slot-ref.
Added methods union-of-lists and union-of-alists into the standard library.
2024-11-20
The prerelease 6.0.0~pre6 has been published. See
https://www.iki.fi/tohoyn/theme-d/download.html.
Changes to version 6.0.0~pre5:
- Fixed bugs with string unit types.
- Renewed the foreign function interface for GOOPS classes. See the Language
Manual.
2024-11-18
Use optimization level 2 for the translator compilation by default.
Renamed configure option opt-compilation to xlat-opt-compilation.
Bug fixes for type equality in the RTE.
Detect unit types as final.
2024-11-17
The prerelease 6.0.0~pre5 has been published. See
https://www.iki.fi/tohoyn/theme-d/download.html.
Changes to version 6.0.0~pre4:
- Fixed a bug with string unit types.
- Added procedures fold1, fold-right1, delete-duplicates, and list-set-diff
into the the standard library.
2024-11-17
Added methods fold1 and fold-right1 into module list-utilities.
Added example program fold.thp.
2024-11-16
- The prerelease 6.0.0~pre4 has been published. See
https://www.iki.fi/tohoyn/theme-d/download.html.
Changes to version 6.0.0~pre3:
- Fixed subexpression factorization.
- Fixed a bug with unit types in RTE.
- Fixed form debug-output.
- Renamed define-prim-class to define-foreign-prim-class.
- Use option --warn=shadowed-toplevel in the compilation of the translator and
in the RTE. The option is also used in the target compilation of Theme-D
programs.
- Renamed define-prim-class to define-foreign-prim-class.
- Fixed subexpression factorization.
- Fixed a bug with unit types in the RTE.
- Fixed form debug-output.
2024-11-15
Fixed split linking.
Improved script compute-theme-d-deps.scm and added a man page for it.
Fixed "make install" and added some directory options to configure.ac.
2024-11-14
Added figures presenting generic procedure class hierarchy into the language
manual.
Fixed equivalence predicate optimization.
The language manual has been updated.
Some fixes to procedure equal-types0? used in equality predicates.
2024-11-13
The prerelease 6.0.0~pre3 has been published. See
https://www.iki.fi/tohoyn/theme-d/download.html.
2024-11-13
Renamed some standard library modules:
hash-table -> hash-table0
hash-table2 -> hash-table
hash-table2-opt -> hash-table-opt
2024-11-13
Removed metaclasses :value-vector and :mutable-value-vector and changed
instances of :vector and :mutable-vector to be equal by value. Note that you can
compare vectors as objects with predicate equal-objects?.
2024-11-13
* Changes
- Simplified the implementation of equality predicates.
2024-11-12
* Changes
- Updated the User Guide.
- Changed procedure dispatch-normal-method-w-params.
- Updated file test-info.scm
* Notes
- Guile 2.0, Guile 2.2, and Racket platforms are no longer supported.
2024-11-11
The prerelease 6.0.0~pre2 has been published in the devel branch of the
Theme-D SourceForge repository,
https://sourceforge.net/p/theme-d/code/ci/master/tree/
* Changes
- Fixed bugs with runtime type variable allocation.
- Implemented unit types.
- Removed the restriction that declaration and definition of a variable must
have equal class sizes.
- Use GOOPS classes in the runtime environment.
* Notes
- The code for the type system is now shared between the translator and the
runtime environment.
- The bootstrapped environment does not work yet.
- See https://en.wikipedia.org/wiki/Unit_type for information about unit
types. See also example programs orientation1.thp, orientation2.thp, and
bits.thp.
2024-11-02
* Changes
- Updated the Tree-IL backend to be compatible with the new RTE.
- Updated the nonoptimized Guile backend to be compatible with the new RTE.
2024-11-01
* Changes
- Refactorized the runtime environment. Currently only the optimized Guile
backend is compatible with the new RTE.
2024-10-30
* Notes:
- The runtime environment compiles but does not work.
* Changes
- Changed the runtime environment to use GOOPS objects instead of vectors
for Theme-D objects.
- Changed the representation of Theme-D vectors to use GOOPS objects
in the RTE.
- Checked the use of equality predicates in the RTE.
- Fixed the hash function for the RTE parameterized instance cache.
2024-10-29
* Notes
- A working version. Compiler and linker work but runtime environment does not.
* Changes
- Fixed bugs in runtime type variable allocation.
- Implemented unit types. See example programs orientation1.thp,
orientation2.thp, and bits.thp.
See also https://en.wikipedia.org/wiki/Unit_type.
|