| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The STARR ("stable reference") compiler is used to bootstrap the compiler.
It is now always resolved from maven, based on the `starr.version`
property (stored in `versions.properties`).
Before, we used the `.desired.sha1` mechanism to pull a set of jars
that define the compiler used to build locker ("local reference"),
which then builds quick.
From now on, we only support officially released versions of STARR.
Milestones are allowed of course, which means that, instead of
breaking change, STARR evolution must support old and new behavior
for at least one milestone cycle.
For local development, use the `replacestarr` target as before.
It builds quick (core only) and publishes it to your local maven repo
with a generated version number, which is saved as `starr.version`
in `build.properties` for convenience (overriding `versions.properties`),
so that your next build will use this version of the compiler for STARR.
You may now think of STARR as STAble Reference Release -- if you will.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Replaced starr jars with 2.11.0-M4, built with Scala 2.11.0-M3.
I used `ant replacestarr-opt -Dstarr.use.released=1`, with `starr.number`:
```
starr.version=2.11.0-M3
```
Then pushed the jars to artifactory after moving `lib/jline.jar` out of the way,
as it's no longer "desired" (i.e., not pulled from artifactory). Its presence
seemed to break `./push-binary-libs.sh $ARTIFACTORY_USER $ARTIFACTORY_PASS`.
You can by-pass the custom starr artifact download and use a (released) version
of Scala by changing your `build.properties` to include
```
starr.use.released=1
```
You may optionally change `starr.version` in `starr.number` to whichever version
that maven can resolve for you.
|
| |
|
|
|
|
|
| |
Seven weeks is a good amount of time between starrs,
and I'm going nutso for -Xdev during locker.
|
|
|
|
|
| |
Contains the extension method naming change, in the
interests of unbreaking the sbt build for a while.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Reification (both tree-based and type-based) should be avoided
before we release 2.10.0-final, since it impairs reflection refactorings
like the upcoming one.
Also the upcoming refactoring moves tag materialization anchors, and we
have to add them to fast track in advance, so that they are treated as
macros later.
|
|
|
|
|
|
| |
Deployed a new starr that does not depend on `@static` annotation.
The next step will be deleting `@static` from the library
altogether.
|
|
|
|
|
| |
Updates the starr with the changes introduced by the previous commit.
Cleans up obsolete symbols required by the previous starr.
|
|
|
|
| |
for those who use locker as their main development platform
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
reify has just been moved to base.Universe from api.Universe, so the fast track
in the old starr doesn't know about its existence. Therefore locker is built
without reify having the MACRO flag, thus it won't be able to expand reify.
Strictly speaking we don't need a new starr, because reify isn't used in scalac
so, even though locker won't recognize reify, quick will be fine.
However you don't know where a little sloppiness is going to bite you,
so I took time to rebuild and push the new starr.
It was as simple as "ant build starr.done" of the parent commit.
No file mingling was required.
|
|
|
|
|
|
|
|
|
| |
Builds a starr that uses stuff from scala.reflect.macros for macro activities.
Crucial makro thingies (such as makro.Context or makro.internal.macroImpl)
are temporarily left in place, because they are necessary for previous starr.
Macro tests will be fixed in a dedicated commit, so that they don't pollute
meaningful commits, making the life easy for reviewers and spelunkers.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In our codebase we have a bunch of macros, and some of those macros
(namely, tag materialization macros and string context "f" formatter)
are used inside the compiler itself.
The logic of those macros is hardwired into starr's fast track,
so it doesn't rely on any of the subsystems of the macro engine
to be located, bound and executed.
But to trigger this logic we need to color these macros as macros, i.e. as
term symbols having the MACRO flag. Currently this works automatically,
because fast track macros (the same as regular macros) have their rhs
in the "macro ???" form. Having seen the "macro" keyword, the compiler knows
that the corresponding def declares a macro and sets the MACRO flag.
As the latest refactoring attempt has shown, the "macro" in "macro ???"
is unnecessary and might stand in the way of macro refactorings. After all
if some symbol is in the fast track registry, then it's definitely a macro.
Hence I'm changing the compiler to not need the "macro" keyword in declarations
of fast track macros anymore.
|
|
|
|
| |
That doesn't require Context.reify anymore.
|
|
Requires a new starr.
|