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

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


Branch: CURRENT, Version: 1.0.3.47.1, Package name: lemon-1.0.3.47.1, 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: 14077.961 KB

Version history: (Expand)


CVS history: (Expand)


   2024-11-25 21:20:04 by Adam Ciarcinski | Files touched by this commit (8) | Package updated
Log message:
sqlite3: updated to 3.47.1

3.47.1 (2024-11-25):

Fix the makefiles so that they once again honored DESTDIR for the \ 
"install" target.
Add the SQLITE_IOCAP_SUBPAGE_READ capability to the VFS, to work around issues \ 
on some non-standard VFSes caused by making SQLITE_DIRECT_OVERFLOW_READ the \ 
default in version 3.45.0.
Fix problems with line endings in the new sqlite3_rsync.exe utility on Windows.
Fix incorrect answers to certain obscure IN queries caused by new query \ 
optimizations added in the 3.47.0 release.
Other minor bug fixes.
   2024-10-22 20:25:29 by Adam Ciarcinski | Files touched by this commit (7) | Package updated
Log message:
sqlite3: updated to 3.47.0

SQLite Release 3.47.0

Allow arbitrary expressions in the second argument to the RAISE function.
If the RHS of the ->> operator is negative, then access array elements \ 
counting from the right.
Fix a problem with rolling back hot journal files in the seldom-used \ 
unix-dotfile VFS.
FTS5 tables can now be dropped even if they use a non-standard tokenizer that \ 
has not been registered.
Fix the group_concat() aggregate function so that it returns an empty string, \ 
not a NULL, if it receives a single input value which is an empty string.
Enhance the generate_series() table-valued function so that it is able to \ 
recognize and use constraints on its output value.
Preupdate hooks now recognize when a column added by ALTER TABLE ADD COLUMN has \ 
a non-null default value.
Performance optimizations:
Improved reuse of subqueries associated with the IN operator, especially when \ 
the IN operator has been duplicated due to predicate push-down.
Use a Bloom filter on subqueries on the right-hand side of the IN operator, in \ 
cases where that seems likely to improve performance.
Ensure that queries like "SELECT func(a) FROM tab GROUP BY 1" only \ 
invoke the func() function once per row.
No attempt is made to create automatic indexes on a column that is known to be \ 
non-selective because of its use in other indexes that have been analyzed.
Adjustments to the query planner so that it produces better plans for star \ 
queries with a large number of dimension tables.
Add the "order-by-subquery" optimization, that seeks to disable sort \ 
operations in outer queries if the desired order is obtained naturally due to \ 
ORDER BY clauses in subqueries.
The "indexed-subtype-expr" optimization strives to use expressions \ 
that are part of an index rather than recomputing the expression based on table \ 
values, as long as the query planner can prove that the subtype of the \ 
expression will never be used.
Miscellaneous coding tweaks for faster runtimes.
Enhancements to SQLite-related command-line programs:
Add the experimental sqlite3_rsync program.
Add extension functions median(), percentile(), percentile_cont(), and \ 
percentile_disc() to the CLI.
Add the .www dot-command to the CLI.
The sqlite3_analyzer utility now provides a break-out of statistics for WITHOUT \ 
ROWID tables.
The sqldiff utility avoids creating an empty database if its second argument \ 
does not exist.
Enhance the sqlite_dbpage table-valued function such that INSERT can be used to \ 
increase or decrease the size of the database file.
SQLite no longer makes any use of the "long double" data type, as \ 
hardware support for long double is becoming less common and long double creates \ 
challenges for some compiler tool chains. Instead, SQLite uses Dekker's \ 
algorithm when extended precision is needed.
The TCL Interface for SQLite supports TCL9. Everything probably still works for \ 
TCL 8.5 and later, though this is not guaranteed. Users are encouraged to \ 
upgrade to TCL9.
JavaScript/WASM:
Fix a corruption-causing bug in the JavaScript "opfs" VFS.
Correct "mode=ro" handling for the "opfs" VFS.
Work around a couple of browser-specific OPFS quirks.
FTS5 Changes:
Add the fts5_tokenizer_v2 API and the locale=1 option, for creating custom \ 
locale-aware tokenizers and fts5 tables that may take advantage of them.
Add the contentless_unindexed=1 option, for creating contentless fts5 tables \ 
that store the values of any UNINDEXED columns persistently in the database.
Allow an FTS5 table to be dropped even if it uses a custom tokenizer whose \ 
implementation is not available.
   2024-08-13 15:11:52 by Adam Ciarcinski | Files touched by this commit (8) | Package updated
Log message:
sqlite3: updated to 3.46.1

3.46.1 (2024-08-13):

Improved robustness while parsing the tokenize= arguments in FTS5. Forum post \ 
171bcc2bcd.
Enhancements to covering index prediction in the query planner. Add early \ 
detection of over-prediction of covering indexes so that sqlite3_prepare() will \ 
return an error rather than just generate bad bytecode. Forum post \ 
e60e4c295d22f8ce.
Do not let the number of terms on a VALUES clause be limited by \ 
SQLITE_LIMIT_COMPOUND_SELECT, even if the VALUES clause contains elements that \ 
appear to be variables due to double-quoted string literals.
Fix the window function version of group_concat() so that it returns an empty \ 
string if it has one or more empty string inputs.
In FTS5 secure-delete mode, fix false-positive integrity-check reports about \ 
corrupt indexes.
Syntax errors in ALTER TABLE should always return SQLITE_ERROR. In some cases, \ 
they were formerly returning SQLITE_INTERNAL.
JavaScript/WASM:
Fix a corruption-causing bug in the JavaScript "opfs" VFS.
Work around a couple of browser-specific OPFS quirks.
Other minor fixes.
   2024-05-24 06:48:54 by Adam Ciarcinski | Files touched by this commit (6) | Package updated
Log message:
sqlite3: updated to 3.46.0

SQLite Release 3.46.0 On 2024-05-23

Enhance PRAGMA optimize in multiple ways, to make it simpler to use:
PRAGMA optimize automatically implements a temporary analysis limit to prevent \ 
excess runtime on large databases.
Added the new 0x10000 bitmask option to check for updates on all tables.
Automatically re-analyze tables that do not have sqlite_stat1 entries.
Enhancements to the date and time functions:
The strftime() SQL function now supports %G, %g, %U, and %V.
New modifiers 'ceiling' and 'floor' control the algorithm used to resolve \ 
ambiguous dates when shifting a date by an integer number of months and/or \ 
years.
The 'utc' and 'localtime' modifiers are now no-ops if SQLite knows that the time \ 
is already in UTC or in the localtime, respectively.
Add support for underscore ("_") characters between digits in numeric \ 
literals.
Add the json_pretty() SQL function.
Query planner improvements:
The "VALUES-as-coroutine" optimization enables INSERT statements with \ 
thousands of rows in the VALUES clause to parse and run in about half the time \ 
and using about half as much memory.
Allow the use of an index for queries like "SELECT count(DISTINCT col) FROM \ 
...", even if the index records are not smaller than the table records.
Improved recognition of cases where the value of an SQL function is constant \ 
because all its arguments are constant.
Enhance the WHERE-clause push-down optimization so that it is able to push down \ 
WHERE clause terms containing uncorrelated subqueries.
Allocate additional memory from the heap for the SQL parser stack if that stack \ 
overflows, rather than reporting a "parser stack overflow" error.
JSON changes:
Allow ASCII control characters within JSON5 string literals.
Fix the -> and ->> operators so that when the right-hand side operand \ 
is a string that looks like an integer it is still treated as a string, because \ 
that is what PostgreSQL does.
Allow large hexadecimal literals to be used as the DEFAULT value to a table column.
   2024-04-15 18:43:57 by Adam Ciarcinski | Files touched by this commit (6) | Package updated
Log message:
sqlite3: updated to 3.45.3

3.45.3 (2024-04-15):

Fix a long-standing bug (going back to version 3.24.0) that might (rarely) cause \ 
the "old.*" values of an UPDATE trigger to be incorrect if that \ 
trigger fires in response to an UPSERT. Forum post 284955a3cd454a15.
Fix a bug in sum() that could cause it to return NULL when it should return \ 
Infinity. Forum post 23b8688ef4.
Other trifling corrections and compiler warning fixes that have come up since \ 
the previous patch release. See the timeline for details.
   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".