X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/aea10ef46f726371c21e99d2bfb78c1ab891f73d..b0d79ec65d0c92bd3afe377307206a48544285ca:/ChangeLog?ds=sidebyside

diff --git a/ChangeLog b/ChangeLog
index 3ea95f18..50ef9d0a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,13 +1,299 @@
+2008-11-15  Akim Demaille  <demaille@gostai.com>
+
+	Comment changes.
+	* data/local.mk, etc/local.mk, examples/local.mk: Use Automake
+	comments for the license.
+
+2008-11-15  Akim Demaille  <demaille@gostai.com>
+
+	Remove tests/Makefile.am.
+	* tests/Makefile.am: Rename as...
+	* tests/local.mk: this.
+	* Makefile.am, configure.ac: Adjust.
+	* Makefile.am (DISTCLEANFILES): Define.
+	(maintainer-check, maintainer-xml-check, maintainer-push-check):
+	Remove, we no longer need to bounce to the real targets.
+
+2008-11-15  Akim Demaille  <demaille@gostai.com>
+
+	Comment changes.
+
+2008-11-15  Akim Demaille  <demaille@gostai.com>
+
+	djgpp/local.mk.
+	* Makefile.am (EXTRA_DIST): Move djgpp related part to...
+	* djgpp/local.mk: this new file.
+
+2008-11-15  Akim Demaille  <demaille@gostai.com>
+
+	Remove doc/Makefile.am.
+	* doc/Makefile.am: Rename as...
+	* doc/local.mk: this.
+	Adjust paths
+	* Makefile.am, configure.ac: Adjust.
+	* Makefile.am (MOSTLYCLEANFILES): New.
+	* src/local.mk: Adjust.
+
+2008-11-15  Akim Demaille  <demaille@gostai.com>
+
+	Move sc_tight_scope into maint.mk.
+	It does not work, and I don't know how it was supposed to work: it seems
+	to be looking for sources in the build tree.  I just moved it at a better
+	place, fixing it is still required.
+	
+	* src/local.mk (echo): Remove.
+	(sc_tight_scope): Move to...
+	* maint.mk: here.
+
+2008-11-15  Akim Demaille  <demaille@gostai.com>
+
+	Regen.
+	* src/parse-gram.h, src/parse-gram.h: Regen.
+
+2008-11-15  Akim Demaille  <demaille@gostai.com>
+
+	Remove src/Makefile.am.
+	* src/Makefile.am: Rename as...
+	* src/local.mk: this.
+	Prefix all the paths with src/.
+	(AUTOMAKE_OPTIONS): Build object files in the sub dirs.
+	(AM_CPPFLAGS): Find find in builddir/src.
+	(YACC): Move the flags into...
+	(AM_YFLAGS): here.
+	* maint.mk (sc_tight_scope): Disable.
+	It used to bounce to the version in src/Makefile.am which is now
+	part of this very Makefile.
+	* Makefile.am, configure.ac: Adjust.
+	* src/scan-code-c.c, src/scan-code.l: We can no longer rely on
+	include "..." to find files "here": we are no longer in src/, so
+	qualify the includes with src/.
+	* doc/Makefile.am (PREPATH): No longer include the top_builddir
+	prefix.
+	(.x.1): Adjust to be able to create src/foo from the top level
+	Makefile, instead of going bounce to src/Makefile the creation of
+	foo.
+
+2008-11-15  Akim Demaille  <demaille@gostai.com>
+
+	Remove useless variable.
+	* doc/Makefile.am (srcsrcdir): Remove.
+
+2008-11-15  Akim Demaille  <demaille@gostai.com>
+
+	Remove data/Makefile.am.
+	* data/Makefile.am: Rename as...
+	* data/local.mk: this.
+	Adjust paths.
+	* Makefile.am, configure.ac: Adjust.
+
+2008-11-15  Akim Demaille  <demaille@gostai.com>
+
+	Remove etc/Makefile.am.
+	* etc/Makefile.am: Rename as...
+	* etc/local.mk: this.
+	Adjust.
+	* Makefile.am, configure.ac: Adjust.
+
+2008-11-15  Akim Demaille  <demaille@gostai.com>
+
+	Remove examples/local.mk.
+	examples/calc++/Makefile.am might be interesting to keep as is, since
+	it is an example in itself.
+
+	* examples/Makefile.am: Rename as...
+	* examples/local.mk: this.
+	Adjust.
+	* Makefile.am, configure.ac: Adjust.
+
+2008-11-15  Akim Demaille  <demaille@gostai.com>
+
+	Remove build-aux/Makefile.am.
+	Recursive Makefiles are really way too slow, let's get rid of some of
+	them.
+
+	* build-aux/Makefile.am: Rename as...
+	* build-aux/local.mk: this.
+	Adjust paths.
+	* Makefile.am, configure.ac: Adjust.
+
+2008-11-15  Akim Demaille  <demaille@gostai.com>
+
+	Provide convenience constructors for locations and positions.
+	* data/location.cc (position::position): Accept file, line and
+	column as arguments with default values.
+	Always qualify initial line and column literals as unsigned.
+	(location::location): Provide convenience constructors.
+
+2008-11-15  Akim Demaille  <demaille@gostai.com>
+
+	Instead of using make_symbol<TOK_FOO>, generate make_FOO for each token type.
+	Using template buys us nothing, and makes it uselessly complex to
+	construct a symbol.  Besides, it could not be generalized to other
+	languages, while make_FOO would work in C/Java etc.
+
+	* data/lalr1.cc (b4_symbol_): New.
+	(b4_symbol): Use it.
+	(b4_symbol_constructor_declaration_)
+	(b4_symbol_constructor_definition_): Instead of generating
+	specializations of an overloaded template function, just generate
+	several functions whose names are forged from the token names
+	without the token.prefix.
+	(b4_symbol_constructor_declarations): Generate them for all the
+	symbols, not just by class of symbol type, now that instead of
+	specializing a function template by the token, we generate a
+	function named after the token.
+	(b4_symbol_constructor_specialization_)
+	(b4_symbol_constructor_specializations): Remove.
+	* etc/bench.pl.in: Adjust to this new API.
+
+2008-11-13  Akim Demaille  <demaille@gostai.com>
+
+	%define token.prefix.
+	Provide a means to add a prefix to the name of the tokens as output in the
+	generated files.  Because of name clashes, it is good to have such a
+	prefix such as TOK_ that protects from names such as EOF, FILE etc.
+	But it clutters the grammar itself.
+
+	* data/bison.m4 (token.prefix): Empty by default.
+	* data/c.m4 (b4_token_enum, b4_token_define): Use it.
+	* data/lalr1.cc (b4_symbol): Ditto.
+
+2008-11-13  Akim Demaille  <demaille@gostai.com>
+
+	Compute at M4 time some of the subtractions.
+	* data/lalr1.cc (b4_substract): New.
+	(b4_rhs_data): Use it.
+
+2008-11-13  Akim Demaille  <demaille@gostai.com>
+
+	symbol::token.
+	This is allows the user to get the type of a token return by
+	yylex.
+
+	* data/lalr1.cc (symbol::token): New.
+	(yytoknum_): Define when %define lex_symbol, independently of
+	%debug.
+	(yytoken_number_): Move into...
+	(symbol::token): here, since that's the only use.
+	The other one is YYPRINT which was not officially supported
+	by lalr1.cc, and anyway it did not work since YYPRINT uses this
+	array under a different name (yytoknum).
+
+2008-11-13  Akim Demaille  <demaille@gostai.com>
+
+	YYERRCODE.
+	* TODO (YYERRCODE): Mention the case of $undef.
+
+2008-11-13  Akim Demaille  <demaille@gostai.com>
+
+	TODO: YYPRINT.
+	* TODO (YYPRINT): New.
+
+2008-11-13  Akim Demaille  <demaille@gostai.com>
+
+	Comment changes.
+	* data/lalr1.cc, data/yacc.c: Fix the description of the
+	yytranslate and yytoknum tables.
+
+2008-11-13  Akim Demaille  <demaille@gostai.com>
+
+	Define make_symbol in the header.
+	To reach good performances these functions should be inlined (yet this is
+	to measure precisely).  To this end they must be available to the caller.
+
+	* data/lalr1.cc (b4_symbol_constructor_definition_): Qualify
+	location_type with the class name.
+	Since will now be output in the header, declare "inline".
+	No longer use b4_symbol_constructor_specializations, but
+	b4_symbol_constructor_definitions in the header.
+	Don't call it in the *.cc file.
+
+2008-11-13  Akim Demaille  <demaille@gostai.com>
+
+	Define yytranslate in the header for lex_symbol.
+	* data/lalr1.cc: Move the invocation of b4_yytranslate_definition
+	into the header file when using %define lex_symbol.
+	(yytranslate_): Declare inline.
+
+2008-11-13  Akim Demaille  <demaille@gostai.com>
+
+	Define the constructors of symbol_type in b4_symbol_constructor_definitions.
+	The constructors are called by the make_symbol functions, which a
+	forthcoming patch will move elsewhere.  Hence the interest of putting them
+	together.
+
+	The stack_symbol_type does not need to be moved, it is used only by the
+	parser.
+
+	* data/lalr1.cc: Move symbol_type and symbol_base_type
+	constructors into...
+	(b4_symbol_constructor_definitions): here.
+	Adjust.
+
+2008-11-13  Akim Demaille  <demaille@gostai.com>
+
+	Make it easier to move the definition of yytranslate_.
+	Forthcoming changes will make it possible to use yytranslate_
+	from outside the parser implementation file.
+
+	* data/lalr1.cc (b4_yytranslate_definition): New.
+	Use it.
+
+2008-11-13  Akim Demaille  <demaille@gostai.com>
+
+	Remove useless class specification.
+	* data/lalr1.cc (b4_symbol_constructor_specialization_): No need
+	to refer to the class name to use a type defined by the class for
+	arguments of member functions.
+
+2008-11-13  Akim Demaille  <demaille@gostai.com>
+
+	Finer input type for yytranslate.
+	This patch is debatable: the tradition expects yylex to return an int
+	which happens to correspond to token_number (which is an enum).  This
+	allows for instance to return characters (such as '*' etc.).  But this
+	goes against the stronger typing I am trying to have with the new
+	lex interface which return a symbol_type.  So in this case, feed
+	yytranslate_ with a token_type.
+
+	* data/lalr1.cc (yytranslate_): When in %define lex-symbol,
+	expect a token_type.
+
+2008-11-13  Akim Demaille  <demaille@gostai.com>
+
+	Honor lex-params in %define lex_symbol mode.
+	* data/lalr1.cc: Use b4_lex_param.
+
+2008-11-13  Akim Demaille  <demaille@gostai.com>
+
+	Simplify names.
+	* src/output.c (symbol_definitions_output): Rename symbol
+	attributes type_name and has_type_name as type and has_type.
+	* data/lalr1.cc: Adjust uses.
+
+2008-11-13  Akim Demaille  <demaille@gostai.com>
+
+	Use b4_type_names for the union type.
+	The union used to compute the size of the variant used to iterate over the
+	type of all the symbols, with a lot of redundancy.  Now iterate over the
+	lists of symbols having the same type-name.
+
+	* data/lalr1.cc (b4_char_sizeof_): New.
+	(b4_char_sizeof): Use it.
+	Adjust to be called with a list of numbers instead of a single
+	number.
+	Adjust its caller for new-line issues.
+
 2008-11-13  Akim Demaille  <demaille@gostai.com>
 
 	Define the "identifier" of a symbol.
 	Symbols may have several string representations, for instance if they
 	have an alias.  What I call its "id" is a string that can be used as
 	an identifier.  May not exist.
-	
+
 	Currently the symbols which have the "tag_is_id" flag set are those that
 	don't have an alias.  Look harder for the id.
-	
+
 	* src/output.c (is_identifier): Move to...
 	* src/symtab.c (is_identifier): here.
 	* src/symtab.h, src/symtab.c (symbol_id_get): New.
@@ -153,7 +439,7 @@
 	not work well in C++ (unless the parameter also appears as an argument,
 	which is not acceptable), hence the use of a function instead of a
 	constructor.
-	
+
 	* data/lalr1.cc (b4_symbol_constructor_declaration_)
 	(b4_symbol_constructor_declarations)
 	(b4_symbol_constructor_specialization_)