unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Julien Lepiller <julien@lepiller.eu>
To: Leo Prikler <leo.prikler@student.tugraz.at>
Cc: guix-devel@gnu.org
Subject: Re: Scala package
Date: Tue, 18 May 2021 14:37:30 +0200	[thread overview]
Message-ID: <20210518143730.716c0756@tachikoma.lepiller.eu> (raw)
In-Reply-To: <a9e1de0fe836f12f6a9b50be2e5503df84db0360.camel@student.tugraz.at>

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.

> 
> > Le 18 mai 2021 05:44:42 GMT-04:00, Ricardo Wurmus
> > <rekado@elephly.net  
> > > a écrit :
> > > Leo Prikler <leo.prikler@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  
> 



  reply	other threads:[~2021-05-18 12:52 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-17 23:01 Scala package Julien Lepiller
2021-05-18  7:08 ` Leo Prikler
2021-05-18  9:44   ` Ricardo Wurmus
2021-05-18 11:15     ` Julien Lepiller
2021-05-18 11:36       ` Leo Prikler
2021-05-18 12:37         ` Julien Lepiller [this message]
2021-05-18 13:52           ` Leo Prikler
2021-05-18 21:35       ` Ludovic Courtès
2021-05-19 15:35         ` Katherine Cox-Buday
2021-05-20 19:09           ` Shyam Saran
2021-05-20 19:34             ` Julien Lepiller
2021-05-21  9:32               ` Shyam Saran
2021-05-18 14:00     ` Daniel Trujillo Viedma

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210518143730.716c0756@tachikoma.lepiller.eu \
    --to=julien@lepiller.eu \
    --cc=guix-devel@gnu.org \
    --cc=leo.prikler@student.tugraz.at \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).