You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+9Lines changed: 9 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,6 +12,15 @@ language runtime. The main focus is on user-observable behavior of the engine.
12
12
* Allow excluding the Java-based SSL module that uses classes from `java.security.*`, `org.bouncycastle.*`, `javax.net.ssl.*` and any related classes from the native image by passing `-Dpython.java.ssl=false` to the native image build Java arguments.
13
13
* Allow excluding the Java UnixSystem classes from `com.sun.security.auth.*` by passing `-Dpython.java.auth=false` to the native image build Java arguments. This makes the POSIX calls `getpwuid`, `getpwname`, and `getuid` return less precise results in the Java-based POSIX backend.
14
14
* Allow excluding the use of `sun.misc.Signal` and `sun.misc.SignalHandler` from GraalPy by passing `-Dpython.java.signals=false` to the native image build Java arguments. This removes the `signal` module from the binary.
15
+
* We now run an publish benchmark results from the community's [pyperformance](https://pyperformance.readthedocs.io) benchmark suite on our [website](http://graalvm.org/python). This makes it easier to compare and reproduce our results.
16
+
* Allow building and running basic workloads on Windows. This enables Windows users to build and use GraalPy, especially for embedding into Java.
17
+
* Implement complete support for PEP 622 pattern matching. All features of Python's structural pattern matching should now work.
18
+
* Update the distribution layout of GraalPy to match CPython's. This reduces the number of patches we need for various build systems to discover GraalPy's library locations.
19
+
* Add an option for embedders of GraalPy to poll asynchronous actions explicitly. This prevents GraalPy from creating system threads for collecting Python-level references and instead provides a callback that the embedder calls to do this work at regular intervals. See docs/user/PythonNativeImages.md for details.
20
+
* Remove the intrinsified `zipimport` module in favor of the pure Python version. This fixes subtle incompatibilities with CPython when handling ZIP files.
21
+
* Use the JDK's `MessageDigest` for hashing instead of pure Python implementations. This improves performance and compatibility in Java embeddings.
22
+
* Add initial support for `asyncio`. While not complete, this already allows some async libraries like `aiofiles` to work.
23
+
* Add a new implementation of our Python C API interface that uses fully native execution by default. This improves performance and compatibility with some extensions that spend a lot of time in native code, but can have negative effects in workloads that cross often from Python to native code and back. There are new options to control how extensions are built and run: `python.NativeModules` and `python.UseSystemToolchain`. The new default is to use the host system's toolchain for building extensions rather than the LLVM toolchain that ships with GraalVM, and to run all modules natively.
15
24
16
25
## Version 22.3.0
17
26
* Rename GraalPython to GraalPy. This change also updates the launchers we ship to include symlinks from `python` and `python3` to `graalpy` for better integration with other tools.
To try GraalPy with a full GraalVM, including the support for Java embedding and interop with other languages, you can use the bundled releases from [www.graalvm.org](https://www.graalvm.org/downloads/).
17
+
18
+
Another option is to use [Conda-Forge](https://conda-forge.org/).
19
+
To get an environment with the latest GraalPy, use `conda create -c conda-forge -n graalpy graalpy`.
22
20
23
21
### Building from Source
24
22
@@ -62,30 +60,11 @@ In the venv, multiple executables are available, like `python`, `python3` and `g
62
60
63
61
### Installing Packages
64
62
65
-
Currently, not enough of the standard library is implemented to run the
66
-
standard package installers for many packages. As a convenience, we provide a
67
-
simple module to install packages that we know to be working (including
68
-
potential patches required for those packages). Try the following to find out
69
-
which packages are at least partially supported and tested by us in our CI:
70
-
```
71
-
graalpy -m ginstall install --help
72
-
```
73
-
74
-
As a slightly exciting example, try:
75
-
```
76
-
graalpy -m ginstall install pandas
77
-
```
78
-
79
-
If all goes well (also consider native dependencies of NumPy), you should be
80
-
able to `import numpy` and `import pandas` afterwards.
81
-
82
-
Support for more extension modules is high priority for us. We are actively
83
-
building out our support for the Python C API to make extensions such as NumPy,
84
-
SciPy, Scikit-learn, Pandas, Tensorflow and the like work fully. This work means
85
-
that some other extensions might also already work, but we're not actively
86
-
testing other extensions right now and cannot promise anything. Note that to try
87
-
other extensions on this implementation, you have to download, build, and
88
-
install them manually for now.
63
+
You should be able to use the `pip` command from a GraalPy venv to install packages.
64
+
Our `pip` ships some patches for packages that we test internally, these will be applied automatically where necessary.
65
+
Support for as many extension modules as possible is a high priority for us.
66
+
We are actively building out our support for the Python C API to make extensions such as NumPy, SciPy, Scikit-learn, Pandas, Tensorflow and the like work fully.
67
+
This means that some might already work, but we're still actively working on compatibility especially with native extensions.
89
68
90
69
### Polyglot Usage
91
70
@@ -96,7 +75,7 @@ cross-language interop. This will hopefully give you an idea how to use it.
96
75
97
76
We are working on a mode that is "mostly compatible" with some of Jython's
98
77
features, minus of course that Jython implements Python 2.7 and we implement
99
-
Python 3.8+. We describe the current status of the compatibility mode
78
+
Python 3.10+. We describe the current status of the compatibility mode
0 commit comments