Commit Graph

58 Commits

Author SHA1 Message Date
Jaroslav Tulach
1d109ec3ae
How to get a Java library from Maven central (#8912)
Tutorial describing how to get a Java library from Maven central including all its **transitive dependencies**.
2024-02-03 15:21:17 +00:00
Pavel Marek
5a7ad6bfe4
Upgrade enso to GraalVM for jdk 21 (#7991)
Upgrade to GraalVM JDK 21.
```
> java -version
openjdk version "21" 2023-09-19
OpenJDK Runtime Environment GraalVM CE 21+35.1 (build 21+35-jvmci-23.1-b15)
OpenJDK 64-Bit Server VM GraalVM CE 21+35.1 (build 21+35-jvmci-23.1-b15, mixed mode, sharing)
```

With SDKMan, download with `sdk install java 21-graalce`.

# Important Notes
- After this PR, one can theoretically run enso with any JRE with version at least 21.
- Removed `sbt bootstrap` hack and all the other build time related hacks related to the handling of GraalVM distribution.
- `project-manager` remains backward compatible - it can open older engines with runtimes. New engines now do no longer require a separate runtime to be downloaded.
- sbt does not support compilation of `module-info.java` files in mixed projects - https://github.com/sbt/sbt/issues/3368
- Which means that we can have `module-info.java` files only for Java-only projects.
- Anyway, we need just a single `module-info.class` in the resulting `runtime.jar` fat jar.
- `runtime.jar` is assembled in `runtime-with-instruments` with a custom merge strategy (`sbt-assembly` plugin). Caching is disabled for custom merge strategies, which means that re-assembly of `runtime.jar` will be more frequent.
- Engine distribution contains multiple JAR archives (modules) in `component` directory, along with `runner/runner.jar` that is hidden inside a nested directory.
- The new entry point to the engine runner is [EngineRunnerBootLoader](https://github.com/enso-org/enso/pull/7991/files#diff-9ab172d0566c18456472aeb95c4345f47e2db3965e77e29c11694d3a9333a2aa) that contains a custom ClassLoader - to make sure that everything that does not have to be loaded from a module is loaded from `runner.jar`, which is not a module.
- The new command line for launching the engine runner is in [distribution/bin/enso](https://github.com/enso-org/enso/pull/7991/files#diff-0b66983403b2c329febc7381cd23d45871d4d555ce98dd040d4d1e879c8f3725)
- [Newest version of Frgaal](https://repo1.maven.org/maven2/org/frgaal/compiler/20.0.1/) (20.0.1) does not recognize `--source 21` option, only `--source 20`.
2023-11-17 18:02:36 +00:00
Dmitry Bushev
80c4b1ca06
Allow users to give a project other than Upper_Snake_Case name (#7397)
close #6356

Allow arbitrary names for user projects.

# Important Notes
https://github.com/enso-org/enso/assets/357683/55a3b660-af23-4b09-959b-eac515766788
2023-07-28 13:44:39 +00:00
Pavel Marek
e6838bc90d
Convert Any.== to a builtin (#3956)
`Any.==` is a builtin method. The semantics is the same as it used to be, except that we no longer assume `x == y` iff `Meta.is_same_object x y`, which used to be the case and caused failures in table tests.

# Important Notes
Measurements from `EqualsBenchmarks` shows that the performance of `Any.==` for recursive atoms increased by roughly 20%, and the performance for primitive types stays roughly the same.
2022-12-29 21:20:00 +00:00
Michał Wawrzyniec Urbańczyk
4de8e44871
Release process (#3909) 2022-12-02 02:56:22 +01:00
Hubert Plociniczak
d59714a29d
Support module imports using a qualified name (#3608)
This change allows for importing modules using a qualified name and deals with any conflicts on the way.
Given a module C defined at `A/B/C.enso` with
```
type C
type C a
```
it is now possible to import it as
```
import project.A
...
val x = A.B.C 10
```

Given a module located at `A/B/C/D.enso`, we will generate
intermediate, synthetic, modules that only import and export the successor module along the path.
For example, the contents of a synthetic module B will look like
```
import <namespace>.<pkg-name>.A.B.C
export <namespace>.<pkg-name>.A.B.C
```
If module B is defined already by the developer, the compiler will _inject_ the above statements to the IR.

Also removed the last elements of some lowercase name resolution that managed to survive recent
changes (`Meta.Enso_Project` would now be ambiguous with `enso_project` method).

Finally, added a pass that detects shadowing of the synthetic module by the type defined along the path.
We print a warning in such a situation.

Related to https://www.pivotaltracker.com/n/projects/2539304

# Important Notes
There was an additional request to fix the annoying problem with `from` imports that would always bring
the module into the scope. The changes in stdlib demonstrate how it is now possible to avoid the workaround of
```
from X.Y.Z as Z_Module import A, B
```
(i.e. `as Z_Module` part is almost always unnecessary).
2022-07-29 14:19:07 +00:00
Michał Wawrzyniec Urbańczyk
4baad5f146
Nightly proccess preparations: Setting Enso version through the environment (#3241)
Co-authored-by: Radosław Waśko <radoslaw.wasko@enso.org>
Co-authored-by: Radosław Waśko <wasko.radek@gmail.com>
2022-02-07 15:14:32 +01:00
Michał W. Urbańczyk
99053decd8 various default branch switch - related updates 2021-11-01 01:37:30 +01:00
Ara Adkins
a924e16618
Update some documentation for clarity (#2005) 2021-10-01 14:13:20 +01:00
Radosław Waśko
be6e60509a
Tool To Bump Stdlib Version (#1947) 2021-08-13 18:14:20 +02:00
Radosław Waśko
d84891d29d
Update Codeowners And Release Policy (#1893) 2021-07-22 11:07:23 +02:00
Radosław Waśko
042a0f81f1
Fix Nightly Workflows and Update Release Policy (#1845) 2021-07-10 01:10:31 +02:00
Radosław Waśko
b58e895b18
Editions Integration (#1832) 2021-07-08 15:38:20 +02:00
Ara Adkins
e4a044df9f
Document the process for avoiding release breakage (#1819) 2021-06-25 12:59:23 +01:00
Radosław Waśko
241a1e7d74
Define Editions (#1797) 2021-06-18 16:39:45 +02:00
Radosław Waśko
c3e4901eb1
Add a workflow for building nightly releases (#1689) 2021-05-05 11:58:14 +01:00
Ara Adkins
6060d31c79
Update examples for Standard.Base.Data.* (#1707) 2021-04-29 11:27:16 +01:00
Ara Adkins
f7769e7cca
Update the release instructions 2021-04-28 15:50:55 +01:00
Ara Adkins
9f60e22508
Update all references to dev.enso.org 2021-04-07 20:39:46 +01:00
Ara Adkins
96697ddc97
Fix a crash due to shadowed project names (#1571) 2021-03-16 12:45:19 +00:00
Radosław Waśko
10bccf6b56
Better component handling in the project manager (#1399) 2021-01-15 15:26:51 +00:00
Ara Adkins
a7bd90ab8f
Document the runtime's builtin functionality (#1397) 2021-01-14 15:31:15 +00:00
Ara Adkins
0cbd636e58
Bump the development version number (#1389) 2021-01-06 08:57:02 +00:00
Radosław Waśko
cc24b6f366
Download releases from the main repo (#1387) 2021-01-05 14:14:08 +00:00
Radosław Waśko
6075c1e765
Implement LocalReleaseProvider (#1370) 2020-12-21 23:30:59 +01:00
Radosław Waśko
2e6a5af4fb
Split Installer Versions in Manifest (#1355) 2020-12-16 12:34:33 +01:00
Radosław Waśko
de817af655
Finish Logging Service Integration (#1346) 2020-12-15 09:49:58 +01:00
Radosław Waśko
25561e4c8c
Project Manager Native Image (#1318) 2020-12-09 14:58:11 +01:00
Radosław Waśko
9e1b49d245
Forking Language Server in the Project Manager (#1305) 2020-12-02 16:56:47 +01:00
Radosław Waśko
989aa4b7d7
Initial Legal Review (#1210)
The reports will now be sent to the legal team for review.
2020-10-19 10:50:12 +02:00
Radosław Waśko
0a9e2a42ce
Automate License Information Gathering (#1198) 2020-10-09 16:19:58 +02:00
Marcin Kostrzewa
05f4cc2e7c
Files API (#1204) 2020-10-09 14:05:22 +02:00
Marcin Kostrzewa
a1748c3978
Enso's Text Type (#1166) 2020-09-30 13:33:57 +02:00
Radosław Waśko
2155fa8e88
Fallback for Launcher Upgrades (#1139) 2020-09-14 11:05:37 +02:00
Radosław Waśko
044a0fa664
Implement Launcher Self-Update (#1125) 2020-09-09 15:37:26 +02:00
Radosław Waśko
2da720b1a9
Improve CLI Parameters Parsing (#1117) 2020-09-03 12:44:21 +02:00
Radosław Waśko
60d0c2ae45
Use Runner to Create Projects in Launcher (#1116) 2020-09-01 13:23:27 +02:00
Radosław Waśko
eb208301db
Handling Broken Releases in the Launcher (#1113) 2020-09-01 12:03:48 +02:00
Radosław Waśko
eea08a9fca
Configuration Management in the Launcher (#1112)
Names of fields `author` and `maintainer` in the `package.yaml` file
have been changed to `authors` and `maintainers` respectively, and their
format has been modified.
Projects created in older versions may not be compatible.
2020-08-31 15:53:33 +02:00
Radosław Waśko
125af6b7fe
Bump GraalVM Version to 20.2.0 (#1094) 2020-08-28 13:03:09 +02:00
Ara Adkins
e64c0384b0
Implement part of the Enso lexer in rust (#1109) 2020-08-27 13:27:22 +01:00
Radosław Waśko
c979938527
Run components through the launcher (#1073) 2020-08-19 13:24:31 +01:00
Adam Obuchowicz
74e56c0d48
Add info about visualizations in the package structure (#1088) 2020-08-18 16:04:53 +01:00
Josef
5345bdcb3e
Stub Out the Parser Interface (#1065) 2020-08-14 11:10:52 +02:00
Radosław Waśko
11868cb528
Enso Version Management in the Launcher (#1059)
- Adds support for downloading engine and runtime versions in the launcher.
- Adds functionality to install, list and uninstall engine components.
2020-08-10 12:14:39 +02:00
Josef
1f8a4b802f
Fix the release workflow (#1057) 2020-08-07 10:18:09 +01:00
Josef
8bb583df5e
Generate Scala Classes From The Stub AST (#1044) 2020-07-31 07:31:12 +02:00
Radosław Waśko
7dcfef0503
Add Installation Mechanism in the Launcher
1. Implements the `enso install distribution` command.
2. Implements a DistributionManager which is used for managing installation
   layout in the launcher.

PR #1034
Resolves #1010
2020-07-28 14:57:52 +02:00
Radosław Waśko
e8e44f68ad
[Feat, Tool] Add CLI Parser for the Launcher
1.  This commit adds an extensive library for parsing commandline
    arguments and formatting output.
2.  It implements the expected CLI for the launcher.
3.  It turns off parallel execution on the CI in hopes of making it
    more stable.
4.  It implements plugin support in the launcher.
2020-07-22 19:28:03 +02:00
Ara Adkins
f5ffbe8fa7
Add a markdown style guide (#1022) 2020-07-21 13:59:40 +01:00