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

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


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

SHA1: 21c391f177ac39750e5a8ac61d07550bf6befb4a
RMD160: 73241e9eb7a3938453e822e4af7ac71099c12f27
Filesize: 12184.77 KB

Version history: (Expand)


CVS history: (Expand)


   2019-04-18 12:10:03 by Adam Ciarcinski | Files touched by this commit (8) | Package updated
Log message:
sqlite3: updated to 3.28.0

SQLite Release 3.28.0:

Enhanced window functions:
Add support the EXCLUDE clause.
Add support for window chaining.
Add support for GROUPS frames.
Add support for "<expr> PRECEDING" and "<expr> \ 
FOLLOWING" boundaries in RANGE frames.
Added the new sqlite3_stmt_isexplain(S) interface for determining whether or not \ 
a prepared statement is an EXPLAIN.
Enhanced VACUUM INTO so that it works for read-only databases.
New query optimizations:
Enable the LIKE optimization for cases when the ESCAPE keyword is present and \ 
PRAGMA case_sensitive_like is on.
In queries that are driven by a partial index, avoid unnecessary tests of the \ 
constraint named in the WHERE clause of the partial index, since we know that \ 
constraint must always be true.
Enhancements to the TCL Interface:
Added the -returntype option to the function method.
Added the new bind_fallback method.
Enhancements to the CLI:
Added support for bound parameters and the .parameter command.
Fix the readfile() function so that it returns an empty BLOB rather than \ 
throwing an out-of-memory error when reading an empty file.
Fix the writefile() function so that when it creates new directories along the \ 
path of a new file, it gives them umask permissions rather than the same \ 
permissions as the file.
Change --update option in the .archive command so that it skips files that are \ 
already in the archive and are unchanged. Add the new --insert option that works \ 
like --update used to work.
Added the fossildelta.c extension that can create, apply, and deconstruct the \ 
Fossil DVCS file delta format that is used by the RBU extension.
Added the SQLITE_DBCONFIG_WRITABLE_SCHEMA verb for the sqlite3_db_config() \ 
interface, that does the same work as PRAGMA writable_schema without using the \ 
SQL parser.
Added the sqlite3_value_frombind() API for determining if the argument to an SQL \ 
function is from a bound parameter.
Security and compatibilities enhancements to fts3_tokenizer():
The fts3_tokenizer() function always returns NULL unless either the legacy \ 
application-defined FTS3 tokenizers interface are enabled using the \ 
sqlite3_db_config(SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER) setting, or unless the \ 
first argument to fts3_tokenizer() is a bound parameter.
The two-argument version of fts3_tokenizer() accepts a pointer to the tokenizer \ 
method object even without the \ 
sqlite3_db_config(SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER) setting if the second \ 
argument is a bound parameter
Improved robustness against corrupt database files.
Miscellaneous performance enhancements
   2019-02-25 19:04:30 by Adam Ciarcinski | Files touched by this commit (6) | Package updated
Log message:
sqlite3: updated to 3.27.2

SQLite Release 3.27.2:
Fix a bug in the IN operator that was introduced by an attempted optimization in \ 
version 3.27.0.
Fix a bug causing a crash when a window function is misused.
Fix various documentation typos
   2019-02-11 11:45:21 by Adam Ciarcinski | Files touched by this commit (8) | Package updated
Log message:
sqlite3: updated to 3.27.1

SQLite Release 3.27.1:
Fix a bug in the query optimizer: an adverse interaction between the OR \ 
optimization and the optimization that tries to use values read directly from an \ 
expression index instead of recomputing the expression.
Hashes:

Changes carried forward from version 3.27.0:
Added the VACUUM INTO command
Issue an SQLITE_WARNING message on the error log if a double-quoted string \ 
literal is used.
The sqlite3_normalized_sql() interface works on any prepared statement created \ 
using sqlite3_prepare_v2() or sqlite3_prepare_v3(). It is no longer necessary to \ 
use sqlite3_prepare_v3() with SQLITE_PREPARE_NORMALIZE in order to use \ 
sqlite3_normalized_sql().
Added the remove_diacritics=2 option to FTS3 and FTS5.
Added the SQLITE_PREPARE_NO_VTAB option to sqlite3_prepare_v3(). Use that option \ 
to prevent circular references to shadow tables from causing resource leaks.
Enhancements to the sqlite3_deserialize() interface:
Add the SQLITE_FCNTL_SIZE_LIMIT file-control for setting an upper bound on the \ 
size of the in-memory database created by sqlite3_deserialize. The default upper \ 
bound is 1GiB, or whatever alternative value is specified by \ 
sqlite3_config(SQLITE_CONFIG_MEMDB_MAXSIZE) and/or SQLITE_MEMDB_DEFAULT_MAXSIZE.
Honor the SQLITE_DESERIALIZE_READONLY flag, which was previously described in \ 
the documentation, but was previously a no-op.
Enhance the "deserialize" command of the TCL Interface to give it new \ 
"--maxsize N" and "--readonly BOOLEAN" options.
Enhancements to the CLI, mostly to support testing and debugging of the SQLite \ 
library itself:
Add support for ".open --hexdb". The "dbtotxt" utility \ 
program used to generate the text for the "hexdb" is added to the \ 
source tree.
Add support for the "--maxsize N" option on ".open \ 
--deserialize".
Add the "--memtrace" command-line option, to show all memory \ 
allocations and deallocations.
Add the ".eqp trace" option on builds with SQLITE_DEBUG, to enable \ 
bytecode program listing with indentation and PRAGMA vdbe_trace all in one step.
Add the ".progress" command for accessing the \ 
sqlite3_progress_handler() interface.
Add the "--async" option to the ".backup" command.
Add options "--expanded", "--normalized", \ 
"--plain", "--profile", "--row", \ 
"--stmt", and "--close" to the ".trace" command.
Increased robustness against malicious SQL that is run against a maliciously \ 
corrupted database.

Bug fixes:
Do not use a partial index to do a table scan on an IN operator.
Fix the query flattener so that it works on queries that contain subqueries that \ 
use window functions.
Ensure that ALTER TABLE modifies table and column names embedded in WITH clauses \ 
that are part of views and triggers.
Fix a parser bug that prevented the use of parentheses around table-valued functions.
Fix a problem with the OR optimization on indexes on expressions.
Fix a problem with the LEFT JOIN strength reduction optimization in which the \ 
optimization was being applied inappropriately due to an IS NOT NULL operator.
Fix the REPLACE command so that it is no longer able to sneak a NULL value into \ 
a NOT NULL column even if the NOT NULL column has a default value of NULL.
Fix a problem with the use of window functions used within correlated subqueries.
Fix the ALTER TABLE RENAME COLUMN command so that it works for tables that have \ 
redundant UNIQUE constraints.
Fix a bug that caused zeroblob values to be truncated when inserted into a table \ 
that uses an expression index.
   2018-12-04 13:03:53 by Adam Ciarcinski | Files touched by this commit (6) | Package updated
Log message:
sqlite3: updated to 3.26.0

SQLite Release 3.26.0:

Optimization: When doing an UPDATE on a table with indexes on expressions, do \ 
not update the expression indexes if they do not refer to any of the columns of \ 
the table being updated.
Allow the xBestIndex() method of virtual table implementations to return \ 
SQLITE_CONSTRAINT to indicate that the proposed query plan is unusable and \ 
should not be given further consideration.
Added the SQLITE_DBCONFIG_DEFENSIVE option which disables the ability to create \ 
corrupt database files using ordinary SQL.
Added support for read-only shadow tables when the SQLITE_DBCONFIG_DEFENSIVE \ 
option is enabled.
Added the PRAGMA legacy_alter_table command, which if enabled causes the ALTER \ 
TABLE command to behave like older version of SQLite (prior to version 3.25.0) \ 
for compatibility.
Added PRAGMA table_xinfo that works just like PRAGMA table_info except that it \ 
also shows hidden columns in virtual tables.
Added the explain virtual table as a run-time loadable extension.
Add a limit counter to the query planner to prevent excessive sqlite3_prepare() \ 
times for certain pathological SQL inputs.
Added support for the sqlite3_normalized_sql() interface, when compiling with \ 
SQLITE_ENABLE_NORMALIZE.
Enhanced triggers so that they can use table-valued functions that exist in \ 
schemas other than the schema where the trigger is defined.
Enhancements to the CLI:
- Improvements to the ".help" command.
- The SQLITE_HISTORY environment variable, if it exists, specifies the name of \ 
the command-line editing history file
- The --deserialize option associated with opening a new database cause the \ 
database file to be read into memory and accessed using the \ 
sqlite3_deserialize() API. This simplifies running tests on a database without \ 
modifying the file on disk.
Enhancements to the geopoly extension:
- Aways stores polygons using the binary format, which is faster and uses less space.
- Added the geopoly_regular() function.
- Added the geopoly_ccw() function.
Enhancements to the session extension:
- Added the SQLITE_CHANGESETAPPLY_INVERT flag
- Added the sqlite3changeset_start_v2() interface and the \ 
SQLITE_CHANGESETSTART_INVERT flag.
- Added the changesetfuzz.c test-case generator utility.
   2018-11-07 12:51:25 by Adam Ciarcinski | Files touched by this commit (5) | Package updated
Log message:
sqlite3: updated to 3.25.3

SQLite Release 3.25.3:
Disallow the use of window functions in the recursive part of a CTE.
Fix the behavior of typeof() and length() on virtual tables.
Strengthen defenses against deliberately corrupted database files.
Fix a problem in the query planner that results when a row-value expression is \ 
used with a PRIMARY KEY with redundant columns.
Fix the query planner so that it works correctly for IS NOT NULL operators in \ 
the ON clause of a LEFT JOIN with the SQLITE_ENABLE_STAT4 compile-time option.
   2018-10-01 10:02:37 by Adam Ciarcinski | Files touched by this commit (6) | Package updated
Log message:
sqlite3: updated to 3.25.2

SQLite Release 3.25.2:
Add the PRAGMA legacy_alter_table=ON command that causes the "ALTER TABLE \ 
RENAME" command to behave as it did in SQLite versions 3.24.0 and earlier: \ 
references to the renamed table inside the bodies of triggers and views are not \ 
updated. This new pragma provides a compatibility work around for older programs \ 
that expected the older, wonky behavior of ALTER TABLE RENAME.
Fix a problem with the new window functions implementation that caused a \ 
malfunction when complicated expressions involving window functions were used \ 
inside of a view.
Fixes for various other compiler warnings and minor problems associated with \ 
obscure configurations.
   2018-09-19 11:38:09 by Adam Ciarcinski | Files touched by this commit (6) | Package updated
Log message:
sqlite3: updated to 3.25.1

SQLite Release 3.25.1:

Extra sanity checking added to ALTER TABLE in the 3.25.0 release sometimes \ 
raises a false-positive when the table being modified has a trigger that updates \ 
a virtual table. The false-positive caused the ALTER TABLE to rollback, thus \ 
leaving the schema unchanged.
The fix in the 3.25.0 release for the endless-loop in the byte-code associated \ 
with the ORDER BY LIMIT optimization did not work for some queries involving \ 
window functions. An additional correction is required.
   2018-09-17 18:14:07 by Adam Ciarcinski | Files touched by this commit (9) | Package updated
Log message:
sqlite3: updated to 3.25.0

SQLite Release 3.25.0:

Add support for window functions
Enhancements the ALTER TABLE command:
- Add support for renaming columns within a table using ALTER TABLE table RENAME \ 
COLUMN oldname TO newname.
- Fix table rename feature so that it also updates references to the renamed \ 
table in triggers and views.
Query optimizer improvements:
- Avoid unnecessary loads of columns in an aggregate query that are not within \ 
an aggregate function and that are not part of the GROUP BY clause.
- The IN-early-out optimization: When doing a look-up on a multi-column index \ 
and an IN operator is used on a column other than the left-most column, then if \ 
no rows match against the first IN value, check to make sure there exist rows \ 
that match the columns to the right before continuing with the next IN value.
- Use the transitive property to try to propagate constant values within the \ 
WHERE clause. For example, convert "a=99 AND b=a" into "a=99 AND \ 
b=99".
Use a separate mutex on every inode in the unix VFS, rather than a single mutex \ 
shared among them all, for slightly better concurrency in multi-threaded \ 
environments.
Enhance the PRAGMA integrity_check command for improved detection of problems on \ 
the page freelist.
Output infinity as 1e999 in the ".dump" command of the command-line shell.
Added the SQLITE_FCNTL_DATA_VERSION file-control.
Added the Geopoly module

Bug fixes:
The ORDER BY LIMIT optimization might have caused an infinite loop in the byte \ 
code of the prepared statement under very obscure circumstances, due to a \ 
confluence of minor defects in the query optimizer.
On an UPSERT when the order of constraint checks is rearranged, ensure that the \ 
affinity transformations on the inserted content occur before any of the \ 
constraint checks.
Avoid using a prepared statement for ".stats on" command of the CLI \ 
after it has been closed by the ".eqp full" logicc.
The LIKE optimization was generating incorrect byte-code and hence getting the \ 
wrong answer if the left-hand operand has numeric affinity and the \ 
right-hand-side pattern is '/%' or if the pattern begins with the ESCAPE \ 
character.