@Steffan re isVowel, the description says it's supposed to vectorise for strings instead of just checking if the first char is a vowel, should we update the description or change the implementation?
btw @Steffan i dont know if yu saw but turns out there's a thin cluent for samba baking tubes so you can run sbtn vyxalJVM/run instead of going untothe shell
Btw, it turns out sbt can be run without the shell, you just need to use the --client option. I just wasted like 5 hours trying to make my own sbt client when it's existed this whole time
./crosshatch/__init__.py:1:1: F401 'importlib.metadata' imported but unused
./crosshatch/__init__.py:15:81: E501 line too long (90 > 80 characters)
./crosshatch/commands.py:1:1: F401 'rich.columns.Columns' imported but unused
./crosshatch/const.py:7:81: E501 line too long (109 > 80 characters)
./crosshatch/const.py:7:110: W291 trailing whitespace
./crosshatch/const.py:14:81: E501 line too long (81 > 80 characters)
./crosshatch/const.py:15:81: E501 line too long (98 > 80 characters)
./crosshatch/repl.py:13:5: F401 'readline' imported but unused
@Ginger sbt. We might decide to continue supporting mill (because you can just run ./mill taskname without installing Mill or sbt) but it's safer to just download sbt and use that
If you want to install all the Scala tools listed here, you could install Coursier (Nix package)
If you have Coursier, you can run cs setup to install sbt, scala (the default Scala REPL), scalac (the Scala compiler), ammonite (enhanced REPL made by Li Haoyi), and Scala CLI (thing to use for prototyping, single-file projects, etc.)
@mathcat Multiple inheritance
You can only extend one class, while you can extend multiple traits
With Scala 3, abstract classes have kinda become less useful since traits can do almost everything they can, but Scala's main target is the JVM, so it needs to keep those
They're like interfaces in Java, except they can have fields too
right now I'm trying to get Coursier to install stuff into the repl's main dir instead of .local because that's the only dir that gets preserved between repl restarts
ok I got Coursier to put all its stuff in a .coursier folder in the repl
oh frick
~/scala3$ sbt
/home/runner/.cache/coursier/arc/https/github.com/sbt/sbt/releases/download/v1.8.2/sbt-1.8.2.zip/sbt/bin/sbt: line 460: java: command not found
copying runtime jar...
mkdir: cannot create directory ‘’: No such file or directory
/home/runner/.cache/coursier/arc/https/github.com/sbt/sbt/releases/download/v1.8.2/sbt-1.8.2.zip/sbt/bin/sbt: line 467: java: command not found
/home/runner/.cache/coursier/arc/https/github.com/sbt/sbt/releases/download/v1.8.2/sbt-1.8.2.zip/sbt/bin/sbt: line 229: exec: java: not found
Could you try out mill and see if that works for you? It's a lot faster than sbt, so you probably won't need to start a server right when your repl boots
Metals can use Mill too (I got it working for Vyxal, although not for one of my personal projects D:)
You may end up having to switch to sbt at one point, but right now, it seems like Mill works, so if you can get Metals working and get Metals to work with Mill, it should be easier for you