./devel/lemon, Simple LALR(1) parser generator

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]

Branch: CURRENT, Version:, Package name: lemon-, Maintainer: airhead

The Lemon program is an LALR(1) parser generator. It takes a context
free grammar and converts it into a subroutine that will parse a file
using that grammar.

Lemon is similar to the much more famous programs "YACC" and "BISON".
But lemon is not compatible with either yacc or bison.

There are several important differences:
* Lemon using a different grammar syntax which is less prone to programming
* The parser generated by Lemon is both re-entrant and thread-safe.
* Lemon includes the concept of a non-terminal destructor, which makes it
much easier to write a parser that does not leak memory.

Required to build:

Master sites:

Filesize: 13601.605 KB

Version history: (Expand)

CVS history: (Expand)

   2023-09-12 21:28:13 by Adam Ciarcinski | Files touched by this commit (7) | Package updated
Log message:
sqlite3: updated to 3.43.1


Fix a regression in the way that the sum(), avg(), and total() aggregate \ 
functions handle infinities.
Fix a bug in the json_array_length() function that occurs when the argument \ 
comes directly from json_remove().
Fix the omit-unused-subquery-columns optimization (introduced in in version \ 
3.42.0) so that it works correctly if the subquery is a compound where one arm \ 
is DISTINCT and the other is not.
Other minor fixes.
   2023-08-25 08:48:00 by Adam Ciarcinski | Files touched by this commit (6) | Package updated
Log message:
databases/sqlite3* devel/lemon: updated to 2.43.0

SQLite Release 3.43.0 On 2023-08-24

Add support for Contentless-Delete FTS5 Indexes. This is a variety of FTS5 \ 
full-text search index that omits storing the content that is being indexed \ 
while also allowing records to be deleted.
Enhancements to the date and time functions:
Added new time shift modifiers of the form ±YYYY-MM-DD HH:MM:SS.SSS.
Added the timediff() SQL function.
Added the octet_length(X) SQL function.
Added the sqlite3_stmt_explain() API.
Query planner enhancements:
Generalize the LEFT JOIN strength reduction optimization so that it works for \ 
RIGHT and FULL JOINs as well. Rename it to OUTER JOIN strength reduction.
Enhance the theorem prover in the OUTER JOIN strength reduction optimization so \ 
that it returns fewer false-negatives.
Enhancements to the decimal extension:
New function decimal_pow2(N) returns the N-th power of 2 for integer N between \ 
-20000 and +20000.
New function decimal_exp(X) works like decimal(X) except that it returns the \ 
result in exponential notation - with a "e+NN" at the end.
If X is a floating-point value, then the decimal(X) function now does a full \ 
expansion of that value into its exact decimal equivalent.
Performance enhancements to JSON processing results in a 2x performance \ 
improvement for some kinds of processing on large JSON strings.
New makefile target "verify-source" checks to ensure that there are no \ 
unintentional changes in the source tree. (Works for canonical source code only \ 
- not for precompiled amalgamation tarballs.)
Added the SQLITE_USE_SEH compile-time option that enables Structured Exception \ 
Handling on Windows while working with the memory-mapped shm file that is part \ 
of WAL mode processing. This option is enabled by default when building on \ 
Windows using Makefile.msc.
The VFS for unix now assumes that the nanosleep() system call is available \ 
unless compiled with -DHAVE_NANOSLEEP=0.
   2023-05-17 14:29:58 by Adam Ciarcinski | Files touched by this commit (8) | Package updated
Log message:
sqlite3: updated to 3.42.0

SQLite Release 3.42.0 On 2023-05-16

Add the FTS5 secure-delete command. This option causes all forensic traces to be \ 
removed from the FTS5 inverted index when content is deleted.
Enhance the JSON SQL functions to support JSON5 extensions.
The SQLITE_CONFIG_LOG and SQLITE_CONFIG_PCACHE_HDRSZ calls to sqlite3_config() \ 
are now allowed to occur after sqlite3_initialize().
New sqlite3_db_config() options: SQLITE_DBCONFIG_STMT_SCANSTATUS and \ 
Query planner improvements:
Enable the "count-of-view" optimization by default.
Avoid computing unused columns in subqueries.
Improvements to the push-down optimization.
Enhancements to the CLI:
Add the --unsafe-testing command-line option. Without this option, some \ 
dot-commands (ex: ".testctrl") are now disabled because those commands \ 
that are intended for testing only and can cause malfunctions misused.
Allow commands ".log on" and ".log off", even in --safe mode.
"--" as a command-line argument means all subsequent arguments that \ 
start with "-" are interpreted as normal non-option argument.
Magic parameters ":inf" and ":nan" bind to floating point \ 
literals Infinity and NaN, respectively.
The --utf8 command-line option omits all translation to or from MBCS on the \ 
Windows console for interactive sessions, and sets the console code page for \ 
UTF-8 I/O during such sessions. The --utf8 option is a no-op on all other \ 
Add the ability for application-defined SQL functions to have the same name as \ 
Enhancements to PRAGMA integrity_check:
Detect and raise an error when a NaN value is stored in a NOT NULL column.
Improved error message output identifies the root page of a b-tree when an error \ 
is found within a b-tree.
Allow the session extension to be configured to capture changes from tables that \ 
lack an explicit ROWID.
Added the subsecond modifier to the date and time functions.
Negative values passed into sqlite3_sleep() are henceforth interpreted as 0.
The maximum recursion depth for JSON arrays and objects is lowered from 2000 to 1000.
Extended the built-in printf() function so the comma option now works with \ 
floating-point conversions in addition to integer conversions.
Miscellaneous bug fixes and performance optimizations
   2023-03-28 15:01:41 by Adam Ciarcinski | Files touched by this commit (7) | Package updated
Log message:
sqlite3: updated to 3.41.2

version 3.41.2 (2023-03-22):

Multiple fixes for reads past the end of memory buffers (NB: reads not writes) \ 
in the following circumstances:
When processing a corrupt database file using the non-standard \ 
SQLITE_ENABLE_STAT4 compile-time option.
In the CLI when the sqlite3_error_offset() routine returns an out-of-range value \ 
(see also the fix to sqlite3_error_offset() below).
In the recovery extension.
In FTS3 when processing a corrupt database file.
Fix the sqlite3_error_offset() so that it does not return out-of-range values \ 
when reporting errors associated with generated columns.
Multiple fixes in the query optimizer for problems that cause incorrect results \ 
for bizarre, fuzzer-generated queries.
Increase the size of the reference counter in the page cache object to 64 bits \ 
to ensure that the counter never overflows.
Fix a performance regression caused by a bug fix in patch release 3.41.1.
Fix a few incorrect assert() statements.
   2023-03-12 11:34:33 by Adam Ciarcinski | Files touched by this commit (7) | Package updated
Log message:
sqlite3: updated to 3.41.1

version 3.41.1 (2023-03-10):

Provide compile-time options -DHAVE_LOG2=0 and -DHAVE_LOG10=0 to enable SQLite \ 
to be compiled on systems that omit the standard library functions log2() and \ 
log10(), repectively.
Ensure that the datatype for column t1.x in "CREATE TABLE t1 AS SELECT \ 
CAST(7 AS INT) AS x;" continues to be INT and is not NUM, for historical \ 
Enhance PRAGMA integrity_check to detect when extra bytes appear at the end of \ 
an index record.
Fix various obscure bugs reported by the user community. See the timeline of \ 
changes for details.
   2023-02-24 09:34:38 by Adam Ciarcinski | Files touched by this commit (7) | Package updated
Log message:
sqlite3: updated to 3.41.0

SQLite Release 3.41.0 On 2023-02-21

Query planner improvements:
Make use of indexed expressions within an aggregate query that includes a GROUP \ 
BY clause.
The query planner has improved awareness of when an index is a covering index \ 
and adjusts predicted runtimes accordingly.
The query planner is more aggressive about using co-routines rather than \ 
materializing subqueries and views.
Queries against the built-in table-valued functions json_tree() and json_each() \ 
will now usually treat "ORDER BY rowid" as a no-op.
Enhance the ability of the query planner to use indexed expressions even if the \ 
expression has been modified by the constant-propagation optimization. (See \ 
forum thread 0a539c7.)
Add the built-in unhex() SQL function.
Add the base64 and base85 application-defined functions as an extension and \ 
include that extension in the CLI.
Add the sqlite3_stmt_scanstatus_v2() interface. (This interface is only \ 
available if SQLite is compiled using SQLITE_ENABLE_STMT_SCANSTATUS.)
In-memory databases created using sqlite3_deserialize() now report their \ 
filename as an empty string, not as 'x'.
Changes to the CLI:
Add the new base64() and base85() SQL functions
Enhanced EXPLAIN QUERY PLAN output using the new sqlite3_stmt_scanstatus_v2() \ 
interface when compiled using SQLITE_ENABLE_STMT_SCANSTATUS.
The ".scanstats est" command provides query planner estimates in profiles.
The continuation prompt indicates if the input is currently inside of a string \ 
literal, identifier literal, comment, trigger definition, etc.
Enhance the --safe command-line option to disallow dangerous SQL functions.
The double-quoted string misfeature is now disabled by default for CLI builds. \ 
Legacy use cases can reenable the misfeature at run-time using the \ 
".dbconfig dqs_dml on" and ".dbconfig dqs_ddl on" commands.
Enhance the PRAGMA integrity_check command so that it detects when text strings \ 
in a table are equivalent to but not byte-for-byte identical to the same strings \ 
in the index.
Enhance the carray table-valued function so that it is able to bind an array of \ 
BLOB objects.
Added the sqlite3_is_interrupted() interface.
Long-running calls to sqlite3_prepare() and similar now invoke the progress \ 
handler callback and react to sqlite3_interrupt().
The sqlite3_vtab_in_first() and sqlite3_vtab_in_next() functions are enhanced so \ 
that they reliably detect if they are invoked on a parameter that was not \ 
selected for multi-value IN processing using sqlite3_vtab_in(). They return \ 
SQLITE_ERROR instead of SQLITE_MISUSE in this case.
The parser now ignores excess parentheses around a subquery on the right-hand \ 
side of an IN operator, so that SQLite now works the same as PostgreSQL in this \ 
regard. Formerly, SQLite treated the subquery as an expression with an implied \ 
"LIMIT 1".
Added the SQLITE_FCNTL_RESET_CACHE option to the sqlite3_file_control() API.
Makefile improvements:
The new makefile target "sqlite3r.c" builds an amalgamation that \ 
includes the recovery extension.
New makefile targets "devtest" and "releasetest" for running \ 
a quick developmental test prior to doing a check-in and for doing a full \ 
release test, respectively.
Miscellaneous performance enhancements.
   2022-12-28 23:26:07 by Adam Ciarcinski | Files touched by this commit (9) | Package updated
Log message:
sqlite3: updated to 3.40.1

3.40.1 (2022-12-28):

Fix the --safe command-line option to the CLI such that it correctly disallows \ 
the use of SQL functions like writefile() that can cause harmful side-effects.
Fix a potential infinite loop in the memsys5 alternative memory allocator. This \ 
bug was introduced by a performance optimization in version 3.39.0.
Various other obscure fixes.
   2022-11-17 07:20:45 by Adam Ciarcinski | Files touched by this commit (7) | Package updated
Log message:
sqlite3: updated to 3.40.0

SQLite Release 3.40.0

Add support for compiling SQLite to WASM and running it in web browsers. NB: The \ 
WASM build and its interfaces are considered "beta" and are subject to \ 
minor changes if the need arises. We anticipate finalizing the interface for the \ 
next release.
Add the recovery extension that might be able to recover some content from a \ 
corrupt database file.
Query planner enhancements:
Recognize covering indexes on tables with more than 63 columns where columns \ 
beyond the 63rd column are used in the query and/or are referenced by the index.
Extract the values of expressions contained within expression indexes where \ 
practical, rather than recomputing the expression.
The NOT NULL and IS NULL operators (and their equivalents) avoid loading the \ 
content of large strings and BLOB values from disk.
Avoid materializing a view on which a full scan is performed exactly once. Use \ 
and discard the rows of the view as they are computed.
Allow flattening of a subquery that is the right-hand operand of a LEFT JOIN in \ 
an aggregate query.
A new typedef named sqlite3_filename is added and used to represent the name of \ 
a database file. Various interfaces are modified to use the new typedef instead \ 
of "char*". This interface change should be fully backwards \ 
compatible, though it might cause (harmless) compiler warnings when rebuilding \ 
some legacy applications.
Add the sqlite3_value_encoding() interface.
Security enhancement: SQLITE_DBCONFIG_DEFENSIVE is augmented to prohibit \ 
changing the schema_version. The schema_version becomes read-only in defensive \ 
Enhancements to the PRAGMA integrity_check statement:
Columns in non-STRICT tables with TEXT affinity should not contain numeric values.
Columns in non-STRICT tables with NUMERIC affinity should not contain TEXT \ 
values that could be converted into numbers.
Verify that the rows of a WITHOUT ROWID table are in the correct order.
Enhance the VACUUM INTO statement so that it honors they PRAGMA synchronous setting.
Enhance the sqlite3_strglob() and sqlite3_strlike() APIs so that they are able \ 
to accept NULL pointers for their string parameters and still generate a \ 
sensible result.
Provide the new SQLITE_MAX_ALLOCATION_SIZE compile-time option for limiting the \ 
size of memory allocations.
Change the algorithm used by SQLite's built-in pseudo-random number generator \ 
(PRNG) from RC4 to Chacha20.
Allow two or more indexes to have the same name as long as they are all in \ 
separate schemas.
Miscellaneous performance optimizations result in about 1% fewer CPU cycles used \ 
on typical workloads.