Issue 53: C keywords
Issue 104: Problems with underscores
Issue 105: All interfaces must be defined at global scope?
Issue 106: Unions represented with either union or struct
Issue 107: Sequence release flag implementation
Issue 108: Confusing sequence example
Issue 109: Malloc problems with sequence types
Issue 110: Suggested optimization for string duplication
Issue 112: Semantics of CORBA_exception_id()"s return type
Issue 113: Contents of string literal exception identifier
Issue 114: Specification type on CORBA_ORB_object_to_string example
Issue 115: CORBA_BOA_set_exception() parameter issues
Issue 155: Support for efficient DII invocation (Section 17.7.1 CORBA 2.))
Issue 157: Entire section 14.1 should not be there (CORBA 14)
Issue 158: Confusion about ORB handling call to pseudo objects via DII
Issue 159: Order of arguments in C Language mapped operation
Issue 160: Type declaration
Issue 161: Out of bound value behaviour for _maximum and _length in sequences
Issue 162: Portably getting the value of the bounds of a sequence
Issue 163: Editorial
Issue 164: Order of parameters in the C mapping
Issue 168: Wrong order of parameters
Issue 170: Reference to undefined term DIR (Section 14.24.1)
Issue 173: Argument order inconsistent (Section 14.25.2)
Issue 330: CORBA_string_alloc
Issue 332: Use of "objref_ptr"
Issue 2533: How to allocate storage for a basic type you wish to place in an any?
Issue 2534: Correct arguments to send multiple requests
Issue 2563: Content of an Any is a pointer to the type -- Issue
Issue 53: C keywords (c_mapping-rtf)
Click here for this issue's archive.
Nature: Bug
Severity: Serious
Summary: Summary: There seems to be no provision for the possibility of C keywords appearing in IDL.
Resolution: resolved and closed
Revised Text: add new parag
To avoid C compilation problems, every use in OMG IDL of a C keyword
as an identifier is mapped into the same name preceded by the prefix
"_cxx_". For example, an IDL interface named "case" would be named
"_cxx_case" when it is mapped into C. For consistency, this rule also
applies to identifiers that are derived from IDL identifiers. For example,
an IDL interface "case" generates the names "_cxx_case_var" and
"_cxx_case_ptr", that is, the IDL compiler behaves as if the interfaces
were named "cxx_case" and then applies the normal mapping rules.
add table of c
keywords
auto double int struct
break else long switch
case enum register typedef
char extern return union
const float short unsigned
continue for signed void
default goto sizeof volatile
do if static while
Actions taken:
July 11, 1996: Received issue
December 12, 1996: issue moved from cxx_revision to c-rev-wg
October 5, 2000: closed issue
Discussion:
Issue 104: Problems with underscores (c_mapping-rtf)
Click here for this issue's archive.
Nature: Uncategorized
Severity:
Summary: Summary: The C mapping advises avoiding the indiscriminate use of underscores in identifiers. To whom is this addressed? Should it be a more general restriction?
Resolution: resolved
Revised Text: Existing sentence
19.2 v 2.2
Due to such ambiguities, it is advisable to avoid the indiscriminate use of
underscores in identifiers.
replace with
Due to such ambiguities, IDL developers targeting C language should
avoid indiscriminate use of underscores in identifiers or consider how the
language mapping will construct C language names.
Actions taken:
September 11, 1996: Received issue
December 12, 1996: moved from cxx_revision to c-rev-wg
October 5, 2000: closed issue
Discussion:
Issue 105: All interfaces must be defined at global scope? (c_mapping-rtf)
Click here for this issue's archive.
Nature: Uncategorized
Severity:
Summary: Summary: Section 14.3 of the C mapping says that interface definitions may not occur within the scope of module declarations. Doesn"t it mean "within the scope of another interface definition"?
Resolution: resolved and closed
Revised Text: Issue
Description
Comments
Vote
105
All interfaces must be defined at
global scope?
Replace sentence to clarify
3:0
For: LM, HP,
Mercury
Existing sentence
19.3 v 2.2
All interfaces must be defined at global scope (no nested
interfaces).
replace with
All IDL interfaces will be translated to the C Language global scope.
Actions taken:
September 11, 1996: Received issue
December 12, 1996: moved from cxx_revision to c-rev-wg
October 5, 2000: closed issue
Discussion:
Issue 106: Unions represented with either union or struct (c_mapping-rtf)
Click here for this issue's archive.
Nature: Uncategorized
Severity:
Summary: Summary: In section 14-10 of the C mapping, it says that an ORB can use a struct to hold a union. Doesn"t this cause portability problems?
Resolution: Close with no change
Revised Text:
Actions taken:
September 11, 1996: Received issue
December 12, 1996: moved from cxx_revision to c-rev-wg
October 5, 2000: closed issue
Discussion: The spec has to allow that implementations can use something other than
a C union because it's not possible to store everything in a C union.
Because the spec requires that 'the union type' variable names and
techniques be supported it does not cause portability problems when an
application is moved from one to another implementation. Since the
internal format does not effect the format during transfer there is no
interoperability impact.
Issue 107: Sequence release flag implementation (c_mapping-rtf)
Click here for this issue's archive.
Nature: Uncategorized
Severity:
Summary: Summary: Section 14.11 of the C mapping introduces a release flag hidden inside the C struct; however, that struct is completely specified and leaves no bit for that flag. How does this work?
Resolution: Close with no change
Revised Text:
Actions taken:
September 11, 1996: Received issue
December 12, 1996: moved from cxx_revision to c-rev-wg
October 5, 2000: closed issue
Discussion: The section introduces a release flag but it does not put the flag inside
the C struct. The section states "the location of this release flag is
implementation dependent." Since the flag is only accessible via defined
interfaces it location is not significant.
Issue 108: Confusing sequence example (c_mapping-rtf)
Click here for this issue's archive.
Nature: Uncategorized
Severity:
Summary: Summary: The fact that a sequence of longs is to be mapped into a struct is very confusing.
Resolution: Close with no change
Revised Text:
Actions taken:
September 11, 1996: Received issue
December 12, 1996: moved from cxx_revision to c-rev-wg
October 5, 2000: closed issue
Discussion: There does not seem to be any alternative approach. Since C does not
have a sequence primitive the implied parameters, i.e. max length,
current length and pointer to data, must be put some where and a struct
seems like the obvious answer.
Fix typo
The IDL code
Typedef CORBA_long FRED;
Typedef sequence <FRED,10> FredSeq;
is commented to be C code. Change /* C */ to be // IDL
Issue 109: Malloc problems with sequence types (c_mapping-rtf)
Click here for this issue's archive.
Nature: Uncategorized
Severity:
Summary: Summary: The C mapping allocation procedures (T__alloc()) don"t allow for malloc"ing space for both the header struct and the values in one call.
Resolution: Close with no change
Revised Text:
Actions taken:
September 11, 1996: Received issue
December 12, 1996: moved from cxx-revision to c-rev-wg
October 5, 2000: closed issue
Discussion: It does not seem like the requested operation should provide. There are
cases where the combined operation would be wrong. Therefore two
operations would have to be specified. That would be a change to
existing implementations, which are not supported very actively now. I
doubt such a change would be implemented.
Issue 110: Suggested optimization for string duplication (c_mapping-rtf)
Click here for this issue's archive.
Nature: Enhancement
Severity:
Summary: Summary: It would be useful if CORBA_string_alloc() took an "optional" second argument which would be the string value to initialize the new string to, since ANSI C does not have strdup().
Resolution: Close with no change
Revised Text:
Actions taken:
September 11, 1996: Received issue
December 12, 1996: moved from cxx_revision to c-rev-wg
October 5, 2000: closed issue
Discussion: same as for Issue 109.
Issue 112: Semantics of CORBA_exception_id()"s return type (c_mapping-rtf)
Click here for this issue's archive.
Nature: Uncategorized
Severity:
Summary: Summary: CORBA_exception_id() returns a pointer to the character string indentifying the exception. It would be nice to explicitly say that this is the same string defined in 14.14.
Resolution: Replace sentence to clarify
Revised Text: Jun 99 spec
p1-27 2nd parag.
CORBA_exception_id() returns a pointer to the character string
identifying the exception. The character string contains the repository ID
for the exception.
changes to
CORBA_exception_id() returns a pointer to the character string
identifying the exception. The character string returned will be a
CORBA_USER_EXCEPTION as defined in 1.16 or a
CORBA_SYSTEM_EXCEPTION as defined in The Common Object
Request Broker: Architecture and Specification.
Actions taken:
September 11, 1996: Received issue
December 12, 1996: moved from cxx_revision to c-rev-wg
October 5, 2000: closed issue
Discussion:
Issue 113: Contents of string literal exception identifier (c_mapping-rtf)
Click here for this issue's archive.
Nature: Uncategorized
Severity:
Summary: Summary: Section 14.14 calls for a string literal which "uniquely identifies this exception type", but does not specify any rules for generating such identifiers.
Resolution: Close with no change
Revised Text:
Actions taken:
September 11, 1996: Received issue
December 12, 1996: moved from cxx_revision to c-rev-wg
October 5, 2000: closed issue
Discussion: This does not seem to be an interoperability issue in that standard
exceptions are defined and user exceptions have meaning only in the
context of applications that understand both sides of the generation and
reception of the exception.
Issue 114: Specification type on CORBA_ORB_object_to_string example (c_mapping-rtf)
Click here for this issue's archive.
Nature: Uncategorized
Severity:
Summary: Summary: On p. 14-24, the example of CORBA_ORB_object_to_string seems to have the CORBA_environment parameter in an unexpected position. Is this intentional? And what about the example on 14-28?
Resolution: Fixed by Portability submission
Revised Text:
Actions taken:
September 11, 1996: Received issue
December 12, 1996: moved from cxx-revision to c-rev-wg
January 2, 1998: closed issue
Discussion: closed issue
Issue 115: CORBA_BOA_set_exception() parameter issues (c_mapping-rtf)
Click here for this issue's archive.
Nature: Uncategorized
Severity:
Summary: Summary: Who owns the parameters "exceptname" and "param" to CORBA_BOA_set_exception? Shouldn"t that routine take a second CORBA_Environment parameter to signal errors in its operation?
Resolution: POA update eliminated conditions - close
Revised Text:
Actions taken:
September 11, 1996: Received issue
December 12, 1996: moved from cxx_revision to c-rev-wg
October 5, 2000: closed issue
Discussion: The sections on the POA have replaced the text related to the BOA and
the POA text has no equivalent text.
Issue 155: Support for efficient DII invocation (Section 17.7.1 CORBA 2.)) (c_mapping-rtf)
Click here for this issue's archive.
Nature: Uncategorized
Severity: Critical
Summary: Summary: Sun wants to ensure that DII interface permits implementations that support invocations without consulting the interface repository as intended by CORBA.
Resolution: close
Revised Text:
Actions taken:
October 7, 1996: received issue
October 5, 2000: closed issue
Discussion: It's not clear what part of the spec is being addressed. It's not clear what
version of the spec was involved with the reference to section 17.7.1.
The newest version June 1999 puts the text related to DII in section 1.27
and 1.28. The text is effectively the same as that used in the CORBA 2.1
at Section 17.26 and 27. Neither section says that an implementation
must use the IR as the means to resolve DSI or DII requests.
Issue 157: Entire section 14.1 should not be there (CORBA 14) (c_mapping-rtf)
Click here for this issue's archive.
Nature: Uncategorized
Severity: Medium
Summary: Summary: Entire section should not be here.It"s relevant to all potential language mappings. It should be moved to an appendix, since it is not a normative part of the specification
Resolution: delete section
Revised Text: proposed fix: Editorial change, move whole section to appendix
Actions taken:
October 10, 1996: received issue
October 5, 2000: closed issue
Discussion: This is now section 1.1 and subparagraphs. The text is not really part of
the C language mapping and further it is not completely correct for the C
Language mapping. The errors show up where the text use examples
and always makes a statement like " for example, the C mapping might
define..." where in latter parts of the document we do define the actual
mapping. The other language mappings that I checked do not have an
equivalent section.
Issue 158: Confusion about ORB handling call to pseudo objects via DII (c_mapping-rtf)
Click here for this issue's archive.
Nature: Uncategorized
Severity: Critical
Summary: Summary: Par. 14.1.8 indicates that ORB may handle calls to pseudo-objects via DII specially. This spec. should indicate that DII can"t be portably used for pseudo-object references.
Resolution: close – paragraph is deleted
Revised Text:
Actions taken:
October 10, 1996: received issue
October 5, 2000: closed issue
Discussion:
Issue 159: Order of arguments in C Language mapped operation (c_mapping-rtf)
Click here for this issue's archive.
Nature: Uncategorized
Severity: Critical
Summary: Summary: Order of arguments to C Language mapped operations seems to have changed from CORBA 1.2. Order must remain the same. Order must be used consistently throughout this specification .
Resolution: Fixed by Portability submission
Revised Text: Proposed fix: make the order consistently to be the 1.2 one.
Actions taken:
October 10, 1996: received issue
January 2, 1998: closed issue
Discussion:
Issue 160: Type declaration (c_mapping-rtf)
Click here for this issue's archive.
Nature: Uncategorized
Severity: Enhancement
Summary: Summary: Section 14.5. ISO C permits declaration of anonymous structures when type is being defined. From a coding style perspective it"s better to require use of defined type names
Resolution: close
Revised Text:
Actions taken:
October 10, 1996: received issue
October 5, 2000: closed issue
Discussion: It's not clear what spec version and paragraph is being addressed.
Further it's not clear how a style issue should be addressed in the spec.
Issue 161: Out of bound value behaviour for _maximum and _length in sequences (c_mapping-rtf)
Click here for this issue's archive.
Nature: Uncategorized
Severity: Medium
Summary: Summary: Section 14.11. Para 6 indicates error to set _length or _maximum member larger than specified bound. Say "If the _length and _maximum members are set to a value larger than specified...."
Resolution: replace sentence
Revised Text: Proposed fix: Add the sentence to the paragraph
Actions taken:
October 10, 1996: received issue
October 5, 2000: closed issue
Discussion: This is now section 1.11 in the June 1999 edition and the sentence still
exists. In full the sentence in question reads "For bounded sequences, it
is an error to set the _length or _maximum member to a value larger than
the specified bound." The issue seems to be suggesting that the spec
would be clearer or more complete if we stated a problem and then went
on to state the consequence of the error. However, the consequences of
the error can be well defined.
Replace
sentence with:
If the _length or _maximum members are set to values that are larger
than the size of a bounded sequence or larger than the allocated space
for a unbounded buffer then the result is undefined behavior.
Issue 162: Portably getting the value of the bounds of a sequence (c_mapping-rtf)
Click here for this issue's archive.
Nature: Uncategorized
Severity: Medium
Summary: Summary: Section 14.11: It"s not clear how a portable application could know value of bound of sequence. It"s specified in PIDL but is not represented in generated C header
Resolution: add sentence
Revised Text: Add sentence to
start the 3rd
paragraph on
p,1-14 June 99
spec
The _maximum member for a bounded sequence should be set to the
length of the bound when the sequence is allocated. Thereafter
accessing the _maximum will return the value of the bound. Resetting the
value of _maximum for a bounded sequence can result in unpredictable
behavior.
Actions taken:
October 10, 1996: received issue
October 5, 2000: closed issue
Discussion: It not clear what a C language mapping could do to provide this
information. The C++ language mapping simply states that maximum()
for a bounded sequence will always return the bound, but they can make
that happen via the class. The C language could do likewise, accessing
the _maximum parameter will return the sequence bound but, that would
only be true if the application had not at some point changed the bound.
Issue 163: Editorial (c_mapping-rtf)
Click here for this issue's archive.
Nature: Uncategorized
Severity: Medium
Summary: Summary: Section 14.13: Para 6 Change "For an array T..." to "An array T..."
Resolution: Fixed in CORBA 2.2 editing process
Revised Text: Proposed fix: Make it so
Actions taken:
October 10, 1996: received issue
February 26, 1998: closed issue
Discussion:
Issue 164: Order of parameters in the C mapping (c_mapping-rtf)
Click here for this issue's archive.
Nature: Uncategorized
Severity: Critical
Summary: Summary: Section 14.15: Bullet 2 indicates that last parameter to each operation is an output parameter..Inconsistent with lead sentence, CORBA 1.2, and not reflectedin rest of doc.
Resolution: Fixed by Portability submission
Revised Text: Proposed fix: Make things consistent with the way it is descibed in Bullet 2, i.e. additional parameters are trailing parameters, not leading parameters.
Actions taken:
October 10, 1996: received issue
January 2, 1998: closed issue
Discussion:
Issue 168: Wrong order of parameters (c_mapping-rtf)
Click here for this issue's archive.
Nature: Uncategorized
Severity: Critical
Summary: Summary: Example CORBA_ORB_object_to_string function shows CORBA 1.2 function argument ordering. This is inconsistent with text in sect. 14.15. Spec must be internally consistent.
Resolution: Fixed by Portability submission
Revised Text: Proposed Resolution: Make it consistent with the general order i.e. implicit parameter come last.
Actions taken:
October 10, 1996: received issue
January 2, 1998: closed issue
Discussion:
Issue 170: Reference to undefined term DIR (Section 14.24.1) (c_mapping-rtf)
Click here for this issue's archive.
Nature: Uncategorized
Severity: Critical
Summary: Summary: Paragraph refers to "DIR". This term has not been recently defined in the specification.
Resolution: Fixed in CORBA 2.2 editing process
Revised Text: Proposed resolution: In the last bullet just before the beginning of Sec 14.24.1 add "DIR" immediately following the term "Dynamic Implementation Routine", thus defining DIR
Actions taken:
October 10, 1996: received issue
February 26, 1998: closed issue
Discussion:
Issue 173: Argument order inconsistent (Section 14.25.2) (c_mapping-rtf)
Click here for this issue's archive.
Nature: Uncategorized
Severity: Critical
Summary: Summary: C signature for example4_op5 as well as CORBA_BOA_set_exception have the environment parameter in the wrong place
Resolution: Fixed by Portability Submission
Revised Text: Proposed Resolution: make ev the last parameter
Actions taken:
October 10, 1996: received issue
January 2, 1998: closed issue
Discussion:
Issue 330: CORBA_string_alloc (c_mapping-rtf)
Click here for this issue's archive.
Nature: Uncategorized
Severity:
Summary: Summary: Editorial issue: The definition on page 14-15 is given as char* CORBA_string_alloc(CORBA_unsigned_long_len); The return type should be "CORBA_char*".
Resolution: Fixed in CORBA 2.2 editing process
Revised Text:
Actions taken:
October 31, 1996: received issue
February 26, 1998: closed issue
Discussion:
Issue 332: Use of "objref_ptr" (c_mapping-rtf)
Click here for this issue's archive.
Nature: Uncategorized
Severity:
Summary: Summary: Nothing defines what an "objref_ptr" is. This was presumably pasted in from C++ mapping which has a T_ptr concept. Stop using this term in the C mapping or define it
Resolution: Fixed in CORBA 2.2 editing process
Revised Text:
Actions taken:
October 31, 1996: received issue
February 26, 1998: closed issue
Discussion:
Issue 2533: How to allocate storage for a basic type you wish to place in an any? (c_mapping-rtf)
Click here for this issue's archive.
Nature: Uncategorized Issue
Severity: Critical
Summary: Summary: Under the C mapping how do you allocate storage for a basic type
you wish to place in an any.
Consider inserting a long into an Any.
Do you do this: solution 1
any->_type = TC_long;
any->_value = CORBA_alloc(sizeof(CORBA_long));
or this: solution 2
any->_type = TC_long;
any->_value = CORBA_long__alloc();
One vendor argues that the text below supports solution 2. However
as a long is not a constructed type solution 1 seems more natural.
>From "17.8 Mapping Considerations for Constructed Types" of CORBA 2.1
specification:
"For types whose parameter passing modes require heap allocation,
an ORB implementation will provide allocation functions. These types
include variable-length struct, variable-length union, sequence, any,
string, wstring and array of a variable-length type. The return value
of these allocation functions must be freed using CORBA_free(). For
one of these listed types T, the ORB implementation will provide
the following type-specific allocation function:
T *T__alloc(); /* C */"
Resolution: urgent resolution, issue resolved
Revised Text: Resolution:
OMG has selected solution 2.
Additional information:
In a future CORBA version the the text in section 19.8 of CORBA 2.2
(section 17.8 of CORBA 2.1) will be changed to better illustrate the
existing words. The following existing paragraph seems to cover the
question, if the type for an any is being allocated to the heap.
For types whose parameter passing modes require heap
allocation,an ORB implementation will provide allocation functions. These
types include variable-length struct, variable-length union, sequence, any,
string, wstring and array of a variable-length type. The return value of
these
allocation functions must be freed using CORBA_free(). For one of
these listed types T, the ORB implementation will provide the following
type-specific allocation function:
T *T__alloc(); /* C */"
To clarify the paragraph for type any value we will add the following
text.
To initialize the fields of an any with type T where T is a
CORBA basic type, a T_alloc() operation shall be utilized. For example, an
any containing a CORBA_long that was allocated to the heap would be
initialized by:
any->type = TC_long
any_>value = CORBA_long__alloc( );
If the CORBA basic type value for the any was not allocated
from the heap then the type specific allocator would not be used.
Actions taken:
March 12, 1999: received issue
August 4, 1999: closed issue
Discussion:
Issue 2534: Correct arguments to send multiple requests (c_mapping-rtf)
Click here for this issue's archive.
Nature: Revision
Severity: Critical
Summary: Summary: Additional Commentary:
In tset/c/hdr/DII/ORB/send_multiple_requests.c,
VSOrb 1.1.0 test examines our orb on the assumption that
send_multiple_requests() is defined like the following.
CORBA_Status CORBA_send_multiple_requests(
CORBA_ORB orb,
CORBA_Request reqs[],
CORBA_long count,
CORBA_Flags invoke_flags,
CORBA_Environment *env
);
But, according to section 4.3.2 of CORBA 2.1 specification,
send_multiple_requests() is defined like the following.
/* C */
CORBA_Status CORBA_send_multiple_requests(
CORBA_Request reqs[],
CORBA_Environment *env,
CORBA_long count,
CORBA_Flags invoke_flags
);
Section C - Interpretation Responses
The Open Group Initial Response:
An interpretation from OMG is required to determine whether Section
4.3.2 or Section 17.17 of CORBA 2.1 is definitive.
Consultants Initial Response:
We believe Section 4.3.2 is incorrect according to the general
C mapping rules (as are many of the other examples). We are
following rules defined in Section 17.17 which states that every
function signature takes the object as the first parameter and an
Environment object as the last parameter.
Interpretations Subgroup Responses:
Resolution: urgent resolution....issue closed
Revised Text: Resolution:
OMG has determined that Section 17.17 of CORBA 2.1 is definitive. The
material in section 4.3.2 will be changed in a future CORBA revision
to agree with it.
Actions taken:
March 12, 1999: received issue
August 4, 1999: closed issue
Discussion:
Issue 2563: Content of an Any is a pointer to the type -- Issue (c_mapping-rtf)
Click here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary: Summary: In PIN4O.00001 OMG have ruled that the content of an any is a
pointer to the type. So a long in an Any looks like this;
any ----> long
But what about strings? As this type includes a pointer part
itself the above rules would make the following appear to be the
conformant case;
any----> ptr to string -----> string : option 1
Having a pointer to a pointer is a bit unwieldy but appears to follow
the rules. Collapsing this to simply a pointer to the str thus;
any----> string : option 2
is more natural for programmers but ambiguous within the spec.
We would like to know which of these two options is correct.
Section C - Interpretation Responses
The Open Group Initial Response:
This request is being sent for review by OMG. We request that OMG
rule which of the two options is correct or whether both are equally
so.
Consultants Initial Response:
We recommend this request be sent to OMG for a binding interpretation.
We recommend a PIN be granted to clarify the requirements for branding
irrespective of which of the two options OMG selects.
Resolution: urgent resolution, issue closed
Revised Text: Resolution:
Add the following sentence to v 2.3 standard in section 19.7 Mapping for
Basic Data Types after the sentence:
"TypeCodes are described in "TypeCodes" on page 8-35/ The _value member
for an any is a pointer to the actual value of the datum."
"Note that this holds true when the datum is itself implemented as a
pointer, e.g. in the case of a CORBA string, the _value member would be
a pointer(CORBA_char**) to string(CORBA_char*)."
Actions taken:
March 30, 1999: received issue
August 4, 1999: closed issue
Discussion: