-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathReleaseNotes
135 lines (133 loc) · 5.94 KB
/
ReleaseNotes
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
0.10
- Fixed all known caching bugs and made caching the default. (Completed
redid cyclic dependencies)
- Fixed inconsistencies in name access.
- Enhancements to SDL modules (notably audio) and alsa midi.
- Made JIT defer jitting of functions until they are needed.
- Added the scoping operator ('::') and fixed the way the period
operator does dereferencing and scoping.
- Added "field sets" (allows you to attach arbitrary typed data to an
object)
- Replaced the "_iface_" functions hack used to implement interfaces
with an "oper from" method.
- Lots of smaller fixes and enhancements.
0.9
- Added support for threading.
- Added the #crack.net.irc# module.
- Added the #crackc.protobuf# module.
- Many changes to caching.
0.8
- Lots of bug fixes and small features.
- Lots of refactors and code cleanups.
- Implemented most of the code for caching (which is still way too buggy
for anything other than experimentation).
- Added flag driven tracing facility.
- Lots of new modules and extension modules:
- OpenSSL
- libpng
- alsa, midi, jack, and fluidsynth
- curl
- SHA1 digests
- base64 encoding
- Mongo DB and LMDB
- netCDF
- Mersenne Twister PRNG.
- enhanced the test framework to support composite tests.
- added the Wurld OpenGL example program.
- Ported to LLVM 3.3
- Changed annotation-in-generic semantics.
0.7.1
- Fixed crack.process, respect the flags that are passed in defining
pipe configuration.
- Updated the manual for 0.7.
- Added closedir() on destruction of a directory iterator (we were
leaking handles).
- Fixes for naming and module association for forward classes and
extension types.
0.7
- Switched licensing from LGPLv3 to MPL 2.0.
- Upgraded to LLVM 3.1
- 16-bit integer types.
- The "alias" statement.
- Implemented a version of cast that returns a default instead of
throwing an exception when the cast fails.
- Indented string constants.
- Virtual methods in extension classes.
- An "assert" annotation.
- Extensions for midi, alsa, SDL drawing, fluidsynth and Crossroads IO.
- XML parsing.
- OrderedHashmap
- Process multiplexing
- Lots of bug-fixes and small enhancements.
- Various changes to support caching (which still doesn't work).
0.6
- Implemented const folding for integer and float operations.
- Added support for injecting crack function body code from an extension.
- Added the foundations of support for module caching.
- Added functors.
- Added an 'ascii' module supporting functionality specific to ASCII
data.
- Added a module for dealing with numeric arrays.
- Migrated modules out of crack.exp, removed obsolete modules.
- Implemented "const" variables.
- Implemented access protection.
- Implemented abstract methods.
- Converted all unit tests to "screen"
- Lots of bug fixes and small enhancements.
0.5
- Added support for generics. Created true generic containers.
- Made functions "first class" objects, implemented support for storing
functions in variables and "oper call", permitting the creation of
functors.
- Implemented the Platform Dependent Numeric Types and made them work
according to spec in all contexts.
- Added a command-line parsing module.
- Added a HashMap generic.
- Added some date manipulation code.
- Refactored cmake files.
- Added the "typeof()" operator.
- Added full support for "oper to" implicit conversions.
- Enhancements to extension generation for class methods, constructors,
C function name specification
- Various small bug fixes and enhancements.
0.4
- Added support for exception handling, converted the library to use
exceptions instead of the crack.exp.error module.
- Added support for compiling scripts to native binaries.
- Added syntax to allow initialization of sequence types, e.g.
array[int] a = [1, 2, 3];
- Improved string interpolation, added calls to enter() and leave() and
made it a true expression returning the return value of leave() or the
target object if leave() is undefined. Implemented a StringFormatter
variation that can be used in an expression context.
- Added the "encoding" annotation, allowing users to declare a script's
encoding.
0.3
- Aggregate type variables now default to null if no initializer is
given.
- Implemented the "for" statement.
- Added support for extensions.
- Added a module to generate bindings for many C APIs.
- Converted the runtime, GTK and PCRE modules to use the extension
API.
- Added undocumented support for SDL, OpenGL
- Added the math module.
- Added the annotations subsystem.
- Used annotations to implement macros
- Added the @static, @final, @FILE and @LINE builtin annotations.
- Added macro-based generic containers
0.2
- Major code cleanups.
- Added RBTree maps.
- Numerous bug fixes and enhanced error checking.
- Implemented the remaining C operators (pre/post increment/decrement,
bitwise operators, augmented assignment, ternary operator).
- Improved IR readability.
- Added debug information (not currently usable for lack of a debugger)
- Removed external dependency on spug++.
- Implemented forward declarations of functions and classes.
- Added the LineReader class
- Added support for a socket API.
- Added support for hex and octal integer constants (and fixed integer
constants in general)
- Added a File/Stream interface.