Bug 1134

Summary: Enhance GlueGen Compiler: Minimal GL Header Changes _and_ Typesafety
Product: [JogAmp] Gluegen Reporter: Sven Gothel <sgothel>
Component: coreAssignee: Sven Gothel <sgothel>
Status: RESOLVED FIXED    
Severity: enhancement    
Priority: ---    
Version: 2   
Hardware: All   
OS: all   
Type: --- SCM Refs:
72d3635279ffc8ad88e47dff9bbe95d211226d11 ea6df88075c44f6b6317920119d6b33d5d97b362 8eb9e27bccca4a0cd6a0b1b15bee76576ce030c3 54dcf4271abf188585b248473cab11b0b4d93854 4183867b055e99762d9b1a9163012657738be31a 1df503b8f14b385b35c6b50a4ff7ff03d1c3134f 5f66fafec303de7d7904a499fefb8e3d023b61ae 43f200428eb595665d6db6edbd5538413f5a977c 6a0822b03de2976c5bc37544c50e70094eeb94a7 eca019cdea4017227e951d8a9eb30cb34fca4a07 b86c042c864db0d8061b999fadc87dd9f3b45824 d75bd393a5850252d7d7012e68af3850178ca8c9 e2d5d6f55794c5e27c3a29dcbbdaf2921506667d da909f84dc8421052c92491baa7dd90e1c78dc8f 457355003bff320eee831731de016d29fb1e3982 3b7871515f9a6a3c7adcbf12772d168e61f86d50 cf9f28cf249393f42d7d2835775521dfadee6b92 9eb9403d774db0c55ea3cb2fc5bd04114b8b5feb 414a0146660cadd35d5ae270f7f819717e9c7374 10060b091b76bee35246c5165d49ab546ebc4e37 90e53d0c01f2fe62ff8c5bcc41741ec3c9c47e59 8efdf71e2de6392344326ba6a28e8f8fa7e3e8e5 5dd12c17bf5037c7ac6a2ac73caf4d61443c4749 9d2bc5118f20f6f6defae075da17d34e1716d36d e3385993b4133f88fd1b8e335438f5f2cd305555 (jogl) 25f248669f603c2bbd6ad97f31e0c72ce780f507
Workaround: ---
Bug Depends on:    
Bug Blocks: 1135    

Description Sven Gothel 2015-02-26 02:49:15 CET

    
Comment 1 Sven Gothel 2015-03-05 02:42:51 CET
- We shall be able to import 'most' vanilla GL header,
  i.e. only change the typedef part using our GlueGen types

- Type Safety:
  - GlueGen shall detect '#define' and 'enum' redefines 
    and throw an exception in this case.
    This helps detecting wrongly renamed GL extensions into core!

  - The same goes for function symbols, 
    i.e. their semantics have to be equal!
    This helps detecting wrongly renamed GL extensions into core!

  - Hence semantic equality shall be validated

- Track and simplify renamed 'symbol', i.e. use a common 
  sub-interface for all renamed symbols (ConstantDefinition, FunctionSymbol, ..).
Comment 2 Sven Gothel 2015-03-06 11:22:42 CET
72d3635279ffc8ad88e47dff9bbe95d211226d11:
  - Enhance GlueGen Compiler: Minimal GL Header Changes _and_ Typesafety

ea6df88075c44f6b6317920119d6b33d5d97b362
  - Fix regression: Static C-Function call must use original API name

8eb9e27bccca4a0cd6a0b1b15bee76576ce030c3
  - Add ASTLocationTag, locating source of [semantic] errors while 
    parsing / analyzing

54dcf4271abf188585b248473cab11b0b4d93854
  - Refine Logging using 'LoggerIf' - Replace System.err 
    w/ Logging where appropriate

4183867b055e99762d9b1a9163012657738be31a
  - Utilize AliasedSymbol where required in *Configuration; 
  - Clarify ProcAddressEmitter criteria

1df503b8f14b385b35c6b50a4ff7ff03d1c3134f
  - Fix ProcAddressEmitter.getFunctionPointerTypedefName() ; 
  - Fix JavaEmitter's Function/Struct Emission

5f66fafec303de7d7904a499fefb8e3d023b61ae
  - GlueGenException.toString(): Produce a 'gcc' like/compatible error message

43f200428eb595665d6db6edbd5538413f5a977c
  - Fix regression on OpenSolaris/gcc: Redefine in test1.h (test case)
Comment 3 Sven Gothel 2015-03-09 10:33:28 CET
eca019c Bug 1134 - Pass ASTLocationTag to all types, used for GlueGenException
b86c042 Bug 1134 - Handle Opaque fields in structs; Print struct field name in apidoc of getter/setter
d75bd39 Bug 1134 - Fix IntType: Add getCName(..) for proper C-type code; Fix its newCVVariant(..), don't pass given cv-attr as typedef
e2d5d6f Fix Type.getDebugString() comma separation
da909f8 Bug 1134 - Use ASTLocationTag in Logging (PCPP, Emitter); Refine ASTLocationTag log/exception formatting.
4573550 Bug 1134 - Logging's formatter now takes care of Type -> getDebugString() when desired, not at 'log' call
3b78715 Bug 1134 - Make ASTLocusTag's text optional
cf9f28c Bug 1134 - Fix IntType 'unsigned'; Type: Use copy-ctor instead of Clonable, ..
9eb9403 Bug 1134 - Fix aliased typedef struct emission
414a014 Bug 1134 - Fix CMethodBindingEmitter return type '_res' qualifiers
10060b0 Bug 1134 - ProcAddressCMethodBindingEmitter: Use available 'ProcAddrTypedef' for type validation w/ local generated variant (robustness)
90e53d0 Bug 1134 - Fix CMethodBindingEmitter return type '_res' qualifiers (part 2)
8efdf71 Bug 1134 - In case of 'undefined type' throw a semantic GlueGenException instead of an NPE
5dd12c1 Bug 1134 - Add ASTLocusTagProvider for Define and fix newline in c-parser (Expose source location for log/error messages)
9d2bc51 Bug 1134 - Refine err/log message of 'previous definition is here'
Comment 4 Sven Gothel 2015-03-09 10:40:44 CET
e3385993b4133f88fd1b8e335438f5f2cd305555

Use ASTLocationTag in Logging
    
Adapt to GlueGen commit da909f84dc8421052c92491baa7dd90e1c78dc8f
Comment 5 Sven Gothel 2015-03-11 18:42:30 CET
25f248669f603c2bbd6ad97f31e0c72ce780f507
LOG AliasedSymbol: Don't issue getAliasedString(), logger takes care of that, when it logs.