-
Notifications
You must be signed in to change notification settings - Fork 119
/
HISTORY
executable file
·1207 lines (907 loc) · 34.5 KB
/
HISTORY
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
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Oct. 10 2023
Improved UTF8 input/output via console on Windows
Sep. 18 2023
Improved handling of Unicode quotes
Jul. 21 2022
Fixed an array retrieving bug in the mb_get_vars function, thanks to nurbles for pointing it out
Jul. 9 2022
Added an MB_PRINT_INPUT_PROMPT macro
Added an MB_PRINT_INPUT_CONTENT macro
Fixed a wrong return value of the mb_get_array_len function
Fixed a newline bug of the shell
Jul. 8 2022
Added an mb_get_vars function to retrieve active variables
Added a clear_vars parameter to the mb_reset function
Added an mb_debug_count_stack_frames function to get the stack frame count
Removed a few unused parameters
Jun. 16 2022
Fixed an error purging issue of the interpreter manipulation functions, thanks to iUltimateLP for pointing it out
Jun. 15 2022
Improved warning prompting of duplicate IMPORT
Jun. 14 2022
Added a prev callback for step debugging
Fixed a structrual handling issue with the IMPORT statement, thanks to nurbles for pointing it out
May. 31 2022
Added an interpreter parameter to the print and input handlers
May. 7 2022
Fixed a positive exponent sign parsing bug, thanks to nurbles for pointing it out
Jun. 28 2021
Improved error prompting of assigning to reserved word
Apr. 9 2020
Improved error prompting of incomplete IF structure
Mar. 16 2019
Fixed a memory leak when reassigning an array element with string, thanks to Jacques Diederik for pointing it out
Feb. 2 2019
Fixed some crash and hanging with invalid expression and routine, thanks to siraben for pointing it out
Dec. 31 2018
Fixed a wrong scope processing bug when resetting interpreter
Nov. 10 2018
Fixed a mod by zero bug with real number
Nov. 5 2018
Fixed a crash bug when using an iterator in a conditional expression
Fixed a memory leak with wrong iterator usage
Jul. 30 2018
Fixed a crash bug with incomplete structures
Jul. 25 2018
Fixed a real number formatting bug with different locales
Jul. 14 2018
Fixed a multiple disposing bug with upvalues
May. 13 2018
Added platform dependent macros for Emscripten
May. 9 2018
Fixed a crash bug in invalid conditional expression with class member, thanks to AaBc for pointing it out
Fixed a wrong error with the VAL statement
Apr. 20 2018
Avoided a warning when a C++ compiler refers char to unsigned
Mar. 11 2018
Fixed a string assignment issue with class member
Mar. 9 2018
Fixed a GC bug with ranged FOR loop
Fixed a stepping bug in the IF statement
Jan. 15 2018
Fixed a crash bug with invalid collection index
Fixed a memory leak with invalid invoking
Fixed a wrong invoking of recursive sub routine
Jan. 3 2018
Fixed a parsing bug with unary negative operator
Nov. 28 2017
Fixed a referencing bug with the IF statement
Nov. 25 2017
Fixed a lookup issue with the mb_get_var function
Nov. 17 2017
Fixed an assignment issue with upvalues
Fixed a variable lookup issue with ranged FOR loop
Nov. 16 2017
Fixed a clearing issue of intermediate values in forked scope chain
Nov. 15 2017
Added a checking step for alive objects in all forked environment
Nov. 13 2017
Fixed an extended abort issue
Fixed a crash bug with routine
Fixed a GC bug with outer scopes of lambda
Fixed an accessing issue with upvalues
Nov. 10 2017
Fixed a GC bug with dictionary
Fixed a bug with overlapped lambda scopes
Fixed a bug with lambda lookup
Nov. 8 2017
Renamed the TOSTRING symbol to TO_STRING
Nov. 7 2017
Fixed a bug with single-line nested IF statement
Nov. 5 2017
Fixed a GC bug with upvalues in a closure
Fixed a GC bug with retrieved routine
Fixed a GC bug with routine in a collection
Fixed a crash bug with conflicting routine and class identifier
Fixed a dangling pointer bug with incomplete structures
Fixed a memory leak with wrong routine or class identifier
Fixed a memory leak with incomplete structures
Nov. 1 2017
Added some location parameters to the mb_get_last_error function
Oct. 30 2017
Added support to apply the STR statement to a type value
Fixed a referencing bug with unnamed array
Oct. 29 2017
Fixed a crash bug when access an unnamed array
Oct. 25 2017
Fixed a memory leak with unexpected value
Oct. 24 2017
Fixed a memory leak with dangling value
Oct. 23 2017
Added support to apply the CLONE statement to a referenced usertype
Oct. 22 2017
Renamed the EXIST statement to EXISTS
Oct. 19 2017
Fixed a wrong comparison bug of member names with the REFLECT statement
Oct. 17 2017
Added comparison between string and nil
Fixed a multiple disposing bug with retrieved routine object
Fixed a bug with uncleared parsing context
Oct. 14 2017
Fixed a multiple disposing bug with the PRINT statement
Fixed an error prompting bug with the INPUT statement
Oct. 9 2017
Improved expression evaluation speed
Oct. 5 2017
Fixed an infinity loop bug with error handling, thanks to Saar for pointing it out
Fixed a wrong error locating bug, thanks to Saar for pointing it out
Sep. 22 2017
Added a _SIMPLE_ARG_ERROR macro
Sep. 13 2017
Fixed a referenced usertype cloning issue
Aug. 29 2017
Added a prompting for inputer
Jul. 24 2017
Added an mb_get_var_name function
Jul. 7 2017
Added support to apply the FOR statement to an iterable class instance
Jul. 4 2017
Added function overriding support of the ITERATOR statement
Added support to apply the FOR statement to an iterable referenced usertype
Jul. 3 2017
Fixed a disposing bug with non-referenced array
Jun. 17 2017
Added a customizable identifier alias macro for lambda
Jun. 10 2017
Fixed a processing bug with the ELSE statement, thanks to yukini3 for pointing it out
Avoided warnings with some compilers
Jun. 7 2017
Added an mb_get_routine_type function
Renamed mb_close_forked to mb_join
Jun. 2 2017
Added an mb_keys_of_coll function
May. 24 2017
Fixed a memory leak when applying GC on a forked environment
May. 20 2017
Improved stability by preventing assigning built-in boolean
May. 18 2017
Fixed some memory potential leak when popped unexpected type of argument
May. 17 2017
Fixed a forked environment disposing issue if error occurs
May. 15 2017
Added mb_get_gc_enabled and mb_set_gc_enabled functions
May. 14 2017
Added a clear_parser parameter to the mb_run function
Added an extra end of running checking after stepped
May. 13 2017
Added an MB_ENABLE_FULL_ERROR macro
May. 12 2017
Fixed a wrong multi-line enabled bug when met unexpected token
May. 10 2017
Added an mb_make_usertype_bytes macro
Fixed a crash bug when there's no receiver of a returned string value, thanks to Beyond07 for pointing it out
May. 8 2017
Added fork functions
Added a global alive object checker
May. 7 2017
Fixed a wrong context processing bug when evaluating a routine manually, thanks to Diederik for pointing it out
May. 6 2017
Added a tobe returned parameter to the mb_eval_routine function
May. 3 2017
Added reenterable running
Fixed a multiple disposing bug
Apr. 20 2017
Fixed a referencing bug with collection iteration in a FOR loop
Apr. 8 2017
Renamed the PEEK statement to BACK
Apr. 6 2017
Added multi-line statement support
Apr. 5 2017
Fixed an infinity loop bug with lambda
Fixed a wrong hash bug with pointer, which may cause crash on some 64bit systems
Fixed a source tracing issue with files imported by external import handler
Fixed a memory leak with sub routine
Mar. 29 2017
Added an alive object checker of referenced usertype
Mar. 17 2017
Added storing of different types support for array
Mar. 8 2017
Fixed a processing bug when printing with native routine of a class instance
Feb. 28 2017
Fixed an issue with reference count manipulation of a value
Feb. 25 2017
Added an MBIMPL macro
Fixed some platform dependent macro issues for apple systems
Feb. 22 2017
Improved API by replacing assertions with checking code
Improved function calling of referenced usertype
Feb. 16 2017
Improved meta function
Feb. 14 2017
Fixed a wrong routine unreferencing bug
Feb. 10 2017
Fixed a parameter lookup bug when calling a sub routine
Feb. 8 2017
Fixed a processing bug with the ELSEIF statement
Feb. 3 2017
Added a replacement real number formatting function
Added a replacement function of strtod on the wiki page, thanks to Paul Johnson for providing the code
Jan. 19 2017
Fixed a crash bug with unmatched ENDIF statement, thanks to yukini3 for pointing it out
Jan. 17 2017
Improved the stepped handler
Jan. 7 2017
Added dot symbol accessing of functions for referenced usertype
Dec. 2 2016
Fixed a case sensitive issue with the IMPORT statement (for module), thanks to wwiv for pointing it out
Dec. 23 2016
Added memory allocation failure check to the shell
Dec. 22 2016
Improved shell prompting when removing a non-exist file
Dec. 21 2016
Improved parsing context maintaining
Dec. 20 2016
Narrowed array structure
Narrowed bool_t
Dec. 16 2016
Improved the INPUT statement
Dec. 5 2016
Added a REM statement
Nov. 1 2016
Fixed a file importing bug
Removed the SET_IMPORTING_DIRS statement
Oct. 23 2016
Fixed a percent symbol printing bug, thanks to Philip Bister for pointing it out
Aug. 9 2016
Added function overriding support for class instance
Fixed a multiple disposing bug with GC
Aug. 7 2016
Refactored to return UNKNOWN when trying to access a not exist member in a class instance
Aug. 6 2016
Refactored to return UNKNOWN when trying to access a not exist key in a dictionary
Added reflection accessing ability to the SET statement
Aug. 4 2016
Improved locale processing
Jul. 26 2016
Fixed a multiple disposing bug with class member
Jul. 20 2016
Added a program too long error
Fixed a memory comparison issue
Jul. 19 2016
Added a too many routines error
Added a reference count overflow error
Added a weak reference count overflow error
Jul. 18 2016
Fixed a wrong interpretation bug in the TYPE statement
Jul. 16 2016
Added class format support with the STR statement
Jul. 14 2016
Fixed a boolean operation bug with the NOT statement on real number
Improved boolean operation
Jul. 13 2016
Refactored error prompting
Jul. 12 2016
Fixed some memory issues with GC
Fixed a crash when met invalid lambda arguments
Jul. 11 2016
Added a HASH and COMPARE must come together error
Fixed a meta function missing issue for class
Fixed a source file information missing issue for routine
Fixed a garbage collection issue of outer scope
Fixed a stack tracing issue
Jul. 7 2016
Added function overriding support for referenced usertype
Improved error prompting for collection manipulation
Jul. 6 2016
Fixed a memory leak with the PRINT statement
Fixed a stack memory issue with stack tracing
Jul. 5 2016
Improved error handling
Jun. 30 2016
Fixed a buffer overflow issue when formatting real number with the STR statement
Jun. 29 2016
Added a dynamic buffer helper for temporary string manipulation
Jun. 28 2016
Fixed a type detection bug with string
Refactored formatting functor of a referenced usertype
Jun. 27 2016
Added a context parameter to stepped handler
Jun. 23 2016
Added unary negative meta function overriding support for referenced usertype
Fixed a memory leak with variadic
Jun. 21 2016
Added lambda tracing
Improved error prompting for wrong function reaching
Improved variadic processing with lambda
Improved UTF8 string input/output on Windows for the shell
Fixed a wrong variadic processing issue
Fixed a referenced usertype operation bug
Jun. 17 2016
Improved UTF8 string input/output on Windows
Jun. 15 2016
Added endian determination for object comparison
Improved bytes comparison with different endian
Jun. 14 2016
Fixed some bugs with meta method calling
Jun. 7 2016
Simplified double precision real number redefinition
May. 24 2016
Refactored error raising of string manipulation
May. 20 2016
Added an assertion when buffer overflow in the STR statement
May. 19 2016
Added UTF8 BOM detection even with MB_ENABLE_UNICODE disabled
Fixed a bug in ASC with UTF8 character
May. 17 2016
Fixed an evaluation bug when accessing a collection by brackets
Fixed a memory leak with expression calculation
May. 13 2016
Added an error type
May. 5 2016
Fixed a column counting bug with UTF8
Apr. 29 2016
Fixed a loading bug when importing a UTF8 file
Apr. 26 2016
Added an invalid operation usage error when met an unexpected expression
Apr. 22 2016
Added UTF8 token support
Apr. 19 2016
Fixed an error raising issue with incomplete IF structure
Apr. 18 2016
Fixed an invalid iterator issue with ranged list
Apr. 15 2016
Added some error raising when met incomplete routine or class
Apr. 13 2016
Fixed a negative calculation issue with brackets
Apr. 11 2016
Fixed a calculation issue with the NOT statement
Apr. 5 2016
Added a warning when a "tostring" meta method didn't return a string
Mar. 29 2016
Added a help option to the shell
Mar. 16 2016
Fixed an execution issue after a lambda
Fixed a cannot RETURN bug from a FOR loop in a sub routine
Fixed a memory leak with referenced data in variadic
Mar. 15 2016
Improved error prompting of array manipulation
Mar. 11 2016
Improved error prompting
Mar. 9 2016
Improved overridden function invoking
Fixed a memory leak
Moved overriding information from stack to heap
Mar. 8 2016
Fixed a memory overflow bug with the ASC statement
Mar. 4 2016
Fixed a memory leak with sub routine parameter
Improved inputer
Mar. 2 2016
Added a new YARD sample
Fixed a crash bug when unreferencing a garbage
Fixed a multiple disposing bug when an error occurs in an expression
Mar. 1 2016
Added an OS statement
Fixed a variable pathing bug in lambda
Fixed a class type detection bug with the IS statement
Refactored platform dependent macros
Feb. 29 2016
Added multi-line comment support
Fixed a crash bug with invalid expression
Feb. 26 2016
Added a ME keyword to represent a class instance itself
Added shallow cloning support
Fixed an overridden function copying issue
Fixed a multiple disposing bug with outer scopes of lambda
Feb. 25 2016
Improved importing directory detection
Fixed a bug with the END and RETURN statement with FOR loop
Fixed an array index calculation bug
Fixed a wrong variable manipulation bug with the PRINT statement
Feb. 24 2016
Added a TO_ARRAY statement
Added support to apply the LEN statement to an array assigned from another
Feb. 23 2016
Added an mb_override_value function
Added meta function overriding support for referenced usertype
Feb. 22 2016
Added array cloning support
Added array accessing support of a class instance
Added a RAISE statement to the shell
Fixed an iterator disposing issue caused by referencing a collection weakly
Feb. 19 2016
Added source tracing for sub routine invoking
Added member accessing support following a routine of a class instance
Fixed a lexical object conversion issue
Feb. 18 2016
Added a generic iterator type
Added a SYS statement to the shell
Fixed a wrong list linkage bug with list sorting
Feb. 16 2016
Fixed a bug with the EXIT statement with FOR loop
Feb. 15 2016
Fixed some compile issues with Xcode
Feb. 11 2016
Fixed a bug with the EXIT statement with multiple line IF statement
Feb. 10 2016
Fixed a wrong loop bug with the WHILE and DO statement
Feb. 4 2016
Avoided warnings with some compilers
Fixed a member assignment bug when cloning a class instance
Feb. 3 2016
Added an INDEX_OF statement
Fixed a wrong parameter variable accessing bug
Fixed some memory leaks with collection GC
Fixed a wrong garbage collection bug with members of a class instance
Fixed a wrong dereferencing bug with referenced type hashing and comparison
Fixed an invalid lambda bug with GC
Fixed a memory leak with sub routine when assigning it as an upvalue
Feb. 2 2016
Optimized list sorting function by using merge sorting
Jan. 31 2016
Ignored first frame name with the TRACE command
Jan. 30 2016
Added a TRACE command to the shell
Fixed an infinity loop bug in the mb_debug_get_stack_trace function
Jan. 29 2016
Fixed lookup bugs with member sub routine of a class instance
Fixed a member accessing bug with class instance
Jan. 28 2016
Fixed a routine retrieving bug
Fixed a crash bug when skipping a struct
Jan. 27 2016
Removed the MB_ENABLE_GC macro
Refactored initial reference count
Jan. 26 2016
Added an mb_gc function
Added a SET_IMPORTING_DIRS statement to the shell
Added friendly error prompting when memory overflow
Added source file information to stepped handler
Fixed a wrong argument processing bug with variadic
Fixed a wrong hash bug with string object
Fixed a memory corruption bug with importing directory setting
Optimized cached list accessing
Jan. 25 2016
Fixed a memory leak when printing a referenced usertype
Fixed a bug with nested IF statement
Fixed a bug with the WHILE and DO statement when returning from a sub routine
Fixed an indexing bug with list
Added a new sample script source file
Jan. 23 2016
Added lazy evaluation for ranged list
Jan. 22 2016
Added an IN keyword
Added support to loop on collections by using the FOR/IN statement
Added a "hash" meta method to calculate the hash code of a class instance
Added a "compare" meta method to compare two class instances
Jan. 21 2016
Fixed a referenced usertype comparison bug
Fixed a wrong memory copy bug with the PRINT statement
Added a "tostring" meta method to serialize a class instance
Improved type handling
Jan. 20 2016
Fixed an unknown type handling bug
Jan. 19 2016
Added support to apply the LEN statement to variadic as LEN(...)
Jan. 18 2016
Added a variadic support
Added a NOW statement to the shell
Improved shell implementation code
Jan. 17 2016
Added source file information to error handling
Fixed a memory leak with sub routine which returns a string
Jan. 16 2016
Added a range of integer syntax for the LIST statement, eg. LIST(m TO n)
Added extra importing directories support to shell
Jan. 15 2016
Added a REFLECT statement
Added an MB_ENABLE_USERTYPE_REF macro
Added an MB_ENABLE_ARRAY_REF macro
Fixed some crash bugs with invalid syntax
Fixed some memory leak with invalid syntax
Fixed an invalid GC table iteration bug
Jan. 14 2016
Fixed a collection accessing bug in an assignment statement
Fixed a lambda unreferencing issue
Fixed a lambda evaluation bug with upvalues from meta class
Fixed a routine disposing issue
Fixed a variable assignment bug when it was holding a routine
Fixed a missing assignment bug with class field accessor
Fixed an issue with lambda when a class instance went out of use
Removed support of storing a literal instance in a variable
Simplified variable creation
Jan. 13 2016
Optimized hash table algorithm
Jan. 12 2016
Improved sub routine by unreference objects which were out of scope
Fixed a routine evaluation bug when it's stored in a variable
Fixed a disposing issue with collection iterators
Fixed some memory leak with lambda
Fixed a multiple disposing bug with string expression calculation
Improved GC with outer scopes of lambda
Fixed some other minor bugs with lambda
Fixed a wrong disposing bug when accessing a collection by brackets
Optimized memory occupation with lambda
Jan. 11 2016
Fixed a crash bug when a DO/UNTIL statement is the end of a program
Fixed a memory leak with string manipulation
Jan. 9 2016
Developing lambda, improved error handling
Developing lambda, fixed an issue with only a PRINT statement
Jan. 8 2016
Developing lambda, fixed a lambda scope linkage issue
Developing lambda, fixed an upvalue passing issue
Jan. 7 2016
Developing lambda, added parameter and upvalue processing
Developing lambda, added closure maintenance
Developing lambda, added lambda evaluation
Developing lambda, added lambda unreferencing functions
Jan. 6 2016
Developing lambda, added cloning support
Added support to use TYPE("NUMBER") to represent both integer and real
Improved the IS statement
Jan. 5 2016
Developing lambda, added data structure
Developing lambda, added a LAMBDA statement
Developing lambda, added a _core_lambda function
Developing lambda, added an MB_ENABLE_LAMBDA macro
Jan. 4 2016
Added stack tracing
Added an mb_debug_get_stack_trace function and an MB_ENABLE_STACK_TRACE macro
Added support to duplicate a class instance by a NEW statement with an identifier string
Fixed a string value copy issue in mb_pop_value
Jan. 2 2016
Added support to apply the GET statement to a class instance
Added support to access a collection by brackets
Fixed a wrong scope bug caused by cloned class instance
Fixed a GC issue by adding reference count when cloning a collection or a referenced usertype
Fixed a mistake in the VAR statement
Jan. 1 2016 Version 1.2
Added a new sample script source file
Added case-insensitive type name string comparison support
Fixed an invalid execution point bug when a program begins with a label
Dec. 30 2015
Improved error handling with sub routine and class
Implemented DIR command
Dec. 29 2015
Fixed a multiple disposing bug with expression calculation
Fixed a memory leak with GC caused by meta class
Improved GC with array and string
Improved string duplication
Improved array handling
Improved array manipulation code
Dec. 28 2015
Fixed a GC bug
Fixed a wrong routine evaluation bug
Improved threshold algorithm for the memory pool
Dec. 25 2015
Added support to put a class instance into a variable
Improved error handling with sub routine and class
Fixed an unary calculation issue
Fixed a memory leak in class definition
Dec. 24 2015
Improved defining a class in C
Added a pair of mb_get_class_userdata/mb_set_class_userdata functions
Added a pair of mb_get_userdata/mb_set_userdata functions
Refactored memory layout of the _routine_t struct
Dec. 21 2015
Fixed a class GC bug
Dec. 19 2015
Improved error handling when defining a class in C
Dec. 18 2015
Avoided compiling issues
Improved compatibility with Arduino
Dec. 17 2015
Added support to evaluate a sub routine by an accessor in a PRINT statement
Added support to get a value by an accessor in a PRINT statement
Fixed a method invoking issue when met from meta class
Dec. 15 2015
Added a pair of mb_begin_class/mb_end_class functions
Added an mb_get_value_by_name function
Added an mb_add_var function
Added an mb_set_routine function
Added native sub routine support
Dec. 13 2015
Avoided warnings
Dec. 11 2015
Added an IS statement to detect type equality of a value
Added support to store a routine in a variable by the CALL statement
Added GC accessing to fields of a class instance
Fixed a memory leak with GC caused by reference cycle
Finished internal class development
Dec. 10 2015
Developing class, added a NEW statement to duplicate a class instance
Dec. 9 2015
Developing class, added accessing by identifier
Developing class, added a VAR statement to declare a member variable
Developing class, added routine evaluation in a class
Developing class, added reference count for class
Fixed a crash bug when exiting with parsing error
Fixed a multiple disposing bug when doing GC
Dec. 8 2015
Developing class, added reference struct, added meta class linking
Improved stability for sub routine
Dec. 7 2015
Improved TICKS function
Initialized random number seed on start up
Dec. 4 2015
Updated icon
Added structures for class development
Nov. 30 2015
Improved stability for sub routine
Improved error handling with shell
Nov. 26 2015
Raised error for invalid routine usage
Fixed a memory corruption bug when met an invalid routine usage
Nov. 4 2015
Added an mb_raise_error function
Nov. 3 2015
Fixed a memory leak with string manipulation
Oct. 31 2015
Added some mb_value_t initialization helper macros
Oct. 29 2015
Added an mb_get_ref_value function
Improved mb_set_coll
Oct. 28 2015
Added module (namespace) support
Oct. 27 2015
Added an mb_set_import_handler function
Added an mb_init_coll function
Fixed a collection referencing by iterator bug during GC
Fixed an argument detection issue with nil value
Improved stability
Oct. 23 2015
Added public collection manipulation interfaces: mb_get_coll, mb_set_coll, mb_remove_coll, mb_count_coll
Improved usertype by adding size customizable mb_val_bytes_t to the value union
Improved referenced usertype
Fixed a dictionary iterator validation bug
Fixed a wrong identifier parsing bug, thanks to Julien for pointing it out
Added threshold to the memory pool
Oct. 22 2015
Fixed a memory issue in GC, thanks to John and Cybermonkey342 for pointing it out
Oct. 21 2015
Fixed a reference count manipulation bug
Fixed some uninitialized value issues
Oct. 20 2015
Added a SRND statement
Added range support for the RND statement
Fixed a wrong processing bug when return in an IF statement chunk
Fixed a scope manipulation bug when evaluating a none parameter routine, thanks to Cybermonkey342 and John for pointing it out
Improved error handling
Oct. 19 2015
Added a sub routine invoking function
Added an mb_get_routine function
Added an mb_eval_routine function
Renamed old mb_ref_value to mb_make_ref_value
Added a new mb_ref_value function
Added an mb_unref_value function
Oct. 15 2015
Added referenced usertype support
Oct. 14 2015
Added GC (Garbage Collection) for referenced objects
Oct. 13 2015
Changed array to referenced type
Fixed a memory pool sorting issue
Oct. 12 2015
Avoided cycle importing
Improved memory pool
Oct. 11 2015
Added a CLONE statement/function for collections
Optimized list indexing
Optimized list counting
Oct. 10 2015
Improved stability for nested IF statement
Oct. 8 2015
Fixed an iterator validation bug
Fixed an iterator assignment issue
Improved stability, refused nested array inside other collections, and vice versa
Oct. 7 2015
Added non number data comparison
Improved collection stability
Accepted dictionary iterator for the VAL statement
Oct. 5 2015
Added a LIST collection
Added a DICT collection
Added a TYPE statement
Added an mb_get_type_string function
Fixed a wrong evaluation bug in nested IF statement, thanks to Julien Krief for pointing it out
Sep. 30 2015
Improved UTF8 string manipulation
Sep. 29 2015
Added UTF8 support for string manipulation
Sep. 28 2015
Fixed a compatibility bug with scope meta info, thanks to Cybermonkey342 and John for pointing it out
Improved compatibility with TCC
Sep. 24 2015
Fixed bugs in a recursive sub routine, thanks to John for pointing it out
Fixed identifier lookup bugs
Fixed a memory leak when pushing string arguments
Sep. 22 2015
Added an IMPORT statement
Added mb_get_var, mb_get_var_value and mb_set_var_value
Sep. 21 2015
Implemented tail recursion optimization in sub routine
Added array length gain in LEN function
Fixed a crash bug when returning nothing in a sub routine
Sep. 20 2015
Added array manipulation ability to script, it's able to assign an array to a variable or use it as a scripting interface argument
Added recursive sub routine support
Fixed a wrong argument detection bug in mb_has_arg
Sep. 18 2015
Fixed a real number parsing bug, thanks to Cybermonkey342 for pointing it out
Added directly expression evaluation shell command
Sep. 17 2015
Allowed string in a boolean expression
Added support for sub routine in PRINT
Fixed a repeated disposing bug when using sub routine
Sep. 16 2015
Added Nil type handling, including assignment, boolean operation, serialization, etc.
Added an MB_CONVERT_TO_INT_LEVEL macro, would convert real to integer as much as possible if this macro was enabled
Sep. 11 2015
Added a duplicate sub routine error handling
Added optional argument support for the INPUT statement
Fixed a repeated disposing bug of a variable in sub routine
Sep. 8 2015
Fixed a type parsing of sub routine bug
Fixed a scope processing bug
Fixed a sub routine invoking bug without leading CALL statement or result receiver
Added a makefile
Sep. 6 2015
Improved sub routine
Sep. 2 2015
Added sub routine type insurance
Prompted more friendly dummy function message
Sep. 1 2015
Added support for user customized sub routine by DEF/ENDDEF
Aug. 26 2015
Added a memory pool to interpreter shell in main.c
Aug. 25 2015
Allowed a user to define the memory tag data type, unsigned short as default
Added an mb_set_memory_manager function, allows user defined memory management
Added referencable data type size constants