-
Notifications
You must be signed in to change notification settings - Fork 6
/
whatsnew.mdp
317 lines (182 loc) · 6.53 KB
/
whatsnew.mdp
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
What is new in R3?
Author: Ladislav Mecir
=toc
===Introduction
This document lists new and improved features in R3 compared to R2.
===New datatypes
---CLOSURE!
A type of function implemented in Rebol distinct from FUNCTION!
+++Advantages
* simpler to use than FUNCTION! (more beginner friendly)
* more "predictable" behaviour
* suitable for "asynchronous programming"
---COMMAND!
A type of native external function used by extensions.
---FRAME!
Internal context frame.
+++Advantages
* my guess is that this datatype is not meant as a "user feature"
---GET-PATH!
A special kind of path datatype.
+++Advantages
* to obtain a value the path is referring to
---GOB!
Low level graphical object.
+++Advantages
* meant to speed up graphics and
* decrease memory consumption
* support two-dimensional compositing with transparency
* support scalable vector graphics
* support image effects
* support rich text
---HANDLE!
Arbitrary internal object or value.
+++Advantages
* my guess is that this datatype is not meant as a "user feature"
* probably just improving interface with "outside"
---MAP!
Associative array type.
+++Advantages
* brings an associative array type to Rebol
* beginner-friendly
---MODULE!
Loadable context of code and data.
+++Advantages
* facilitating PITL (programming in the large)
---PERCENT!
Allows the expression and computation of percentages.
+++Advantages
* convenience of data representation
---TASK!
Not fully supported yet.
---TYPESET!
Allows definition of typesets. Typesets replace R2 "pseudotypes" like NUMBER!, SERIES!, etc. that weren't user-definable.
+++Advantages
* supports definitions of new typesets
---UTYPE!
User-definable datatype.
Not fully supported yet.
---VECTOR!
Optimized for vector manipulations.
Not fully supported yet.
===Removed datatypes
---LIST!
Not popular.
---HASH!
Used mainly for associative arrays, but this purpose is better handled by the MAP! datatype.
===Improved datatypes
---BITSET!
+++Improvements
* supports definition of Unicode codepoint sets
* complementary bitsets are supported
---BLOCK!
+++Improvements
* INSERT HEAD speed was improved to be the same as the speed of INSERT TAIL and
* REMOVE HEAD speed was improved to be the same as the speed of REMOVE BACK TAIL
---CHAR!
+++Improvements
* can represent Unicode BMP codepoints
---DATATYPE!
+++Improvements
* now represents only "real" datatypes, for typesets see the TYPESET! datatype
---DATE!
+++Improvements
* UTC "attribute"
* HOUR "attribute"
* MINUTE "attribute"
* SECOND "attribute"
* "attributes" are accessible using the PICK function
---DECIMAL!
+++Improvements
* comparison operators improved
* a native ROUND function defined
* MOLD corrected
---EMAIL!
+++Improvements
* based on STRING! datatype, can contain Unicode BMP codepoints
* INSERT HEAD speed improved to be the same as INSERT TAIL speed
* REMOVE HEAD speed improved to be the same as REMOVE BACK TAIL speed
---ERROR!
+++Improvements
* became a "legal" datatype
* no DISARM necessary
* improved construction syntax
---FILE!
+++Improvements
* based on STRING! datatype, can contain Unicode BMP codepoints
* INSERT HEAD speed improved to be the same as INSERT TAIL speed
* REMOVE HEAD speed improved to be the same as REMOVE BACK TAIL speed
---FUNCTION!
+++Improvements
* now compatible with multithreading applications
* security, not offering/remembering argument values after the call finished
* accessors WORDS-OF, SPEC-OF and BODY-OF defined
* security, accessors not offering the "original" WORDS, BODY and SPEC blocks
* "unevaluated argument passing" specified by get-word parameter name in function spec now fully supported, allowing to define the proper QUOTE function
* "partially evaluated argument passing" specified by lit-word parameter name in function spec adjusted to allow parens to trigger evaluation of arguments if needed
* "partially evaluated argument passing" - get-words now also trigger "normal evaluation" of arguments
+++Deteriorations
* function variable access is O(n) depending on the depth of the function frame on the function call stack (this has to be corrected in my opinion)
---GET-WORD!
+++Improvements
* the Do dialect semantics of this datatype has changed, now it returns #[unset!] for "unset" variables
---IMAGE!
+++Improvements
* switched to "standard" alpha values now (0 transparent, 255 opaque) for better compatibility with existing frameworks and better portability of R3
---INTEGER!
+++Improvements
* switched to 64-bit
* arithmetic corrections
---ISSUE!
+++Improvements
* turned to word type in accordance with the major usage
---MONEY!
+++Improvements
* now implemented as a "truly decimal" (96-bit) type
+++Deteriorations
* not supporting currency attribute at present
---OBJECT!
+++Improvements
* "object growth" (this holds for contexts in general) now supported
---PAIR!
+++Improvements
* coordinates are now floats supporting subpixel accuracy
---REFINEMENT!
+++Improvements
* refinements are now bound like other word types
---SET-WORD!
+++Improvements
* used even more for "autocollecting" of local variables than before
---STRING!
+++Improvements
* can contain Unicode BMP codepoints
* INSERT HEAD speed improved to be the same as INSERT TAIL speed
* REMOVE HEAD speed improved to be the same as REMOVE BACK TAIL speed
---TIME!
+++Improvements
* "attributes" can be accessed using the PICK function
---URL!
+++Improvements
* based on STRING! datatype, can contain Unicode BMP codepoints
* INSERT HEAD speed improved to be the same as INSERT TAIL speed
* REMOVE HEAD speed improved to be the same as REMOVE BACK TAIL speed
---WORD!
+++Improvements
* minor syntactic corrections of all word types
===New functions
===Improved functions
---PARSE
+++Improvements
* new keywords: AND, NOT, FAIL, THEN added to improve compatibility with other members of the Top-down pasing language family like TDPL, GTDPL, PEG, etc. and increase expressivity of the Parse dialect
* other keywords increasing expressivity added: QUOTE, IF, REJECT, CHANGE, REMOVE, INSERT
* existing keywords have improved functionality: INTO, TO, THRU, SET
* improved consistency - COPY now produces a series having the same datatype as PARSE input
* /ALL option applies only to simple rules (not blocks)
===R3GUI
+++Improvements
* support for more advanced/demanding applications than VID
* box model for faces
* layouts (layout styles) are used to group faces
* support for auto-resizing layout styles
* two distinct auto-resizing layout styles (GROUP and PANEL) built in
* actors are used to define the behaviour of styles and faces