guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Scala package


From: Leo Prikler
Subject: Re: Scala package
Date: Tue, 18 May 2021 15:52:01 +0200
User-agent: Evolution 3.34.2

Am Dienstag, den 18.05.2021, 14:37 +0200 schrieb Julien Lepiller:
> Le Tue, 18 May 2021 13:36:43 +0200,
> Leo Prikler <leo.prikler@student.tugraz.at> a écrit :
> 
> > Am Dienstag, den 18.05.2021, 07:15 -0400 schrieb Julien Lepiller:
> > > The old scala is written in a superset of java5, that requires
> > > PiCo
> > > to build, and PiCo was built with JaCo. They were developped at
> > > EPFL, and you can find a binary for it, but no source: 
> > > http://zenger.org/jaco/
> > > 
> > > Apparently, JaCo was later reimplemented in Keris, whose source
> > > code
> > > is available. However, KeCo (the Keris compiler) is written in
> > > Keris.
> > > 
> > > It is not even clear that building an old version of scala is
> > > going
> > > to work, as the language evolved a lot since then.
> > > 
> > > I think the best way to bootstrap would be to reimplement Scala
> > > in
> > > another language. I tried that too, but even the parser is
> > > crazy.  
> > Thanks Julien and Ricardo for the detailed explanation of what goes
> > wrong here.
> > 
> > Would a bootstrap chain from 2.0.x work at least, so that the crazy
> > Scala parser can target a specific (early) version and we get a
> > slightly smaller binary or are the gains from that too
> > minimal?  This
> > is also a concern going forward, can we always hope to "bootstrap"
> > the
> > next Scala version with the one currently packaged in Guix?
> 
> That's not even clear it would be possible. Citing discussion on
> Scala's forum
> (
> https://contributors.scala-lang.org/t/compiling-scala-and-sbt-for-debian-distro/3620/12
> )
> 
> The Scala 2.12 compiler is written in Scala 2.12 and uses the Scala
> 2.12 standard library. Compiling it with 2.11 isn’t an option.
> 
> and later:
> 
> If that was the only hurdle you had to clear, you might be fine. But
> it
> isn’t the only hurdle; the compiler was re-bootstrapped several dozen
> times between 2.11.6 and 2.12.9. (And then a bunch more times after
> that to get to 2.13.0.)
> 
> so we would get an enormous bootstrap chain, and it's not even
> guaranteed that each bootstrap can be replayed nicely.
So in the end we would always be forced to bootstrap Scala 2.x.y from
more or less that exact 2.x.y?  How does anyone find this acceptable?




reply via email to

[Prev in Thread] Current Thread [Next in Thread]