Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • May 10 16:05
    scala-steward opened #298
  • Apr 07 14:05
    scala-steward opened #297
  • Apr 04 22:04
    scala-steward closed #289
  • Apr 04 22:04
    scala-steward commented #289
  • Apr 04 22:04
    scala-steward opened #296
  • Mar 27 20:04
    scala-steward closed #290
  • Mar 27 20:04
    scala-steward opened #295
  • Mar 27 20:04
    scala-steward commented #290
  • Mar 27 20:04
    scala-steward closed #288
  • Mar 27 20:04
    scala-steward commented #288
  • Mar 27 20:04
    scala-steward opened #294
  • Mar 22 17:15
    scala-steward opened #293
  • Mar 07 14:09
    dependabot[bot] labeled #292
  • Mar 07 14:09
    dependabot[bot] opened #292
  • Mar 07 14:09

    dependabot[bot] on github_actions

    Bump actions/checkout from 2 to… (compare)

  • Mar 03 19:06
    scala-steward opened #291
  • Feb 24 15:05
    scala-steward closed #286
  • Feb 24 15:05
    scala-steward commented #286
  • Feb 24 15:05
    scala-steward opened #290
  • Feb 14 13:08
    scala-steward commented #277
Srepfler Srdan
@schrepfler
yes, being able to generate both JSON and XML from the same set of scalaxb model
Srepfler Srdan
@schrepfler
looking at the scalaxb sources
there are two definitons, one a trait
trait DataRecord[+A] {
  val namespace: Option[String]
  val key: Option[String]
  val value: A

  def as[B] = value.asInstanceOf[B]

  override def toString: String = {
    "DataRecord(" +
    ((namespace, key, value) match {
      case (None, Some(k), _) => k + "," + value.toString
      case (Some(n), Some(k), _) => "{" + n + "}" + k + "," + value.toString
      case _ => value.toString
    }) + ")"
  }
}
and a singleton
object DataRecord extends XMLStandardTypes {
  private case class DataWriter[+A](
    namespace: Option[String],
    key: Option[String],
    xstypeNamespace: Option[String],
    xstypeName: Option[String],
    value: A,
    writer: CanWriteXML[_]) extends DataRecord[A] {
    override def equals(o: Any): Boolean =
      o match {
        case that: DataWriter[_] =>
          namespace == that.namespace &&
          key == that.key &&
          value == that.value
        case _ => false
      }

    override def hashCode: Int = {
      var result = 17
      result = result + 31 * namespace.hashCode
      result = result + 31 * key.hashCode
      result = result + 31 * value.hashCode
      result
    }
  }
I get the feeling if this is implemented properly one would have to consider how do two namespaces share the projected names, possibly via a prefix
and omitting prefixes for the default namespace
Alec Zorab
@AlecZorab
@alexarchambault / @milessabin For reasons I don't wish to delve too deeply into, I have a 45 field case class that is primarily Strings, Doubles or Options of those. I'm seeing compile times on the order of 250seconds to derive a DecodeJson, using 0.2.0-SNAPSHOT (and therefore shapeless 2.2-M6). Is that to be expected?
Alexandre Archambault
@alexarchambault
possibly, I ran into similar compile time even not going as far as that (but with coproducts involved)
Wound ensuring the derived implicits aren't derived too often through proxying be an option for you?
Alec Zorab
@AlecZorab
uh. I'm not sure what you mean, so I don't know ;)
Alec Zorab
@AlecZorab
@alexarchambault could you give me an example?
Alexandre Archambault
@alexarchambault
@AlecZorab The tests illustrates that a bit, this is how I do it:
The goal is to have incremental compilation compile once the definitions and derivations, and that's it.
If you don't modify the definitions or derivations, or their dependencies, they shouldn't be recompiled. You can work freely on the other files.
This doesn't speed up compilation per se, this just avoids unnecessary recompilations.
Alec Zorab
@AlecZorab
Gotcha. The CI server won't love it, but it's a decent enough workaround for development. I'll give it a go
Alexandre Archambault
@alexarchambault
@ijuma argonaut-shapeless 0.2.0-SNAPSHOT on sonatype now depends on shapeless 2.2.0 final - I'll do a release soon (should be in the coming days)
Ismael Juma
@ijuma
@alexarchambault thank you
Miles Sabin
@milessabin
@alexarchambault thanks :-)
Alexandre Archambault
@alexarchambault
@/all Just published argonaut-shapeless 0.2.0, which is simply an update to shapeless 2.2.0.
Alexandre Archambault
@alexarchambault
Development will go on towards 0.3.0, with hopefully support for shapeless 2.2 orphan derivation, and more varied / customisable codecs (ability to change the way products are encoded - e.g. to transform the keys' case, or to put the product in a json array rather than an object, or change the way coproducts are encoded - e.g. to encode eithers directly as their right or left values rather than nesting them in { "Left" / "Right": ... }, or to add a custom field for the type, ...)
(see the discussion here: alexarchambault/argonaut-shapeless#5)
Ismael Juma
@ijuma
@alexarchambault awesome
Miles Sabin
@milessabin
Fantastic ... thanks :-)
Miles Sabin
@milessabin
WRT customisable codecs, I'm open to having a parameterized variant of LabelledGeneric in shapeless ... IIRC you were asking for that a while back?
Alexandre Archambault
@alexarchambault
You're welcome :-)
Alexandre Archambault
@alexarchambault
@milessabin About variants of LabelledGeneric, I'm less opiniated about it now. If this can be handled in a slick way from shapeless, let's go for that. But libraries using labels can handle it directly else.
Miles Sabin
@milessabin
Are you going to be in Amsterdam next week?
Alexandre Archambault
@alexarchambault
@milessabin Nope, I wasn't expecting tickets to get sold out that early :-(
Miles Sabin
@milessabin
:-(
Miles Sabin
@milessabin
Any ETA on a release with orphan handling?
ie. something along the lines of test/orphans.
Alexandre Archambault
@alexarchambault
@milessabin milessabin/shapeless#391 was blocking me the last time I tried
It's either cachedImplicit or orphans :-(
Miles Sabin
@milessabin
Gotcha.
OK, I'll take a look at milessabin/shapeless#391 and get back to you.
Alexandre Archambault
@alexarchambault
Thanks
Miles Sabin
@milessabin
I've just pushed a fix for milessabin/shapeless#391 ... it'll show up in the next 2.2.3-SNAPSHOT.
Alexandre Archambault
@alexarchambault
@milessabin Thanks! I didn't know if the could just be replaced by implicitly like you did, in the fix, I though it was somehow required.
Miles Sabin
@milessabin
the would refine the type more that implicitly, but there's no way that we can use that here, so there's no benefit to be gained from using the.
Alexandre Archambault
@alexarchambault
I hadn't admittedly though much about it :-)
Miles Sabin
@milessabin
I still have no idea why the isn't working in that context. But I don't want to hold up an argonaut-shapeless release because of that.
Alexandre Archambault
@alexarchambault
@milessabin Both scalacheck-shapeless and argonaut-shapeless (branch 0.3.x) are now fine with orphan derivations. Thumbs up for shapeless 2.2.3.
Miles Sabin
@milessabin
Awesome!
I'm working on a Generic1 bug and I'll release as soon as I have a fix for that. Fingers X'd today or tomorrow :-)
Miles Sabin
@milessabin
2.2.3 released :-)
Alexandre Archambault
@alexarchambault
{scalacheck/argonaut}-shapeless releases in a few hours :-)
Miles Sabin
@milessabin
Awesome :-)
Alexandre Archambault
@alexarchambault
@/all Just published 0.3.0, targetting shapeless 2.2 (>= 2.2.3), with proper support for shapeless orphan derivation.
Alexandre Archambault
@alexarchambault
New developments of :point_up: June 4 2015 3:20 AM will be for 0.4.0
Miles Sabin
@milessabin
:sparkles: :fireworks: :clap: