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

...

// closure list
( print "hi" ; def s = 23 ; println s )

list.each(def sum = 0;){}
list.each { 
    @Xyz sum = 0 
    sum += 1
}

// using some annotation?
list.each @Sum({}) { }
list.each { @Xyz sum = 0, elem -> sum += elem }

for (int i = 0; i < 10; i++) { ... }

// for comprehension
{ x | x in 1..3 && x % 2 == 3 }

// some iterator transformation
def fib = [
 state: [a: 0, b: 1],
 next: {
    state.a
}, hasNext: {
    (state.a, state.b) = [state.b, state.a + state.b]
    true
}] as Iterator

// python generator
 def fib():             
    a, b = 0, 1             
    while 1:                 
        yield b                 
        a, b = b, a+b

// again with some annotation
def fib = { @Xyz a = 0, @Xyz b = 1 -> 
    (a, b) = [b, a + b] 
    return a

...