Skip to content

Commit 13ba777

Browse files
Automatic merge of master into galahad
2 parents ce63b0c + 46e36ff commit 13ba777

File tree

11 files changed

+63
-115
lines changed

11 files changed

+63
-115
lines changed

docs/README.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ The Truffle framework documentation can be found in the [graal/truffle/docs](htt
1111
GraalVM languages implementations are being developed and tested in separate from the GraalVM core repositories, so their user documentation can be found in:
1212

1313
* [GraalJS](https://github.com/oracle/graaljs/tree/master/docs/user) - JavaScript and Node.js
14-
* [FastR](https://github.com/oracle/fastr/tree/master/documentation/user) - R
1514
* [GraalPy](https://github.com/oracle/graalpython/tree/master/docs/user) - Python
1615
* [TruffleRuby](https://github.com/oracle/truffleruby/tree/master/doc/user) - Ruby
1716

@@ -21,7 +20,7 @@ To update the documentation:
2120
2. Navigate to the source file you are intended to update
2221
3. Click the "edit" button at the top of the section.
2322
> Note: GitHub introduced a new feature: online web editor, which allows to edit multiple files from a browser. To enable it, press `.` on any GitHub repo. For example, go to [https://github.com/oracle/graal](https://github.com/oracle/graal) and hit `.`. You will be immediately redirected to [https://github.dev/oracle/graal](https://github.dev/oracle/graal).
24-
23+
2524
4. Create a Pull Request (PR)
2625
5. Sign the [Oracle Contributor Agreement](https://oca.opensource.oracle.com/)
2726
6. Watch your PR for pipeline results

docs/reference-manual/java-on-truffle/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ Espresso passes the Java Compatibility Kit (JCK or TCK for Java SE).
3131
## Getting Started
3232

3333
Espresso is available as a standalone distribution that provides a Java 21 environment.
34-
You can download a standalone based on Oracle GraalVM or GraalVM Community Edition.
34+
You can download a standalone based on Oracle GraalVM or GraalVM Community Edition.
3535

3636
1. Download the Espresso 24.2 standalone for your operating system:
3737

@@ -45,7 +45,7 @@ You can download a standalone based on Oracle GraalVM or GraalVM Community Editi
4545
```shell
4646
tar -xzf <archive>.tar.gz
4747
```
48-
48+
4949
3. A standalone comes with a JVM in addition to its native launcher. Check the version to see the runtime is active:
5050
```shell
5151
# Path to Espresso installation

docs/reference-manual/languages.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,4 @@ If you are mostly interested in a specific language runtime on GraalVM, see the
1616
* [GraalPy](https://www.graalvm.org/python/docs/)
1717
* [GraalWasm](wasm/README.md)
1818
* [LLVM Languages](llvm/README.md)
19-
* [TruffleRuby](https://github.com/oracle/truffleruby/blob/master/doc/user/README.md)
20-
* [FastR](https://github.com/oracle/fastr/blob/master/documentation/user/README.md)
19+
* [TruffleRuby](https://github.com/oracle/truffleruby/blob/master/doc/user/README.md)

docs/reference-manual/llvm/README.md

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -15,30 +15,30 @@ This allows seamless interoperability with the dynamic languages supported by Gr
1515
## Getting Started
1616

1717
The GraalVM LLVM runtime is available as a standalone distribution.
18-
You can download a standalone based on Oracle GraalVM or GraalVM Community Edition.
18+
You can download a standalone based on Oracle GraalVM or GraalVM Community Edition.
1919

20-
1. Download the LLVM 24.0 standalone for your operating system:
20+
1. Download the LLVM standalone for your operating system:
2121

2222
- Native standalone
23-
* [Linux x64](https://gds.oracle.com/download/llvm/archive/llvm-24.0.1-linux-amd64.tar.gz)
24-
* [Linux AArch64](https://gds.oracle.com/download/llvm/archive/llvm-24.0.1-linux-aarch64.tar.gz)
25-
* [macOS x64](https://gds.oracle.com/download/llvm/archive/llvm-24.0.1-macos-amd64.tar.gz)
26-
* [macOS AArch64](https://gds.oracle.com/download/llvm/archive/llvm-24.0.1-macos-aarch64.tar.gz)
27-
* [Windows x64](https://gds.oracle.com/download/llvm/archive/llvm-24.0.1-windows-amd64.zip)
23+
* [Linux x64](https://gds.oracle.com/download/llvm/archive/llvm-24.2.0-linux-amd64.tar.gz)
24+
* [Linux AArch64](https://gds.oracle.com/download/llvm/archive/llvm-24.2.0-linux-aarch64.tar.gz)
25+
* [macOS x64](https://gds.oracle.com/download/llvm/archive/llvm-24.2.0-macos-amd64.tar.gz)
26+
* [macOS AArch64](https://gds.oracle.com/download/llvm/archive/llvm-24.2.0-macos-aarch64.tar.gz)
27+
* [Windows x64](https://gds.oracle.com/download/llvm/archive/llvm-24.2.0-windows-amd64.zip)
2828
- JVM standalone
29-
* [Linux x64](https://gds.oracle.com/download/llvm/archive/llvm-jvm-24.0.1-linux-amd64.tar.gz)
30-
* [Linux AArch64](https://gds.oracle.com/download/llvm/archive/llvm-jvm-24.0.1-linux-aarch64.tar.gz)
31-
* [macOS x64](https://gds.oracle.com/download/llvm/archive/llvm-jvm-24.0.1-macos-amd64.tar.gz)
32-
* [macOS AArch64](https://gds.oracle.com/download/llvm/archive/llvm-jvm-24.0.1-macos-aarch64.tar.gz)
33-
* [Windows x64](https://gds.oracle.com/download/llvm/archive/llvm-jvm-24.0.1-windows-amd64.zip)
29+
* [Linux x64](https://gds.oracle.com/download/llvm/archive/llvm-jvm-24.2.0-linux-amd64.tar.gz)
30+
* [Linux AArch64](https://gds.oracle.com/download/llvm/archive/llvm-jvm-24.2.0-linux-aarch64.tar.gz)
31+
* [macOS x64](https://gds.oracle.com/download/llvm/archive/llvm-jvm-24.2.0-macos-amd64.tar.gz)
32+
* [macOS AArch64](https://gds.oracle.com/download/llvm/archive/llvm-jvm-24.2.0-macos-aarch64.tar.gz)
33+
* [Windows x64](https://gds.oracle.com/download/llvm/archive/llvm-jvm-24.2.0-windows-amd64.zip)
3434

3535
2. Unzip the archive:
3636

3737
> Note: If you are using macOS Catalina and later you may need to remove the quarantine attribute:
3838
```shell
3939
sudo xattr -r -d com.apple.quarantine <archive>.tar.gz
4040
```
41-
41+
4242
Extract:
4343
```shell
4444
tar -xzf <archive>.tar.gz
@@ -60,7 +60,7 @@ Additionally, a prebuilt LLVM toolchain is bundled with the GraalVM LLVM runtime
6060
./path/to/bin/lli --print-toolchain-path
6161
```
6262

63-
2. Set the `LLVM_TOOLCHAIN` environment variable:
63+
2. Set the `LLVM_TOOLCHAIN` environment variable:
6464
```shell
6565
export LLVM_TOOLCHAIN=$(./path/to/bin/lli --print-toolchain-path)
6666
```

docs/reference-manual/reference-manuals.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,5 +22,4 @@ If you are mostly interested in a specific language runtime on GraalVM, see the
2222
* [GraalPy](https://github.com/oracle/graalpython/blob/master/docs/user/README.md)
2323
* [GraalWasm](wasm/README.md)
2424
* [LLVM Languages](llvm/README.md)
25-
* [TruffleRuby](https://github.com/oracle/truffleruby/blob/master/doc/user/README.md)
26-
* [FastR](https://github.com/oracle/fastr/blob/master/documentation/user/README.md)
25+
* [TruffleRuby](https://github.com/oracle/truffleruby/blob/master/doc/user/README.md)

espresso/docs/continuations.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ freshly created or it has been previously suspended), and `isCompleted()` to ver
4545
`Continuation` implements `Serializable` and can serialize to a backwards compatible format. Because frames can point to
4646
anything in their parameters and local variables, the class `ContinuationSerializable` provides static
4747
methods `readObjectExternal` and `writeObjectExternal` which may be used to coordinate serialization of
48-
continuation-related objects with a non-jdk serialization engine. Note that when the `--java.Continuum` flag is specified,
48+
continuation-related objects with a non-jdk serialization engine. Note that when the `--java.Continuum` flag is specified,
4949
all lambdas are serializable but deserialization will require special support from your serializer engine.
5050

5151
## Security
@@ -168,4 +168,3 @@ format is designed to enable backwards-compatible evolution of the format.
168168
### Further Reading
169169
* [Serialization of Continuations](serialization.md)
170170
* [Generator API](generators.md)
171-

sdk/mx.sdk/mx_sdk_vm_impl.py

Lines changed: 0 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -1986,47 +1986,6 @@ def getArchivableResults(self, use_relpath=True, single=False):
19861986
def is_skipped(self):
19871987
return _skip_libraries(self.native_image_config)
19881988

1989-
class PolyglotIsolateLibrary(GraalVmLibrary):
1990-
"""
1991-
A native image project dedicated to constructing a language polyglot isolate library.
1992-
Despite being built upon the component supertype, it operates independently of the component system
1993-
and native-image macros. Its configuration relies solely on the module path and META-INF/native-image
1994-
configuration files. Instances are instantiated by mx_truffle::register_polyglot_isolate_distributions
1995-
when a language dynamically registers a polyglot isolate distribution.
1996-
"""
1997-
def __init__(self, target_suite, language, deps, build_args, **kw_args):
1998-
library_config = mx_sdk.LanguageLibraryConfig(
1999-
jar_distributions=deps,
2000-
build_args=[],
2001-
build_args_enterprise=build_args,
2002-
language=language,
2003-
)
2004-
super(PolyglotIsolateLibrary, self).__init__(None, f'{language}.isolate.image',
2005-
list(deps), library_config, **kw_args)
2006-
self.suite = target_suite
2007-
self.dir = target_suite.dir
2008-
2009-
2010-
def getBuildTask(self, args):
2011-
svm_support = _get_svm_support()
2012-
assert svm_support.is_supported(), "Needs svm to build " + str(self)
2013-
if not self.is_skipped():
2014-
return PolyglotIsolateLibraryBuildTask(self, args, svm_support)
2015-
else:
2016-
return mx.NoOpTask(self, args)
2017-
2018-
def getArchivableResults(self, use_relpath=True, single=False):
2019-
for e in super(PolyglotIsolateLibrary, self).getArchivableResults(use_relpath=use_relpath, single=single):
2020-
yield e
2021-
if single:
2022-
return
2023-
output_dir = dirname(self.output_file())
2024-
resources_dir = join(output_dir, 'resources')
2025-
if exists(resources_dir):
2026-
yield resources_dir, 'resources'
2027-
2028-
def is_skipped(self):
2029-
return False
20301989

20311990
class GraalVmMiscLauncher(GraalVmLauncher): # pylint: disable=too-many-ancestors
20321991
def __init__(self, component, native_image_config, stage1=False, **kw_args):
@@ -2481,33 +2440,6 @@ class GraalVmLibraryBuildTask(GraalVmSVMNativeImageBuildTask):
24812440
pass
24822441

24832442

2484-
class PolyglotIsolateLibraryBuildTask(GraalVmLibraryBuildTask):
2485-
"""
2486-
A PolyglotIsolateLibrary build task building a language polyglot isolate library.
2487-
Despite being built upon the component supertype, it operates independently of the component system
2488-
and native-image macros. Its configuration relies solely on the module path and META-INF/native-image
2489-
configuration files.
2490-
"""
2491-
def get_build_args(self):
2492-
project = self.subject
2493-
target = project.native_image_name[:-len(_lib_suffix)]
2494-
build_args = [
2495-
'-EJVMCI_VERSION_CHECK', # Propagate this env var when running native image from mx
2496-
'--parallelism=' + str(self.parallelism),
2497-
'--shared',
2498-
'-o',
2499-
target,
2500-
'--features=com.oracle.svm.enterprise.truffle.PolyglotIsolateGuestFeature',
2501-
'-H:APIFunctionPrefix=truffle_isolate_',
2502-
] + svm_experimental_options([
2503-
'-H:+IgnoreMaxHeapSizeWhileInVMOperation',
2504-
'-H:+CopyLanguageResources',
2505-
'-H:+GenerateBuildArtifactsFile', # generate 'build-artifacts.json'
2506-
]) + mx.get_runtime_jvm_args(self.subject.native_image_jar_distributions) + \
2507-
project.native_image_config.build_args + project.native_image_config.build_args_enterprise
2508-
return build_args
2509-
2510-
25112443
class JmodModifier(mx.Project):
25122444
def __init__(self, jmod_file, library_projects, jimage_project, **kw_args):
25132445
"""

sdk/mx.sdk/mx_sdk_vm_ng.py

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -201,8 +201,9 @@ def clean(self, forBuild=False):
201201
mx.rmtree(self.witness_file(), ignore_errors=True)
202202

203203
class NativeImageProject(mx.Project, metaclass=ABCMeta):
204-
def __init__(self, suite, name, deps, workingSets, theLicense=None, **kw_args):
204+
def __init__(self, suite, name, deps, workingSets, theLicense=None, deliverable=None, **kw_args):
205205
super().__init__(suite, name, subDir=None, srcDirs=[], deps=deps, workingSets=workingSets, d=suite.dir, theLicense=theLicense, **kw_args)
206+
self.deliverable = deliverable if deliverable else name
206207
if not hasattr(self, 'buildDependencies'):
207208
self.buildDependencies = []
208209
if not _external_bootstrap_graalvm and _has_stage1_components():
@@ -221,9 +222,8 @@ def output_file(self):
221222
def output_file_name(self):
222223
pass
223224

224-
@abstractmethod
225225
def base_file_name(self):
226-
pass
226+
return self.deliverable
227227

228228
@abstractmethod
229229
def options_file_name(self):
@@ -294,9 +294,6 @@ def resolveDeps(self):
294294
if mx_sdk_vm_impl._force_bash_launchers(self.output_file_name(), build_by_default=True):
295295
self.ignore = "Skipped executable"
296296

297-
def base_file_name(self):
298-
return self.name
299-
300297
def output_file_name(self):
301298
return mx.exe_suffix(self.base_file_name())
302299

@@ -307,6 +304,12 @@ def name_suffix(self):
307304
return mx.exe_suffix("")
308305

309306
class NativeImageLibraryProject(NativeImageProject):
307+
308+
def __init__(self, suite, name, deps, workingSets, theLicense=None, deliverable=None, **kw_args):
309+
if not deliverable:
310+
deliverable = name[3:] if name.startswith('lib') else name
311+
super().__init__(suite, name, deps, workingSets, theLicense, deliverable, **kw_args)
312+
310313
def resolveDeps(self):
311314
super().resolveDeps()
312315
if mx_sdk_vm_impl._skip_libraries(self.output_file_name(), build_by_default=True):
@@ -324,12 +327,6 @@ def getArchivableResults(self, use_relpath=True, single=False):
324327
if isfile(absolute_path) and e.endswith('.h'):
325328
yield absolute_path, e
326329

327-
def base_file_name(self):
328-
name = self.name
329-
if name.startswith('lib'):
330-
name = name[3:]
331-
return name
332-
333330
def output_file_name(self):
334331
return mx.add_lib_prefix(mx.add_lib_suffix(self.base_file_name()))
335332

truffle/README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
The Truffle language implementation framework (Truffle) is an open-source library for building programming language implementations as interpreters for self-modifying Abstract Syntax Trees.
66
Together with the open-source [Graal compiler](https://github.com/oracle/graal/tree/master/compiler), Truffle represents a significant step forward in programming language implementation technology in the current era of dynamic languages.
77

8-
A growing body of shared implementation code and services reduces language implementation effort significantly, but leads to runtime performance that matches or exceeds the competition.
8+
A growing body of shared implementation code and services reduces language implementation effort significantly, but leads to runtime performance that matches or exceeds the competition.
99
The value of the platform is further increased by support for low-overhead language interoperability, as well as a general instrumentation framework that supports multilanguage debugging and other external developer tools.
1010

1111
Truffle is developed and maintained by Oracle and the Institute for System Software of the Johannes Kepler University Linz.
@@ -16,7 +16,7 @@ If you are looking for documentation on how to use Truffle, please consult the d
1616

1717
## Hacking Truffle
1818

19-
Truffle and the Graal compiler use the [MX build tool](https://github.com/graalvm/mx/), which needs to be installed before using this repository.
19+
Truffle and the Graal compiler use the [MX build tool](https://github.com/graalvm/mx/), which needs to be installed before using this repository.
2020
To install it, run these commands in a clean directory:
2121
```bash
2222
$ git clone https://github.com/graalvm/mx.git/
@@ -41,7 +41,7 @@ $ mx ideinit
4141
```
4242

4343
The necessary IDE metadata will be generated into _truffle/_ subdirectory
44-
and its directories.
44+
and its directories.
4545

4646
The `mx` tool supports Maven integration.
4747
To register prebuilt binaries into your local Maven repository, run:
@@ -55,12 +55,12 @@ Then it is possible to add Truffle artifacts as dependencies to the Maven config
5555
<dependency>
5656
<groupId>org.graalvm.truffle</groupId>
5757
<artifactId>truffle-api</artifactId>
58-
<version>24.0.0</version> <!-- or whether version got installed by mx maven-install -->
58+
<version>24.2.0</version> <!-- or whether version got installed by mx maven-install -->
5959
</dependency>
6060
<dependency>
6161
<groupId>org.graalvm.truffle</groupId>
6262
<artifactId>truffle-dsl-processor</artifactId>
63-
<version>24.0.0</version>
63+
<version>24.2.0</version>
6464
<scope>provided</scope>
6565
</dependency>
6666
```

truffle/docs/README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ The Truffle language implementation framework (Truffle) is an open source librar
1010
Together with the open source [Graal compiler](https://github.com/oracle/graal/tree/master/compiler), Truffle represents a significant step forward in programming language implementation technology in the current era of dynamic languages.
1111

1212
The Truffle artifacts are uploaded to [Maven Central - Sonatype](https://central.sonatype.com/artifact/org.graalvm.truffle/truffle-api){:target="_blank"}.
13-
You can use them from your `pom.xml` file as:
13+
You can use them from your `pom.xml` file as:
1414

1515
```xml
1616
<properties>
@@ -50,7 +50,7 @@ It simplifies language implementation by automatically deriving high-performance
5050
### Getting Started
5151

5252
We provide extensive [Truffle API documentation](http://graalvm.org/truffle/javadoc/).
53-
Start by looking at the [TruffleLanguage](http://www.graalvm.org/truffle/javadoc/com/oracle/truffle/api/TruffleLanguage.html) class, which you should subclass to start developing a language.
53+
Start by looking at the [TruffleLanguage](http://www.graalvm.org/truffle/javadoc/com/oracle/truffle/api/TruffleLanguage.html) class, which you should subclass to start developing a language.
5454
Truffle comes with the Graal Compiler and several language implementations as part of GraalVM.
5555

5656
A good way to start implementing your language with Truffle is to fork the [SimpleLanguage](https://github.com/graalvm/simplelanguage) project and start hacking.
@@ -91,5 +91,5 @@ The latest additions and changes can be seen in the [changelog](https://github.c
9191

9292
## Modifying Truffle
9393

94-
To understand how to modify Truffle, check [this file](https://github.com/oracle/graal/blob/master/truffle/README.md).
94+
To understand how to modify Truffle, check [this file](https://github.com/oracle/graal/blob/master/truffle/README.md).
9595
If you would like to contribute to Truffle, consult the [contribution documentation](https://github.com/oracle/graal/blob/master/truffle/CONTRIBUTING.md).

0 commit comments

Comments
 (0)