File: ChangeLog

package info (click to toggle)
falconpl 0.9.6.9-git20120606-2.1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 46,204 kB
  • ctags: 30,002
  • sloc: cpp: 181,414; ansic: 109,025; yacc: 2,310; xml: 1,218; sh: 403; objc: 245; makefile: 82; sql: 20
file content (986 lines) | stat: -rw-r--r-- 58,920 bytes parent folder | download | duplicates (2)
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
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
Falcon (0.9.6.9)
  * fixed: dbiloader doesn't make the specific driver the vm's main module 
  * added: typeName method for Falcon::Item
  * added: AccessError now reports the type of an item for which 
           an invalid property was requested
  * fixed: dbi-mysql now manages non-prepareable queries.
  * fixed: dbi-mysql now manages stored-procedure recordsets.
  * fixed: fself din't get access to the current closure.
  * fixed: Several doc reference missing.
  * fixed: Fix for broken recvAll in IMAP module.
  * added: Nest to version 2.0

Falcon (0.9.6.7)
  * fixed: pow() din't reset the numeric error on startup.
  * fixed: FTD not correctly escaping if using CRLF as EOL.
  * fixed: In WOPI, missing function Uploaded.read()
  * fixed: Continuations had several implementation bugs.
  * added: Continuation callers can now send parameters to suspended
           continuations.
  * minor: Reversed startup continuation parameter list (now the
           call-with-continuation parameter is the first one).
  * fixed: Json escaping (\uNNNN) wasn't correctly generated.
  * minor: Added function vmModuleLine, that returns the number of the
	    line it has been called at.
  * fixed: Several problems in module loading and marking caused random
           crashes with complex inter-module linking.
  * fixed: Error traceback doesn't include Error_init anymore.
  * fixed: Several bugs in class inheritance calculus and class equality
           check.
  * minor: Better error reporting thanks to error boxing.
  * fixed: load/import with files from relative paths now working.
  * fixed: Fixed off-by-one error in ftrim()
  * added: DBI - odbc module.
  * added: Support for encoding IBM850 (code page 850 - western latin).
  * added: DBI - Firebird (fbsql) module.

Falcon (0.9.6.6)
  * fixed: Default CoreObject clone didn't try to clone the falcon-data even
           if it was possible to do that.
  * fixed: When importing from namespaces, inheritance (derivedFrom) from 
           classes coming from namespaces wasn't correctly detected.
  * fixed: In interactive mode (and whenever using the interactive compiler)
           modules with symbols already known in the VM couldn't be loaded
           even if stored in their own namespace.
  * fixed: CoreSlot wasn't exported so it couldn't be used in modules.
  * fixed: "a" * 10000 taking ages because of parser error in first allocation.
           Thanks maxm for this.
  * minor: Added option "-s" in CLT to send error output on stdout, and --cgi
           option to load "cgi" module and add -s option in one step.
  * minor: strSplit() returns an array containing all the elements if the token
           is not given.
  * fixed: toString() crashed when called without a parameter.
  * fixed: include() didn't take the engine encodings as the default.
  * fixed: language level second() was not using the new system independent api 
           Falcon::Sys::_seconds(). As a result, some embeddings using _second()
           may have provided mismatched timings on windows.
  * minor: When used with invalid parameters, falpack points out that -h will 
           print help text.
  * fixed: Sys::fal_mkdir (unix) didn't handle absolute paths proper. 
  * added: Method Dictionary.dop (default operation).
  * fixed: falpack wasn't correctly storing the plugins in the app subtree.
  * fixed: Immediate array unpack was causing an assert in case of wrong sizes.
  * added: Module cache acting directly in ModuleLoader. Should be reviewed for
           finer control in next version.
  * added: Methods Dictionary.do and Array.concat
  * fixed: passvp() was failing if calling function had local vars (!)
  * fixed: First trace step of errors didn't report the target file name.
  * fixed: import <module> in <namespace> used the "as" instead of "in" keyword.
  * added: Base64 class.
  * fixed: String.escape() enscaped only below chr(8) and not below chr(32).
  * added: epoch() function returning exactly the seconds since UNIX epoch.
  * fixed: Comparation with timestamps and other kind of items caused an
           endless recursion.
  * fixed: strSplit(":",":") should logically return an array of two empty items,
           but returned ":" instead.

Falcon (0.9.6.4)
  * fixed: returning oob(1) from a filter in comp() & single sequence mfcomp
           didn't discard the value.
  * fixed: Path::uriToWin() (used to post-normalize paths on MS-Windows system)
           didn't translate '+' into ' ', which meant troubles with filenames
           including spaces on MS-Windows.
  * fixed: falpack used the user-provided main script path as-is, without prior
           normalization, causing all the scripts to be considered 
           non-applciation (system) when the path was given in non-canonical
           format.
  * minor: Asynchronous messages are now handled more smoothly.
  * fixed: future binding (named parameters) "invaded" local variables in target 
           function symbol table. 
  * fixed: strSplitTrimmed (and FBOM.splittr) put an extra empty string at the end
           of the array when multiple separators was at the end of the parsed
           input strings.
  * fixed: Failing to init the frame in new VMContexts would have caused random
           crashes depending on linkage or memory conditions (thanks Mordae).
  * added: Function.trace() to get the traceback steps.
  * fixed: Invalid loop condition caused fself.caller() to segfault (all
           thanks to fgenesis).
  * fixed: Fordot statement (.=) couldn't be used after for/in...: (after a colon)
  * added: Methodic functions strEsq, strUnesq, strEscape, strUnescape (and 
           similarly named methods in String) helping string transformation in
           web modules.
  * fixed: URI::URLEscape needed much more escaping...
  * fixed: Error reporting in include() may crash.
  * fixed: def statement crashed if declared variables was not assigned.
  * fixed: Directory.descend can be called with nil as directory handler function.
  * fixed: URI::URLDecode was a bit too strict; there's no need to filter chars
           under 0x20.
  * added: Event model to VMSlot (children named slots). 
  * fixed: StreamBuffer may cause hangs on partial reads in net-based streams.
  * fixed: clone() and *comp() didn't duplicate strings as semantic would suggest.
  * added: Now unknown messages are optionally marshalled to "__on_event" in objects.

Falcon (0.9.6.2)
  * fixed: Random crash on runtime errors during object init.
  * fixed: fileExt() returned the file part since first dot.
  * added: Support for OEM - IBM473 code page.
  * fixed: fileType() and FileStat return values were not initialized, cusing
           weird values in case of file not found errors.
  * added: First version of falpack.
  * fixed: Error in class symbol de-serialization caused failure of fam
           loading. The default fallback to .fal re-compilation hid the
           problem.
  * fixed: In c++ API, Path::getWindowsFormat went in endless loop.
  * added: Path.fulloc, Path.winpath, Path.winloc and Path.winfulloc properties
           to the Path class.
  * added: falpack CLT tool.
  * fixed: Module loader now takes into account also disk specifiers.
  * fixed: Path::isAbsolute wasn't considering relative paths under disk 
           specificators.
  * fixed: Local symbol tables of functions may have been broken, causing
           string expansion and other language elements in need of dynamic
           access to local symbol table to break.
  * added: mcomp and mfcomp methods to sequences for multiple comprehension.
  * fixed: Comprehension support is now not atomic (and supports 
           continuations).
  * fixed: Continuation.clone wasn't correctly working -- currently disabled
           because causes segfaults.
  * major: "state" keyword removed. Now, states are declared with [statename] 
  * fixed: Asynchronous message processing was basically broken, but the breakage
           could be spotted only at random conditions.
  * fixed: Addressing issue on sparc64 caused segfault on __leave handling in
           state transitions.
  * fixed: the check on VMContext::preParam was totally bogus and
           may have caused to return 0 even if proper pre-parameter existed.
  
Falcon (0.9.6)
  * minor: On windows, stream functions now accept paths also in windows 
           format. This is controlled by an engine global setting that
           is ON by default on windows and OFF elsewhere.
  * fixed: Throws to manage return frames was a bit excessive. This
           wasted lots of time in atomic calls.
  * fixed: Timestamp.dayOfWeek() wasn't working correctly.
  * fixed: Extra error field was always set to "_init" when raised during
           the link process in VM.
  * minor: Using libedit on unix for a more handy interactive mode.
  * fixed: Items generated in interactive mode may have been randomly ripped
           by the GC.
  * fixed: Calling an item referencing a callable item wasn't working.
  * major: overrides are PREFIXED by __, and not suffixed anymore.
  * fixed: Deserialization of objects didn't dereference the class item;
           classes coming from remote modules would crash.
  * major: Added states in classes. Now "state" is a keyword.
  * minor: Added fileExt() and fileUnit() functions for completeness.
  * fixed: Immediate circular dependencies in inheritance lists caused
           endless loop in VMachine::link
  * fixed: Errors in the expression part of for/in statements may have caused 
           the compiler to lose track of context levels. This caused segfaults
           on some statements nearby those erroneous for/in decls.
  * fixed: for-to construct failed to enter the loop in 0 to 0. Also it didn't
           loop the correct times when starting and ending in negative ranges.
  * fixed: EOF in ReadFile (windows streams) was not always correctly detected.
  * fixed: Read of multi-byte filenames on POSIX systems caused double-utf8 
           encoding.
  * major: Added Continuation class, allowing to suspend & resume arbitrary code.
  * major: Added unbound variables, created with the "_" symbol, as a new 
           "UnboundType" with relative metaclass and item type.
  * fixed: Garbage collection during link steps (i.e. on sub-module main(), and
           in instance initialization) would cause a safe crash, as it would
           destroy the LiveModules that are in the runtime, but not yet linked.
           Pitifully, this fix is useless, as LiveModules are to be removed in
           0.9.6.
  * fixed: __getIndex() accessor was broken if the expression in the accessor
           was a complex expression.
  * fixed: Macros used in per-property reflection was possibly broken under very
           rare conditions.
  * fixed: URI reflection was a mess (and slow); cleaned and simplified.
  * minor: Added function passvp() that can be used to retrieve or pass variable
           parameters.
  * major: Now compare() (vm level) checks for deep equality in arrays and
           dictionaries. The relation [1,2] < [1,3] holds. Circular reference
           prevention during those deep scans is in place too.
  * major: Added the "eq" identity operator, so that 1 eq 1 is true, as a eq a,
           but b = a.clone(); a eq b is false (if a is deep).
  * fixed: falconeer.fal relied on the old(incorrect) behavior of 
           regex.replace
  * fixed: Item compare may not work correctly if applied to ints that were too
           distant (> int32 range).
  * fixed: In falcon command line tool, fixed loading of source files not 
           terminating with .fal, and when forcing execution of fam files via the
           -x options.
  * fixed: indirection didn't work for classes so classnames and enums couldn't be used
  * fixed: fallc was left behind of a version or so.
  * fixed: Error in array generation when small grow sizes are involved in GENA 
           opcode.
  * fixed: Error in array generation when small grow sizes are involved in 
           arrayBuffer() core function.
  * fixed: In ItemArray::append( Item& ) the parameter is passed as a pointer. If
           the array data must be relocate and the item is coming from the array
           itself, the old memory may be gone by the time the final copy is 
           performed. This hit particularly hard with PUSH, which puts data on
           the stack and may get data from local vars and parameters (both in
           the stack).
  
         
Falcon (0.9.4.4)
  * fixed: CoreTables used as sequences in for/in loops didn't mark their 
           Falcon side Table item as owner. This caused crash with some
           GC patterns.
  * fixed: The context stack was lengthened, but not resized, when calling an 
           array. This may have caused direct crashes when calling arrays on 
           brand new stack frames (a rare, but possible situation).
  * fixed: Grammar error on def statement caused crash.
  * added: Object.retrieve and Object.apply BOM methods to extract and apply
           data to objects.
  * major: Added property accessors to classes and objects.
  * fixed: Raising a class in the error hierarchy caused segfault.
  * fixed: Coroutines terminating with a simple return may have killed a
           useful value in the A register of the swapped-in new coroutine.
  * fixed: StringStream didn't reset eof() at seek(0).
  * minor: Better interface and improved features for Tokenizer class.
  * fixed: In tables, Table.insert at bottom didn't work correctly.
  * added: Methods Table.append and Table.set
  * minor: Now tables support [] accessors (accessing a row in current page).
  * added: TableError class for generic errors in table operations.
  * minor: Table.find() now accepts an extra default parameter.
  * fixed: Cleaned and clarified several error messages in table ops.
  * fixed: Under windows, FileStat(".") wasn't working.
           
Falcon (0.9.4.2)
  * fixed: After engine shutdown, some permanent memory object was not
           cleaned (Thanks Klaim).
  * fixed: Added method Array.NM and arrayNM function to declare "never
           methodic" arrays, that is, arrays meant to store data and
           that aren't to be seen as methods even when they are in
           properties.
  * minor: Moved VMachine::lock() (GarbageLock management) from VMachine to
           memPool. This allow easier moving of data across VMs. Should
           require recompilation of just a small subset of embedding
           applications.
  * fixed: VMachine::currentLiveModule() returned a const LiveModule by error.
  * fixed: VMachine::setWKS wasn't properly working on singletons, due to a
           glitch in the code.
  * minor: Added a userItems() vector in LiveModule, that can be used safely
           by extensions and embeddings.
  * fixed: Stream.readLine and Stream.grabLine were not returning the last line
           when it was broken by an EOF.
  * minor: Better return behavior of Stream.readLine: now returns false at EOF
           when it can't read anything.
  * minor: Better return behavior of Stream.grabLine: now it returns an oob(0)
           when hitting EOF after last read; this allows to use it directly
           in comprehensions and for/in loops.
  * minor: Added a "stream" parameter to redirect dump to another stream.
  * fixed: Some operations on buffered streams didn't update correctly the tell()
           indicator.
  * fixed: overloading was not working when returning defaultProperty() in
           synthetic classes.
  * added: Complex class.
  * fixed: Search for file stats (including modules) is now case sensitive on 
           MS-Windows, at least in the last part of the file name.
           
Falcon (0.9.4)
  * fixed: ClassMethod couldn't be used as classes for new instances, and
           any class in a property would have generated a class method when
           accessed.
  * fixed: exit() and other termination requests are honoured in interactive
           compiler.
  * fixed: Re-enabled falconeer and updated falcon skeleton module.
  * added: methods bind(), unbind(), bound() and value() to LateBind metaclass.
  * minor: Removed VMachine::raise*Error functions. This removal has also
           helped to spot many buglests in various modules that consisted in
           calling the old functions, now actually shortcuts for "throw",
           before doing some cleanup.
  * major: VM main loop and context (coroutine) support redesigned.
  * fixed: Some issues in coroutine swapping and spurious wakeups are now solved
           indirectly by the new VMContext system. This also greatly improves
           context switches times.
  * added: Methodic function properties() to determine properties of OOP items.
  * fixed: GC Marking of items stored uniquely as method "self" part was broken.
  * fixed: Methods of methods was not correctly dereferenced into vm->self.
  * major: Added support annotation attributes.
  * major: The CoreArray is now based on an inner element derived from Sequence.
           This makes possible to abstract many operations (but this is not visible
           at language level).
  * major: Added comprehension method to Array and List classes (this can be used
           to create lists from list definitions very similarly to Python, but
           still being more flexible.
  * fixed: Some string methods renamed: 
             String.backFind => String.rfind  (wasn't working anyhow)
             String.backTrim => String.rtrim
             String.frontTrim => String.ftrim
  * added: Functions argv() and argd() returning respectively the vector and the
           dictionary of the received parameters.
  * fixed: Substring primitive wasn't correctly working when switching to 
           international strings.
  * fixed: Better behavior of the interactive compiler, now a bit more resistant
           to user error.
  * fixed: interactive mode didn't work with wide strings and international 
           characters.
  * added: Methodic function describe() that can be used as a reflective inspect()
  * minor: Now using describe() instead of toString() in interactive mode.
  * fixed: Access to static methods in classes was broken.
  * fixed: In ranges, step 0 now represents the "default step"; open range is
           indicated with a special value.
  * minor: Ranged access to membuf now creates membuf slices.
  * minor: Added function arrayCompact and method Array.compact() for finer memory
           usage control.
  * minor: .ptr() for integer dereferenced them; this seems to be unneeded, at
            least in the main engine; now ptr() on integers just returns the
            integer itself.
  * fixed: Representation of memory buffers on big endian machines.
  * fixed: Slowness on Sparc32 bit platform.
  * minor: Performance issue on Big endian platforms.
  * minor: TypeID returned by typeOf and typeId for integer items is now
           NumericType.
  * major: Closures are not anymore transparent (arrays). From the outside, they
           look as functions, but they record the value of local variable.
  * major: A more flexible definition of methods, and a more formal definition of
           call points and call structures allowed to fix some weirdness in the
           resolution of "self" with methodic arrays.
  * fixed: Closures can now refer to symbols in any parent, not just in the topmost
           parent.
  * minor: Closed variables in closures are now always received by reference. This
           allows all the closures created in a function to share and be able to
           modify the same variable environment.
  * minor: Rationalized iterators; as a result, they won't work on Strings and
           MemBuf, for a few releases at least.
  * minor: removed List.erase() and List.insert() (now done via iterators).
  * major: Added comprehension to dictionaries (just as other sequences, but with 
           pair being taken as [key, value] items for addition).
  * major: Now, '*' operator on strings replicates them. Unicode addition is done
           via '%', while '/' adds its argument to the last character of the string,
           so that "a" / 1 => "b"
  * minor: Added Set() VM assisted (sequence) class.
  * major: Added support for generators in for/in sequences.
  * fixed: Fixed error reporting in faldisass.
  * fixed: Fixed error reporting in falrun.
    
Falcon (0.9.2)
  * fixed: using more modern throw instead of the obsolete raise() functions
           in many points.
  * fixed: "find" method in strings was erroneusly named "strFind".
  * minor: Added brigade() ETA function.
  * fixed: Directory class wasn't masked; as a result, using it caused crash.
           As a fix, we removed DirectoryOpen function and allowed Directory
           constructor to work as previously done by DirectoryOpen.
  * added: Directory.descend (it's meant to be a reminder for a complete
           do() framework).
  * fixed: List.first() wasn't returning a fully prepared iterator.
  * fixed: Oob wasn't working properly on immediate strings.
  * fixed: isoob() was returning 0 or 1 instead or false/true.
  * fixed: PostMessage() wasn't forwarding errors to the main VM loop in case
           of asynchronous message posting.
  * fixed: More correct error messages in case of problems loading submodules.
  * added: Method wordSize() to MemBuf metaclass.
  * fixed: Particular errors in class declaration may have caused error detection
           to segfault.
  * fixed: Array back-mark to its table did not deep-mark its data; as a result,
           the table got marked with the current generation and skipped its mark
           processing loop as a standard object. This exposes the need to
           rationalize and simplify the Garbage/mark Object/gcMark interface.
  * fixed: LiveModule::detach() was nilling the original (imported) values
           rather than the local objects.
  * fixed: fself wasn't working in init blocks.
  * fixed: Error class couldn't be inherited from scripts.
  * fixed: For/in loops with negative step exited immediately when start == stop
  * added: Added String.startsWith, String.endsWith, strStartWith(), strEndWith()
  * fixed: Multiline strings in MS-Win text file format sources (CRLF) couldn't
           be correctly parsed.

Falcon (0.9.1.8)
  * fixed: faltest didn't output help text when called with -h/-?
  * fixed: Operator overriding in blessed dictionaries had many issues.
  * fixed: prefix inc/dec operator overriding now returns what is returned
           by the overriding function (formerly, it returned the item itself).
  * fixed: StringStream wasn't respecting stream copy semantic (copy shell,
           respect underlying stream). As a result, it couldn't be used to
           communicate across threads.
  * minor: StringStream is now interlocked; it can be proficiently used as
           an interthread safe raw data exchange device.
  * fixed: Obviating the need for ";" in function declared inside
           dictionaries.
  * minor: Falcon command line doesn't require full module generation to generate
           the debug grammar tree module.
  * major: Now allowing circular references in module loads.
  * fixed: Unpack is now working in every situation (and generally, more
           efficiently).
  * fixed: Didn't set correctly the default .ftt extension for -y options, and
           caused the original file to be overwritten.
  * fixed: Issues on multilanguage and internationalization.
  * minor: Added search path to the engine and to all the items involved into
           compilation. Also, added vmSearchPath() script function to allow
           scripts to get the path as set by the application.
  * fixed: Format wasn't correctly parsing ":0" (zero-length variable length
           integer formatting).
  * fixed: Escapes at the beginning of multiline double-quote strings were lost.
  * fixed: Possible reaping of table pages by an execessive GC usage.

Falcon (0.9.1.6)
  * fixed: In loop statement, continue looped from the top skipping the
           loop condition (if it was present).
  * fixed: Function "any" was STILL returning 0 instead of false.
  * major: Added method ptr() to FBOM and various metaclasses.
  * major: Added explicit character size scaling and c-zation of
           Falcon::Strings.
  * fixed: Repeated assert() may have crashed depending on the stack
           status.
  * fixed: Due to faulty method equality check, method unsubscription
           was failing.
  * minor: Added subscription priority parameter.
  * fixed: getAssert() didn't get the correct default parameter when
           the required slot wasn't found, and VMSlot.getAssert wasn't parsing
           correctly its parameters.
  * fixed: MessageError wasn't exported to the Core module.
  * minor: Added CoreSlot.name() method.
  * fixed: VMSlot wasn't properly setting the user data, so for/in didn't
           know it was a sequence.
  * minor: Added first() and last() methods to VMSlot to allow iterators
           to work.
  * fixed: Detach() sequence was just a draft, and didn't actually free
           app-side data.
  * fixed: Respecting ThreadParams settings in POSIX thread creation.
  * fixed: Dind't correctly generate InterruptedError on VM interruption
           requests.
  * fixed: Function parameters were still hard-limited to 255. Now they
           are limited to uint32 (2^32).
  * fixed: std I/O blocked on Win7 (inheritance rights on DuplicateHandle).
  * fixed: crash in call__ callback for functors.
  * fixed: static initializer in classes didn't use standard definition of
           const_atom.
  * fixed: Secured deserialization on almost-last item.
  * major: Added support for operator overloading in poop, and Dictionary.set()
           /dictSet() to be able to bypass [] overloading if needed.
  * fixed: Interoperability of FAM and serialization across endianity.
  * fixed: Module unloading is now secure.
  * minor: Added readURI and writeURI functions.

Falcon (0.9.1.4)
  * fixed: As now files and modules loads are URIs, and URI decoding was
           strict, modules with international names could not be loaded
           unless the name was previously URI escaped.
  * minor: Now it's possible to prevent parsing (un-escaping) from URI
           constructor.
  * minor: Fixed error failed DLL load error report string in Windows.
  * fixed: Now correctly importing symbols from modules named with
           strings.

Falcon (0.9.1.2)
  * fixed: Correct parsing of octal number (0 and 7 was out...)
  * fixed: Crash with statements == just numbers, and allowing interactive
           compiler to parse non-stand alone expressions and evaluate them.
  * fixed: A leftover from version 0.8.14 caused tables not to properly mark
           their contents on garbage collection.
  * fixed: More flexible int() and numeric() functions (thanks Kless).
  * minor: Added functions vmModuleName, vmModulePath and vmRelativePath to
           help solving dynamic dependencies.
  * fixed: [DANGER]: Fixed missing GC marking of items in frame stacks (mainly
           self and binding registers). This was in since 0.8.0; it was less
           evident because 0.8 had sender which cached the last minus one
           self objects, saving at least the previous caller, and it was
           unlikely that the nth-2 caller wasn't cached somewhere else in the
           VM.
  * fixed: include() was using a cached pointer variable to create the error
           message; the VM stack may have been (usually is) dirtied, so the
           pointer was invalidated. This could have caused random crashes
           and errors in reporting the failing module name.
  * fixed: Finetuned module loader error reporting (now it indicates the module
           whose dependency wasn't found).
  * fixed: Some functional selectors (any & c) still returned 0 on false and 1
           on true.
  * minor: String.merge() now accepts only an array as parameters, and works
           as String.join() does with its parameters.
  * fixed: Const atoms din't include negative numbers (i.e. negative numbers
           couldn't be used in enum declarations).
  * fixed: Reporting a consistent error when aliasing different modules to the
           same namespace.
  * fxied: Now the VM correctly lets imported undefined symbols not being
           part of namespaces to generate a proper error.

Falcon (0.9.1)
  * fixed: String-blocks closed with " alone on a line werent' recognized.
  * fixed: Octal numbers weren't properly scanned.
  * added: Support for binary numbers (0b..., "\B...") and octal with 0c...
           and numeric neuter separator "_".
  * fixed: (possible) race condition in VM destruction and re-creation and GC
           VM marking.
  * fixed: Long existing latent bug in Lists and iterators: if the GC destroyed
           the list, the iterators may still refer to it.
  * fixed: Some latent problem in deep marking of object/classes.
  * major: Now lazy unload of modules on-the-fly is supported (some wip)
  * fixed: Missing rethrow at frame return (errors inside second level
           callItem()).
  * fixed: Error reporting from inner compilations (include etc).
  * fixed: Line number of errors in FTDs.
  * fixed: Stream::readString exchanged a success for an error...
  * fixed: Syntax errors in global statements caused the compiler to crash.
  * fixed: Indirect operator didn't methodize callable properties.
  * fixed: Buffered streams returned an error on EOF instead of 0.
  * fixed: Fixed date "%m" field in to-string.
  * fixed: Small memory leak in compiler re-initialization.
  * fixed: Loading of deep paths (due to 0.9)
  * fixed: Some short-to-wide chars transformation code on buffered strings
           (latent from 0.8).
  * fixed: Path class was working a bit randomly.
  * fixed: FileStat class wasn't correctly caching the mtime member.
  * major: Added detection of statements without effect (or with partial effect)
           at compile time; useful to detect "str1"\n"str2" left from 0.8.x
  * fixed: Errors in "loop" definitions may have caused a segfault.
  * fixed: Seek from current position wasn't working in buffered streams.
  * fixed: Better to always fill the error backtrace, for now.
  * fixed: Ops, totally forgot to add the -L load path in falcon exe.
  * fixed: Re-enabled copy-on-assign on strings; too dangerous without.
  * fixed: As Falcon didn't destroy the VM at end, items where not propery finalized.
  * fixed: Rare crash on static string live module owner marking. This poses a question
           on validity of current marking algorithm for live string (to be checked out).
  * fixed: Stream.readAvaliable() may have reported spurious false positive on UNIces.
  * fixed: Callback frame termination handler was not set if there was just one frame
           the stack.
  * major: It is now possible to launch symbols as coroutines without a FORK opcode.
  * fixed: Since 0.8.0, VMachine::callReturn restored caller exit value in case of
           context termination. This caused spurious wakeups and signal consumptions
           in coroutine semaphores, as the return value of the wait() function must
           be mangled from inside the sleeping context, and may be applied when a
           context dies. As 0.9 uses small coroutines (dying often) to send messages,
           the effect was dramatically visible.

Falcon (0.9)
  * major: Removed "sender" from grammar.
  * fixed: Array bindings was not correctly accounted by the Garbage
           Collector.
  * minor: Methods can now be called directly also on numbers.
  * minor: Removed VMachine::compareItems; using inbound item
           comparators.
  * minor: Fallc now saves in UTF-8 in merge mode.
  * major: Removed "pass" and "pass/in" statements.
  * minor: Removed "itemCopy()" function (changed into clone() methodic FBOM).
  * minor: Renamed FBom method into typeId (type is too useful as property name for users).
  * minor: Revamped and methodized strFront and strBack (String.front()/String.back()).
  * major: Removed attributes.
  * major: Added class VMSlot, broadcast, consume, assert, retract, register and unregister
           message oriented functions.
  * major: Revamped Engine Message and Error system; now, they are centralized in
           eng_messages.h, where new generic messages and errors can be simply added.
  * minor: The engine string table is now expoerted as for any module and can be
           internationalized.
  * fixed: String Copy constructor didn't set export to false.
  * minor: -L option in falcon and falrun excluded automatically the system default path.
  * major: VFS in loading modules implemented.
  * major: Removed the obsolete ErrorHandler mechanism and using C++ exceptions.
  * minor: MemBuf now provides an interface with Java NIO Buffer semantics.
  * minor: Removed factory function FileReadStats(); now the constructor in FileStats()
           does everything.
  * minor: Method FileStat.readStats is renamed as FileStat.read
  * minor: Changed the order of parameters in RTL serialize() function (first the item,
           then the stream).
  * minor: Swapped wildcard and string parameters in strWilcardMatch.
  * minor: Added String.join method.
  * major: Methodized all Item API related functions.
  * minor: Removed now useless functions arrayCopy, arrayFilter and arrayMap.
  * minor: Removed indirect function (call, callMethod, marshal*), as they are now easily
           available through eval() and languge operators.
  * minor: Removed now useless function dictInsert().
  * minor: Added methodic function strFill() / String.fill().
  * minor: Added methodic function arrayFill() / Array.fill().
  * minor: Added methodic function dictFill() / Dictionary.fill().
  * major: Standard streams and local filesystem VFS providers are now
           serving buffered streams.
  * minor: Added getBuffering()/setBuffering() methods to Stream.
  * fixed: Transcoding control (it is now possible to change
           transcoders more than once).
  * minor: Added grab(), grabLine() and grabText() methods to streams. The
           older functions cannot return newly allocated buffers anymore.
  * minor: read/write functions on streams now can take advantage of NIO
           MemBuf interface.
  * fixed: abs() was mapped to fract(!)
  * major: Assignment does not causes strings to be automatically copied
           anymore. Automatic copy is performed on modify (if the string
           is static), and in deep copies of containers. Modify of non-static
           string doesn't cause the strings to be copied (explicit .clone() is
           required). So, a = "...", b = a, b and a will be disconnected
           when one is modified, while a = strMerge(...), b = a, b and a would
           reflect each other changes. This is a bit hybrid, but consequences
           are hardly visible. The point is that if you want a mutable string
           to be different, use an explicit .clone(), and if you want just
           read-only strings use "...".
  * major: New GC support: Added singleton GC with static members usedMem,
           aliveMem, items, th_normal th_active and with static functions
           enable() and perform(), reflecting the new engine wide GC. The
           old functions gcEnable, gcSetThreshold, gcPerform, gcSetTimeout,
           gcGetParams are removed.
  * major: Introduced parametric evaluation, and oob(0/1) now works at
           VMachine::functionalEval() level. Parametric eval is done by
           setting &N where N 1..parmCount() to the nth parameter.
  * minor: Removed xtimes() and empowered times(). Also, times() is now
           methodic for Integers and Ranges. Times passes the loop number
           via parametric evaluation (&1).
  * minor: Added ETA methods upto() and downto() for Integer metaclass.
  * major: Added { param => body } fast nameless function declaration.
  * major: Binary module logical names are resolved adding _fm to the
           searched module name. In example, "load module" searches for
           module_fm.dll. Fam/fal/ftd file resolution is unchanged.
  * major: The loop statement now supports a conditional ending.
           The end keyword of the loop statement block can be followed by
           an expression; the loop terminates when the condition is true
           (same as repeat/until).
  * fixed: Naming two times a closed variable in closures caused the
           parameter resolution order to be messed up.
  * major: Removed 'lambda' keyword. Use {=>} instead.
  * major: Added 'fself' keyword referring to the current symbol being
           executed. Won't work with methods for now.
  * minor: Added 'getProperty' and 'setProperty' methods to deep items
           meta-classes.
  * minor: Added 'name' and 'caller' methods to function metaclass.
  * fixed: Fixed crash when inserting just single constants in interactive
           compiler.
  * major: Removed dot-quoted strings (.")
  * major: Removed automatic joining of adjiacent double quoted string.
           Now, "a" "b" are two separated tokens.
  * minor: Added compiletime parsing of + and * operators on strings. This
           means that it is possible to join strings at compile time via
           "a" + "b"
  * minor: Binary operators can accept an optional EOL after them. A line can
           terminate with a + and the expression can continue on the next
           line without a \ to join them.
  * major: Literal strings now never escape with a \. "\" is always
           considered just a \; to add a single quote in a literal (single
           quoted) string, write a single quote twice ('').
  * major: Multiline strings are now initiated with a single open " or '
           followed by an EOL. They terminate to the matching " or ', and
           the context coninues to the end of the terminator line.
           Double-quoted strings are non-literal, and compress new line and
           leading whitespace characters into a single space, while single
           quoted strings are literal, and insert into the string any space
           and line break in the source. This means that double quoted
           strings can be used to break a long string across multiple lines
           and arbitrarily indented, while single quoted strings define a
           verbatim block.


Falcon (0.8.14)
  * fixed: Now asObject() raises an error if the item is not an object;
           this grant safety for methods that are not considered static.
  * fixed: Pow function (possibly to be deleted) was taking the first
           argument twice.
  * fixed: transcodeTo/transcodeFrom was actually not published correctly
           by the core module.
  * fixed: Expressions in "from" clauses (init expressions) may not resolve
           correctly symbols if the body of the object or class was empty.
           This caused assert and crash if generating expressions with symbols
           during "from" clauses of otherwise bodyless objects and classes.
  * fixed: Relevant warnings in array LDV/range (check order priority).
  * fixed: Relevant warnings symbol table generation (check order priority).
  * fixed: Generating a range from bogus values didn't raise a type error.
  * fixed: Import from module used "=" instead of "as" (leftover).
  * added: Reintroduced for/to grammar, (step now substituted by "," ),
           actually a candy grammar for for/in.
  * added: OOB opcode which manages out of band items.
  * added: OOB operators: ^+ (oob), ^- (deoob), ^? (isoob), ^! (invert oob status)
  * minor: Removed function inspectShort() and secured/empowered inspect().
  * minor: Added parameter defItem to arrayBuffer to "replicate items in arrays".
  * fixed: Range change in arrays was taking one item too much.
  * fixed: Exotic range applications (as substitutions in reverse ranges with
           negative indices) wasn't working as expected. Part of it was due to
           missing or approximative definition, part to plain errors. Now the
           semantic of ranged access is defined and enforced through all the
           operators and RTL functions.
  * minor: VMachine::launch() is now necessary to start executing the main script
           even if launchAtLink() is true at link time. In other words,
           launchAtLink() controls only the execution of the main symbol in the
           non-main scripts.
  * minor: falrun now returns 255 on vm error.


Falcon (0.8.12)
  * major: Support for class-driven full reflection and 0-space contstant/reflected
      classes.
  * major: Changes to FileStat interface:
      - FileStat.type becomes FileStat.ftype
      - FILE_TYPE_* constants are now static properties of FileStat.
  * major: Added support for module dynamic symbol creation on script request.
  * major: Added import [sym1, sym2, ... symN] from Module grammar.
  * fixed: Assigments shouldn't define symbols accessed or called.
  * fixed: continue dropping wasn't working for last elements in dictionaries.
  * minor: Now it is possible to alter static properties by their class name.
  * fixed: Some type error in VM should have been catchable, but was raised hard.
  * fixed: The compiler didn't always add module strings as symbol names.
  * fixed: Broadcast may have broadcast double in case of a single receiver not
            returning true.
  * minor: Added attributeByName function.
  * major: RTL module is removed (merged with core).
  * major: Now main code of modules is always executed. Added vmIsMain() function
           in core to be able to check if the current module is meant as main module
           or not.
  * minor: Added testAttribute() function to test for attributes.
  * major: Added interactive mode to Falcon command line tool.
  * minor: Option -D (set directive) has been moved to -d;
           -D sets compile time constants.
  * major: Macro and Meta compilation added. The escapes \[ and \] perform meta
           compilation, and the macro keyword and \\ escapes are candy grammar
           for macro compilation.
  * major: Added support for late binding.
  * major: Added local/late binding in functional constructs.
  * major: Added dynamic symbol resolution for arrays.
  * bufix: deadlocks at coroutine end when some context was waiting
           endless was not detected.
  * minor: added ETA functions let (assign) and lbind (make late binding).
  * minor: ',' can now be optionally used in .[] decl.
  * fixed: dolist wasn't breaking on oob(nil), but on just false.
  * major: Forward binding implemented. Currently used to resolve
           named parameter function calls.
  * minor: include() function added to Core module allowing dynamic module
           loading directly from base programs.
  * minor: added vmFalconPath() informative function.
  * major: Addition and self addition on strings now forces conversion of the
           target object into a string. I.e. "H" + 1 => "H1". Integer UNICODE
           operations are now delegated to the "*" and "*=" operators. So,
           "Hello" * 32 + "World" => "Hello World" and "H" *= 65 => "HA".
  * fixed: URI.encode() was actually decoding.
  * minor: Introduced xtimes() function which works like times(), but evaluates
           all the items in sequence instead of just running them.
  * major: Added TABULAR PROGRAMMING:
           - Added Item type "TabMethod" to store methods for arrays/tables
           - Self item is now propagated to functions called inside arrays.
           - Table column can now be used as properties of arrays inside the tables.
  * fixed: Assignments to properties and vector didn't propagate the assignand
            value.
  * fixed: Fixed compilation on Darwin.
  * fixed: Fixed missed mark of some deep item during GC (may have caused random
            crashes).
  * major: Added the concept of "blessed dictionary" that is seen as an instance.
  * minor: Much more sensible policy of EOL removal in FTD escapes.
  * minor: Added function valof returning the value of a variable or the return value
           of a callable item.
  * major: Added import aliasing.
  * major: Inheritance initialization parameter can now be any expression.
  * fixed: Disregarding old bytecode .fam files didn't work correctly.
  * minor: Added the eval unary prefix operator, first of cap-special operators: "^*"
           works a bit like eval() function, but much more efficient, expecially in
           the fast path.

Falcon (0.8.10)
  * minor: Now classes can be stored in object properties and called to get
      an instance.
  * bugfix: Indirect operator wasn't peeking the global table after having
      failed in searching the local table.
  * bugfix: When a "module provider" was given to runtime, test for already
      existing modules was always positive.
  * bugfix: fixed ftd line count, export/load directives and reenabled \n
      after a "?>"
  * minor: Added numeric() function to core
  * major: Removed forall and added formiddle which runs after every element
      except the last one (even if "forlast" isn't provided).
  * minor: dirMake() has now an extra parameter; if provided and true, the
      function works as mkdir -p; creates the whole heirarcy, and succeeds
      also if the directory is already present.
  * major: added boolean type. Now, true/false are special compilator tokens
      which generate a boolean item. Every VM check results in a boolean
      item being returned.
  * bugfix: Falcon binary didn't return the VM exit code to the shell.
  * minor: Load now supports ".module" notation to load sibling modules.
  * major: Added import directive for explicit symbol import.
  * bugfix: Fixed deep user data GC marking in methods and classmethods.
  * bugfix: Parameters in FBOM function calls was not removed from stack.
  * minor: It is now possible to call functions stored in classes; class functions
      not referencing "self" can be safely called this way, which makes them "static".
  * bugfix: Timestamp.distance() was returning a random value instead of nil.
  * Minor: Added Path reflexive class to RTL.
  * Minor: Added URI reflexive class to RTL.
  * Major: Added MemBuf type and relative support.
  * Minor: Added functions strToMemBuf and strFromMemBuf in RTL
  * Minor: Added MemBuf support for Stream.read(), Stream.write(), transcodeTo() and transcodeFrom().
  * Minor: Added start parameter to Stream.write()
  * Bugfix: size parameter was not correctly used in Stream.write()
  * Minor: Added internal SharedUserData class which can be used for data shared among many
           objects.
  * Minor: Added inspectShort() function that provides a more compact inspect().
  * Bugfix: Switches couldn't accept negative numbers.
  * Major: Now "=" always assigns, and "==" is used for comparisons.
  * Major: Remove assignment statement(s). All assignments are now expressions.
  * Major: Anonymous function declaration is now an expression.
  * Major: Anything may be place left of an assignment.
  * Major: Removed for/to loop and added a step parameter to ranges. For/in loop on steps
           have now the same functionalities as the old for/to loop. "step" is not anymore
           a reserved word.
  * Major: Now nameless functions and lambda are "closures".
  * Minor: Added statement "innerfunc" creating a non-closure function.
  * Minor: Added "enum" statement which can create a set of constants.
  * Minor: Statement give/to can now give attributes to (or remove them from) a list of
           objects.
  * Minor: Better management of INC/DEC; added INCP/DECP opcodes to allow faster inc/dec.
  * Bugfix: Error.description wasn't correctly reflected.
  * Minor: Added method Error.heading() to access the heading of an error without the stack trace.
  * Major: VM can now be interrupted in compliant waiting operations. ATM, stream and socket
           readAvailable & writeAvailable have been instrumented. Interruption will raise
           an InterruptedError, can be catched and operations can be resumed.
  * Minor: RangeError renamed into AccessError.
  * Major: Added broadcast replies (returning from broadcast with an OOB item).
  * Minor: Added function vmSystemType() to access underlying target compilation system.
  * Minor: Aliased the function paramNumber() to parameter(). The function paramNumber() is
           still available but deprecated.
  * Minor: Added first and last BOM methods.
  * Minor: Added RTL function randomDice
  * Minor: Added Stream.flush method in RTL (ops...)
  * Minor: Added RFC2822 date management.
  * Minor: Fixed unspotted bug in "-c" option for falcon.
  * Major: PCODE version moved to 2.0
  * Major: Added register Latch and Latcher in VM, working for LDP/LDV
  * Minor: Automatically disregarding outdated .fam when trying to load source modules.
  * Minor: Added "times" functional construct (ETA function). It's a kind of functional
		   for/in loop.
  * Minor: Added pluggable support for multithreading locking scheme and atomic operation
           providers (rudimental, but working).
  * Minor: Added directive "version"=number (0x[VVV]VMMmm) and the function vmModuleVersionInfo()
           to store and access script and .fam version informations.
  * Bugfix: fixed traceback corruption in error reporting when uncatching-retrhowing from a
            in-between try-frame.
  * Major: Added support for 0 overhead string internationalization.
  * Major: Binary operators grammar changed. Binary and is now &&, binary or is || and binary xor is ^^;
           Auto assigment stays &=, |= and ^=. Binary not is now ~.
           (This is because we need some of those symbols for other things in the next releases).
  * Bugfix: strFind and strBackFind didn't work correctly and may crash when receiving wrong values.
  * Major: Provided FAL_MODSTR macro (family) to create module specific string tables.

Falcon (0.8.8)
  * bugfix: TRAV opcode may destroy its parameters while setting first loop
      on rare conditions. Fixed.
  * major: VM now has a map of modules and global variables instead of two
      parallel arrays. This allows arbitrary module unlinking.
  * major: Item size is now 16 bytes. This allow space for stepped ranges.
  * major: Added WKS/WKI (Well Known Symbols/Items) system to obviate the need
      to share global items with scripts and create failsafe instances of
      classes.
  * bugfix: Fixed TimeStamp distance algorithm.
  * minor: List initialization is now possible also with non-atomic symbols.
  * bugfix: Precision in printing default flotaing point number was 6; now is
      16 (maximum precision for our number format).
  * minor: Added strWildcardMatch in RTL for simle *.*-like wildcard matching.
  * minor: Added ETA function firstOf() that retruns the first non-false parameter.
  * bugfix: When having more than one context, each stack had a different
      treshold, possibly causing some of the stacks to crash on realloc.
  * bugfix: Path of the offending module was not shown when reporting compiler errors.
  * major: Load directive can now handle dot modules "a.b"
  * bugfix: ModLoader::addSearchPath didn't locally bufferize the path, and this may
            have caused problems with incoming fixed strings.
  * minor: Added fileCopy() function in rtl (file_ext).

Falcon (0.8.6)
  * bugfix: incorrect format of 0.x floating point numbers.
  * major: Completed attribute model.
  * major: Improved functinal support. Added lit() and choice().
  * bugfix: Fixed initial search path for faltest.
  * bugfix: Fixed crash in moduleloader with empty paths.
  * major: Added message oriented programming model.
  * major: Flat VM model implemented.
  * minor: Added round, ceil, floor, fint and abs math functions.
  * minor: Fixed default representation of floating point numbers, and
      recogninzing long integer NAN.
  * minor: int() core function now raises a range error in case the given
      fp number cannot be represented in an int64.
  * minor: loop statement now accepts a statement on the same line for
      candy grammar.
  * minor: added arrayHead function in rtl.
  * minor: strHead, strHeadTrim, strTail, strTailFind have been renamed
      respectively to strFront, strFrontTrim, strBack, strBackFind for
      coherency with nomenclature.
  * major: Added List class with support in for/in and CORE iterator.
  * major: Added support for generic sequence object and deep GC marking.
  * minor: Added addSingleton method to Module class for easier embedding.
  * minor: Added marshallCB* series to dispatch events to handlers in objects.
  * bugfix: fixed self/sender sequence for callable arrays used as methods.
  * bugfix: array and property assignment now copies strings by value.
  * bugfix: One line for/in statement COLON rule caused crash.
  * minor: Changed "<" fast print into ">>".
  * bugfix: In case of callitem() from toplevel, errors were not managed correctly.
  * bugfix: Generic array resize (to smaller size) was wrong, and caused VM stack
            corruption when big arrays and recursions were performed.
  * minor: the "_" prefix for symbols is now used for private usage in classes.
  * bugfix: Lexer didn't recognize unclosed contexts at end of file.
  * major: Added dot-square array declaration, and better management of contexts
           /eol in array/list declarations.
  * major: Added compiler directive support. Now "def" wokrs on directive.

Falcon (0.8.4)
  * major: Old "lambda expressionss" are now "nameless functions". They are declared
    through variable = function(...) ... end  (which was the most common
    pattern for the old usage of lambda expressions
  * major: Lambda expression grammar is much simplified, and they allow only one
    expression as body.
  * major: Added .ftd (falcon template document) file type. It's a outer-escaped
    document (php/asp like) where unescaped literal code and escaped code
    can be seamlessly merged.
  * bugfix: Linear dictionary didn't break search loop in case of VM error.
  * bugfix: VM cleared register A when comparing items. This caused weird
    errors in dictionaries when the objects overloaded compare().
  * bugfix: Fixed try/catch sequences across internal frames
  * improvement: ^^^this also allowed to remove the ugly trypos structure.
  * bugfix: PSIN opcode extracted an unexisting second parameter; in case
    of dirty data that caused an assert.
  * design: Fixed compilation and build settings with MINGW.
  * bugfix: Fixed default load path of faltest.
  * improvement: Added a user data pointer to VM (useful for binary compatibility)
  * minor: Unclosed scoping errors now report where the scope was open.
  * improvement: added min, max, all, any, allp, anyp, map, xmap, filter, reduce,
    iff, cascade functions for minimal functional support.
  * major: callable arrays for deferred calls and functional support.
  * bugfix: AutoCString and AutoWString may convert incrrectly due to sign mismsatch
    in the return value of String::toCString()/String::toWString(). Fixed (and returing
    uint32).
  * minor: Semaphore wait() can now be timed.

Falcon (0.8.3)
  * VM optimizations of about 20-25%
  * VM Stack can now automatically shrink on need
  * Item size reduced to 12 bytes
  * GENR opcode didn't work correctly when operands were float.
  * Added lenght recording to autocstring and autowstring
  * Updated REGEX to PCRE 7.2
  * Added compare() and version() methods for Regex class.
  * in Error, added a method to stringize only the error header.
  * Fixed ROStream destruction sequence.
  * Fixed GetSystemEncoding (caused falcon cmdline to fail recognize default encodings)
  * Added ideographic space to whitespaces and ideographic quotes to string quotes.
  * Fixed some docs.

Falcon (0.8.2)
  * String::toCString now returns immediately if space is too short.
  * String::toWString now returns size of converted string or -1 on error.
  * AutoCString and AutoWString classes were not correctly exported in Windows.
  * Fassert.h didn't compile under MINGW.
  * Now switch on objects working in every case (including compare() overload)
  * Now operators - and -= remove element(s) from arrays and dictionaries
  * More rational and elegant class interface for garbage collection objects.
  * More rational and elegant string classes constructors.
  * Cleaner class interface for module loader search path specification.
  * Added load module and file interface directly from Runtime
  * END opcode now nils the A register of the VM if quitting.
  * randomSeed() in RTL now randomizes on timer if called without parameters.
  * Added VMachine::gcLock()/gcUnlock() to allow simpler registration of callbacks.

Falcon (0.8.1)
  * Fixed bug in VM allocation of temporary vardef that caused
    crash when using special memory allocator.
  * Added option -M to faltest to check for memory leaks
  * Added option -C to falcon to check for memory leaks
  * Removed memory leaks in some VM oprations, in maps, in compiler
    tree destruction, module and symbol destruction and many more.
  * Fixed timestamp method compare() that didn't allow for comparation
    against other types.
  * TimeStamp.toString() created a string too wide by one.
  * Empty loops always generate code. Optimization is to be performed
    by the (still unwritten) optimizer.
  * stdOut() &c now return a system-transcoded stream. To obtain a
    raw stream, use stdOutRaw() etc.
  * Regex.replaceAll() was broken in case of multiple submatches.
  * ProcessHandler last error was not zeroed in creation, causing random
    false negatives (process created ok, but reported error).
  * samples/procLoad.fal updated with correct Error class structure
  * Updated docs.
  * Added BOM serialization and item level cloning.
  * Added cloning support for streams.
  * Added cloning support for timestamps.
  * Items containing objects and classe were not evaluated as true; fixed
  * Added AutoCString and AutoWString class helpers for eaiser conversion
    of falcon items and strings to POD C data.
  * The Falcon::core::sleep function was correctly resolved when the application
    linked against Falcon .so in linux, but when it was loaded indirectly, in
    example, as a cascade load some app's plugin using falcon, it was resolved to the
    system sleep() instead!!!! --- so it has been renamed to Falcon::core::_f_sleep().
  * Fixed VM stack push (GenericVector couldn't push to themselves).
  * Fixed VM context rotation for coroutines managed outside plugins.

Falcon (0.8)

  * Prepared complete Debian packaging and fixed build issues.
  * Starting massive development.

 -- Chr. Giancarlo Niccolai <gc_ /at/ _falconpl.org>  2007-04-08