
History of the SpecC system:
----------------------------

	==========================================================
				  SpecC
	==========================================================


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

Jun, 1997:	Technical Report ICS-TR-97-26
		"Essential Issues in Codesign"
		Daniel D. Gajski, Jianwen Zhu, Rainer Doemer

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"

Oct, 1997:	Book chapter, Kluwer, ISBN 0-7923-8013-4
		"Essential Issues in Codesign"
		Daniel D. Gajski, Jianwen Zhu, Rainer Doemer
		in "Hardware/Software Co-Design: Principles and Practice"
		(edited by J. Staunstrup and W. Wolf)

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, 1998:	Technical Report ICS-TR-98-07
		"Methodology for Design of Embedded Systems"
		Daniel D. Gajski, Gaurav Aggarval, En-Chou Chang,
		Rainer Doemer, Tadatoshi Ishii, Jon Kleinsmith, Jianwen Zhu

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:	Article in it+ti magazine 3/98, Germany
		"Specification and Design of Embedded Systems"
		Rainer Doemer, Daniel D. Gajski, Jianwen Zhu

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

Aug, 1998:	Workshop contribution NATO-ASI
		"IP-centric Methodology and Design with the SpecC Language"
		Daniel D. Gajski, Rainer Doemer, Jianwen Zhu

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)

May, 1999:	Book chapter, Kluwer, ISBN 0-7923-5748-5
		"IP-Centric Methodology and Design with the SpecC Language"
		Daniel D. Gajski, Rainer Doemer, Jianwen Zhu
		in "System-Level Synthesis"
		(edited by A. Jerraya, J. Mermet)

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
		- many bug fixes
		- 71675 lines of code


Rainer Doemer, May 31, 2001.
