Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • 13:51
    Sporarum synchronize #16825
  • 13:36
    Sporarum synchronize #16825
  • 13:22
    ckipp01 converted_to_draft #11257
  • 13:20
    ckipp01 labeled #16837
  • 13:20
    ckipp01 unlabeled #16837
  • 13:19
    ckipp01 labeled #16837
  • 13:18
    ckipp01 review_requested #16837
  • 13:18
    ckipp01 review_requested #16837
  • 13:18
    ckipp01 opened #16837
  • 13:09
    nicolasstucki labeled #16829
  • 13:08
    nicolasstucki assigned #16835
  • 13:08
    nicolasstucki commented #16835
  • 12:49
    ckipp01 closed #16831
  • 12:49
    ckipp01 commented #16831
  • 12:26
    Linyxus closed #16416
  • 12:26
    Linyxus commented #16416
  • 12:26
    Linyxus closed #16553
  • 12:26
    Linyxus commented #16553
  • 12:11
    szymon-rd commented #16806
  • 11:08
    vasilmkd-jetbrains synchronize #16810
Alex Zolotko
@azolotko
Are there any plans to support package-private exports?
I mean, export clauses that restrict the visibility of the exported definition. Something like,
private[akka] export obj.something
Alex Zolotko
@azolotko
Found an answer at https://contributors.scala-lang.org/t/having-another-go-at-exports-pre-sip/2982/5
Sorry, I should've look there before asking.
Seth Tisue
@SethTisue
I was going to tweet about lampepfl/dotty#5923 but I feel like somebody from the Dotty team should do the shouting from the rooftops
Harrison Houghton
@hrhino
:tada: congrats!
Guillaume Martres
@smarter
I was thinking we'd announce it as part of the next release blog post
Oron Port
@soronpo
Wow!
Sébastien Doeraene
@sjrd
What's the protocol for bringing in partest tests from scalac into dotty? I fixed an issue that is tested by the upstream test https://github.com/scala/scala/blob/2.13.x/test/files/run/t9516.scala: how do I port/enable that test into dotty, to test my fix?
Guillaume Martres
@smarter
@sjrd If it's already in Dotty under tests/pending or tests/disabled or something like that you move it, otherwise you just copy-paste it from scalac
Sébastien Doeraene
@sjrd
It doesn't appear to be there at the moment.
So just copy the test and its checkfile into tests/run?
Guillaume Martres
@smarter
yes
Sébastien Doeraene
@sjrd
OK thanks.
Guillaume Martres
@smarter
putting a reference to the corresponding fix in scalac in the commit message is also nice
Sébastien Doeraene
@sjrd
of course
Guillaume Martres
@smarter
psst, while you're looking at primitive ops in the backend, you might also want to port https://github.com/scala/scala/pull/7435/files :)
Sébastien Doeraene
@sjrd
TBH I'm focusing on things that get me closer to implementing and testing the Scala.js backend.
For the int-shift-long I needed the fixes in the constant-folder, and I couldn't reasonably fix the constant-foler but not the backend...
Andrey
@sugakandrey
@smarter after watching a video on types in dotty, I was under the impression that something like Function1[String, Int] was encoded as a RefinedType and not AppliedType, but looking into the codebase it looks like it is AppliedType after all. Also, the docs and the comments mention that each case in match type is either an unary function or a type lambda over unary function, but now there is some synthetic MatchCase type. Is it just implementation details or were there any underlying problems with previous encodings?
Guillaume Martres
@smarter
@sugakandrey Yeah the refinement encoding for applied types was abandoned a while ago
Andrey
@sugakandrey
Also, are there plans to adapt SLS to dotty/3.0? :)
Guillaume Martres
@smarter
First, because we couldn't make it work well enough with higher-kinded types (https://infoscience.epfl.ch/record/222780/files/p51-odersky.pdf), then we tried to use it only for applying class types but it didn't seem worth it, and it made handling of wildcard applications more complicated (you want to be able to distinguish C from C[_], but if you encode application as refinement you can't really do that)
Yes, eventually the spec will be updated
Andrey
@sugakandrey
Makes sense, thanks for the clarification. Looking through the commit history, it looks like the MatchCase is a fairly recent addition.
Matthew Pocock
@drdozer
hey - I've got some higly parameterised code that's ended up building heavily left-nested tuples e.g. (((((((((((((String, Int), String), String), Char), Int), Char), String), Char), Int), Char), pdb.HelixClass), String), Int)
Is there a way to combine a new element onto the right of an existing tuple that doesn't cause this profligate nesting?
Guillaume Martres
@smarter
String *: Int *: String *: Unit should work
The last element must be Unit or a tuple
Matthew Pocock
@drdozer
thanks - is there a typeclass or whitness to that?
def f[A, B](a: A, b: B) = a *: b needs something to say that B is a type with *:
Guillaume Martres
@smarter
this is just syntactic sugar for tuples
or more precisely, in Dotty the type (A,B) is syntactic sugar for the type A *: B *: Unit
Matthew Pocock
@drdozer
thanks - adding the type bounds B <: Tuple has caused a compiler crash ...
(Compile / compileIncremental) java.nio.file.NoSuchFileException: /drone/src/github.com/lampepfl/dotty/library/src-3.x/scala/Tuple.scala
shall I open an issue?
Martin Egri
@megri
@smarter I've always thought Unit is just a type and () is its singleton instance. Is it a symbol in Dotty?
Guillaume Martres
@smarter
What ?
Unit is a type and () is the single instance of that type yes
not sure what you mean by symbol
Martin Egri
@megri
Oh I misread your earlier comment. So in Dotty tuples can be created like 1 *: 2 *: 3 *: () ? :)
Neither am I to be honest ;) I always mix up types and terms and symbols and those abstract words.
Well, Types are pretty obvious.
Jakub Kozłowski
@kubukoz
Has new type Foo = Int been considered as syntax for opaque types? It doesn't require any new keywords (unlike opaque)
Also, A *: () is totally kiss syntax
odersky
@odersky
There are some comments on new type at the end of the Opaque Types thread on Discourse.
Martin Egri
@megri
@kubukoz kiss like Unit kisses A?
Jakub Kozłowski
@kubukoz
@odersky thank, will look
@megri yeah, reads RTL :joy:
Matthew Pickering
@mpickering
Just to clear things up: The dotty principled metaprogramming implementation doesn't have implicit cross-stage persistence for values but does for types?