Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Jan 30 2019 14:37
    bhaskarmelkani starred lihaoyi/Ammonite
  • Jan 29 2019 04:27
    JYInMyHeart starred lihaoyi/Ammonite
  • Jan 29 2019 04:27
    JYInMyHeart starred lihaoyi/Ammonite
  • Jan 28 2019 15:07
    ishubelko starred lihaoyi/Ammonite
  • Jan 25 2019 22:38
    borissmidt starred lihaoyi/Ammonite
  • Jan 25 2019 17:12

    alexarchambault on 1.6.3

    (compare)

  • Jan 25 2019 17:11

    alexarchambault on master

    1.6.3 (compare)

  • Jan 25 2019 15:48
    alexarchambault commented #923
  • Jan 25 2019 01:15

    lihaoyi on gh-pages

    5ad9ae5538f23cab92ccd8c6b1617d8… (compare)

  • Jan 25 2019 00:50

    alexarchambault on master

    Partly revert 84d48542 (#923) … (compare)

  • Jan 25 2019 00:50
    alexarchambault closed #923
  • Jan 25 2019 00:50
    alexarchambault closed #920
  • Jan 25 2019 00:50
    alexarchambault closed #922
  • Jan 24 2019 23:13
    lihaoyi commented #923
  • Jan 24 2019 22:39
    alexarchambault closed #921
  • Jan 24 2019 22:39
    alexarchambault commented #921
  • Jan 24 2019 22:39
    alexarchambault edited #923
  • Jan 24 2019 22:38
    alexarchambault opened #923
  • Jan 24 2019 22:37
    david-bouyssie commented #919
  • Jan 24 2019 21:33
    nksureshkumar commented #922
Chris Kipp
@ckipp:matrix.org
[m]
:) the issue is actually the same
for example let's take cats-core as an example
you're trying to pull in 2.13.0 published for 2.13
however, there is no 2.13.0 that is published for 2.13
you can see this with cs complete org.typelevel:cats-core_2.13:
Jesse Atkinson
@jsatk
Now I get it.
holy cow. This is...
not intuitive.
Earlier I ran just cs complete org.typelevel:cats-core and that's how I got 2.13. Didn't realize I needed to specify that bit to see what versions are available for scala 2.13.
Sorry. Clearly I'm still a newbie with the tooling.
Chris Kipp
@ckipp:matrix.org
[m]
yea so not to go too far into cs on an Ammonite channel, but complete completes as far as it can basically until a :, so your completion should have given you any artifact that starts with cats-core including the cross endings of _2.13 etc. If you want the specific version of scala specified, then always make sure to use the full org:artifact_withscalversion:
so cs complete org.typelevel:cats-core_2.13: for the 2.13 artifacts and cs complete org.typelevel:cats-core_3: for the Scala 3 artifacts
or just look on maven central or another webpage if a gui is more your thing
but I know it's not 😉
Jesse Atkinson
@jsatk
java.lang.BootstrapMethodError: java.lang.NoSuchMethodError: scala.collection.immutable.List.$anonfun$flatMap$1$adapted(Lscala/runtime/BooleanRef;Lscala/runtime/ObjectRef;Lscala/runtime/ObjectRef;Ljava/lang/Object;)Ljava/lang/Object; scala.tools.nsc.PhaseAssembly$DependencyGraph.compilerPhaseList(PhaseAssembly.scala:101) scala.tools.nsc.PhaseAssembly.computePhaseAssembly(PhaseAssembly.scala:230)
I got past the previous step. Now I get ☝️
My goals are, I think, simple. I want to run ammonite with scala version 2.13 (and sometimes 2.12) and I want it to have the cats libraries available globally.
Jesse Atkinson
@jsatk
@lihaoyi I'm working through "Hands-On Scala" right now. How would I use the version of ammonite and scala specified therein? I believe all the examples in the book are for scala 2.
Jesse Atkinson
@jsatk
@lihaoyi-databricks is there really no way to use the ammonite + scala version in "Hands-On Scala" together right now?
Eric K Richardson
@ekrich
Have you seen this - com-lihaoyi/Ammonite#1093
Eric K Richardson
@ekrich
cc @jsatk
Li Haoyi
@lihaoyi
I honestly don't know anything about cats, and havent tested it with the instructions in the book. You should be able to work through the entire book without cats
you're free to try to get it working, but it's not the common path, and you need to know that you'll need to sort through any issues that arise
looks to me like you have some wrong scala version on the classpath somewhere
that's likely a result of trying to get both scala 212 and 213 working
might be a bug in Ammonite, but an easy workaround is to jusy stick with 2.13 wrt the book
213 is the common path; you can try other things later
Eric K Richardson
@ekrich
I agree, you should definitely use 2.13 unless you can't. No need to learn older stuff unless you have to.
Chris Kipp
@ckipp:matrix.org
[m]
I don't think this is necessarily a cats thing that @jsatk is bringing up. Since the added support for Scala 3 there has been some major regressions. For example when using the latest version with 2.13, you can't import Try, stuff like that com-lihaoyi/Ammonite#1182
so even if you use 2.13 without Cats, be cautious of some of these errors that are popping up
Eric K Richardson
@ekrich
Oh yes, that is a bummer.
Jesse Atkinson
@jsatk
Yeah. I still haven't been able to get it to load cats on start up using coursier. I think for now I'll just do the book w/ my predef.sc commented out and launching ammonite via cs
Jesse Atkinson
@jsatk
@lihaoyi is the recommended way to launch ammonite for scala 2.13 to use coursier?
Li Haoyi
@lihaoyi
no, the recommended way is what it says in chapter 2
if you want to follow along with the book, follow along with the book
Li Haoyi
@lihaoyi
if you want to fiddle with DIY build tooling, that's fine too, just don't complain when you end up fiddling with DIY build tooling :)
Oron Port
@soronpo
:)
Jesse Atkinson
@jsatk
Finally figured out a simple solution. cs launch ammonite --scala 2.13. I was previously attempting the more verbose cs launch com.lihaoyi:ammonite_2.13.4:2.1.4 -M ammonite.Main which puked.
The former (shorter and more readable) seems to work great. Both for simply firing up ammonite with a certain scala version and also using my predef.sc file.
discobaba
@uncleweirdo_twitter

I have a script that works or not depending how it is called and where it lives. It isn't trying to be cute abount the directory it is in. ~/scripts/update_rfids.sc works fine. If I save it as /tmp/.tballard/scripts/update_rfids.sc and am in that directory, ./update_rfids.sc succeeds, but /tmp/.tballard/scripts/update_rfids.sc fails. Here's the error:

java.lang.StringIndexOutOfBoundsException: String index out of range: 0
    at java.base/java.lang.StringLatin1.charAt(StringLatin1.java:47)
    at java.base/java.lang.String.charAt(String.java:693)
    at ammonite.util.Name.<init>(Model.scala:50)
    at ammonite.interp.AmmonitePlugin$.$anonfun$apply$10(AmmonitePlugin.scala:198)
    at scala.collection.ArrayOps$.map$extension(ArrayOps.scala:924)
    at ammonite.interp.AmmonitePlugin$.$anonfun$apply$9(AmmonitePlugin.scala:198)
    at scala.collection.LinearSeqOps.foldLeft(LinearSeq.scala:169)
    at scala.collection.LinearSeqOps.foldLeft$(LinearSeq.scala:165)
    at scala.collection.immutable.List.foldLeft(List.scala:79)
    at ammonite.interp.AmmonitePlugin$.apply(AmmonitePlugin.scala:164)
    at ammonite.interp.AmmonitePlugin$$anon$1$$anon$2.apply(AmmonitePlugin.scala:36)
    at scala.tools.nsc.Global$GlobalPhase.applyPhase(Global.scala:452)
    at scala.tools.nsc.Global$GlobalPhase.run(Global.scala:397)
    at scala.tools.nsc.Global$Run.compileUnitsInternal(Global.scala:1506)
    at scala.tools.nsc.Global$Run.compileUnits(Global.scala:1490)
    at scala.tools.nsc.Global$Run.compileSources(Global.scala:1482)

I can provide more stack if it helps.

discobaba
@uncleweirdo_twitter
In the good old days, running the script with no args displayed the "main" methods with arguments. Nice. Sorry to see it go. (Although it would have been nice to be able to avoid advertising one)
discobaba
@uncleweirdo_twitter
apparently raw is the empty string ...
case class Name(raw: String){
  assert(
    NameTransformer.decode(raw) == raw,
    "Name() must be created with un-encoded text"
  )
  assert(raw.charAt(0) != '`', "Cannot create already-backticked identifiers")
  override def toString = s"Name($backticked)"
  def encoded = NameTransformer.encode(raw)
  def backticked = Name.backtickWrap(raw)
}
discobaba
@uncleweirdo_twitter
This amm bug showed up when I created an object Dev and then imported some fields from it allowing accessing Dev.Db as Db, etc. The work-around was removing the imports and using Dev.Db, etc. Maybe just approaching rock-solid;-)
discobaba
@uncleweirdo_twitter

Looking at the ammonite documentation for the new @arg(doc = "This explains what the function does")
feature it says that by adding it to a function the user message:

|  -i <int>
|  -s <str>

is transformed to:

|  -i <int>
|  -s <str>

That appears to be accurate, but doesn't sound like the result one would hope for;-)

James Kyle
@jameskyle

Hey, everyone. In my environment I'm getting a method not found error from protobuf: java.lang.NoSuchMethodError: com.google.protobuf.descriptor.FileDescriptorProto$.parseFrom(. When I checked the location of the class, it's being loaded from the amm binary. I think it's due to a conflict between an older protobuf library bundled with ammonite and the protobuf that my runtime libraries are depending on.

@ import  com.google.protobuf.descriptor.FileDescriptorProto
import  com.google.protobuf.descriptor.FileDescriptorProto

@ val klass = classOf[FileDescriptorProto]
klass: Class[FileDescriptorProto] = class com.google.protobuf.descriptor.FileDescriptorProto

@ klass.getResource('/' + klass.getName().replace('.', '/') + ".class")
res5: java.net.URL = jar:file:/usr/local/bin/amm!/com/google/protobuf/descriptor/FileDescriptorProto.class

I think this issue might be related (com-lihaoyi/Ammonite#1177), however when I try the suggested --thin flag I get errors for missing sun.reflect dependencies java.lang.NoClassDefFoundError: sun/reflect/ConstructorAccessorImpl

James Kyle
@jameskyle
ping
Paul Bryan
@locke8
Hi all, can anyone tell me if Ammonite supports development of Scala 3?
I ask because this code: "opaque type Command = String", gives me an error [; expected but type found] if I run as Ammonite script but works within a worksheet. I'm using latest version of Metals.
Stefano Sgorlon
@gokyo
I'd like to import some extra .class files (located in an external folder) using interp.load.cp or $cp. Do you have a working example?
Tobias Roeser
@lefou
import $cp.external