Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Fixed bug of long strings in binary chunks | Roberto Ierusalimschy | 2020-08-18 | 1 | -0/+3 |
| | | | | | | | When "undumping" a long string, the function 'loadVector' can call the reader function, which can run the garbage collector, which can collect the string being read. So, the string must be anchored during the call to 'loadVector'. | ||||
* | Fixed detail in 'loadUpvalues' | Roberto Ierusalimschy | 2020-06-30 | 1 | -1/+8 |
| | | | | | | | | | In 'lundump.c', when loading the upvalues of a function, there can be a read error if the chunk is truncated. In that case, the creation of the error message can trigger an emergency collection while the prototype is still anchored. So, the prototype must be GC consistent before loading the upvales, which implies that it the 'name' fields must be filled with NULL before the reading. | ||||
* | Detailsv5.4.0 | Roberto Ierusalimschy | 2020-06-18 | 1 | -2/+2 |
| | | | | Added as incompatibility, in the manual, the extra return of 'io.lines'. | ||||
* | Fixed missing GC barriers in compiler and undump | Roberto Ierusalimschy | 2020-06-16 | 1 | -14/+19 |
| | | | | | While building a new prototype, the GC needs barriers for every object (strings and nested prototypes) that is attached to the new prototype. | ||||
* | Back to old encoding of versions in binary files | Roberto Ierusalimschy | 2020-05-06 | 1 | -1/+1 |
| | | | | | | (Undoing part of commit f53eabeed8.) It is better to keep this encoding stable, so that all Lua versions can read at least the version of a binary file. | ||||
* | Code style in 'ldump'/'lundump'. | Roberto Ierusalimschy | 2020-02-27 | 1 | -73/+73 |
| | | | | | - function names start with lower case; - state is always the first parameter. | ||||
* | Clearer distinction between types and tags | Roberto Ierusalimschy | 2020-01-31 | 1 | -7/+7 |
| | | | | | LUA_T* represents only types; tags (types + Variants) are represented by LUA_V* constants. | ||||
* | Changed internal representation of booleans | Roberto Ierusalimschy | 2020-01-06 | 1 | -2/+5 |
| | | | | | | | Instead of an explicit value (field 'b'), true and false use different tag variants. This avoids reading an extra field and results in more direct code. (Most code that uses booleans needs to distinguish between true and false anyway.) | ||||
* | First implementation of constant propagation | Roberto Ierusalimschy | 2019-07-12 | 1 | -3/+2 |
| | | | | | Local constant variables initialized with compile-time constants are optimized away from the code. | ||||
* | New implementation for constants | Roberto Ierusalimschy | 2019-07-09 | 1 | -0/+1 |
| | | | | | | | | | VLOCAL expressions keep a reference to their corresponding 'Vardesc', and 'Upvaldesc' (for upvalues) has a field 'ro' (read-only). So, it is easier to check whether a variable is read-only. The decoupling in VLOCAL between 'vidx' ('Vardesc' index) and 'sidx' (stack index) should also help the forthcoming implementation of compile-time constant propagation. | ||||
* | 'require' returns where module was found | Roberto Ierusalimschy | 2019-04-17 | 1 | -2/+2 |
| | | | | | The function 'require' returns the *loader data* as a second result. For file searchers, this data is the path where they found the module. | ||||
* | Small changes in the header of binary files | Roberto Ierusalimschy | 2019-03-19 | 1 | -15/+23 |
| | | | | | | | | | - LUAC_VERSION is equal to LUA_VERSION_NUM, and it is stored as an int. - 'sizeof(int)' and 'sizeof(size_t)' removed from the header, as the binary format does not depend on these sizes. (It uses its own serialization for unsigned integer values.) | ||||
* | Removed extra information from RCS keyword strings | Roberto Ierusalimschy | 2018-08-23 | 1 | -1/+1 |
| | | | | | Version numbers and dates (mostly wrong) from RCS keyword strings removed from all source files; only the file name are kept. | ||||
* | avoid craches when loading tampered code with NULL as a string constant | Roberto Ierusalimschy | 2018-06-01 | 1 | -6/+20 |
| | |||||
* | using explicit tests for allocation overflow whenever possible | Roberto Ierusalimschy | 2017-12-07 | 1 | -8/+8 |
| | |||||
* | detail (identation of switch) | Roberto Ierusalimschy | 2017-11-28 | 1 | -19/+18 |
| | |||||
* | new type 'StackValue' for stack elements | Roberto Ierusalimschy | 2017-06-29 | 1 | -2/+2 |
| | | | | (we may want to put extra info there in the future) | ||||
* | dumping ints and size_ts compacted | Roberto Ierusalimschy | 2017-06-27 | 1 | -9/+17 |
| | |||||
* | 'lineinfo' in prototypes saved as differences instead of absolute | Roberto Ierusalimschy | 2017-06-27 | 1 | -2/+9 |
| | | | | | | values, so that the array can use bytes instead of ints, reducing its size. (A new array 'abslineinfo' is used when line differences do not fit in a byte.) | ||||
* | macro 'incr_top' replaced by function 'luaD_inctop'. (It is not used | Roberto Ierusalimschy | 2015-11-02 | 1 | -2/+2 |
| | | | | in critical time pathes, can save a few bytes without the macro) | ||||
* | macros 'getaddrstr' and 'getstr' unified (they do the same thing) | Roberto Ierusalimschy | 2015-09-17 | 1 | -2/+2 |
| | |||||
* | long strings are created directly in final position when possible | Roberto Ierusalimschy | 2015-09-08 | 1 | -9/+11 |
| | | | | | (instead of using an auxiliar buffer to first create the string and then allocate the final string and copy result there) | ||||
* | added include for 'lprefix.h', for stuff that must be added before | Roberto Ierusalimschy | 2014-11-02 | 1 | -3/+6 |
| | | | | any other header file | ||||
* | more precision between closure types ('LClosure' x 'CClosure') | Roberto Ierusalimschy | 2014-06-19 | 1 | -8/+8 |
| | |||||
* | allows different 'source' for each prototype, but inherits it from | Roberto Ierusalimschy | 2014-06-18 | 1 | -11/+17 |
| | | | | | parent when they are equal (only possible case for chunks created by the parser) | ||||
* | source for all prototypes must be equal in a chunk; no need to store | Roberto Ierusalimschy | 2014-06-18 | 1 | -2/+4 |
| | | | | each one separated | ||||
* | 'setnvalue' -> 'setfltvalue' (for consitency with 'fltvalue') | Roberto Ierusalimschy | 2014-04-29 | 1 | -2/+2 |
| | |||||
* | some details to avoid warnings | Roberto Ierusalimschy | 2014-04-01 | 1 | -2/+2 |
| | |||||
* | missplelling in comments/function names (endianess -> endianness) | Roberto Ierusalimschy | 2014-03-27 | 1 | -3/+3 |
| | |||||
* | make all dumps/loads go trhough Load/DumpVector (so it is easier | Roberto Ierusalimschy | 2014-03-11 | 1 | -4/+10 |
| | | | | to adapt the code to correct endianess, if needed) | ||||
* | keep chunk's headers compatible at least up to LUAC_VERSION (to be | Roberto Ierusalimschy | 2014-03-11 | 1 | -7/+8 |
| | | | | able to detect correctly version mismatches) | ||||
* | no need to avoid negative ints in 'LoadInt' | Roberto Ierusalimschy | 2014-03-10 | 1 | -3/+1 |
| | |||||
* | "indent -kr -i2 -br -brf -nut" plus a few manual formating | Roberto Ierusalimschy | 2014-03-10 | 1 | -207/+222 |
| | |||||
* | no need to store a full 'size_t' fo the size of (frequent) small strings | Roberto Ierusalimschy | 2014-03-01 | 1 | -5/+5 |
| | |||||
* | more regularity with vectors + sizeof computed by the macros themselves | Roberto Ierusalimschy | 2014-02-28 | 1 | -8/+7 |
| | |||||
* | all chars used in binary dumps are unsigned ('lu_byte') | Roberto Ierusalimschy | 2014-02-28 | 1 | -6/+5 |
| | |||||
* | store number of upvalues of main function in front of the dump, | Roberto Ierusalimschy | 2014-02-27 | 1 | -9/+3 |
| | | | | so that undump can create initial closure before reading its prototype | ||||
* | more explicit handling of headers for binary chunks | Roberto Ierusalimschy | 2014-02-27 | 1 | -45/+29 |
| | |||||
* | no more local collection | Roberto Ierusalimschy | 2014-02-13 | 1 | -2/+1 |
| | |||||
* | added 'local' bit (true => object is only refered by local variables) | Roberto Ierusalimschy | 2013-08-16 | 1 | -2/+5 |
| | |||||
* | dumping and undumping integers | Roberto Ierusalimschy | 2013-04-26 | 1 | -3/+13 |
| | |||||
* | no more 'Proto' objects on the stack. Protos are anchored on outer | Roberto Ierusalimschy | 2012-05-08 | 1 | -11/+24 |
| | | | | Protos or on a Closure, which must be created before the Proto. | ||||
* | error function can be 'l_noret' | Roberto Ierusalimschy | 2012-03-19 | 1 | -2/+2 |
| | |||||
* | "default: lua_assert(0)" in switches helps debugging + uses | Roberto Ierusalimschy | 2012-01-23 | 1 | -1/+2 |
| | | | | non-variant types in binary files | ||||
* | avoid a few warnings (casts) | Roberto Ierusalimschy | 2011-12-07 | 1 | -3/+3 |
| | |||||
* | details | Roberto Ierusalimschy | 2011-11-24 | 1 | -2/+2 |
| | |||||
* | changes by lhf (better control of chars x bytes) | Roberto Ierusalimschy | 2011-05-17 | 1 | -21/+41 |
| | |||||
* | no need of lookahead in Zio | Roberto Ierusalimschy | 2011-02-23 | 1 | -3/+3 |
| | |||||
* | trying to avoid assumption that sizeof(char)==1 | Roberto Ierusalimschy | 2011-02-07 | 1 | -3/+3 |
| | |||||
* | version from lhf | Roberto Ierusalimschy | 2010-10-25 | 1 | -26/+14 |
| |