SuccessChanges

Summary

  1. Bug 1134 - Enhance GlueGen Compiler: Minimal GL Header Changes _and_ (details)
  2. Bug 1134 - Fix regression: Static C-Function call must use original API (details)
  3. Bug 1134 - Add ASTLocationTag, locating source of [semantic] errors (details)
  4. Bug 1134 - Refine Logging using 'LoggerIf' - Replace System.err w/ (details)
  5. Bug 1134 - Utilize AliasedSymbol where required in *Configuration; (details)
  6. Bug 1134 - Fix ProcAddressEmitter.getFunctionPointerTypedefName() ; Fix (details)
  7. Bug 1134 - GlueGenException.toString(): Produce a 'gcc' like/compatible (details)
  8. Bug 1134 - Fix regression on OpenSolaris/gcc: Redefine in test1.h (test (details)
Commit 72d3635279ffc8ad88e47dff9bbe95d211226d11 by Sven Gothel
Bug 1134 - Enhance GlueGen Compiler: Minimal GL Header Changes _and_ Typesafety

- We shall be able to import 'most' vanilla GL header,
  i.e. only change the typedef part using our GlueGen types

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

  - GlueGen now detects function redefines (overloading)
    and throw an exception in this case.
    Hence the semantics of duplicate functions has to be equal!
    This helps detecting wrongly renamed GL extensions into core!

  - Semantic equality for all types is provided
    via interface TypeComparator.SemanticEqualityOp, i.e. 'boolean equalSemantics(..)'
    implemented by com.jogamp.gluegen.cgram.types.Type.

    Semantic equality can be relaxed via config "RelaxedEqualSemanticsTest true",
    i.e. ignoring integer size, and const / volatile qualifiers.

  - All equality/hash methods of 'com.jogamp.gluegen.cgram.types.*'
    are restructured.

- Track and simplify renamed 'symbol', i.e. use a common
  sub-interface for all renamed symbols (ConstantDefinition, FunctionSymbol, ..)

  - This is provided in a unified manner
    via interface com.jogamp.gluegen.cgram.types.AliasedSymbol
    and its common implementation AliasedSymbolImpl

  - All JavaConfiguration.shouldIgnore* methods operate w/
    'AliasedSymbol' trying to match all aliases.

- Support 'struct NAME [ { ... } ]' w/o typedef's
  - New GL / CL headers do not use typedef's for anonymous opaque types

- Opaque Type handling
  - JavaConfiguration.typeInfo(..), identifying opaque types,
    no more back references from target-type -> typedef.
    Hence the following is possible now:
      typedef void * Opaque01; // Opaque
      typedef void * APointerBuffer; // A Buffer

- All Logger instances are no more static
  and derive their warning level from the package's root Logger
  via Logging.getLogger(..).
The file was modifiedmake/build-test.xml (diff)
The file was modifiedsrc/java/com/jogamp/gluegen/cgram/types/FunctionType.java (diff)
The file was modifiedsrc/java/com/jogamp/gluegen/cgram/types/SizeThunk.java (diff)
The file was modifiedsrc/java/com/jogamp/gluegen/cgram/types/UnionType.java (diff)
The file was modifiedsrc/java/com/jogamp/gluegen/cgram/types/TypeDictionary.java (diff)
The file was modifiedsrc/java/com/jogamp/gluegen/cgram/types/BitType.java (diff)
The file was modifiedsrc/java/com/jogamp/gluegen/ReferencedStructs.java (diff)
The file was modifiedsrc/java/com/jogamp/gluegen/cgram/types/IntType.java (diff)
The file was modifiedsrc/java/com/jogamp/gluegen/cgram/types/VoidType.java (diff)
The file was modifiedsrc/java/com/jogamp/gluegen/cgram/types/ArrayType.java (diff)
The file was modifiedsrc/java/com/jogamp/gluegen/cgram/types/Type.java (diff)
The file was modifiedsrc/junit/com/jogamp/gluegen/test/junit/generation/test1.h (diff)
The file was modifiedsrc/java/com/jogamp/gluegen/JavaMethodBindingEmitter.java (diff)
The file was modifiedsrc/java/com/jogamp/gluegen/FunctionEmitter.java (diff)
The file was modifiedsrc/java/com/jogamp/gluegen/cgram/types/PointerType.java (diff)
The file was modifiedsrc/java/com/jogamp/gluegen/GlueGen.java (diff)
The file was modifiedsrc/antlr/com/jogamp/gluegen/cgram/HeaderParser.g (diff)
The file was modifiedsrc/java/com/jogamp/gluegen/DebugEmitter.java (diff)
The file was modifiedmake/scripts/runtest.sh (diff)
The file was modifiedsrc/junit/com/jogamp/gluegen/test/junit/generation/BaseClass.java (diff)
The file was modifiedsrc/java/com/jogamp/gluegen/CMethodBindingEmitter.java (diff)
The file was modifiedsrc/java/com/jogamp/gluegen/GlueEmitter.java (diff)
The file was addedsrc/java/com/jogamp/gluegen/TypeConfig.java
The file was modifiedsrc/java/com/jogamp/gluegen/cgram/types/MemoryLayoutType.java (diff)
The file was modifiedsrc/java/com/jogamp/gluegen/cgram/types/EnumType.java (diff)
The file was modifiedsrc/java/com/jogamp/gluegen/pcpp/PCPP.java (diff)
The file was modifiedsrc/java/com/jogamp/gluegen/JavaEmitter.java (diff)
The file was modifiedsrc/java/com/jogamp/gluegen/cgram/types/DoubleType.java (diff)
The file was modifiedsrc/junit/com/jogamp/gluegen/test/junit/generation/test1-common.cfg (diff)
The file was modifiedsrc/java/com/jogamp/gluegen/ConstantDefinition.java (diff)
The file was modifiedsrc/java/com/jogamp/gluegen/cgram/types/StructType.java (diff)
The file was addedsrc/junit/com/jogamp/gluegen/test/junit/internals/TestType.java
The file was modifiedsrc/java/com/jogamp/gluegen/Logging.java (diff)
The file was modifiedsrc/java/com/jogamp/gluegen/cgram/types/FloatType.java (diff)
The file was modifiedsrc/java/com/jogamp/gluegen/TypeInfo.java (diff)
The file was modifiedsrc/java/com/jogamp/gluegen/cgram/types/Field.java (diff)
The file was modifiedsrc/java/com/jogamp/gluegen/JavaConfiguration.java (diff)
The file was modifiedsrc/java/com/jogamp/gluegen/MethodBinding.java (diff)
The file was addedsrc/java/com/jogamp/gluegen/cgram/types/TypeComparator.java
The file was modifiedsrc/java/com/jogamp/gluegen/JavaType.java (diff)
The file was modifiedsrc/java/com/jogamp/gluegen/cgram/types/FunctionSymbol.java (diff)
The file was addedsrc/java/com/jogamp/gluegen/cgram/types/AliasedSymbol.java
The file was modifiedsrc/java/com/jogamp/gluegen/procaddress/ProcAddressCMethodBindingEmitter.java (diff)
The file was modifiedsrc/junit/com/jogamp/gluegen/test/junit/generation/test1.c (diff)
The file was modifiedsrc/java/com/jogamp/gluegen/cgram/types/CompoundType.java (diff)
Commit ea6df88075c44f6b6317920119d6b33d5d97b362 by Sven Gothel
Bug 1134 - Fix regression: Static C-Function call must use original API name

- Regression of commit 72d3635279ffc8ad88e47dff9bbe95d211226d11

CMethodBindingEmitter emits statically linked function calls,
hence needs to use the original name of AliasedSymbol.

AliasedSymbol: Add 'getOrigName()' at creation!
The file was modifiedsrc/java/com/jogamp/gluegen/cgram/types/AliasedSymbol.java (diff)
The file was modifiedsrc/java/com/jogamp/gluegen/cgram/types/CompoundType.java (diff)
The file was modifiedsrc/java/com/jogamp/gluegen/procaddress/ProcAddressCMethodBindingEmitter.java (diff)
The file was modifiedsrc/java/com/jogamp/gluegen/CMethodBindingEmitter.java (diff)
Commit 8eb9e27bccca4a0cd6a0b1b15bee76576ce030c3 by Sven Gothel
Bug 1134 - Add ASTLocationTag, locating source of [semantic] errors while parsing / analyzing

New GlueGenException supports ASTLocationTag,
which will be throws in case of semantic and/or parsing errors.
The file was modifiedsrc/java/com/jogamp/gluegen/ConstantDefinition.java (diff)
The file was modifiedsrc/java/com/jogamp/gluegen/cgram/types/FunctionSymbol.java (diff)
The file was addedsrc/java/com/jogamp/gluegen/GlueGenException.java
The file was modifiedsrc/java/com/jogamp/gluegen/JavaEmitter.java (diff)
The file was modifiedsrc/java/com/jogamp/gluegen/cgram/types/EnumType.java (diff)
The file was modifiedsrc/java/com/jogamp/gluegen/GlueGen.java (diff)
The file was modifiedsrc/java/com/jogamp/gluegen/cgram/TNode.java (diff)
The file was modifiedsrc/antlr/com/jogamp/gluegen/cgram/HeaderParser.g (diff)
The file was addedsrc/java/com/jogamp/gluegen/ASTLocusTag.java
Commit 54dcf4271abf188585b248473cab11b0b4d93854 by Sven Gothel
Bug 1134 - Refine Logging using 'LoggerIf' - Replace System.err w/ Logging where appropriate
The file was modifiedsrc/java/com/jogamp/gluegen/JavaConfiguration.java (diff)
The file was modifiedsrc/java/com/jogamp/gluegen/Logging.java (diff)
The file was modifiedsrc/java/com/jogamp/gluegen/pcpp/PCPP.java (diff)
The file was modifiedsrc/java/com/jogamp/gluegen/CMethodBindingEmitter.java (diff)
The file was modifiedsrc/java/com/jogamp/gluegen/JavaEmitter.java (diff)
The file was modifiedsrc/java/com/jogamp/gluegen/procaddress/ProcAddressEmitter.java (diff)
The file was modifiedsrc/java/com/jogamp/gluegen/GlueGen.java (diff)
The file was modifiedsrc/java/com/jogamp/gluegen/ant/GlueGenTask.java (diff)
Commit 4183867b055e99762d9b1a9163012657738be31a by Sven Gothel
Bug 1134 - Utilize AliasedSymbol where required in *Configuration; Clarify ProcAddressEmitter criteria
The file was modifiedsrc/java/com/jogamp/gluegen/procaddress/ProcAddressEmitter.java (diff)
The file was modifiedsrc/java/com/jogamp/gluegen/procaddress/ProcAddressCMethodBindingEmitter.java (diff)
The file was modifiedmake/build-test.xml (diff)
The file was modifiedsrc/java/com/jogamp/gluegen/JavaConfiguration.java (diff)
The file was modifiedsrc/java/com/jogamp/gluegen/JavaEmitter.java (diff)
The file was modifiedsrc/java/com/jogamp/gluegen/procaddress/ProcAddressConfiguration.java (diff)
Commit 1df503b8f14b385b35c6b50a4ff7ff03d1c3134f by Sven Gothel
Bug 1134 - Fix ProcAddressEmitter.getFunctionPointerTypedefName() ; Fix JavaEmitter's Function/Struct Emission

Fix ProcAddressEmitter.getFunctionPointerTypedefName():
  - needs to produce function-pointer-type name w/ original name

Fix JavaEmitter's Function/Struct Emission:
  - needs to create FunctionSymbol w/ original native name,
  - then rename - preserving the original one.
The file was modifiedsrc/java/com/jogamp/gluegen/JavaEmitter.java (diff)
The file was modifiedsrc/java/com/jogamp/gluegen/procaddress/ProcAddressEmitter.java (diff)
The file was modifiedsrc/java/com/jogamp/gluegen/cgram/types/AliasedSymbol.java (diff)
Commit 5f66fafec303de7d7904a499fefb8e3d023b61ae by Sven Gothel
Bug 1134 - GlueGenException.toString(): Produce a 'gcc' like/compatible error message
The file was modifiedsrc/java/com/jogamp/gluegen/GlueGenException.java (diff)
The file was modifiedsrc/java/com/jogamp/gluegen/ASTLocusTag.java (diff)
Commit 43f200428eb595665d6db6edbd5538413f5a977c by Sven Gothel
Bug 1134 - Fix regression on OpenSolaris/gcc: Redefine in test1.h (test case)
The file was modifiedsrc/junit/com/jogamp/gluegen/test/junit/generation/test1.h (diff)