Revision history for Perl extension SystemC::Vregs

The contributors that suggested a given feature are shown in [].

* Vregs 1.463 2009/05/19

**	This package is now licensed under LGPL v3 and/or Artistic v2.0.

****	Pass "Hardwired" comments into .vregs file. [Brian Cassell]

* Vregs 1.462 2009/02/25

***	Fix extra semicolons on declarations, rt43629. [Mark Pettigrew]

****	Fix test compile error on cygwin, bug69. [Yoram Stern]

* Vregs 1.461 2009/01/05

****	Support define document sections with empty category names.

****	Allow multilineL/R in descriptions.  [Mat Zeno]

* Vregs 1.460 2008/09/15

**	Vreg now does not create files by default.  Use --files
	to get all files, or specific flags to enable each output.

***	VregsRegEntry now includes register attribute string.

***	With -nofielddefines attribute, suppress class and field definitions.
	This avoids the almost duplicate defines for derived registers.

***	With -packholes attribute, reduce VregsRegInfo memory usage
	on registers with large spacing between entries. [Brian Cassell]

****	Allow package attributes to set values.

****	Fix CM# defines with registers over 32 bits.  [Vasu Arasanipalai]

****	Fix Perl warning when registers have no bits.  [by Vasu Arasanipalai]

* Vregs 1.450 2008/1/3

***	Added vreg_latex2html program.

****	Update Latex example to use tablex and environments.

****	When HTML errors are found, report line numbers instead of char#.

****	Fix HTML::Parser missing occasional characters.

****	Fix tests under 32bit GCC 4.1.2 systems.  [Bernd Weber]

* Vregs 1.441 2007/11/8

***	Added Latex output, and associated examples.

****	Fix parsing attributes in define sections.

****	Fix propagating attributes across wildcarded types.  [Mat Zeno]

****	Fix deleting registers when related types are deleted. [Brian Cassell]

* Vregs 1.440 2007/4/6

***	Allow free-form define values such as doubles.  [Larry Stewart]

***	Use single underscore instead of __ to separate sub-ENUM expansions.

****	Fix --help to use Pod::Usage instead of depreciated pod2text.

* Vregs 1.430 2007/1/2

***	Add vreg --if-product option and Product column.
	This allows the same specification to be used for multiple revisions
	of registers, with output selectable at vregs run time.

***	Add vreg --change-diff option for preventing changes.

***	Add vreg --filename-* options for changing output filenames.

* Vregs 1.421 2006/10/17

***	Warn if specified ending addresses are incorrect.  [Peter Holmes]

***	Create 64-bit perl constants wrapped in 'no warnings'. [Bryce Denney]

***	Add CBitFields example outputter.  [Igor]

* Vregs 1.420 2006/5/19

***	Add vreg -dry-run option.

***	The vreg_write fuction is now replaced with the
	SystemC::Vregs::Output::Layout->new->write function to match the
	other outputters.  For backward compatibility, the regs_write
	function still works.

* Vregs 1.410 2006/4/18

**	Change all VregsRegInfo classes to support 64 bit registers.

**	Always include RAE_, RAC_ and RRP_ for non-arrays.  [Larry Stewart]

**	Wrap 64-bit ULL numbers to appease Microsoft Visual C.  [Aaron Brooks]

***	Allow bus subscripts in attributes.  [Matt Reilly]

****	Tabify all output files.

* Vregs 1.400 2006/3/6

**	The package SystemC::Vregs::Outputs has been removed, and split
	into independent package for each output file type.  This makes it
	easier make new output formats by coping an existing Output/*.pm
	module.

***	Vderegs now uses host byte order by default.
	Use "netorder" and "hostorder" commands to flip this mode.

* Vregs 1.320 2006/1/16

**	Lowercase first letter of _struct.h accessor functions.

**	Add Gnu Assembler format.

***	With --public_rdwr_accessors attributes, make _private functions
	in public: section for read-only or write-only bits.  [Peter Holmes]

***	With -v2k, parameters will now exceed 32 bits when appropriate.

***	Add valid() methods to enums.  [Bobby Woods-Corwin]

****	Fix uint8_t shift deposit problems.  [Bryce Denney]

* Vregs 1.310 2005/9/20

**	Add _struct.h files for C (not C++) use.  [Larry Stewart]

***	Add enumeration iterators for walking valid values.  [Dale Bertrand]

***	Allow register spacing and bounds to exceed 32 bits.

***	Add SystemC::Language::CPP, now separate from SystemC::Language::C.

* Vregs 1.301 2005/7/27

***	Create parameters for 'define's to allow bit extraction. [Bryce Denney]

***	Fix wBitMaskWritable() with > 32 bit registers.

* Vregs 1.300 2005/6/17

**	Added vderegs program, for dumping structures.

**	The previous _named.cpp/.h files are now part of the _info.cpp/h files.
	Any programs which used these needs to modify their include list.

***	Read attribute columns from Enum value tables.  [Larry Stewart]

***	Added Lisp to Verilog::Language formats.  [Larry Stewart]

****	Added warning when define/enum value exceeds field width.

****	Fix Latex2html documents getting mismerged register attributes.

* Vregs 1.261 2005/5/23

***	In classes, support h# and d# for 16 & 64-bit words. [Jud Leonard]

****	Add enum attribute --allowlc for lower case enums.  [Bryce Denney]

****	Fix class header packing on 64 bit architectures.  [Bryce Denney]

****	Better use of tabs in .vregs output file.

* Vregs 1.260 2005/3/1

***	With -v2k attribute, use localparam instead of parameter.

***	Add Doxygen comments to C++ sources.

* Vregs 1.250 2005/1/13

**	NEWS is now renamed Changes, to support CPAN indexing. [Offer Kaye]

***	Support Unicode decoding in Perl 5.8.0

***	Support latex2html documents.

****	Fix 64-bit compile warnings.

* Vregs 1.246 2004/10/23

***	Support Star Office documents.

* Vregs 1.245 2004/7/22

***	Add operator!= to enum classes for GCC 3.0

***	Support parsing of Netscape Composer documents.  [Reed Lawson]

* Vregs 1.244 2004/1/27

****	Documentation fixes.

* Vregs 1.243 2003/10/30

***	Add before_any_file rule.

****	Documentation fixes.  [Mike Castle]

* Vregs 1.242 2003/9/4

**	Allow classes to have fields which are expanded from other classes.
	For an example, see "ExClass" in vregs_spec.doc. [John DeRoo]

***	Add CRESET_ defines for the default values of non-zero, non-bool fields.
	[John DeRoo]

* Vregs 1.241 2003/6/9

***	Added error if a derived class is extended to more words than its base
	class.  Use the '-stretchable' attribute on the base class to disable this.
	Also check at runtime the word set methods, unless -stretchable is used.

***	Added enum values to parameter files
	These include a enum declaration for Synopsys and the author's
	verilog-mode for emacs.  This allows the enumeration values to be
	decoded into verilog strings.  [John DeRoo]

****	With vspec --rm switch, remove MS Word change bar comments
	This enables use of wvHtml to convert MSWord doc files to html.

****	Attributes in special columns of register bits are now passed
	through into .vregs files.  [Tom Levergood]

****	Fix structs referencing structs declared later in the same package.

****	Add/drop leading 0s in define values to make correctly widthed numbers.

* Vregs 1.240 2002/12/13

**	Added subclassing of enumerations.
	A enumeration can now reference another enumeration, and all values under the
	lower enumeration will be included in the upper enumeration.

**	Added a castHBytep() or castNBytep() method to each structure.
	For safety, use it in place of reinterpret_cast<uint8_t*>(&struct)
	to avoid endian-ness mistakes.

**	Added support for registers wider than 32 bits.

**	Renamed "vregs" executable to "vreg" to avoid Win2K conflict
	with uppercase directory by the same name.

**	Allow -descfunc attribute on enums to create a function to get description name

***	Added error when a struct of one endian-ness inherits a struct of
	opposite endian-ness.  Use "-[no]netorder" on derived type to fix it.

****	Fixed propagation of attributes across wildcarded classes.

****	Fixed decimal reset values in VregsRegInfo classes.

* Vregs 1.230 2002/8/8

**	Added --noregtest attribute to registers, for suppressing testing.

***	Added _hash.pm output file, for easy conversion of enum
	values to/from text descriptions.

***	Make m_w data storage protected.  Use w() accessors instead.

****	Warn about empty bit descriptions.

****	Added dump() methods for internal debugging.

* Vregs 1.210 2002/3/11

***	Allow duplicate enumeration values.  The ascii() method will
	print the first sorted enumeration text.

****	Fix ORing in of ranged addresses.  [Greg Waters]

* Vregs 1.200 2001/11/26

**	Allow replacement of enumeration before/after rules.

***	Fixed bug where enumerations in registers would cause wrong
	reset value in _info.cpp

***	Made sizes in vregs_info be a 64 bit integer.

**	Added macros for compile-time hooks to add debugging checks, listed
	below.  See them in include/VregsClass.h.

***	Define VREGS_ENUM_DEF_INITTER(badValue) to make the default ctor
	for enum-classes initialize the enum.  Otherwise it's undefined.

***	Define VREGS_SETFIELD_CHK(str,val,u_max) to validate the argument
	before stuffing it into struct.field "str".  Otherwise Vregs classes
	silently truncate the argument.

***	Define VREGS_STRUCT_DEF_CTOR(TypeName, numWords) if you want structs
	to have a default constructor, e.g. to initialize the words to
	0xdeadbeef.  Otherwise Vregs structs are initially undefined (just
	like a C++ array of uint32_t).

****	Changed enumeration ascii() default to "?E" instead of "%E"

* Vregs 1.100 2001/10/18

**	Added rules for .cpp files: before_enum_cpp,
	after_enum_cpp, before_class_cpp, after_class_cpp.

***	Made RBASEA_ and RBASEAE_ defines from common prefix
	existing across multiple registers.  RBASEAM_ is a power-of-two
	mask for extracting that range.

***	Classes which have a smaller base class now have the
	correct sizeof(), previously they would have the base's sizeof.

***	Non-contiguous fields are now postfixed with a number instead
	of prefixed.  Thus CR1_Reg_Field and CR2_Reg_Field become
	CR_Reg_Field_1 and CR_Reg_Field_2.

***	Fields that extend beyond 32 bits now get additional defines
	with the word number enclosed in them.  This allows for easy
	extraction from 32-bit busses.

****	Comment columns in register definitions now become attributes.
	This allows other parsers to pick off the fields they need.

****	Fixed E_ enum defines to be in hex, not decimal.

* Vregs 1.000 2001/9/03

**	First publicized release.

***	Added ENUM ascii() methods to cpp instead of inlined .h

* Vregs 0.1 2001/6/27

****	Package Released as Beta

----------------------------------------------------------------------
DESCRIPTION: Documentation on change history for this package
----------------------------------------------------------------------

This uses outline mode in Emacs.  See C-h m [M-x describe-mode].

Copyright 2001-2009 by Wilson Snyder.  This program is free software; you
can redistribute it and/or modify it under the terms of either the GNU
Lesser General Public License Version 3 or the Perl Artistic License
Version 2.0.

Local variables:
mode: outline
paragraph-separate: "[ 	\f\n]*$"
end:
