aboutsummaryrefslogtreecommitdiff
path: root/lgc.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Detail (debugging aid)Roberto Ierusalimschy2025-01-061-4/+4
| | | | | When compiling with option HARDMEMTESTS, every creation of a new key in a table forces an emergency GC.
* Some changes in default GC parametersRoberto Ierusalimschy2024-10-231-5/+5
|
* 'objsize' broke in smaller piecesRoberto Ierusalimschy2024-09-301-4/+11
|
* GC back to controling pace counting bytesRoberto Ierusalimschy2024-09-191-15/+19
| | | | Memory is the resource we want to save. Still to be reviewed again.
* Added gcc option '-Wconversion'Roberto Ierusalimschy2024-07-271-2/+2
| | | | | No warnings for standard numerical types. Still pending alternative numerical types.
* Cleaning of llimits.hRoberto Ierusalimschy2024-06-201-0/+8
| | | | | | Several definitions that don't need to be "global" (that is, that concerns only specific parts of the code) moved out of llimits.h, to more appropriate places.
* DetailsRoberto Ierusalimschy2024-05-081-1/+1
| | | | | Corrections in comments and manual. Added note in the manual about local variables in the REPL.
* A few more tweaks in the garbage collectorRoberto Ierusalimschy2024-01-101-1/+1
|
* Several tweaks in the garbage collectorRoberto Ierusalimschy2023-12-271-2/+2
| | | | | | - back with step size in collectgarbage("step") - adjustments in defaults for some GC parameters - adjustments in 'luaO_codeparam'
* New option "setparms" for 'collectgarbage'Roberto Ierusalimschy2023-12-221-1/+2
| | | | | | The generational mode also uses the parameters for the incremental mode in its major collections, so it should be easy to change those parameters without having to change the GC mode.
* GC parameters encoded as floating-point bytesRoberto Ierusalimschy2023-12-201-16/+4
| | | | | This encoding brings more precision and a larger range for these parameters.
* Option 0 for step multiplier makes GC non-incrementalRoberto Ierusalimschy2023-12-201-5/+7
|
* First criteria for shifts minor<->majorRoberto Ierusalimschy2023-12-071-22/+26
|
* Removed macro 'changeage'Roberto Ierusalimschy2023-12-011-2/+0
| | | | | It is simpler to use always 'setage'. The saving from 'changeage' is too irrelevant.
* Comments detailing the ages for generational GCRoberto Ierusalimschy2023-11-291-3/+41
| | | | Plus other comments and small details.
* Merge branch 'master' into nextversionRoberto Ierusalimschy2022-12-151-8/+9
|\
| * Small change in barrier macrosRoberto Ierusalimschy2022-12-151-8/+9
| | | | | | | | Reuse macros for objects when defining the macros for values.
* | Changed signal of GC debtRoberto Ierusalimschy2022-12-131-2/+2
| | | | | | | | Positive debts seems more natural then negative ones.
* | Revamp of GC parametersRoberto Ierusalimschy2022-12-131-10/+34
| | | | | | | | | | More uniformity when handling GC parameters + avoid divisions by 100 when applying them.
* | Simpler control for major collectionsRoberto Ierusalimschy2022-11-291-8/+0
| |
* | First version of GC counting objects for controlRoberto Ierusalimschy2022-11-231-3/+3
|/ | | | Still needs to review generational mode.
* Threads are created like other objectsRoberto Ierusalimschy2022-11-011-0/+2
| | | | | Using a version of 'luaC_newobj' that allows offsets (extra space before the object itself).
* Bug: finalizer calling exit can corrupt finalization orderRoberto Ierusalimschy2021-12-221-0/+1
| | | | | 'os.exit' can call lua_close again, separating new finalizers created after all previous finalizers were already separated.
* Bug: GC is not reentrantRoberto Ierusalimschy2021-12-131-0/+9
| | | | As the GC is not reentrant, finalizers should not be able to invoke it.
* Small changes in macros that change GC colorsRoberto Ierusalimschy2020-08-131-11/+12
| | | | | | | | | | | | | - Macro 'gray2black' was renamed 'nw2black' (Non-White to black), as it was already being used on objects that could be already black. - Macros 'white2gray' and 'black2gray' were unified in 'set2gray'; no reason to have two macros when one will do and, again, 'black2gray' was already being used on objects that could be already gray. Moreover, macros 'maskcolors' and 'maskgcbits' were negated to have ones in the described bits, instead of zeros. (This naming seems more intuitive.)
* Better tests for gray listsRoberto Ierusalimschy2020-08-071-1/+4
| | | | | Test uses an extra bit in 'marked' to mark all elements in gray lists and then check against elements colored gray.
* Free bit 7 of GC 'marked' fieldRoberto Ierusalimschy2020-08-071-2/+1
| | | | | | | | Tables were using this bit to indicate their array sizes were real ('isrealasize'), but this bit can be useful for tests. Instead, they can use bit 7 of their 'flag' field for that purpose. (There are only six fast-access metamethods.) This 'flag' field only exists in tables, so this use does not affect other types.
* Avoid the creation of too many strings in 'package'Roberto Ierusalimschy2019-05-031-1/+1
| | | | | | | | | Both when setting a path and searching for a file ('searchpath'), this commit reduces the number of intermediate strings created in Lua. (For setting a path the change is not relevant, because this is done only twice when loading the module. Anyway, it is a nice example of how to use auxlib buffers to manipulate strings in the C API.)
* After a "bad collections", avoid switching back back to generationalRoberto Ierusalimschy2019-01-301-1/+8
| | | | | | | After a major bad collection (one that collects too few objects), next collection will be major again. In that case, avoid switching back to generational mode (as it will have to switch again to incremental to do next major collection).
* Removed internal cache for closuresRoberto Ierusalimschy2018-11-011-4/+0
| | | | | | | | | | | | | | | | | | | The mechanism of "caching the last closure created for a prototype to try to reuse it the next time a closure for that prototype is created" was removed. There are several reasons: - It is hard to find a natural example where this cache has a measurable impact on performance. - Programmers already perceive closure creation as something slow, so they tend to avoid it inside hot paths. (Any case where the cache could reuse a closure can be rewritten predefining the closure in some variable and using that variable.) - The implementation was somewhat complex, due to a bad interaction with the generational collector. (Typically, new closures are new, while prototypes are old. So, the cache breaks the invariant that old objects should not point to new ones.)
* Removed extra information from RCS keyword stringsRoberto Ierusalimschy2018-08-231-1/+1
| | | | | Version numbers and dates (mostly wrong) from RCS keyword strings removed from all source files; only the file name are kept.
* no more 'TESTGRAYBIT' (to free this bit for real uses)Roberto Ierusalimschy2018-06-111-3/+4
|
* more generic way to handle 'gclist'Roberto Ierusalimschy2018-02-191-2/+2
|
* default for minor collection intervals a little largerRoberto Ierusalimschy2018-02-051-4/+4
|
* janitor work on castsRoberto Ierusalimschy2018-01-281-3/+3
|
* some cleaning in GC parametersRoberto Ierusalimschy2017-10-111-4/+14
|
* revamping the incremental collectorRoberto Ierusalimschy2017-05-261-9/+11
| | | | | | Some simplifications (not counting bytes, couting only slots visited; no more 'gcfinnum'); more GC parameters; using vararg in 'lua_gc' to set parameters in different GC modes
* barrier for prototype's cache (with new gray list 'protogray' to keepRoberto Ierusalimschy2017-05-041-1/+5
| | | | prototypes to have their caches visited again) + constant 'MAXMISS'
* Upvalues collected like everything else (with mark-sweep) insteadRoberto Ierusalimschy2017-04-111-9/+1
| | | | of reference count (simpler and better for generational mode)
* Comments for generational collectorRoberto Ierusalimschy2017-04-101-3/+3
|
* small changes in 'luaC_upvalbarrier'Roberto Ierusalimschy2017-04-061-4/+4
|
* generational collector (still not complete)Roberto Ierusalimschy2017-04-051-15/+39
|
* generational collection: new attempt (still incomplete)Roberto Ierusalimschy2017-02-231-3/+6
|
* avoid empty macro arguments (invalid in C89)Roberto Ierusalimschy2015-12-211-2/+2
|
* 'condchangemem' also may need to run 'pre'/'pos'Roberto Ierusalimschy2015-10-211-2/+3
|
* added commentsRoberto Ierusalimschy2015-10-201-1/+8
|
* cleaner definition for 'luaC_condGC', using 'pre'/'pos' parametersRoberto Ierusalimschy2015-10-201-4/+5
|
* barrier macros rewritten as expressionsRoberto Ierusalimschy2015-08-031-13/+13
|
* `name' in comments changed to 'name'Roberto Ierusalimschy2014-10-251-2/+2
|
* 'iswhite' and related macros now can work directly on any objectRoberto Ierusalimschy2014-07-191-4/+4
| | | | (no need to convert to 'GCObject')