savant update


Subject: savant update
From: Dale Martin (dmartin@ECECS.UC.EDU)
Date: Wed Oct 31 2001 - 15:31:10 MST


Update of /home/paw/CVS/savant/src/aire/iir/IIRScram
In directory gatekeeper.ececs.uc.edu:/tmp/cvs-serv5804/src/aire/iir/IIRScram

Modified Files:
        IIRScram.cc IIRScram.hh IIRScram_AccessTypeDefinition.cc
        IIRScram_AdditionOperators.cc IIRScram_Aggregate.cc
        IIRScram_AliasDeclaration.cc
        IIRScram_ArchitectureDeclaration.cc
        IIRScram_ArrayTypeDefinition.cc
        IIRScram_AssociationElementByExpression.cc
        IIRScram_AssociationElementOpen.cc IIRScram_AssociationList.cc
        IIRScram_Attribute.cc IIRScram_AttributeSpecification.cc
        IIRScram_BaseAttribute.cc IIRScram_BitStringLiteral.cc
        IIRScram_BlockConfiguration.cc IIRScram_BlockStatement.cc
        IIRScram_CaseStatement.cc IIRScram_CharacterLiteral.cc
        IIRScram_Choice.cc IIRScram_ComponentConfiguration.cc
        IIRScram_ComponentDeclaration.cc
        IIRScram_ComponentInstantiationStatement.cc
        IIRScram_ConcurrentAssertionStatement.cc
        IIRScram_ConcurrentGenerateForStatement.cc
        IIRScram_ConcurrentGenerateIfStatement.cc
        IIRScram_ConcurrentProcedureCallStatement.cc
        IIRScram_ConcurrentStatement.cc
        IIRScram_ConstantDeclaration.cc
        IIRScram_ConstantInterfaceDeclaration.cc
        IIRScram_Declaration.cc IIRScram_DeclarationList.cc
        IIRScram_DelayedAttribute.cc IIRScram_DesignFile.cc
        IIRScram_DesignatorList.cc IIRScram_DisconnectSpecification.cc
        IIRScram_DivisionOperator.cc IIRScram_ElementDeclaration.cc
        IIRScram_EntityDeclaration.cc
        IIRScram_EnumerationTypeDefinition.cc
        IIRScram_EventAttribute.cc IIRScram_ExponentiationOperator.cc
        IIRScram_FileDeclaration.cc
        IIRScram_FileInterfaceDeclaration.cc
        IIRScram_FileTypeDefinition.cc
        IIRScram_FloatingPointLiteral.cc
        IIRScram_FloatingTypeDefinition.cc
        IIRScram_ForLoopStatement.cc IIRScram_FunctionCall.cc
        IIRScram_FunctionDeclaration.cc IIRScram_HighAttribute.cc
        IIRScram_IndexedName.cc IIRScram_IntegerLiteral.cc
        IIRScram_IntegerTypeDefinition.cc
        IIRScram_InterfaceDeclaration.cc IIRScram_Label.cc
        IIRScram_LeftAttribute.cc IIRScram_LibraryClause.cc
        IIRScram_LibraryDeclaration.cc IIRScram_LibraryUnit.cc
        IIRScram_LogicalOperators.cc IIRScram_LowAttribute.cc
        IIRScram_MonadicOperator.cc IIRScram_MultiplicationOperator.cc
        IIRScram_NotOperator.cc IIRScram_ObjectDeclaration.cc
        IIRScram_PackageBodyDeclaration.cc
        IIRScram_PackageDeclaration.cc IIRScram_PhysicalLiteral.cc
        IIRScram_PhysicalTypeDefinition.cc IIRScram_PosAttribute.cc
        IIRScram_ProcedureCallStatement.cc
        IIRScram_ProcedureDeclaration.cc IIRScram_ProcessStatement.cc
        IIRScram_RangeTypeDefinition.cc
        IIRScram_RecordTypeDefinition.cc
        IIRScram_RelationalOperators.cc IIRScram_ReturnStatement.cc
        IIRScram_ScalarTypeDefinition.cc IIRScram_SelectedName.cc
        IIRScram_SensitizedProcessStatement.cc
        IIRScram_ShiftOperators.cc IIRScram_SignalDeclaration.cc
        IIRScram_SignalInterfaceDeclaration.cc IIRScram_SimpleName.cc
        IIRScram_Statement.cc IIRScram_SubtypeDeclaration.cc
        IIRScram_SuccAttribute.cc IIRScram_TypeDeclaration.cc
        IIRScram_TypeDefinition.cc IIRScram_UseClause.cc
        IIRScram_UserAttribute.cc IIRScram_ValAttribute.cc
        IIRScram_ValueAttribute.cc
        IIRScram_VariableAssignmentStatement.cc
        IIRScram_VariableDeclaration.cc
        IIRScram_VariableInterfaceDeclaration.cc
        IIRScram_WaitStatement.cc
Log Message:
Since the last prerelease, one change I made was to go over to C++ strings
in a big way. I did this for several reasons, the most pertinent being
that C++ strings are reference counted and we don't need to worry about
leaking them.

Likewise, there were plenty of leaks in our code that was using
ostrstream and so I converted all of them to use ostringstream. It turns
out that ostringstream only appears in g++ version 2.95.4 which is quite
new and most people aren't using it yet.

This checkin allows the configure script to determine if the <sstream>
header is available on the system. If it's not, the class
"fake_ostringstream" will be used for ostringstream. The
"fake_ostringstream" class will leak very very badly as it's currently
implemented. It is only there as a temporary stopgap measure until the
use of g++ 2.95.4 and/or g++ 3.0 become more common. So please don't
use this class any place else.

This checkin has only been tested on g++ 2.95.2. I will be checking on
a newer compiler shortly.



This archive was generated by hypermail 2b25 : Mon Mar 18 2002 - 13:00:12 MST