Files
PolyORB/compilers/iac/ChangeLog
Thomas Quinot cd1e0dddbd Move in new version of IAC from import directory.
For FC19-007

Subversion-branch: /trunk/polyorb
Subversion-revision: 41321
2006-12-19 11:23:35 +00:00

1330 lines
47 KiB
Plaintext

2004-09-02 Saber Souli <souli@localhost.localdomain>
* optimizations/cache02/Makefile (SHELL): Change compilations flags to undo style cheking.
* optimizations/cache02/harness-skel.adb: Make constant local variable of Invoke global.
2004-08-30 Saber Souli <souli@loozy.rezel.enst.fr>
* backend-be_ada-nutils.ads: Add pragma inline entity in Pragma_Id.
* backend-be_ada-stubs.adb: Use direct function to initialize the result_ü variable in stubs code.
2004-08-27 Saber Souli <souli@loozy.rezel.enst.fr>
* testsuite/all_types/all_types.idl: Add struct tests.
2004-08-27 Saber Souli <souli@loozy.rezel.enst.fr>
* backend-be_ada-idl_to_ada.adb: Link Component_Declaration with its FE_Node.
* backend-be_ada-helpers.adb: Generate structure type helper (From Any). Fix structure type To_Any convert function.
2004-08-27 Saber Souli <souli@loozy.rezel.enst.fr>
* testsuite/all_types/all_types.idl: Add Attribute test.
2004-08-27 Saber Souli <souli@loozy.rezel.enst.fr>
* backend-be_ada-skels.adb: Fixed a bug (consider Scoped_Name in return_type of subprograms).
2004-08-27 Saber Souli <souli@loozy.rezel.enst.fr>
* backend-be_ada-stubs.adb: Add underscore to operation name in the operation initialization.
* backend-be_ada-helpers.adb: Generate From_Any body to Arrays types, and enumeration type. Add initialization of the arrays helpers in Deferred_Initialization body.
* backend-be_ada-generator.adb: Do not generate operators in expression when the operator is Op_None.
* backend-be_ada-skels.adb: Correct minor bug in operations invokation (use To_Any convesion in place of From_Any). use the appropriate helper when the returned type is not a base type.
* backend-be_ada-nutils.ads: Add Variables Id (V_Index, V_Position) used in enumeration type helper (From_Any). Add Op_None to Operator_Type.
* backend-be_ada-nutils.adb: Modify signature of Make_List_Id in to be able to create a list containing tree element. Modify signature of Make_Expression, to make Op_none the default operator_id.
2004-08-26 Saber Souli <souli@loozy.rezel.enst.fr>
* backend-be_ada-runtime.ads: Add runtimes entities.
* backend-be_ada-helpers.adb: Generate Complex declarator helper.
* backend-be_ada-generator.adb: Correct the generation of case statement.
* backend-be_ada-skels.adb: Raise Bad_Operation exception when the client try to invoke an unknown operation.
* backend-be_ada-stubs.adb: In the stubs subprograms, constant local variables are declared as global to the subprogram. To save the overhead introduced by the allocation and the initialization of these variables.
2004-08-20 Saber Souli <souli@loozy.rezel.enst.fr>
* testsuite/echo/echo.idl: Test the generated code with polyorb (the script buid correctely the server and the client, but do no tests the binary. the binary work manually).
* backend-be_ada-runtime.ads: Add runtimes entities.
* backend-be_ada-helpers.adb: Fix enumeration TypeCode generation.
* backend-be_ada.ads: Implementations packages are not generated by default.
* backend-be_ada-skels.adb: Consider Scoped_Name in Types references (fixed bug).
* backend-be_ada-idl_to_ada.adb: Add converting rule for the missing basetypes in Base_Type_TC. Do not add implementation package in the IDL_Unit packages list.
* backend-be_ada-nutils.adb: Add converting rule for the missing basetypes in Convert.
2004-08-19 Saber Souli <souli@loozy.rezel.enst.fr>>
* backend-be_ada-stubs.adb: Correct a bug.
* backend-be_ada-runtime.ads: Add runtimes entities.
* backend-be_ada-skels.adb: Generate Deferred_Initilization, and package initialization.
* backend-be_ada-idl_to_ada.adb: Modify Map_Accessor : link the generated node with the frontend.
* backend-be_ada-nodes.idl: Add Attribute_Designator.
* backend-be_ada-nutils.adb: Add Make_Attribute_Designator. Add entities in Opertion_Id, Parameter_Id, Attribute_Id and Subprogram_Id.
2004-08-18 Saber Souli <souli@loozy.rezel.enst.fr>
* backend-be_ada.adb: Generate implementattion specification before skels body, because entities of implementation specs are used in skels body.
2004-08-18 Saber Souli <souli@neraka.enst.fr>
* backend-be_ada-runtime.ads: Add runtimes entities.
* backend-be_ada-skels.adb: Generate code for Is_A invokation.
* backend-be_ada-nutils.adb: Add_With add Helper, Skel, Impl
packages in the current with list if one of theire entities are
used. Add K_Octet conversion rule in Convert.
* backend-be_ada-skels.adb: Add Helper in with list.
2004-08-17 Saber Souli <souli@neraka.enst.fr>
* backend-be_ada-stubs.adb: Add operations marshaller bodies.
* backend-be_ada-runtime.ads: Correct some runtimes entities
(Module_Info, Empty).
* backend-be_ada-skels.adb: Invoke Is_A function.
2004-08-13 Laurent Pautet <pautet@dorine.enst.fr>
* mknodes.adb: Add an optimization flag which allows to remove the
tree output. The optimized files are half the size of the normal
ones.
2004-08-13 Saber Souli <souli@enst.fr>
* backend-be_ada-runtime.ads: Correct some runtimes entities
(Module_Info, Empty).
* backend-be_ada-skels.adb: Invoke Is_A function.
2004-08-13 Saber Souli <souli@enst.fr>
* backend-be_ada.ads: Generate Implementation package by
default. Because skels body use implementations specs.
2004-08-12 Saber Souli <souli@enst.fr>
* backend-be_ada-runtime.adb: Declare CORRBA.Internals as subunit.
* backend-be_ada-nutils.adb: Modify the suffix of variables used
in subprograms variables, from "_U" to "_Ü".
* backend-be_ada-helpers.adb: Add "_Ü" as suffix to variables in for statements.
* backend-be_ada-generator.adb: Delete a useless semicolon in if_statements.
2004-08-11 Saber Souli <souli@enst.fr>
* backend-be_ada-skels.adb: Remove useless subprogram
Add_Underscore, use Add_Suffix_To_Name instead. Use Add_Prefix_To_Name.
* backend-be_ada-idl_to_ada.adb: Modify Map_IDL_Unit (do not
generate implementation package and skels for abstact interface).
2004-08-10 Saber Souli <souli@neraka.enst.fr>
* backend-be_ada-nutils.ads: Correct selector name from P_Implecit
to P_Implicit.
2004-08-10 Saber Souli <souli@neraka.enst.fr>
* backend-be_ada-runtime.ads: Apply gnat style coding. Add runtime entities.
* backend-be_ada-generator.adb: Generate Qualified_Expression.
* backend-be_ada-nutils.adb: Add Make_Qualified_Expression. Add
parameters entities names.
* backend-be_ada-helpers.adb: Add Deferred_Initialization
body. Add helper package initialization.
* optimisation.txt : Optimisation des stub.
2004-08-09 Saber Souli <souli@neraka.enst.fr>
* backend-be_ada-impls.adb: Link the Setter spec node to the
Frontend node.
* backend-be_ada-stubs.adb: Use the modified runtime entities
names.
* backend-be_ada-runtime.ads: Add runtime entities used in skels
bodies. Modify some entities names.
* backend-be_ada-generator.adb: Generate block statements and
elsif statements.
* backend-be_ada-idl_to_ada.adb: Add Link_BE_To_FE subprogram to
just link a Backend node to Frontend one. (Used when multiple
backend nodes are linked to one Frontend node).
* backend-be_ada-nodes.idl: Add Block_Statements.
* backend-be_ada-nutils.adb: Add subprograms to generate a block
statements and elsif_statement.
* backend-be_ada-skels.adb: Generate invokation parts in invoke
body. (Not complete yet. Need to fix a bug).
2004-08-06 Saber Souli <souli@neraka.enst.fr>
* backend-be_ada-generator.adb: Add '.All' to Designators
representing an explicit_dereference.
* backend-be_ada-runtime.adb: Add casing rules.
* backend-be_ada-runtime.ads: Add runtimes entities used in skels
body.
* backend-be_ada.adb: Call the skels bodies generation.
* backend-be_ada-nutils.ad[b,s]: Modify signature of
Make_If_Statement, to add an Elsif_Statements list.
* backend-be_ada-nodes.idl: Add Elsif_Statement node. Add Is_All
to Designator, when Is_All is true it stand's for Designator.All
(explicit_dereference).
* backend-be_ada-skels.adb: Generate common part of invoke
subprogram.
2004-08-05 Laurent Pautet <pautet@dorine.enst.fr>
* backend-be_ada-runtime.adb, backend-be_ada-nutils.adb: Declare
package Standard as a subunit (even if it is a subunit) in order
not to automatically with it.
2004-08-04 Saber Souli <souli@neraka.enst.fr>
* backend-be_ada-nutils.ad[b,s]: Replace Op_Or_Then by Op_Or_Else in
Operator_Type (mistake).
* backend-be_ada-stubs.adb: Complete stubs body. Generate Is_A
body.
* backend-be_ada-runtime.ads: Add new runtime-entities used in
stub Is_A body.
2004-08-04 Laurent Pautet <pautet@dorine.enst.fr>
* backend-be_ada-runtime.adb: Add rules for ARG_IN, ARG_INOUT and
ARG_OUT. Change name rules into casing rules.
* backend-be_ada-runtime.ads: Alphabetic order.
2004-08-04 Saber Souli <souli@neraka.enst.fr>
* backend-be_ada-helpers.adb: Consider the modification in
backend-be_ada-runtime.ads.
* backend-be_ada-runtime.ads: Add new runtime-entities used in
stub marshaller body. Modify RE_From_Any
(CORBA.Object.Helper.From_Any) to RE_From_Any_1, to
allow adding RE_From_Any_0 (CORBA.From_Any).
* backend-be_ada-stubs.adb: Complete the marshaller body.
2004-08-03 Laurent Pautet <pautet@dorine.enst.fr>
* backend-be_ada-nutils.adb, backend-be_ada-nutils.ads:
Reimplement Add_With_Package. This takes into account whether the
unit to with is a subunit. In this case, it explores the parent
list and finds the first non-subunit parent in order to with
it. Add Fully_Qualified_Name which takes a designator or a
defining identifier and builds the fully qualified name of this
entity. Add To_Spec_Name which takes a name and returns another
name with %s at the end when needed. This name designates the
specification of a unit. The name info is supposed to contain a
reference to the corresponding node.
* backend-be_ada-runtime.adb, backend-be_ada-runtime.ads: Remove
special name mechanism and find special words into identifiers in
order to apply special casing. For instance, all identifiers with
"corba" in it like "to_corba_object" are output with "CORBA" in
it. Define run-time units not only as designator but as package
spec as well and set attributes Is_Runtime_Package and
Is_Subunit_Package to true when required. Entities and units are
supposed to be in alphabetic order (otherwise, we may have serious
problems).
* backend-be_ada-expand.adb, backend-be_ada-expand.ads,
backend-be_ada-idl_to_ada.adb, backend-be_ada-idl_to_ada.ads,
backend-be_ada-stubs.adb: Remove parameter Witheded in
*_Designator. Use new signatures.
* backend-be_ada-nodes.idl: Remove Is_Generated since it is not
used (no call to Is_Generated) and add Is_Runtime_Package and
Is_Subunit_Package attributes.
* backend-be_ada.adb, backend-be_ada.ads,
backend-be_ada-generator.adb: Add new options. -ta to print Ada
tree (Print_Ada_Tree), -ti to print IDL tree (Print_IDL_Tree ???),
-ds to only generate package spec (Disable_Pkg_Impl_Gen), -db to
only generate package impl (Disable_Pkg_Spec_Gen), -dt to output
tree warnings (Output_Tree_Warnings), -dw to output unit withing
(Output_Unit_Withing). Use these new flags.
2004-08-03 Saber Souli <souli@neraka.enst.fr>
* backend-be_ada-nutils.ads: Minor reformatting.
2004-08-03 Saber Souli <souli@neraka.enst.fr>
* backend-be_ada-stubs.adb: Add instructions to the marshaller
body.
* backend-be_ada-runtime.ads: Add new runtime entities used in
stubs body.
* backend-be_ada-generator.adb: Modify Generate_Expression to
handle the generation of unary operation.
* backend-be_ada-nutils.ads: Add Op_Not in Operation_Type.
* backend-be_ada-nutils.adb: Add Make_Designator to return a
designator from a given name id. Right_Expr field in
Make_Expression is now optional (to handle unary operation).
2004-08-03 Saber Souli <souli@neraka.enst.fr>
* backend-be_ada-impls.adb: Complete generation of the
implementation body.
2004-08-03 Saber Souli <souli@neraka.enst.fr>
* backend-be_ada-runtime.adb: Moved Convert to
backend-be_ada-nutils.
2004-08-03 Saber Souli <souli@neraka.enst.fr>
* backend-be_ada-runtime.ads: Added values to RU_Id and RE_Id to
handle new runtime entities used in stub's body generation.
* backend-be_ada-idl_to_ada.adb: Added Base_Type_TC functions which
returns the TypeCode of a given base type. Removed pragma assert
from Map_Designator.
* backend-be_ada.adb: Changed -h switch to -s. Removed -b and -h
usage.
* backend-be_ada-nutils.ads: Added values to Parameter_Type, to
handle parameters needed in stubs body generation.
* backend-be_ada-expand.adb: Removed pragma Assert. Generate
designator to Object_Declaration nodes.
* backend-be_ada-nutils.adb: Linked Object_Declaration nodes to its
parents.
* backend-be_ada-stubs.adb: Generate stubs body (not completed yet).
2004-08-03 Saber Souli <souli@neraka.enst.fr>
* testsuite/Makefile.ada (stubs): Renamed souches to stubs. Minor
reformatting.
* test.cmd : Idlac output is now static, stored in subdirectory
named idlac.out
2004-08-03 Saber Souli <souli@siloe.enst.fr>
* backend-be_ada-idl_to_ada.adb: Applied GNAT coding style.
* backend-be_ada-helpers.adb: Applied GNAT coding style.
* backend-be_ada-generator.adb: Applied GNAT coding style.
* backend-be_ada-expand.adb: Applied GNAT coding style.
* backend-be_ada-debug.adb: Applied GNAT coding style.
* backend-be_ada.adb: Applied GNAT coding style.
2004-07-30 Saber Souli <souli@neraka.enst.fr>
* backend-be_ada-idl_to_ada.adb: Modified Map_Designator to
designate library entities.
* Add tests.
* backend-be_ada-runtime.adb: Correcte the parent unit of TC_Array
designator.
2004-07-30 Saber Souli <souli@neraka.enst.fr>
* backend-be_ada-generator.adb: Generate access type definitions.
* backend-be_ada-impls.adb: Finished Implementations specs.
* test.sh: Integrate thomas's trick to delete body package that
don't have a spec.
2004-07-30 Saber Souli <souli@neraka.enst.fr>
* testsuite/ada000[9,4]/tin.idl: Tests nested entities.
* backend-be_ada-skels.adb: New file : generate skeletons (now it
generate only skeletons specs).
* backend-be_ada-nodes.idl: Add Pragma_Statement node.
* backend-be_ada-generator.adb: Generate Pragma_Statement.
2004-07-29 Saber Souli <souli@neraka.enst.fr>
* backend-be_ada-helpers.adb: Link helpers nodes to the
corresponding idl entity.
* backend-be_ada-nutils.adb: Add_With_Package do not add ancestors
packages in the with list.
2004-07-28 Saber Souli <souli@neraka.enst.fr>
* backend-be_ada.adb: Add two flags, '-b' generate only bodies and
'-h' generate only specs (headers).
* backend-be_ada-stubs.adb: Removing useless withs. Add Is_A
specs.
* backend-be_ada-helpers.adb: Removing useless withs.
* Adding automatique test script.
2004-07-27 Saber Souli <souli@neraka.enst.fr>
* backend-be_ada-nodes.idl: Add case_statement node.
* backend-be_ada-generator.adb: Generate case statements.
* backend-be_ada-helpers.adb: Generate To_Any body for
Enumerate_Type, Structure_Type and Union_Type.
2004-07-26 Saber Souli <souli@neraka.enst.fr>
* backend-be_ada-generator.adb: Add "in" keyword befor range
contraint in for statements.
2004-07-26 Saber Souli <souli@neraka.enst.fr>
* backend-be_ada-helpers.adb: Generate To_Any body for complex
declarator and simple declarator.
* backend-be_ada-generator.adb: Generate for statements.
2004-07-22 Saber Souli <souli@neraka.enst.fr>
* backend-be_ada-helpers.adb: Completed any convesion body for
interfaces.
2004-07-22 Saber Souli <souli@neraka.enst.fr>
* backend-be_ada-nodes.idl: Add expression node.
* backend-be_ada-generator.adb: Generate Expressions.
* backend-be_ada-helpers.adb: Completed narrowing and widening
reference body.
2004-07-21 Saber Souli <souli@neraka.enst.fr>
* frontend-nodes.idl: Moved BE_CORBA to backend-be_ada-nodes.idl.
2004-07-20 Saber Souli <souli@neraka.enst.fr>
* backend-be_ada-helpers.adb: Linked Frontend nodes with Helper
nodes.
* backend-be_ada-idl_to_ada.adb: Add Bind_FE_To_Skel,
Bind_FE_To_Impl and Bind_FE_To_Helper to allow linking
a frontend node with respective Skeleton, Implementation and
helper node.
2004-07-20 Saber Souli <souli@neraka.enst.fr>
* frontend-nodes.idl: Add BE_CORBA node, which contain four nodes
: Stub_Node point to the stub, Helper_Node point to the helper,
Skel_Node to the Skeleton and finally Impl_node point to the
implementation node.
2004-07-19 Saber Souli <souli@neraka.enst.fr>
* backend-be_ada-helpers.adb: Reflecting changes to helper
TypeCodes generation introduced by the recent modified API in
PolyORB.
2004-07-19 Saber Souli <souli@neraka.enst.fr>
* backend-be_ada-helpers.adb: Generate helpers body. (functions
are now empty).
2004-07-19 Saber Souli <souli@neraka.enst.fr>
* backend-be_ada-helpers.adb: Completed helper specification, for
interfaces, and types.
2004-07-18 Saber Souli <souli@neraka.enst.fr>
* backend-be_ada.adb: Add -i switch that dump the idl tree with
the field BE_Node updated with Ada nodes.
* backend-be_ada-helpers.adb: Generate the widening reference
function.
* backend-be_ada-expand.adb: Expand_Designator modified to take
in consideration the new structure.
* backend-be_ada-nodes.idl: Add Parent node to Definition and
IDL_Unit to Package_Declaration to allow navigations from child
nodes to parents.
2004-07-16 Saber Souli <souli@neraka.enst.fr>
* backend-be_ada-debug.adb: Do not dump the referenced nodes.
2004-07-16 Saber Souli <souli@neraka.enst.fr>
* frontend-debug.adb: View BE_Node information in the
idl tree dump.
* backend-be_ada-stubs.adb: Minor change, relatif to the
modification in the frontend-nodes.idl.
* frontend-nodes.idl: Removed BE_Node from Node_Id to Definition.
2004-07-15 Saber Souli <souli@neraka.enst.fr>
* backend-be_ada.adb: Reformatting.
* backend-be_ada-impls.adb: New file, generate implementations Ada
subtree.
* backend-be_ada-helpers.adb: New file, generate helpers Ada
subtree.
* backend-be_ada-stubs.adb: New file, generate client stubs
Ada subtree.
* backend-be_ada-stubs.adb, backend-be_ada-helpers.adb,
backend-be_ada-impls.adb : They contains two sub-packages,
Package_Spec generate package specification, and Package_Body
generate the correponding body.
2004-07-10 Saber Souli <souli@neraka.enst.fr>
* backend-be_ada.adb: Minor reformatting.
* backend-be_ada-nutils.adb: Move Make_Designator to Expand
package and change its prefix "Make_" into "Expand_".
* backend-be_ada-expand.adb: New file. This package contains
routines that expand an Ada node into another Ada node.
2004-07-10 Saber Souli <souli@neraka.enst.fr>
* backend-be_ada-nutils.adb, backend-be_ada.adb: all routines that
transform an IDL entity into an Ada node, are moved to the new
IDL_To_Ada package. These routines are renamed by replacing prefix
"Make_" with "Map_".
* backend-be_ada-idl_to_ada.adb: New file. This package contains
routines that map an IDL entity into an Ada node according to the
IDL to Ada mapping.
2004-07-09 Saber Souli <souli@neraka.enst.fr>
* backend-be_ada-nutils.adb: Add Make_Designator and
Qualified_Designator in order to generate a designator for a given
Ada entity. Fix Make_Designator in order to generate a fully
qualified designator (using scope entity of identifiers reference
instead of using Parent_Entity of Scoped_Identifier).
* backend-be_ada-runtime.adb: Add RU function that returns a
designator to an unit entity.
* backend-be_ada.adb: Add functions to generate windening and
narrowing subprogram that results in the mapped in the mapped
reference type definined in the interface package
(Helper_Narrowing_Ref, Helper_Widening_Ref), to generate TypeCode
constant and type any conversion functions for the mapped
reference type and for all types defined in the interface package.
2004-07-06 Laurent Pautet <pautet@dorine.enst.fr>
* backend-be_ada-nutils.adb, backend-be_ada-nutils.ads,
backend-be_ada.adb: Add Ref as a defining identifier. Minor
reformatting.
2004-07-06 Saber Souli <souli@neraka.enst.fr>
* backend-be_ada-runtime.ads: Add To_Any_0, To_Get_Empty_Any_0,
To_Any_1 and To_Get_Empty_Any_1 to RE_Id to handle new runtime
entities.
* backend-be_ada.adb: Update FE_Node attribute of Type_Spec
node. Use type helper functions.
2004-07-05 Laurent Pautet <pautet@dorine.enst.fr>
* backend-be_ada-nutils.adb, backend-be_ada-nutils.ads,
backend-be_ada-nodes.idl: Define tables for attributes,
subprograms and components like those we have for parameters and
variables. Add component initialization. Add discriminant in full
type declaration. Add Make_Type_Attribute to initialize
discriminant.
* backend-be_ada.adb: Implement union type and minor reformatting.
* analyzer.adb: Minor reformatting and check duplicated default
labels.
* backend-be_ada-generator.adb: Generate union types. Fix
generation of object initialization.
* backend-be_idl.adb: Minor reformatting.
2004-07-03 Laurent Pautet <pautet@dorine.enst.fr>
* backend-be_ada.adb: Produce exception declaration and members
declarations.
* backend-be_ada-nodes.idl, backend-be_ada-nutils.adb,
backend-be_ada-nutils.ads: Add Make_Exception_Declaration and
corresponding node.
* backend-be_ada-generator.adb: Generate code for exception
declaration.
* backend-be_ada-runtime.ads: Add CORBA and Ada exception entities.
* backend-be_idl.adb: Generate value declaration and adopt the
same organization for IDL backend than the one for Ada
backend. Generate boxed value types and abstract value types. Fix
wrong output of multidimensional arrays. Generate initializer
declaration as a special case of operation declaration.
* frontend-nodes.idl: Define initializer declaration as a special
case of operation declaration.
* frontend-nutils.adb, frontend-nutils.ads: Fix function
Is_A_Forward_Of for value declaration. Implement value type
inheritance.
* scopes.adb: Deal with value forward declaration. Implement
value type inheritance.
* analyzer.adb: Analyze partially value declarations. Some parts
are just cut and pasted from interface analyzis. This will be
reorganized later on. Implement value type inheritance. Implement
boxed value type. Analyze initializer declaration as a special
case of operation declaration.
* parser.adb: Parse semi-colon at the end of an initializer
declaration.
2004-07-02 Laurent Pautet <pautet@dorine.enst.fr>
* frontend-nodes.idl: Remove Base_Interface since it always
corresponds to Current_Scope. Add atttribute Is_Local_Interface.
* parser.adb: Parse local interface. Do not forget to set sequence
size to its value. Parse correctly state members and value
declaration.
* backend-be_idl.adb: Generate fully qualified name for
enumerators. Fix indentation for elements. Generate abstract
interfaces.
* analyzer.adb: Minor reformatting. Analyze consistency of parent
interfaces in regards to local and abstract properties. Check that
a local type does not appear as a parameter, attribute, return
type or exception declaration of an unconstrained interface.
* values.adb: Fix Image for non printable characters (use \xxx
representation).
* backend-be_ada-generator.adb: Generate sequence size in sequence
type when needed.
2004-07-01 Laurent Pautet <pautet@dorine.enst.fr>
* frontend-nodes.idl: Remove Explicitely_Visible and
Implicitely_Visible attributes and use Visible attribute instead
(see below). Add a Depth attribute in Scoped_Name in order to
detect whether in a recursive procedure concerning scoped names we
analyze the tail of a scoped name (depth = 0) or not.
* parser.adb: Always create an inheritance specification even if
it appears to be empty. This simplifies the analyzis later
on. Compute depth attribute of scoped names.
* scopes.adb, scopes.ads: Redesign the inheritance mechanism since
inherited entities were made implicitely visible and were not
introduced in the scope (using Explicitely_Visible and
Implicitely_Visible attributes). This was plain since it is
possible to designate an inherited entity by prefixing the entity
with the derived interface. In this new scheme, inherited entities
are introduced in the scope and removed as soon as they are
overriden. An inherited entity E is introduced in the scope of a
derived interface as an identifier I which corresponding entity is
E. Note that the corresponding identifier of E is its original
identifier J and not the newly-created identifier I. In other
words, J and I refer to E when E only refers J. Remove
Explicitely_Visible and Implicitely_Visible attributes and use
only Visible attribute. Fix Remove_From_Homonyms implementation
since this was buggy because of the two previous attributes.
* analyzer.adb: Improve the way inheritance is handled as said
above. Analyze scoped names designating parent interface in the
scope of the enclosing entity of the derived interface and not in
the scope of the derived interface. Moreover special rules for
type names only apply to the tail of the scoped name (and to each
sub scoped name as done before). Create a scope when entering a
union type.
* backend-be_idl.adb: Output scoped names not using the scoped
name representation but using the representation of the scoped
name reference. For instance, when type T is in interface I1 and
when I2 inherits from I1, a scoped name like I2::T in I2 should be
output I1::T.
2004-06-30 Laurent Pautet <pautet@dorine.enst.fr>
* backend-be_ada-generator.adb: Minor reformatting.
2004-06-30 Saber Souli <souli@enst.fr>
* backend-be_ada.adb : Generate assignment statement, and record
aggregate.
* backend-be_ada-runtime.adb : Respect the case sensitiveness of
runtime packages name.
* backend-be_ada-nodes.idl : Add assignment statement node, and
record aggregate node.
* backend-be_ada-nutils.ad{b,s} : Add Make_List_Id,
Make_Record_Aggregate, Make_Assignment_Statement and Length.
2004-06-30 Laurent Pautet <pautet@dorine.enst.fr>
* backend-be_ada-runtime.adb: Remove 6619 as it causes RE_X_Y to
be output X_Y instead of X.Y as done previously.
2004-06-29 Saber Souli <souli@enst.fr>
* backend-be_ada_nutils.adb : In To_Ada, insert "IDL_" string
when identifier collides with an Ada reserved word.
* backend-be_ada-generator.adb : Define Token_Type and its
subprograms.
2004-06-29 Laurent Pautet <pautet@dorine.enst.fr>
* scopes.adb: Minor reformating.
* backend-be_ada-generator.adb: Add a missing space between
defining_identifier and colon.
* backend-be_ada-nutils.adb: Add one to Token_Type'Pos in order to
have a positive value. Fix an incorrect redirection to backend tree.
* iac.adb: Comments. Minor reformating.
* lexer.adb: Cleanup on error.
* analyzer.adb: Analyze expanded constant declaration coming from
enumerator in order to compute its value. Output an error when we
cannot resolve a scoped name.
* backend-be_ada.adb: Read constant value and not constant
expression value.
2004-06-29 Laurent Pautet <pautet@dorine.enst.fr>
* backend-be_ada-generator.adb: Remove junk code
(Generate_Enumeration_Type and Generate_Type_Spec not
used). Establish some generation rules. The enclosing entity
decides for the first indentation and the last semi-colon +
end-of-line sequence. What is generated in between is the business
of the enclosed entity. Use parameter Offset of new
Write_Indentation procedure. Allow to fix the longest variable
name length in order to align all variables and parameters.
* backend-be_ada-debug.ads, frontend-debug.ads: Reformating.
* backend-be_ada-generator.ads: Var_Name_Len to set the maximum
length of a variable name. Zero means that no trailing space is
added during a variable or parameter output.
* backend-be_ada.adb: Get Var_Name_Len value. Capitalize variables
and parameters.
2004-06-28 Laurent Pautet <pautet@dorine.enst.fr>
* backend-be_ada.adb: Use the RTE mechanism for parameters and
variables.
2004-06-28 Saber Souli <souli@enst.fr>
* iac.adb : Fix bug introduced when the path name of the IDL file
contain a leading dot.
* backend-be_ada.adb : Use Backend.BE_Ada.Runtime and remove all
the variables which are now useless.
* backend-be_ada-generator.adb : Minor change in the generated
code to produce exactly the same output as idlac.
2004-06-28 Saber Souli <souli@enst.fr>
* backend-be_ada.adb: Declare PolyORB and CORBA objects. Generate
marshaller declaration code. Use Copy_Designator in object
declaration in order to auto insert packages used in the withed
list. Generate Marshaller Body (not Completed yet). Generate If
statements. Add Bind_FE_To_BE a subprogram that cross link FE node
with the correspanding BE node.
* backend-be_ada-nutils.adb, backend-be_ada-nutils.ads: generate
functions call. Generate If statement.
* backend-be_ada-generator.adb : generate functions call, and
subprograms body. generate if statements.
2004-06-28 Laurent Pautet <pautet@dorine.enst.fr>
* backend-be_ada-runtime.ads, backend-be_ada-runtime.adb: New
files to deal with various API.
* scopes.adb, values.adb, backend-be_ada-generator.adb,
frontend-nutils.adb, mknodes.adb, lexer.adb : Reordering.
* backend-be_ada-nutils.adb, backend-be_ada-nutils.ads: Avoid
duplication of withed packages. Use rtsfind-like mechanism from
backend-be_ada-runtime.
* backend-be_ada.adb: Use rtsfind-like mechanism from
backend-be_ada-runtime. In particular concerning Designator
creations. Fix implementation of repository_id production since
their values were plain wrong.
* backend-be_a (all): Removed.
* MANIFEST: Updated.
* Makefile: Check that subprograms are still sorted.
2004-06-26 Laurent Pautet <pautet@dorine.enst.fr>
* backend-be_ada-generator.adb: Generate object declaration and in
particular constant declaration. Fix few typos output in subrogram
body.
* backend-be_ada-nutils.adb, backend-be_ada-nutils.ads: Generate
object declaration and in particular constant declaration. Fix
automatic "with" for designator (no replication, less
bugs). Define a function Copy_Designator which copies a designator
like CORBA.Object.Ref and also with the parent unit of designator
like CORBA.Object.
* backend-be_ada.adb: Generate object declaration and in
particular constant declaration. Generate
repository_id. Reorganize Getter and Setter subprograms.
* backend-be_ada-nodes.idl: Generate object declaration and in
particular constant declaration.
2004-06-26 Laurent Pautet <pautet@dorine.enst.fr>
* backend-be_ada-nutils.adb: Add Make_Array_Type_Definition and
Make_Range_Constraints in order to map complex declarators.
* backend-be_ada-generator.adb: Replace Write_Token with Write.
Generate array type definition. Fix several missing end of line.
* backend-be_ada-nodes.idl: Add Range_Constraints and
Range_Constraint to handle complex declarators.
* backend-be_ada-debug.adb, backend-be_ada-debug.ads: Output
values.
* scopes.adb: When re-entering a module, re-introduce all
the scoped identifiers in the new scope, in their homonyms chain
and make them visible.
* backend-be_ada.adb: When visiting a scoped name which designates
a constant, output its value instead of the scoped name. Map
complex declarators for type definition and structure
members. Comment Visit_Operation_Declaration.
* backend-be_idl.adb: Remove space between array sizes and
declarator in a complex declarator to match omniorb output. Output
properly empty exception. Output literals and string types.
2004-06-24 Laurent Pautet <pautet@dorine.enst.fr>
* backend-be_ada-generator.adb: Do invoke specific Generate, use
dispatching one instead. Remove Generate_Qualified_Identifier
since Generate_Defining_Identifier does the job.
* backend-be_ada-nutils.adb, backend-be_ada.adb: Fix
Make_Fully_Qualified_Identifier in order not to have specification
identifier as a prefix.
2004-06-23 Saber Souli <souli@enst.fr>
* backend-be_ada.adb : Fixed void operation handling bug.
Add an empty body for subprograms. Handle nested blocs.
* backend-be_ada-generator.adb : Add Token_Type to handle ada
keyword and graphic characters. add Generate_Qualified_Name (N :
Node_Id) to a full qualified name. Add
Generate_Subprogram_Implementation : generate a subprogram
body. Add Image function : returns the image of a Token_Type. Add
Write_Token : a procedure that print the image of a given
Token_Type.
2004-06-24 Laurent Pautet <pautet@dorine.enst.fr>
* lexer.adb, lexer.ads: Add CORBA 3.0 keywords.
* frontend-nodes.idl, frontend-nutils.ads, frontend-nutils.adb:
Add function Length.
* Makefile: Invoke run-test right from the Makefile.
2004-06-23 Laurent Pautet <pautet@dorine.enst.fr>
* values.adb: Format float image in such a way that we do not have
useless zeros.
* frontend-debug.adb: Use Parameter_Mode.
* backend-be_ada.adb: Handle inout and out parameters in
functions.
* analyzer.adb: Handle forward entities when resolving types.
* backend-be_ada-nutils.adb, backend-be_ada-nutils.ads,
backend-be_ada-nodes.idl: Replace subprogram_specification with
specification to match GNAT tree.
* scopes.adb: Do not reset scope to No_Node for forward entities
as they can be visited mater on and need to have a scope anyway.
2004-06-22 Laurent Pautet <pautet@dorine.enst.fr>
* frontend-nutils.adb, frontend-nutils.ads, backend-be_idl.adb:
Define a new converter function for parameters to fix output bug.
* backend-be_ada*: Merge be_a into be_ada.
* backend-be_a-generator.adb, backend-be_a-nutils.adb,
backend-be_a-nutils.adb, backend-be_a-nutils.ads,
backend-be_a-nodes.idl, backend-be_a.adb: Implement designator,
structure type, with clause (automatically added but should not be
replicated), operation declaration,
* analyzer.adb, scopes.adb, scopes.ads, parser.adb,
backend-be_ada.adb, backend-be_idl.adb, frontend-nutils.adb,
frontend-nodes.idl, frontend-nutils.ads, frontend-debug.adb,
backend-be_ada-nutils.adb, backend-be_ada-nutils.ads, mknodes.adb:
Clarification between nodes and entities. Clarification of
Mode_Id.
2004-06-21 Saber Souli <souli@enst.fr>
* backend-be_ada.adb : Handle complex declarator. Now the backend
map all the list of declarators. Generate library file (IDL). Add
append_type_to_package_spec (T:Node_Id ; P : node_id): a function
that add the type <T> in the specification part of the package P.
2004-06-21 Laurent Pautet <pautet@dorine.enst.fr>
* backend-be_a.adb, backend-be_a-nutils.adb: Clarification between
nodes and entities. Start implementing type declaration and
designator and module.
* backend-be_a-generator.adb: Fix output problem on
Record_Extension_Part.
* scopes.adb, parser.adb, backend-be_idl.adb, frontend-nodes.idl:
Clarification between nodes and entities.
2004-06-15 Saber Souli <souli@enst.fr>
* output.ads, output.adb
Add procedure Set_Space_Increment (Value : Natural); to change the
Space_Increment and so enable dealling with different
indentations.
2004-06-15 Laurent Pautet <pautet@dorine.enst.fr>
* backend-be_ada-nutils.adb, backend-be_ada-generator.adb,
backend-be_ada-nutils.adb, backend-be_ada-nodes.idl,
backend-be_ada.adb: Rename nodes and atributes for better
understanding.
2004-06-13 Laurent Pautet <pautet@dorine.enst.fr>
* backend-be_ada.adb, backend-be_ada-nodes.idl,
frontend-debug.adb, backend-be_ada-debug.adb: Move Ada_Node into
BE_Node. Define FE_Node in Ada tree.
2004-06-12 Laurent Pautet <pautet@dorine.enst.fr>
* nodes.idl, nutils.ads, nutils.adb, debug.adb, debug.ads: Remove
and replace by child units with Frontend as prefix.
* frontend-nodes.idl, frontend-nutils.ads, frontend-nutils.adb,
frontend-debug.adb, frontend-debug.ads: See above.
* scopes.adb, parser.adb, backend-be_idl.adb, values.ads,
backend-be_ada-debug.ads, Makefile, iac.adb, backend-be_ada.adb,
analyzer.adb: Replace unit names above.
* names.ads, names.adb: Move entities to Frontend.Nutils.
* backend-be_ada-debug.adb, backend-be_ada-debug.ads: Duplicate
debugs.adb and debugs.ads and then adapt them. Rename wni into wbi
(write ada backend info).
* backend-be_ada-generator.adb, backend-be_ada-generator.ads,
backend-be_ada-nodes.idl: Rename
backend-be_ada-files_generation.adb,
backend-be_ada-files_generation.ads. Huge clean up.
* backend-be_ada-nutils.adb, backend-be_ada-nutils.adb: Rename
Mk_<X> into Make_<X>. Add subprograms to deal with parameter
mode. Huge clean up.
* debug.adb, debug.ads: Change wni into wfi (write frontend info).
* lexer.ads, lexer.adb: Move Write for token from BE_IDL.
* backend-be_idl.adb: Move Write for token to Lexer.
* backend-be_ada.ads: Remove blank line.
* analyzer.adb: Minor reformating.
2004-06-11 Laurent Pautet <pautet@dorine.enst.fr>
* analyzer.adb: Check oneway operation rules.
2004-06-10 Laurent Pautet <pautet@dorine.enst.fr>
* backend-be_idl.adb: Generate idl code for union type. Fix bug in
sequence type generation (most keywords missing). Add Generate
procedure for values (used both for constant declaration and case
label).
* values.adb, values.ads: Add a comparison function between two
values. This is used to sort labels in a union type and to detect
duplications. Add an enumerator as a value for union type as well.
* analyzer.adb: Provide two subprograms Resolve_Type and
Resolve_Expr. Resolve_Type returns the root type. A case which is
not well handled concerns array type as this info is in the
declarator and not in the type spec itself (C
syntax). Resolve_Expr is a renaming of the previous Resolve
procedure. Analyze union type that is : analyze all the enclosed
entities, check labels are in the switch type, check they are not
duplicated, heck elements are not duplicated.
* parser.adb: Do not represent enumerator with only their position
and add their image instead. Handle union type and in particular
set the Declaration attributes of all the nodes implied in the
union type definition. Improve error handling for union type.
* nodes.idl: Add node Case_Label to handle union type. Add also an
attribute Declaration for Switch_Alternative and Case_Label in
order to retrieve respectively the Union_Type and the
Switch_Alternative of these entities.
2004-06-08 Saber Souli <souli@enst.fr>
* backend-be_ada.adb: Add Visit_Enumeration_Type function and
handle Enumeration_Type declaration. Add
Visit_Constant_Declaration function. It only ignore constant
declaration expanded by iac frontend for enumerators.
* backend-be_ada-nutils.adb: Add Mk_Node_Enumeration_Type function
in order to create Enumeration_Type node. Add
Mk_Node_Type_Declaration function in order to create
Type_Declaration node.
* backend-be_ada-files_generation.adb: - Add
Generate_Enumeration_Type procedure : output the source code for
Enumeration_Type declaration. - Add Generate_Identifier procedure
: Output Identifier Name.
2004-06-07 Saber Souli <souli@enst.fr>
* backend-be_ada.adb: Handle interface operations and generate
the appropriate Ada function or procedure. Handle the Declarators
list in Attribute_Declaration. Handle simple Type_Declaration
(function Visite_Type_Declaration).
* backend-be_ada-nutils.adb: Add function
Mk_Node_Simple_Derived_Type_Def and create a simple derived type
declaration.
* backend-be_ada-debug.adb: Add procedure W_Small_Indents in order
to write a small indentation for making the IAC source code output
identical to the output of IDLAC.
* backend-be_ada-files_generation.adb: Use W_Small_Indents.
* nodes.idl: Add Ada_Node to manage scoped name reference in
Type_Declaration.
* be-adatree-design.txt : Ada tree production design
document.
* be-design.txt : Ada Backend Architecture"Draft".
2004-06-01 Laurent Pautet <pautet@dorine.enst.fr>
* mknodes.adb: Debug is now a sibling from Nodes.
* usage.adb, backend.adb, backend.ads, backend-config.adb: Adapt
to new organization that is a usage per backend.
* backend-be_idl.adb, backend-be_idl.ads: Provide flag -b to set
base to output integer literal. Provide a usage procedure.
* backend-be_ada.adb, backend-be_ada.ads: Provide flag -t to dump
Ada tree. Provide a usage procedure.
* flags.adb: Scan command line in two phases. First, detect the
backend language if there is one. Second, use Getopt by setting
cpparg and backend language as sections (see GNAT.Command_Line).
In command like 'iac -ds tin.idl -idl -b 8', '-ds' is considered
as a general flag and '-b 8' is considered as an IDL backend flag.
* backend-be_idl.adb, backend-be_idl.ads: Add Configure
procedure. Fix generation of members (readonly missing),
operations (oneway missing), of values (base to use). Start
generating union type.
* backend-be_ada.adb, backend-be_ada.ads: Add Configure procedure.
* backend.adb, backend.ads: Define Configure procedure for
backends and add it as Register parameter. This configure
procedure is supposed to read flags specific to backend using
GNAT.Command_Line.Getopt.
* backend-config.adb: Initialize configure procedure for backends
IDL and Ada.
2004-05-31 Saber Souli <souli@enst.fr>
* backend-be_ada.adb : This package Visit IDL tree nodes, and
generate the appropriate Ada node following the Ada Language
Specification. Actually I didn't take in consideration specific
mapping introduced by using PolyORB, I let this in later stage,
after completing all the OMG mappings specification.
Here are the actual mapping implemented : Module, Interface (only
attribute setter and getter generation is completed),
typedef (Not completed yet), Base type mapping.
* backend-be_ada-nutils.ads,backend-be_ada-nutils.adb: Contain
several routines to simplify the creation of ada tree nodes.
* backend-be_ada-nodes.idl: Add Derived_Type_Spec in order to
declare derived types. Same for Record_Type_Spec. Add
Ada_Function_Spec and Ada_Procedure_Spec to manage subprogram
declarations.
* backend-be_ada-debug.adb: ease debug of the Ada tree.
* backend-be_ada-file_generation: Output ada file source.
2004-05-31 Laurent Pautet <pautet@dorine.enst.fr>
* analyzer.adb: Do not try to analyze predefined types. Add
location to error message when invalid constant type
detected. Expand enumerators as constants and do not cause new
errors when enumeration type is incorrect. Re-implement attributes
and operations inheritance and other inherited entities visibility
as overloading declarations were not properly detected. Skip
scoped name analyzis when attribute Reference is already set.
* scopes.adb, scopes.ads: Clarify some routines and add
comments. Fix bugs in special scoping of type names due to a
misunderstanding of the document. Re-implement scoping.
* debug.adb: Filter new attributes.
* parser.adb: Adapt code to new scoped name and identifier
constructors signature.
* nutils.adb, nutils.ads: Add a function to detect a non module
entity (different from specification or module). Enrich scoped
name and identifier constructors with new attributes (needed for
expansion).
* nodes.idl: Add Potential_Scope to deal with type names. Make
nodes Simple_Declarator and Complex_Declarator contiguous.
2004-05-30 Laurent Pautet <pautet@dorine.enst.fr>
* debug.adb: Filter some more attributes.
* backend-be_idl.adb: Fix output for raises clause in an operation
declaration and for no-parameter operation declaration.
2004-05-26 Laurent Pautet <pautet@dorine.enst.fr>
* lexer.adb: Scan properly identifier. Do not return a token
T_Error when identifier is not well-formed. Display error, accept
identifier and proceed in parsing. In case of invalid character,
try to rescue lexer and progress up to a possible terminal.
2004-05-24 Laurent Pautet <pautet@dorine.enst.fr>
* utils.adb: Protect To_Lower against No_Name.
* nodes.idl: Replace immediately with explicitely and potentially
with implicitely. Define specification as a definition to follow
CORBA 2.6 3.15.1.
* backend-be_idl.adb: Inherited interface specification starts
with a colon and not colon colon.
* nodes.idl: Reorder Scoped_Name attributes from debug
readibility.
* scopes.ads: Rename functions for readibility. Add comments.
Replace immediately with explicitely and potentially with
implicitely.
* scopes.adb: Same as above. Fix also name resolution bugs.
* nutils.adb, nutils.ads: Add expansion routines to build scoped
name, identifier and constant declaration. Used to declare
enumerator as constant.
* backend-be_idl.adb: Fix constant declaration output to take
enumeration types into account. Try to reproduce omniORB IDL
output for testing purpose.
* debug.adb, debug.ads: Simplify debug primitives.
* analyzer.adb: Allow enumeration type in constant
declaration. Analyze properly enumeration type and create one
constant declaration per enumerator. Fix Resolve operation to
compute constant expression in case of enumeration type. Analyze
union type.
* parser.adb: Use Make_Identifier.
2004-05-22 Laurent Pautet <pautet@dorine.enst.fr>
* debug.adb, mknodes.adb: Remove parameter I (for number of
indentations) in all output procedures.
* Makefile: Force backend.be_ada.nodes generation when mknodes
updated.
2004-05-21 Laurent Pautet <pautet@dorine.enst.fr>
* lexer.adb: Do not adjust base when the integer literal base has
already been set to 16 (in particular a leading zero is not
meaningful - for instance 0x01).
* values.adb: Reorder the normalization steps for fixed point
values (reduce precision, remove trailing zero, remove leading
zero, recompute total digits). Set result base to the left operand
base for shift left and shift right operations. Execute operation
"not" as an unsigned long operation "not" for types octet, signed
and unsigned short, signed and unsigned long.
2004-05-17 Laurent Pautet <pautet@dorine.enst.fr>
* nodes.idl: Remove left and right values in an expression
node. Instead define an expression value in order to store
the evaluation of the expression in the node.
* parser.adb: Remove an useless conversion.
* values.adb, values.ads: Use node kind as a discriminant for
values (and not token kind anymore). Subtyping is different for
constant declaration and expression and operation precision is
different for (signed and unsigned) long long and other integer
types for instance. Same for floating and fixed point values.
* types.ads, lexer.ads: Define CORBA types and use them.
* errors.adb, iac.adb: Remove blank after digit in order to
output notations and formats like "fixed<$,$>".
* analyzer.adb, backend-be_idl.adb: Handle constant declarations,
expressions and literals. Handle fixed point types in particular.
* MANIFEST: Add values.ads and values.adb.
2004-05-14 Laurent Pautet <pautet@dorine.enst.fr>
* parser.adb: Avoid to output twice an error message in
P_Type_Spec and in P_Declarator.
* lexer.adb: Improve error detection and fixed literal
parsing. Fix few bugs (08D was incorrectly interpreted as
formatted in octal).
* errors.adb: Define '|' as a character to escape a
meta-character. This character is not frequently used.
2004-05-13 Laurent Pautet <pautet@dorine.enst.fr>
* iac-cpp: read env. variable CPPEXEC to redirect command either
to cpp or mico-cpp. Note that cpp (GNU CPP) removes all
unnecessary blanks and makes iac to incorrectly locate errors.
* lexer.adb, lexer.ads: Scan string literals but on minor errors
like having a string which appears to be a wide string, do not
produce token T_Error. Instead, produce token T_String with
Token_Name or String_Literal_Value set to Incorrect_String. Same
for characters.
* parser.adb: produce a null node when an incorrect string is
parsed in order not to analyze it later on.
* values.adb: do not crash when dumping an empty string value.
* analyze.adb: properly detect type mismatch for floats,
characters, strings.