Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • possible syntax alignments for the new grammar
  • decide if to make the new MOP for Groovy3, or only the grammar
  • more indy enhancements in final, 2.1?
  • compatibility layer for things like ArrayUtil, old power asserts
    • using modules for that to keep the old classes around
  • "true" named parameters
  • traits
  • stream / lazy / for comprehensions / generators 
  • joint compilation with the Groovy Eclipse compiler
    • also problem of reflection usage which seems to impact Gradle users
  • pattern matching
  • how to better engage the community so as to get more contributions and more active contributors
    • for ex. some kind of bug parade with low-hanging fruits for people to get a foot in the project
  • documentation / specification discussion
  • \@DelegatesTo to define closure delegates (nice for code completion and static analysis) GROOVY-5455
  • further modularity steps
  • static type checking improvements with regards to closure parameter type information
  • changes and/or additions regarding curry / curried
    • see mailing-list dicussion

Discussions

  • Peter's points for Gradle
    • Joint compilation (7 points)
      • groovyc creates ClassNode from Java source
    • Compile class path (4 points)
      • groovyc creates ClassNode from bytecode (without classloader)
    • Some backwards compatibility (2 points)
      • tester and guaranteed
      • super MOP methods should not user number scheme
      • when runtime classes are moved, keep a delegate in old location
    • Add @DelegatesTo annotation (10 points)
      • nothing else to do!

...

  • generators / for comprehensions / continuation-passing /  etc brainstorming

...

  • modularity status
    • might be nice to have file extensions
      • check for projects like Griffon / Easyb and others if they'd find it useful
      • nice for static compilation (no need for @CompileStatic 
    • but for other further improvements, wait for feedback and see how people are using extension modules
    • mark what's been done from the GEP vs what's remaining or can potentially be considered for further enhancements

 

  • static type checking improvements with regards to closure parameter type information
    • wait and see for the feedback of users on static type checking before investigating further

 

  • changes and/or additions regarding curry / curried
    • see mailing-list dicussion
    • could be experimented in a contribution module

 

  • Random tasks
    • check if 1.7 compiled code runs on 2.0 runtime
      • to see if we'd need to support old power assert package for a potential compatibility module
    • check the binary snapshot of bnd
      • to see if that works fine for the indy build
    • investigate what traits could be looking like in Groovy
      • compared to @Delegate
      • see what other languages are doing
      • state vs no state
      • how to deal with super and this
      • what happens with overloading / method with same signatures
    • formalize some module contribution solution (GEP?)
    • formalize traits (GEP?)
    • formalize pattern matching (GEP?)
    • finish the specification tool and start writing some initial specification documents

 

  • Roadmap
    • 2.0.1
      • small bug fixes and critical bug fixes
    • 2.1
      • new features (not backported to 2.0.x)
      • new invoke dynamic improvements (because of bytecode compatibility)
    • 2.x
      • modularity: file extension support
      • compiler should support warnings, especially deprecation warnings
    • 3.0
      • big new features, potentially breaking
      • MOP 2
        • get rid of ArrayUtil
    • 4.0
      • Grammar / Antlr 4