This page is no longer maintained — Please continue to the home page at www.scala-lang.org

set phases to 'stunned'

1 reply
extempore
Joined: 2008-12-17,
User offline. Last seen 35 weeks 3 days ago.

Still in the land of the phases. I can't decide what a good UI is for
the below: there are too many knobs to frob and I only have my
suppositions as to how half of them are supposed to be used. Any
theories in what form one might wish to access this kind of data?

// code with a random smattering of features
val code = """
class A[R](xs: List[R]) {
class B

def f[T >: R, U[_]](x: B, g: => T => U[Int]) = xs map g
}"""

// An implicit on a string which compiles the code inside it!
// Who says we're not "dynamic" around here.
scala> code ?< 'f

parser -> def f[T >: R,U[_]](x: A.this.B,g: => (T) => U[Int]): List[U[Int]]
namer -> def f[T >: R,U[_]](x: A.this.B,g: => (T) => U[Int]): List[U[Int]]
packageobjects -> def f[T >: R,U[_]](x: A.this.B,g: => (T) => U[Int]): List[U[Int]]
typer -> def f[T >: R,U[_]](x: A.this.B,g: => (T) => U[Int]): List[U[Int]]
superaccessors -> def f[T >: R,U[_]](x: A.this.B,g: => (T) => U[Int]): List[U[Int]]
pickler -> def f[T >: R,U[_]](x: A.this.B,g: => (T) => U[Int]): List[U[Int]]
refchecks -> def f[T >: R,U[_]](x: A.this.B,g: => (T) => U[Int]): List[U[Int]]
selectiveanf -> def f[T >: R,U[_]](x: A.this.B,g: => (T) => U[Int]): List[U[Int]]
liftcode -> def f[T >: R,U[_]](x: A.this.B,g: => (T) => U[Int]): List[U[Int]]
selectivecps -> def f[T >: R,U[_]](x: A.this.B,g: => (T) => U[Int]): List[U[Int]]
uncurry -> def f[T >: R,U[_]](x: A.this.B,g: => (T) => U[Int]): List[U[Int]]
tailcalls -> def f[T >: R,U[_]](x: A.this.B,g: () => (T) => U[Int]): List[U[Int]]
specialize -> def f[T >: R,U[_]](x: A.this.B,g: () => (T) => U[Int]): List[U[Int]]
explicitouter -> def f[T >: R,U[_]](x: A.this.B,g: () => (T) => U[Int]): List[U[Int]]
erasure -> def f[T >: R,U[_]](x: A.this.B,g: () => (T) => U[Int]): List[U[Int]]
lazyvals -> def f(x: A#B,g: Function0): List
lambdalift -> def f(x: A#B,g: Function0): List
constructors -> def f(x: A#B,g: Function0): List
flatten -> def f(x: A#B,g: Function0): List
mixin -> def f(x: A$B,g: Function0): List
cleanup -> def f(x: A$B,g: Function0): List
icode -> def f(x: A$B,g: Function0): List
inliner -> def f(x: A$B,g: Function0): List
closelim -> def f(x: A$B,g: Function0): List
dce -> def f(x: A$B,g: Function0): List
jvm -> def f(x: A$B,g: Function0): List
terminal -> def f(x: A$B,g: Function0): List

Kevin Wright 2
Joined: 2010-05-30,
User offline. Last seen 26 weeks 4 days ago.
Re: set phases to 'stunned'
Yay!  I want three, where are they retailing?

On 15 September 2010 22:26, Paul Phillips <paulp@improving.org> wrote:
Still in the land of the phases.  I can't decide what a good UI is for
the below: there are too many knobs to frob and I only have my
suppositions as to how half of them are supposed to be used.  Any
theories in what form one might wish to access this kind of data?

// code with a random smattering of features
val code = """
class A[R](xs: List[R]) {
 class B

 def f[T >: R, U[_]](x: B, g: => T => U[Int]) = xs map g
}"""

// An implicit on a string which compiles the code inside it!
// Who says we're not "dynamic" around here.
scala> code ?< 'f

        parser -> def f[T >: R,U[_]](x: A.this.B,g: => (T) => U[Int]): List[U[Int]]
         namer -> def f[T >: R,U[_]](x: A.this.B,g: => (T) => U[Int]): List[U[Int]]
 packageobjects -> def f[T >: R,U[_]](x: A.this.B,g: => (T) => U[Int]): List[U[Int]]
         typer -> def f[T >: R,U[_]](x: A.this.B,g: => (T) => U[Int]): List[U[Int]]
 superaccessors -> def f[T >: R,U[_]](x: A.this.B,g: => (T) => U[Int]): List[U[Int]]
       pickler -> def f[T >: R,U[_]](x: A.this.B,g: => (T) => U[Int]): List[U[Int]]
     refchecks -> def f[T >: R,U[_]](x: A.this.B,g: => (T) => U[Int]): List[U[Int]]
  selectiveanf -> def f[T >: R,U[_]](x: A.this.B,g: => (T) => U[Int]): List[U[Int]]
      liftcode -> def f[T >: R,U[_]](x: A.this.B,g: => (T) => U[Int]): List[U[Int]]
  selectivecps -> def f[T >: R,U[_]](x: A.this.B,g: => (T) => U[Int]): List[U[Int]]
       uncurry -> def f[T >: R,U[_]](x: A.this.B,g: => (T) => U[Int]): List[U[Int]]
     tailcalls -> def f[T >: R,U[_]](x: A.this.B,g: () => (T) => U[Int]): List[U[Int]]
    specialize -> def f[T >: R,U[_]](x: A.this.B,g: () => (T) => U[Int]): List[U[Int]]
 explicitouter -> def f[T >: R,U[_]](x: A.this.B,g: () => (T) => U[Int]): List[U[Int]]
       erasure -> def f[T >: R,U[_]](x: A.this.B,g: () => (T) => U[Int]): List[U[Int]]
      lazyvals -> def f(x: A#B,g: Function0): List
    lambdalift -> def f(x: A#B,g: Function0): List
  constructors -> def f(x: A#B,g: Function0): List
       flatten -> def f(x: A#B,g: Function0): List
         mixin -> def f(x: A$B,g: Function0): List
       cleanup -> def f(x: A$B,g: Function0): List
         icode -> def f(x: A$B,g: Function0): List
       inliner -> def f(x: A$B,g: Function0): List
      closelim -> def f(x: A$B,g: Function0): List
           dce -> def f(x: A$B,g: Function0): List
           jvm -> def f(x: A$B,g: Function0): List
      terminal -> def f(x: A$B,g: Function0): List

--
Paul Phillips      | Those who can make you believe absurdities
Vivid              | can make you commit atrocities.
Empiricist         |     -- Voltaire
pull his pi pal!   |----------* http://www.improving.org/paulp/ *----------



--
Kevin Wright

mail / gtalk / msn : kev.lee.wright@gmail.com
pulse / skype: kev.lee.wright
twitter: @thecoda

Copyright © 2012 École Polytechnique Fédérale de Lausanne (EPFL), Lausanne, Switzerland