Le Tue, 18 May 2021 13:36:43 +0200, Leo Prikler <leo.prik...@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. > > > Le 18 mai 2021 05:44:42 GMT-04:00, Ricardo Wurmus > > <rek...@elephly.net > > > a écrit : > > > Leo Prikler <leo.prik...@student.tugraz.at> writes: > > > > > > > Hi Julien, > > > > > > > > Am Dienstag, den 18.05.2021, 01:01 +0200 schrieb Julien > > > > Lepiller: > > > > > Hi Guix! > > > > > > > > > > I have the attached file that build Scala, although it's not > > > > > bootstrapped at all. It contains %binary-scala, a few > > > > > dependencies of > > > > > Scala we haven't packaged yet, and the final scala, built from > > > > > %binary-scala, without sbt (which requires Scala too). > > > > > > > > > > Since I've tried and failed to bootstrap Scala for so long, I > > > > > think > > > > > it's time to give up. I can't always create miracles. > > > > > > > > Some points relevant to bootstrapping: > > > > - The last version, that ships "scalai" written in Java seems > > > > to > > > > be > > > > v1.4.0+4. Perhaps one can use scalai to bootstrap scalac > > > > within it. > > > > - The last version, that does not "require" sbt is 2.11.x, > > > > though with your workaround we can also build later > > > > versions. > > > > > > We tried building a clean bootstrap chain for Scala for years. > > > Back then I went down the rabbit hole and found that early scalac > > > is written in Pizza; but it turned out that Pizza is written in > > > Pizza and is released under the old Artistic License, which is > > > considered non-free. > > > > > > https://logs.guix.gnu.org/guix/2018-04-08.log#230002 > > > https://logs.guix.gnu.org/guix/2018-04-09.log#073740 > > > > > > I pointed a branch at an old Scala commit that contains the old > > > Socos compiler source, which ostensibly are written in Java, but > > > actually are not: > > > > > > https://github.com/rekado/scala-bootstrap/tree/bootstrap > > > > > > This is at around version 1.4.0.4, as you wrote above. > > > > > > Since the old days Scala Native has grown considerably, and > > > perhaps we can reuse some of its native libraries. I’m not too > > > hopeful, because the bulk of it is still written in Scala, > > > obviously, but there are parts that are written in C / C++, which > > > might come in handy. > > > > > > https://github.com/scala-native/scala-native >