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

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


Branch: CURRENT, Version: 1.0.3.45.2, Package name: lemon-1.0.3.45.2, 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
errors.
* 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:
[pkgtools/cwrappers]

Master sites:

Filesize: 13825.047 KB

Version history: (Expand)


CVS history: (Expand)


   2024-03-14 09:07:11 by Adam Ciarcinski | Files touched by this commit (6) | Package updated
Log message:
sqlite3: updated to 3.45.2

version 3.45.2 (2024-03-12):

Fix an error in UPSERT, introduced by enhancement 3a in version 3.35.0 \ 
(2021-03-12), that could cause an index to get out-of-sync with its table. Forum \ 
thread 919c6579c8.
Reduce the scope of the NOT NULL strength reduction optimization that was added \ 
as item 8e in version 3.35.0 (2021-03-12). The optimization was being attempted \ 
in some contexts where it did not work, resulting in incorrect query results. \ 
Forum thread 440f2a2f17.
Other trifling corrections and compiler warning fixes that have come up since \ 
the previous patch release. See the timeline for details.
   2024-01-30 21:13:21 by Adam Ciarcinski | Files touched by this commit (6) | Package updated
Log message:
sqlite3* lemon: updated to 3.45.1

version 3.45.1 (2024-01-30):

Restore the JSON BLOB input bug, and promise to support the anomaly in \ 
subsequent releases, for backward compatibility.
Fix the PRAGMA integrity_check command so that it works on read-only databases \ 
that contain FTS3 and FTS5 tables. This resolves an issue introduced in version \ 
3.44.0 but was undiscovered until after the 3.45.0 release.
Fix issues associated with processing corrupt JSONB inputs:
Prevent exponential runtime when converting a corrupt JSONB into text.
Fix a possible read of one byte past the end of the JSONB blob when converting a \ 
corrupt JSONB into text.
Enhanced testing using jfuzz to prevent any future JSONB problems such as the above.
Fix a long-standing bug in which a read of a few bytes past the end of a \ 
memory-mapped segment might occur when accessing a craftily corrupted database \ 
using memory-mapped database.
Fix a long-standing bug in which a NULL pointer dereference might occur in the \ 
bytecode engine due to incorrect bytecode being generated for a class of SQL \ 
statements that are deliberately designed to stress the query planner but which \ 
are otherwise pointless.
   2024-01-17 09:24:19 by Adam Ciarcinski | Files touched by this commit (6) | Package updated
Log message:
sqlite3: updated to 3.45.0

SQLite Release 3.45.0 On 2024-01-15

Added the SQLITE_RESULT_SUBTYPE property for application-defined SQL functions. \ 
All application defined SQL functions that invokes sqlite3_result_subtype() must \ 
be registered with this new property. Failure to do so might cause the call to \ 
sqlite3_result_subtype() to behave as a no-op. Compile with \ 
-DSQLITE_STRICT_SUBTYPE=1 to cause an SQL error to be raised if a function that \ 
is not SQLITE_RESULT_SUBTYPE tries invokes sqlite3_result_subtype(). The use of \ 
-DSQLITE_STRICT_SUBTYPE=1 is a recommended compile-time option for every \ 
application that makes use of subtypes.
Enhancements to the JSON SQL functions:
All JSON functions are rewritten to use a new internal parse tree format called \ 
JSONB. The new parse-tree format is serializable and hence can be stored in the \ 
database to avoid unnecessary re-parsing whenever the JSON value is used.
New versions of JSON-generating functions generate binary JSONB instead of JSON text.
The json_valid() function adds an optional second argument that specifies what \ 
it means for the first argument to be "well-formed".
Add the FTS5 tokendata option to the FTS5 virtual table.
The SQLITE_DIRECT_OVERFLOW_READ optimization is now enabled by default. Disable \ 
it at compile-time using -DSQLITE_DIRECT_OVERFLOW_READ=0.
Query planner improvements:
Do not allow the transitive constraint optimization to trick the query planner \ 
into using a range constraint when a better equality constraint is available. \ 
(Forum post 2568d1f6e6.)
The query planner now does a better job of disregarding indexes that ANALYZE \ 
identifies as low-quality. (Forum post 6f0958b03b.)
Increase the default value for SQLITE_MAX_PAGE_COUNT from 1073741824 to 4294967294.
Enhancements to the CLI:
Improvements to the display of UTF-8 content on Windows
Automatically detect playback of ".dump" scripts and make appropriate \ 
changes to settings such as ".dbconfig defensive off" and \ 
".dbconfig dqs_dll on".
   2023-11-25 22:07:39 by Adam Ciarcinski | Files touched by this commit (8) | Package updated
Log message:
sqlite3: updated to 3.44.2

3.44.1 (2023-11-22):

Change the CLI so that it uses UTF-16 for console I/O on Windows. This enables \ 
proper display of unicode text on old Windows7 machines.
Other obscure bug fixes.

3.44.2 (2023-11-24):

Fix a mistake in the CLI that was introduced by the fix (item 15 above) in 3.44.1.
Fix a problem in FTS5 that was discovered during internal fuzz testing only \ 
minutes after the 3.44.1 release was tagged.
Fix incomplete assert() statements that the fuzzer discovered the day after the \ 
previous release.
Fix a couple of harmless compiler warnings that appeared in debug builds with GCC 16.
   2023-11-01 21:46:04 by Adam Ciarcinski | Files touched by this commit (6) | Package updated
Log message:
sqlite3: updated to 3.44.0

SQLite Release 3.44.0 On 2023-11-01

Aggregate functions can now include an ORDER BY clause after their last \ 
parameter. The arguments to the function are processed in the order specified. \ 
This can be important for functions like string_agg() and json_group_array().
Add support for the concat() and concat_ws() scalar SQL functions, compatible \ 
with PostgreSQL, SQLServer, and MySQL.
Add support for the string_agg() aggregate SQL function, compatible with \ 
PostgreSQL and SQLServer.
New conversion letters on the strftime() SQL function: %e %F %I %k %l %p %P %R %T %u
Add new C-language APIs: sqlite3_get_clientdata() and sqlite3_set_clientdata().
Many errors associated with CREATE TABLE are now raised when the CREATE TABLE \ 
statement itself is run, rather than being deferred until the first time the \ 
table is actually used.
The PRAGMA integrity_check command now verifies the consistency of the content \ 
in various built-in virtual tables using the new xIntegrity method. This works \ 
for the FTS3, FTS4, FTS5, RTREE, and GEOPOLY extensions.
The SQLITE_DBCONFIG_DEFENSIVE setting now prevents PRAGMA writable_schema from \ 
being turned on. Previously writable_schema could be turned on, but would not \ 
actually allow the schema to be writable. Now it simply cannot be turned on.
Tag the built-in FTS3, FTS4, FTS5, RTREE, and GEOPOLY virtual tables as \ 
SQLITE_VTAB_INNOCUOUS so that they can be used inside of triggers in \ 
high-security deployments.
The PRAGMA case_sensitive_like statement is deprecated, as its use when the \ 
schema contains LIKE operators can lead to reports of database corruption by \ 
PRAGMA integrity_check.
SQLITE_USE_SEH (Structured Exception Handling) is now enabled by default \ 
whenever SQLite is built using the Microsoft C compiler. It can be disabled \ 
using -DSQLITE_USE_SEH=0
Query planner optimizations:
In partial index scans, if the WHERE clause implies a constant value for a table \ 
column, replace occurrences of that table column with the constant. This \ 
increases the likelihood of the partial index being a covering index.
Disable the view-scan optimization (added in version 3.42.0 - item 1c) as it was \ 
causing multiple performance regressions. In its place, reduce the estimated row \ 
count for DISTINCT subqueries by a factor of 8.
SQLite now performs run-time detection of whether or not the underlying hardware \ 
supports "long double" with precision greater than "double" \ 
and uses appropriate floating-point routines depending on what it discovered.
The CLI for Windows now defaults to using UTF-8 for both input and output on \ 
platforms that support it. The --no-utf8 option is available to disable UTF8 \ 
support.
   2023-10-10 18:16:49 by Adam Ciarcinski | Files touched by this commit (6) | Package updated
Log message:
sqlite3: updated to 3.43.2

Changes in this specific patch release, version 3.43.2 (2023-10-10):

Fix a couple of obscure UAF errors and an obscure memory leak.
Omit the use of the sprintf() function from the standard library in the CLI, as \ 
this now generates warnings on some platforms.
Avoid conversion of a double into unsigned long long integer, as some platforms \ 
do not do such conversions correctly.
   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

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.