RECOMMENDED is removed. It becomes ABI_DEPENDS.
BUILDLINK_RECOMMENDED.foo becomes BUILDLINK_ABI_DEPENDS.foo.
BUILDLINK_DEPENDS.foo becomes BUILDLINK_API_DEPENDS.foo.
BUILDLINK_DEPENDS does not change.
IGNORE_RECOMMENDED (which defaulted to "no") becomes USE_ABI_DEPENDS
which defaults to "yes".
Added to obsolete.mk checking for IGNORE_RECOMMENDED.
I did not manually go through and fix any aesthetic tab/spacing issues.
I have tested the above patch on DragonFly building and packaging
subversion and pkglint and their many dependencies.
I have also tested USE_ABI_DEPENDS=no on my NetBSD workstation (where I
have used IGNORE_RECOMMENDED for a long time). I have been an active user
of IGNORE_RECOMMENDED since it was available.
As suggested, I removed the documentation sentences suggesting bumping for
"security" issues.
As discussed on tech-pkg.
I will commit to revbump, pkglint, pkg_install, createbuildlink separately.
Note that if you use wip, it will fail! I will commit to pkgsrc-wip
later (within day).
developer is officially maintaining the package.
The rationale for changing this from "tech-pkg" to "pkgsrc-users" is
that it implies that any user can try to maintain the package (by
submitting patches to the mailing list). Since the folks most likely
to care about the package are the folks that want to use it or are
already using it, this would leverage the energy of users who aren't
developers.
Lua 5.0.2 is a bugfix release, which contains the following fixes:
src/ldo.c
Attempt to resume running coroutine crashed Lua
src/lgc.c
C functions also may have stacks larger than current top
Userdata to be collected still counted into new GC threshold
src/lgc.h
Userdata to be collected still counted into new GC threshold
src/lparser.c
Syntax `local function' did not increment stack size
src/lvm.c
`pc' address was invalidated when a coroutine was suspended
Count hook might be called without being set
src/lib/lbaselib.c
Buffer overflow for unusual %p representation
Wrong number of returns from chunks loaded from stdin
src/lib/liolib.c
`file.close()' could not be called without arguments
Buffer overflow for unusual %p representation
src/luac/luac.c
Missing lock/unlock
pre-release. However, it is unlikely to change for the final release of
5.0.1.
Fixed bugs:
1. lua_closethread exists only in the manual
2. attempt to resume a running coroutine crashes Lua
3. file:close cannot be called without a file. (results in seg. fault)
4. C functions may have stacks larger than current top
5. `pc' address is invalidated when a coroutine is suspended
6. userdata to be collected still counts into new GC threshold,
increasing memory consumption
7. IBM AS400 (OS400) has sizeof(void *)==16, and a `%p' may generate up
to 60 characters in a `printf'. That causes a buffer overflow in
`tostring'.
8. syntax `local function' does not increment stack size
9. count hook may be called without being set
* Changes from version 4.0 to 5.0
-------------------------------
Language:
+ lexical scoping.
+ Lua coroutines.
+ standard libraries now packaged in tables.
+ tags replaced by metatables and tag methods replaced by metamethods,
stored in metatables.
+ proper tail calls.
+ each function can have its own global table, which can be shared.
+ new __newindex metamethod, called when we insert a new key into a table.
+ new block comments: --[[ ... ]].
+ new generic for.
+ new weak tables.
+ new boolean type.
+ new syntax "local function".
+ (f()) returns the first value returned by f.
+ {f()} fills a table with all values returned by f.
+ \n ignored in [[\n .
+ fixed and-or priorities.
+ more general syntax for function definition (e.g. function a.x.y:f()...end).
+ more general syntax for function calls (e.g. (print or write)(9)).
+ new functions (time/date, tmpfile, unpack, require, load*, etc.).
API:
+ chunks are loaded by using lua_load; new luaL_loadfile and luaL_loadbuffer.
+ introduced lightweight userdata, a simple "void*" without a metatable.
+ new error handling protocol: the core no longer prints error messages;
all errors are reported to the caller on the stack.
+ new lua_atpanic for host cleanup.
+ new, signal-safe, hook scheme.
Implementation:
+ new license: MIT.
+ new, faster, register-based virtual machine.
+ support for external multithreading and coroutines.
+ new and consistent error message format.
+ the core no longer needs "stdio.h" for anything (except for a single
use of sprintf to convert numbers to strings).
+ lua.c now runs the environment variable LUA_INIT, if present. It can
be "@filename", to run a file, or the chunk itself.
+ support for user extensions in lua.c.
sample implementation given for command line editing.
+ new dynamic loading library, active by default on several platforms.
+ safe garbage-collector metamethods.
+ precompiled bytecodes checked for integrity (secure binary dostring).
+ strings are fully aligned.
+ position capture in string.find.
+ read('*l') can read lines with embedded zeros.
Added my own makefiles to create shared versions of the libraries
using bsd.lib.mk.
Changes in Lua itself:
lua/src/lapi.c
lua/src/lstring.c
Fixed a bug in lua_pushuserdata(L, NULL)
lua/src/ldo.c
lua/src/lgc.c
lua/src/lgc.h
Give a good chance for GC before parsing
lua/src/lparser.c
Fixed a bug (did not accept `;' after a `return')
lua/src/lvm.c
Fixed a bug (linehook off by 1)
lua/src/lib/lbaselib.c
Fixed a bug in rawget and rawset (seg. fault if given extra arguments)
Fixed a bug in dostring (identification of precompiled chunks)
Lua is a powerful, light-weight programming language designed for
extending applications. Lua is also frequently used as a
general-purpose, stand-alone language.
Lua combines simple procedural syntax (similar to Pascal) with
powerful data description constructs based on associative arrays and
extensible semantics. Lua is dynamically typed, interpreted from
bytecodes, and has automatic memory management, making it ideal for
configuration, scripting, and rapid prototyping.
Lua is a language engine that you can embed into your application.
This means that, besides syntax and semantics, Lua has an API that
allows the application to exchange data with Lua programs and also to
extend Lua with C functions. In this sense, Lua can be regarded as a
language framework for building domain-specific languages.
Lua is implemented as a small library of C functions, written in ANSI
C, and compiles unmodified in all known platforms. The implementation
goals are simplicity, efficiency, portability, and low embedding cost.
The result is a fast language engine with small footprint, making it
ideal in embedded systems too.