History of the SpecC Reference Compiler:

			SpecC Reference Compiler (SCRC)

Releases, publications, important changes:

Apr 15, 1997:	Technical Report ICS-TR-97-15
		"The SpecC+ Language"
		Daniel D. Gajski, Jianwen Zhu, Rainer Doemer

Apr, 1997:	Technical Report ICS-TR-97-16
		"Syntax and Semantics of the SpecC+ Language"
		Jianwen Zhu, Rainer Doemer, Daniel D. Gajski

Jul 29, 1997:	Release 1.0
		- "quick" implementation by Jianwen Zhu based on SUIF

Aug 20, 1997:	Start of implementation for version 2.0

Sep 04, 1997:	Name changes: "SpecC+" is simplified to "SpecC",
		"actor" becomes "behavior"

Dec, 1997:	Paper at SASIMI'97
		"Syntax and Semantics of the SpecC Language"
		Jianwen Zhu, Rainer Doemer, Daniel D. Gajski

Dec 10, 1997:	Release 2.0 alpha (V1.9.7)
		- first internal release (for project members only)
		- current features: SpecC parser, basic internal
		  representation with im- and export (.sir files)
		- missing features: full type checking, full bitvector
		  support, deparser, simulation model, refinement tools

Mar 11, 1998:	Release 2.0 beta (V1.9.8)
		- second internal release (for project members only)
		- completely restructured data structure
		- initial simulator run-time library
		- missing features: full type checking, full bitvector
		  support, deparser, simulation model, refinement tools

Mar 31, 1998:	Technical Report ICS-TR-98-13
		"The SpecC Language Reference Manual"
		Rainer Doemer, Jianwen Zhu, Daniel D. Gajski

May 21, 1998:	Release 2.0 gamma (V1.9.9)
		- last pre-release (for project members only)
		- now bitvectors are supported

Jun, 1998:	Internal Technical Report
		"The SpecC Internal Representation"
		Rainer Doemer

Jun 03, 1998:	Release 2.0 (V2.0.0)
		- first official release
		- SpecC compiler with SpecC simulation library,
		  documentation and examples
		- limitations: type checking incomplete, translation
		  of do-timing construct not implemented, no support
		  of automatic refinement
		- 57687 lines of code

Sep 16, 1998:	Release 2.0.1 (V2.0.1)
		- new features: support for "real" netlists (concatenated
		  bitslices in port maps), extended SIR with explicit
		  hierarchy for behaviors and channels (improved interface
		  for refinement tools), better semantic checking (port maps),
		  updated documentation, more examples
		- several (serious) bug fixes
		- 64053 lines of code

Nov 25, 1998:	Release 2.0.2 (V2.0.2)
		- initial toolset for SIR files: sir_list, sir_tree,
		  sir_rename, sir_strip
		- improved source-level debugger support
		- improved C++ code generation (new structure)
		- support for IP components (behavior/channel declaration
		  linked with IP simulation library)
		- new example demonstrating library and IP issues
		- specification of a new API for the SIR (Layer 2) with
		  partial implementation
		- implementation of SIR garbage collector
		- bug fix in simulation runtime library for detecting
		  deadlock conditions (program abortion with warning)
		- bug fix for binary import of files
		- bug fixes to solve severe name space and scoping
		  problems within classes
		- bug fix in C++ code generation (declaration order)
		- bug fix to prohibit C++ keywords from being used
		  as identifiers or labels
		- several other bug fixes
		- 84166 lines of code

Dec 31, 1998:	Release 2.0.3 (V2.0.3)
		- new SIR tools: sir_delete, sir_note
		- implementation of do-timing construct
		- improved semantic checking of types, etc.
		- complete implementation of SIR API, layer 2
		- several minor bug fixes
		- 97612 lines of code

Jan 19, 1998:	Internal Technical Report
		"The SpecC Internal Representation", 2nd edition
		Rainer Doemer

Apr 20, 1999:	New system maintenance style
		- development trees moved to dedicated SpecC account
		- revision control enabled (CVS)

June 20, 1999:	Release 2.0.4 (V2.0.4)
		- SpecC profiler implemented and integrated (sprof)
		- SpecC system changed to use shared libraries (by default)
		- SpecC compiler extended (e.g. IP mode) and options cleaned up
		- SIR documentation updated
		- manual pages extended and updated
		- SpecC system test bench extended
		- more examples added (traffic light controller, etc.)
		- numerous, serious bugs fixed (scc, SIR, libsim, libbit)
		- several minor changes applied and system fine tuned
		- 105432 lines of code

November 15, 1999: Release 2.0.5 (V2.0.5)
		- several minor bug fixes
		- added scheduling tools
		- 116954 lines of code

March, 2000:	SpecC Book, Kluwer, ISBN 0-7923-7822-9 ("green book")
		"SpecC: Specification Language and Methodology"
		D. Gajski, J. Zhu, R. Doemer, A. Gerstlauer, S. Zhao

January 31, 2001: Release 2.0.6 (V2.0.6)
		- replaced libg++ with our own String.cc/String.h
		- fixed serious bugs (event queue handling, piped bit vectors)
		- reworked interrupt and trap handling
		- minor other bug fixes
		- 119215 lines of code

May 2001:	2nd SpecC book, Kluwer, ISBN 0-7923-7387-1 ("yellow book")
		"System Design: A Practical Guide with SpecC"
		A. Gerstlauer, R. Doemer, J. Peng, D. Gajski

May 24, 2001:	Branch for SpecC Reference Compiler (SCRC)
		- reference compiler and simulator based on SpecC base
		- reference implementation of SpecC LRM 1.0 as defined by STOC
		- no refinement tools
		- very limited documentation and examples
		- no support for refinement (no API2)
		- no binary import/export

June 1, 2001:	SpecC Reference Compiler Release 1.0 (V1.0)
		- compliance with the SpecC language standard 1.0
		- brand new simulation engine with compliance test bench
		- non-native support for 'long long' types
		- major improvement of bit vector types
		- improved 'pipe' construct (pipeline flushing)
		- elimination of the obsolete 'delta' construct
		- non-native support of array assignment
		- support for open and constant port mappings
		- support for source code import/export
		- implicit initialization of static variables
		- semantic checking of port accesses/connections
		- many bug fixes
		- 71675 lines of code

August 6, 2001:	SpecC Reference Compiler Release 1.1 (V1.1)
		- patch release with bug fixes and support of RedHat 7.1
		- bug fix for nested struct/union definitions
		- acknowledge new C++ keywords 'and', 'or', 'xor, etc.
		- improved semantic checking for port declarations
		- several minor fixes and cosmetic changes
		- 71914 lines of code

Janurary 3, 2002: SpecC Reference Compiler Release 1.2 (V1.2)
		- new support of Win32 based threads (CygWin platform)
		- major improvement in code generator for better read-
		  and debug-ability (new compiler options -st, -sT, -sw)
		- improved semantic checking in compiler frontend
		- improved ANSI C++ compatibility of sources (gcc 3.0.x)
		- several bug fixes (including serious ones)
		- 76037 lines of code

June 13, 2002:	SpecC User Group Meeting (organized by STOC)
		at 39th Design Automation Conference, New Orleans, 2004
		- Official introduction of "SpecC Language Version 2.0"

September 23, 2002: Release 2.2.0 alpha (V2.2.a)
		- initial support for SpecC language version 2.0:
			- SpecC standard channel library introduced
			- support for local states in 'fsm' construct
			- support for 'wait' with AND-semantics
			- support for notational short-cuts
			- support for composite annotations
			- basic support for 'signal' and 'buffered' variables
		- major improvements in semantic checking
		- numerous SIR API extensions and improvements
		- numerous limitations eliminated
		- numerous serious bugs fixed
		- 146439 lines of code (base package)

December 12, 2002: SpecC Language Version 2.0 officially approved
			by the SpecC Technology Open Consortium

April 14, 2003:	Stable snapshot towards Release 2.2.0 beta (V2.2.b)
		- full support of SpecC language version 2.0:
			- full support for 'signal' and 'buffered' variables
			  (including sliced and/or concatenated port maps)
			- support for 'rising' and 'falling' edges of signals
			- full support of 'fsmd' statement
		- new SpecC Language Reference Manual Version 2.0 included
		- numerous serious bug fixes
		- 174030 lines of code (base package)

December, 2003: Snapshot towards Release 2.2.0 gamma (V2.2.c)
		- initial support for SpecC language version 2.1
			- 'after' and 'piped' clauses in 'fsmd'
		- new SIR features
			- new scope checking in SIR API 2
			- new parent statement pointers
			- clear distinction between functions and methods
		- tighter semantic checking
			- scoping of 'case', 'continue', 'break' statements,
			- well-restricted 'switch'-'case'-'default' in 'fsmd'
			- state-transition analysis in 'fsmd'
		- numerous bug fixes
		- 180443 lines of code (base package)

June 24, 2004:	SpecC Reference Compiler Release 2.0 (V2.0)
		- first open source release of version 2.0 language standard
		- complete support of SpecC language version 2.0
		- optional support for 'piped' and 'after' clauses 'fsmd'
		- includes SpecC standard channel library
		- 115742 lines of code

September 28, 2006: SpecC Reference Compiler Release 2.1 (V2.1)
		- bug fixes
		    - bit vector library
			- added overloaded copy and copy-assignment
			  (for subclassing)
			- added virtual destructor to template class 'bit'
			- added few explicit casts to constants of 'short' type
			- fixed test of correct size calculations for alignment
			- fixed DEBUG tests to make more platform independent
			- fixed two syntax errors (too many closing parentheses)
		    - global
                        - reorganized and renamed global type names
			- bug fixes for DOS-style EOL
		    - internal representation
			- bug fix: pointers/arrays are allowed in ? selection,
			  added new testcases
			- bug fix: pointer subtraction is allowed
			  (results in 'int'), added new testcases
		    - parser
		        - applied rules A2.5.1 by K&R to integer constants
		    - synchronization library
			- fixed c_typed_double_handshake.sh
			  (made receiver wait for its own 'ack' such that both
			  receiver and sender exit in the same synch. cycle)
		- 116559 lines of code

Dec. 15, 2014:	SpecC Reference Compiler Release 2.2 (V2.2)
		- many fixes for modern compilers and Linux architectures
		- specific header file patches for Fedora4, Fedora12,
		  RedHatEL3, RedHatEL4, RedHatEL5, RedHatEL6, and Ubuntu8
		- 128699 lines of code

Rainer Doemer, December 15, 2014.

Last modification date: Monday, 15-Dec-2014 15:19:41 PST