1 Star 0 Fork 2

jjzhang166/my-basic

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
HISTORY 33.25 KB
一键复制 编辑 原始数据 按行查看 历史
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167
Apr. 9 2020
Improved incomplete IF structure error prompting
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
Aug. 11 2015
Fixed a wrong IF trunk processing bug, thanks to irony for pointing it out
Fixed a crash bug with invalid IF statement
Jul. 27 2015
Fixed a memory leak with mb_pop_xxx, thanks to Daniel Haensse for pointing it out
Jul. 20 2015
Fixed a string manipulation bug
Jul. 12 2015
Added array manipulation functions
Jun. 19 2015
Added an mb_schedule_suspend interface to schedule to suspend the execution
Jun. 15 2015
Fixed a wrong token position marking issue with interactive mode, thanks to Daniel Haensse for pointing it out
May. 6 2015
Removed redundant EOS tokens
Improved data precision related macros
May. 5 2015
Added string type support for non-simple array
Fixed a memory leak when storing strings to a non-string array
Improved data precision related macros
Apr. 27 2015
Added code line inserting/removing to interpreter shell
Changed mb_dispose_value as public
Apr. 23 2015 Version 1.1
Added debug API
Added (nestable) multiple line IF statement support
Apr. 15 2015
Added mb_pop_usertype, mb_push_usertype to support user defined type
Apr. 13 2015
Added mixed integer/real array support
Added warning prompt when passing strings to maths functions
Fixed a memory leak when storing strings in an array
Improved the interpreter commands
Apr. 11 2015
Moved struct mb_interpreter_t from my_basic.h to my_basic.c
Added an mb_has_arg interface to tell whether there is any more argument
Added an MB_ENABLE_SOURCE_TRACE macro to enable or disable source tracing
Disposed parsing context at runtime to reduce memory occupation
Apr. 10 2015
Improved compatibility with PellesC
Fixed a double precision real parsing bug on all 32bit systems, thanks to Pito for pointing it out
Fixed an exponential number parsing bug, thanks to Pito for pointing it out
Fixed a crash bug when a script begins with meaningless negtive number
Mar. 25 2015
Changed _strupr macro to mb_strupr function
Added an mb_memdup function
Fixed a repeated disposing bug of an intermediate value
Dec. 17 2014
Fixed a calculation crash bug
Fixed a memory leak with intermediate value
Dec. 16 2014
Fixed a negative calculation bug in a function argument
Dec. 9 2014
Improved compatibility with BCB
May. 25 2014
Added an mb_set_inputer function which allows a user to specify an INPUT reader, thanks to Michael P. Welch for suggestion
Added an mb_remove_reserved_func function which allows a user to disable/remove a reserved statement
May. 22 2014
Fixed a crash bug when missing colon in a combined line, thanks to Michael P. Welch for pointing it out
Fixed a missing lexical cursor stepping bug in the INPUT statement
Mar. 17 2014
Added an Xcode project
Added a safe stdin reader function mb_gets
Fixed a crash bug in the INPUT statement
Feb. 17 2014
Added mod by zero processing
Feb. 16 2014
Fixed a crash bug in _core_for, thanks to mummylauncher for pointing it out
Jul. 19 2013
Fixed a crash bug in _execute_statement, thanks to Jon Mayo for pointing it out
Feb. 25 2013
Fixed a cross routine multiple statement execution bug, thanks to Bruce Kendall for pointing it out
Fixed a memory corruption bug when loading a script file
Jan. 9 2013
Fixed a crash bug when using EDIT command
Dec. 14 2012
Added an invalid expression error handling
Added an out of memory error handling
Dec. 5 2012
Fixed a minus calculation bug, thanks to Bill Walker for pointing it out
Nov. 14 2012
Fixed a cross routine RETURN bug, thanks to Bruce Kendall for pointing it out
Sep. 12 2012
Fixed a bug in ASC
Fixed a label parsing, jumping bug, thanks to Ahmad Hawwash for pointing above two issues out
Fixed a crash bug in the IF statement
Added divide by zero processing
Added calculation error raising
Sep. 1 2012
Fixed a redisposing bug when retrieving a string argument, thanks to Ahmad Hawwash for pointing it out
Fixed a memory leak after retrieving a composited string argument
Aug. 29 2012
Modified an odd string comparison behavior, thanks to Matthias Nott for testing it out
Added a warning system, disabled warning as default
Improved compatibility with GCC
Aug. 3 2012
Implemented memory occupation statistics
Improved compatibility on 64bit systems
Avoided some warnings under a stricter mode
Jul. 21 2012
Added a compatibility macro for PRINT a newline
Added an mb_attempt_func_end C API
Fixed a unary minus symbol parsing bug
Jul. 19 2012
Fixed a crash bug caused by a mistake in calculation priority table, thanks to Bruce Kendall for pointing it out
Jul. 10 2012
Implemented KILL command
Fixed a negative calculation bug
Added an invalid identifier usage error handling
Avoided some warnings on gcc
Jul. 5 2012
Implemented LIST, EDIT, LOAD, SAVE commands
Jul. 4 2012
Fixed some crash bugs
Fixed some memory leaks
Jul. 3 2012
Modified/added math functions: FLOOR, CEIL, FIX
Fixed an INPUT type issue
Changed real number formatting from using "%f" to "%g" in PRINT, thanks to Bruce Kendall for pointing above three issues out
Refactored the way to load a script file
Done several small improvements
Jun. 29 2012
Fixed a newline mistake in PRINT
Jun. 29 2012
Implemented customizable print functor
Improved the PRINT statement
Fixed an infinity loop bug in RND function
Fixed some crash bugs
Jun. 28 2012
Fixed a cross routine RETURN bug, thanks to Bruce Kendall for pointing it out
Fixed some memory leaks
Refactored error position informing
Jun. 18 2012
Implemented user extended abort, thanks to Bruce Kendall for giving suggestion
Apr. 30 2012
Compress number to integer if necessary
Apr. 27 2012
Fixed a string connecting crash bug, thanks to Ahmad Hawwash for pointing it out
Improved portability on gcc
Aug. 3 2011
Fixed hashtable removing bug
Jun. 18 2011
Fixed some mistakes
Allowed underline character appear in an identifier
Apr. 15 2011
Fixed garbage collection and _label_t disposing bugs
Apr. 14 2011
Fixed some list/comparison operator bugs
Feb. 15 2011
Improved portability with Xcode
Improved portability with VC++ 6.0
Fixed a suspend/resume bug
Feb. 9 2011
Fixed struct mb_interpreter_t declaration warnings on gcc
Feb. 1 2011 Version 1.0
First release.
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C/C++
1
https://gitee.com/jjzhang166/my-basic.git
git@gitee.com:jjzhang166/my-basic.git
jjzhang166
my-basic
my-basic
master

搜索帮助