Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • 15:21
    SethTisue commented #8820
  • 11:18
    joroKr21 commented #12231
  • 06:36
    som-snytt edited #9567
  • 06:18
    som-snytt ready_for_review #9567
  • 06:18
    som-snytt edited #9567
  • 06:17
    som-snytt synchronize #9567
  • Apr 16 19:59
    som-snytt commented #12233
  • Apr 16 19:54
    som-snytt commented #12233
  • Apr 16 19:54
    scala-jenkins milestoned #9577
  • Apr 16 19:54
    som-snytt opened #9577
  • Apr 16 19:33
    som-snytt commented #12233
  • Apr 16 18:34
    som-snytt commented #12231
  • Apr 16 18:06
    som-snytt commented #3613
  • Apr 16 18:01
    milessabin commented #12231
  • Apr 16 16:56

    SethTisue on 2.13.x

    2.12: new Scala SHA (#1399) unfork specs2 Merge commit '4bafba0925491ab34… and 1 more (compare)

  • Apr 16 16:55

    SethTisue on 2.12.x

    unfork specs2 (compare)

  • Apr 16 16:28
    dwijnand synchronize #7785
  • Apr 16 16:24
    SethTisue commented #12305
  • Apr 16 16:23
    SethTisue labeled #12305
  • Apr 16 16:21
    dwijnand commented #12312
Peter Aaser
@PeterAaser
at least asm is pretty easy
Christopher Davenport
@ChristopherDavenport
Here is my cormorant csv parser if that helps at all.
Peter Aaser
@PeterAaser
might be, thanks
Maybe I should read the parser chapter in the red book to get a more fundamental approach
Christopher Davenport
@ChristopherDavenport
I love atto. It's a fun tool.
Peter Aaser
@PeterAaser
How can I cause a parser to fail based on predicate?
Thinking flatMap( x => if(pred(x)) err("reason") else ??? )
Christopher Davenport
@ChristopherDavenport
Failure is one of the options of a parser at any point.
Peter Aaser
@PeterAaser
yes, but I want to have a predicate failure too
I think ok is what I want
Abdhesh Kumar
@abdheshkumar

Anyone has an idea how to override common configuration in included configuration that referenced with environment variable? For example, I have common.conf that has all common configurations and local.conf that override common configurations as per local environment.

common.conf

myapp {
    server-address = ${SERVER_HOSTNAME}
    server-port = ${SERVER_PORT}
}
----------------------
local.conf

include "common"
# override default (Common) settings
myapp {
    server-address = "localhost"
    server-port = 9000
}

while loading local.conf. I am getting below error.

 Could not resolve substitution to a value: ${SERVER_HOSTNAME}
jonathan edwards
@_jedw_twitter
does anyone know what the difference between .contain() and .contains() is?
I believe they are a part of scalatest, but when i search for it I can’t find its definition
the context it’s being used is in this line: items => s"find $itemNum in the available list" >> items.map(_.itemNumber).should(contain(itemNum))
Abdhesh Kumar
@abdheshkumar
@_jedw_twitter contains must be inside scalatest Matchers
Vinayak Pathak
@vinayakpathak

I wasted a day struggling with this:

trait Model {
  type State
}

trait Algorithm {
  val model: Model
  type State = model.State

  def infer: State
}

val m: Model = new Model {
  type State = Int
}

val a = new Algorithm {
  val model = m

  def infer = 1
}

This throws an error:

ScalaFiddle.scala:21: error: type mismatch;
 found   : scala.this.Int(1)
 required: $anon.this.State
    (which expands to)  $anon.this.model.State
    def infer = 1
                ^

I stared at the longest time on the definition of val a because that's where the error was coming from, but eventually realized the cause was my definition of val m. If I remove the : Model and make it val m = new Model {...} it works.

Abdhesh Kumar
@abdheshkumar
@_jedw_twitter here you could find more about matchers http://www.scalatest.org/user_guide/using_matchers
Fabio Labella
@SystemFw

If I remove the : Model and make it val m = new Model {...} it works.

yes

when you do : Model you remove the refinement
which is inferred otherwise
it should bem: Model {type State = Int }
Vinayak Pathak
@vinayakpathak
yeah that's interesting
Fabio Labella
@SystemFw
you can look into the Aux pattern as well to see a shorthand
which is very commonly used in the shapeless world
Vinayak Pathak
@vinayakpathak
yeah I've seen the Aux pattern
Fabio Labella
@SystemFw
same thing, m: Model.Aux[Int]
I'd recommend using existentials only when you need them though
Vinayak Pathak
@vinayakpathak
if I had chosen to implement Model as trait Model[State] though, I would've been notified about the error at the line val m: Model = new Model[Int] {...} coz there would be a missing type parameter
Fabio Labella
@SystemFw
well : Model is a valid type there, so there's no error
the error is when you try to unify it with Int later
Vinayak Pathak
@vinayakpathak
ummm why is Model valid
Fabio Labella
@SystemFw
do you need State to be existential there, since you are already making the whole Model existential in Algorithm?
Vinayak Pathak
@vinayakpathak
i'm not sure what existential means
Fabio Labella
@SystemFw

ummm why is Model valid

Because scala allows you to have abstract (existential) types

well, replace that word with "abstract"
scala allows you to have abstract types
Vinayak Pathak
@vinayakpathak
oh i see ok
ok then i'm not sure when one would need a type to be existential as opposed to just a type parameter
Fabio Labella
@SystemFw
the two things, type parameters and abstract types (universals and existentials) are two different ways to enforce information boudaries
jonathan edwards
@_jedw_twitter
@abdheshkumar Thanks man, I guess i wasn’t reading enough of the page.
Fabio Labella
@SystemFw
well, one use case is to hide the specific type used there
for example, imagine List[Algorithm]
Vinayak Pathak
@vinayakpathak
i see
Fabio Labella
@SystemFw
assume that each algorithm has an input, output and internal state
and the in-out is the only thing that matters from the outside
if you had Algorithm[State] you woudn't be able to put them in a List with a proper type
Vinayak Pathak
@vinayakpathak
hmm i see
Fabio Labella
@SystemFw
but since in my hypothetical example the State is purely internal, you hide it by making it existential
in this case through an abstract type
does that make any sense?