Roberto I
82d721a855
Format adjust in the manual
...
Lists in inline code don't get a space after commas. (That keeps the
code more compact and avoids line breaks in the middle of the code.)
2025-12-10 10:35:05 -03:00
Roberto I
104b0fc700
Details
...
- Avoid fixing name "_ENV" in the code
- Small improvements in the manual
2025-12-08 13:09:47 -03:00
Roberto I
a07f6a8241
Functions with vararg tables don't need hidden args.
...
Vararg functions with vararg tables don't use the arguments hidden in
the stack; therfore, it doesn't need to build/keep them.
2025-11-28 15:12:51 -03:00
Roberto I
f33cc4ddec
New conceptual model for vararg
...
Conceptually, all functions get their vararg arguments in a vararg
table. The storing of vararg arguments in the stack is always treated
as an optimization.
2025-11-26 11:18:29 -03:00
Roberto I
d94f7ba304
Details
...
Comments, capitalization in the manual, globals in test 'heady.lua'
2025-11-24 11:39:46 -03:00
Roberto I
4cf498210e
'__pairs' can also return a to-be-closed object
2025-11-11 15:11:06 -03:00
Roberto I
e44f3a2ffc
Global initialization checks name conflict
...
Initialization "global a = 10" raises an error if global 'a' is already
defined, that is, it has a non-nil value.
2025-11-08 11:43:42 -03:00
Roberto I
d342328e5b
Vertical bar removed from syntax of vararg table
...
The syntax 'function foo (a, b, ...arg)' is already used by JavaScript
for this same semantics, so it seems natural to use the same notation in
Lua.
2025-10-30 11:07:01 -03:00
Roberto I
b352217b84
Standard allocator function added to the API
...
That makes easier to redefine luaL_newstate.
2025-10-17 13:53:35 -03:00
Roberto I
25c54fe60e
Optimization for vararg tables
...
A vararg table can be virtual. If the vararg table is used only as
a base in indexing expressions, the code does not need to create an
actual table for it. Instead, it compiles the indexing expressions
into direct accesses to the internal vararg data.
2025-09-24 18:33:08 -03:00
Roberto I
c345877e4c
Better documentation for LUA_ERRERR
...
Not all errors in a message handler generate a LUA_ERRERR.
2025-08-20 15:29:46 -03:00
Roberto I
53dc5a3bba
Functions 'frexp'-'ldexp' back to the math library
...
They are basic for anything that handles the representation of
floating numbers.
2025-08-09 15:15:20 -03:00
Roberto I
5b179eaf6a
Details
2025-08-09 15:08:53 -03:00
Roberto Ierusalimschy
60b6599e83
Short strings can be external, too
...
That complicates a little object equality (and therefore table access
for long strings), but the old behavior was somewhat weird. (Short
strings, a concept otherwise absent from the manual, could not be
external.)
2025-07-15 14:40:27 -03:00
Roberto Ierusalimschy
942c10a5e3
Optional initialization for global declarations
2025-07-08 13:33:57 -03:00
Roberto Ierusalimschy
1da89da62f
Manual updated to version 5.5
2025-06-27 14:46:41 -03:00
Roberto Ierusalimschy
f711567448
Check string indices when loading binary chunk
...
Lua is not religious about that, but it tries to avoid crashes when
loading binary chunks.
2025-06-17 11:40:49 -03:00
Roberto Ierusalimschy
e657a48ea5
The main thread cannot be closed
...
No thread started with pcall (instead of resume) can be closed,
because coroutine.close would not respect the expected number of
results from the protected call.
2025-06-13 14:08:38 -03:00
Roberto Ierusalimschy
fd897027f1
A coroutine can close itself
...
A call to close itself will close all its to-be-closed variables and
return to the resume that (re)started the coroutine.
2025-06-12 11:15:09 -03:00
Roberto Ierusalimschy
d05fe48bfd
Loading a binary chunk should not break assertions
...
Although the execution of a bad binary chunk can crash the interpreter,
simply loading it should be safe.
2025-06-04 12:55:43 -03:00
Roberto Ierusalimschy
6d53701c7a
Proper error message when jumping into 'global *'
...
A goto cannot jump into the scope of any variable declaration,
including 'global *'. To report the error, it needs a "name" for
the scope it is entering.
2025-05-18 12:03:54 -03:00
Roberto Ierusalimschy
abbae57c78
Variable attributes can prefix name list
...
In this format, the attribute applies to all names in the list;
e.g. "global<const> print, require, math".
2025-05-18 11:43:43 -03:00
Roberto Ierusalimschy
3b9dd52be0
Collective declaration for globals ('global *')
2025-05-13 11:43:10 -03:00
Roberto Ierusalimschy
3f0ea90aa8
New syntax 'global function'
2025-05-08 11:08:03 -03:00
Roberto Ierusalimschy
be81209063
First implementation of global declarations
2025-05-05 16:24:59 -03:00
Roberto Ierusalimschy
3f4f28010a
io.write returns number of written bytes on error
2025-04-03 11:32:49 -03:00
Roberto Ierusalimschy
fdbb4c2341
Detail in the manual
2025-03-17 16:05:47 -03:00
Roberto Ierusalimschy
d9e0f64a5d
Small changes in the manual
2025-03-12 15:45:39 -03:00
Roberto Ierusalimschy
ee99452158
Error object cannot be nil
...
Lua will change a nil as error object to a string message, so that it
never reports an error with nil as the error object.
2025-02-28 14:53:58 -03:00
Roberto Ierusalimschy
127a8e80fe
'__close' gets no error object if there is no error
...
Instead of receiving nil as a second argument, __close metamethods are
called with just one argument when there are no errors.
2025-02-28 10:10:27 -03:00
Roberto Ierusalimschy
ceac82f78b
Details
...
Comments, small changes in the manual, an extra test for errors in
error handling, small changes in tests.
2025-02-26 11:29:54 -03:00
Roberto Ierusalimschy
c4e7cdb541
Renaming two new functions
...
'lua_numbertostrbuff' -> 'lua_numbertocstring'
'lua_pushextlstring' -> 'lua_pushexternalstring'
2025-01-27 16:09:55 -03:00
Roberto Ierusalimschy
7d7ae8781e
Parameters for 'lua_createtable' back to int
...
Tables don't accept sizes larger than int.
2025-01-21 13:33:59 -03:00
Roberto Ierusalimschy
2d8d5c74b5
Details
...
New year (2024->2025), typos in comments
2025-01-16 11:51:16 -03:00
Roberto Ierusalimschy
3cdd49c94a
Fixed conversion warnings from clang
...
Plus some other details. (Option '-Wuninitialized' was removed from
the makefile because it is already enabled by -Wall.)
2025-01-14 16:24:46 -03:00
Roberto Ierusalimschy
915c29f8bd
Improvements in the manual
...
Plus details
2025-01-10 15:11:54 -03:00
Roberto Ierusalimschy
50c7c915ee
Debug information about extra arguments from __call
...
'debug.getinfo' can return number of extra arguments added to a call by
a chain of __call metavalues. That information is being used to improve
error messages about errors in these extra arguments.
2024-11-19 14:09:18 -03:00
Roberto Ierusalimschy
b117bdb344
Counter for length of chains of __call metamethods
...
This counter will allow (in a later commit) error messages to correct
argument numbers in functions called through __call metamethods.
2024-11-16 12:00:28 -03:00
Roberto Ierusalimschy
e3ce88c9e8
New function 'lua_numbertostrbuff'
...
It converts a Lua number to a string in a buffer, without creating
a new Lua string.
2024-10-23 17:16:17 -03:00
Roberto Ierusalimschy
d0815046d0
Some adjustments in transition minor->major
...
Plus extra comments and other details.
2024-10-18 17:10:20 -03:00
Roberto Ierusalimschy
3d54b42d59
'objsize' broke in smaller pieces
2024-09-30 14:01:42 -03:00
Roberto Ierusalimschy
20d42ccaae
No errors in 'luaO_pushvfstring'
...
Any call to 'va_start' must have a corresponding call to 'va_end';
so, functions called between them (luaO_pushvfstring in particular)
cannot raise errors.
2024-09-20 15:56:39 -03:00
Roberto Ierusalimschy
4901853c11
Parameter for lua_gc/LUA_GCSTEP changed to 'size_t'
...
'size_t' is the common type for measuring memory. 'int' can be too
small for steps.
2024-09-10 17:05:39 -03:00
Roberto Ierusalimschy
0acd55898d
Added gcc option '-Wconversion'
...
No warnings for standard numerical types. Still pending alternative
numerical types.
2024-07-27 13:32:59 -03:00
Roberto Ierusalimschy
a546138d15
Explicit limit for number of results in a call
...
The parameter 'nresults' in 'lua_call' and similar functions has a
limit of 250. It already had an undocumented (and unchecked) limit of
SHRT_MAX, but it is seldom larger than 2.
2024-07-18 14:44:40 -03:00
Roberto Ierusalimschy
cd4de92762
Maximum stack size may not fit in unsigned short
...
Therefore, fields ftransfer/ntransfer in lua_Debug must have type
'int'. (Maximum stack size must fit in an 'int'.) Also, this commit
adds check that maximum stack size respects size_t for size in bytes.
2024-07-16 11:33:30 -03:00
Roberto Ierusalimschy
c1dc08e8e8
Length of external strings must fit in Lua integer
...
(As the length of any string in Lua.)
2024-06-24 12:03:59 -03:00
Roberto Ierusalimschy
0f7025dcae
Details in the manual
2024-06-21 16:36:24 -03:00
Roberto Ierusalimschy
bdc85357aa
Bug: Active-lines for stripped vararg functions
...
Lua seg. faults when asked to create the 'activelines' table for a
vararg function with no debug information.
2024-06-04 17:27:13 -03:00
Roberto Ierusalimschy
b291008cc2
Manual for 'string.format' lists what it accepts
...
Instead of listing what it does not accept, which is always relative.
2024-06-04 16:51:31 -03:00