-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathchangelog.json
360 lines (360 loc) · 12.8 KB
/
changelog.json
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
{
"$schema": "https://github.com/zeta-group/ZDCode/raw/master/changelog.schema.json",
"versions": [
{
"name": "2.1.0",
"changes": [
"Start of this changelog, initially used within setup.py, although the format itself was never formalized."
]
},
{
"name": "2.1.1",
"changes": [
"Fixed the function call returning.",
"Added return statements for premature returning."
]
},
{
"name": "2.1.1.1",
"changes": [
"Fixed the readme."
]
},
{
"name": "2.1.2",
"changes": [
"Fixed 1 in 256 chance of A_Jump(255, *) failing, changing it onto a goto statement."
]
},
{
"name": "2.1.2.1",
"changes": [
"Slight patch: changed 'Stop' in function without returnable calls into 'TNT1 A -1'. Suggested by Blzut3."
]
},
{
"name": "2.2.0",
"changes": [
"Added 'sometimes' statement.",
"Added 'else' statement.",
"Fixed if/repeat statement jump offsets."
]
},
{
"name": "2.2.1",
"changes": [
"Fixed piped mode (stdin-to-stdout compilation)."
]
},
{
"name": "2.3.0",
"changes": [
"Rewrote the preprocessor.",
"Made error messages more useful."
]
},
{
"name": "2.3.1",
"changes": [
"Separated preprocessor macros and definitions."
]
},
{
"name": "2.4.0",
"changes": [
"Added anonymous classes.",
"Made output a bit more readable."
]
},
{
"name": "2.5.0",
"changes": [
"Added macros!"
]
},
{
"name": "2.5.1",
"changes": [
"Fixed macro parameter list.",
"Made keywords case insensitive."
]
},
{
"name": "2.6.0",
"changes": [
"Added templated classes!",
"Fixed escape characters in string literals",
"Added 'ZDCode_' prefix to internal DECORATE labels (functions, calls, etc.)"
]
},
{
"name": "2.6.1",
"changes": [
"Added keeps keyword for keeping previous state",
"Added abstract labels and macros in class templates",
"Added template derivation bodies, to implement abstract labels and set extra flags",
"Added parametric sprites, properties and actions",
"Fixed parametric replacement support for repeats and sometimes",
"Fixed context inheritance (macros, replacements and templates)"
]
},
{
"name": "2.6.1.1",
"changes": [
"Hotfix to call label names"
]
},
{
"name": "2.6.1.2",
"changes": [
"Hotfix to function names in calls"
]
},
{
"name": "2.6.2",
"changes": [
"Miscellaneous fixes to derivation",
"Fixed potentially freezing loop checks after function calls"
]
},
{
"name": "2.6.2.1",
"changes": [
"Fixed anonymous template derivation parameter resolution"
]
},
{
"name": "2.6.3",
"changes": [
"Added inheritance from anonymous template derivation",
"Classes are no longer sorted by name in output",
"Moved expression resolution from parsing (zdlexer) to compilation",
"Fixed control flow missing state count getter"
]
},
{
"name": "2.6.4",
"changes": [
"Added user variables",
"Added functioning foxes (MSA_Fox from DoomFox.zc2)",
"Added example resources"
]
},
{
"name": "2.6.5",
"changes": [
"Made template inheritance and replacement parametrizable",
"Made anonymous class inheritance parametrizable",
"Properties can now be template derivations or anonymous classes as well"
]
},
{
"name": "2.6.6",
"changes": [
"Added dynamic expression support to sometimes statement"
]
},
{
"name": "2.7.0",
"changes": [
"Improved mkexamples.py script, mainly bundling",
"Added incremental compilation to zdcode.ZDCode (ZDCode.add(...))",
"Added user variable initialization",
"Added user arrays",
"Added implicit Spawn label to actor classes",
"Added abstract arrays in class templates",
"Inherited classes now go to the Spawn label of the class they inherit by default, unless a Spawn label has already been defined",
"Fixed incremental compilation calling ZDCall.post_load twice",
"Made preprocessor macros parametrizable (see Terrain.zc2 for examples of that)"
]
},
{
"name": "2.7.1",
"changes": [
"Fixed anonymous class inheritance",
"Changed 'invis' to 'invisi' and 'keeps' to 'keepst', to prevent sprite name related ambiguity",
"Fixed preprocessor macro resolution"
]
},
{
"name": "2.7.2",
"changes": [
"Fixed minor issue with Spawn labels"
]
},
{
"name": "2.8.0",
"changes": [
"Added 'ifjump' and 'whilejump' statements for state-action-based conditional state flow",
"Added '@' pointer-like sigil to inject name for parameterization resolution",
"Added 'else' to while and whilejump statements (only executes if the condition is false before the first loop)"
]
},
{
"name": "2.9.0",
"changes": [
"Added class grouping",
"Added for loops for iteration",
"Added group iteration - 'for classname index iter_idx in my_group {...}'",
"Added extern macro injection - 'from OtherClass inject SomeMacro();'",
"Added human-readable compilation context description",
"Added global scope macros",
"Removed named arguments (ZScript-only feature)",
"Fixed forced jumps (256 instead of 255)",
"Fixed whilejump not being assigned loop IDs and crashing the compiler",
"Fixed whilejump's $offset parameter"
]
},
{
"name": "2.9.1",
"changes": [
"Fixed typo-related fatal crash in stdin-stdout compilation"
]
},
{
"name": "2.10.0",
"changes": [
"Rewrote program.py; command syntax now includes bundling from PK3s and folders",
"Added for-like index enumeration syntax to repeats - 'x 20 index rep_idx inject SpawnStuff(\"HealthBonus\", 0, 0, rep_idx * 22)'",
"Added break and continue support to for, repeat, while and whilejump loops",
"Added return support to macros",
"Fixed include checking",
"Fixed regular class grouping",
"Removed mkexamples.py"
]
},
{
"name": "2.10.1",
"changes": [
"Fixed redundant dependency bundling"
]
},
{
"name": "2.11.0",
"changes": [
"Added state modifiers and apply blocks",
"Fixed template body + template derivation body resolution; macros in either can now be accessed from either",
"Removed functions and function calls - use macros!",
"Rewrote DECORATE generation",
"Small fixes to the state keyword parser",
"Added preprocessor definition argument to the command-line interface.",
"Merged subcommands compile and bundle into one single command, supporting any combination of output arguments (see --help)"
]
},
{
"name": "2.11.1",
"changes": [
"Added experimental handling for bundling PK3 assets of same name",
"Added ZDCode entrypoint to setuptools script",
"Added Zake build system (see Zake.ini for an example)"
]
},
{
"name": "2.11.2-pre1",
"changes": [
"Fixed Zake status messages"
]
},
{
"name": "2.12.0",
"changes": [
"Added range iteration ('for i in range a..=b'), including support for parameters and Rust-like up-to syntax (akin to <= instead of <)",
"Changed static template derivation classname to be optional",
"Added global static for loops",
"Added eval blocks ('e{ 2 + 4 * MY_PARM }'), supporting many different operators, including the ternary conditional operator (cond ? a : b)",
"Added format strings ('f{ \"PRE_\" param \"POST\" }')",
"Added class-scoped apply statements (also known as 'global apply' statements)"
]
},
{
"name": "2.12.1",
"changes": [
"Made class bodies optional, allowing empty class definitions ('dummy classes')",
"Overhauled the Zake build system, and ZDCode bundling in general"
]
},
{
"name": "2.12.2",
"changes": [
"Fix severe error in parsing code",
"Added special 'inject' input types",
"Removed leftover debug prints"
]
},
{
"name": "2.12.3",
"changes": [
"Fix inject input type syntax parsing in bundle.py",
"Allow global filename excluders in Zake.ini"
]
},
{
"name": "2.12.4",
"changes": [
"Fix duplicated actor definitions",
"Revert compiling all .zc2 files in input tree (use a 'ZDCODE' file and #include)"
]
},
{
"name": "2.13.0",
"changes": [
"Allow formatting classnames and template names",
"Fix eval expressions once and for all",
"Add example of for-range, eval and formatted classnames",
"Add integer division (//) to evaluation expressions",
"Add automatic reordering for class inheritance",
"Added class-level for loops"
]
},
{
"name": "2.13.1",
"changes": [
"Reinstate direct compilation and bundling interface"
]
},
{
"name": "2.13.2",
"changes": [
"Remove manual bundling interface"
]
},
{
"name": "2.13.3",
"changes": [
"Fix writing DECORATE output in manual compilation interface"
]
},
{
"name": "2.13.4",
"changes": [
"Unstringify parts of formatted strings to fix string + parameter concatenation"
]
},
{
"name": "2.13.5",
"changes": [
"Use \"####\" \"#\" instead of TNT1 A 0 for zerotic",
"Autopad Spawn labels starting with a zerotic",
"Added a pounce to the ZDWorld Fox"
]
},
{
"name": "2.13.6",
"changes": [
"Fix preprocessor definition CLI options (program.py)",
"Add print-ast option to CLI (program.py)",
"Fix behaviour of continue and break in loops",
"Make non-state semicolons optional"
]
},
{
"name": "2.13.7",
"changes": [
"Add inheritance override ability for template derivations",
"Add frame duration selector for state modifiers",
"Allow #### (sprite name) and # (frame name)",
"Fix parsing of state modifiers with parentheses (e.g. Offset)"
]
}
]
}