Skip to content

Commit

Permalink
Merge branch 'master' into bug/#3619/sugar-for-tuples
Browse files Browse the repository at this point in the history
  • Loading branch information
maxonfjvipon committed Dec 26, 2024
2 parents 38e31bd + 55c88dc commit 8c39600
Show file tree
Hide file tree
Showing 349 changed files with 2,169 additions and 12,291 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/daily.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ jobs:
- run: |
# Clean the test classes to avoid caching issues and prepare testing environment
# without running the tests
mvn clean install -Pqulice -DskipTests -DskipITs -Dinvoker.skip=true
mvn clean install -Pqulice -PskipTests
# Find script
SCRIPT=${GITHUB_WORKSPACE}/src/test/scripts/test-repetition.sh
# Check that script is exists
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/hone.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,5 +43,5 @@ jobs:
key: maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
maven-
- run: mvn install -DskipTests -Dinvoker.skip -Phone
- run: mvn install -PskipTests -Phone
- run: mvn test -Phone -pl :eo-runtime
Original file line number Diff line number Diff line change
Expand Up @@ -20,25 +20,28 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
---
sheets: [ ]
asserts:
- //o[@base='func0' and @ver='3.4.5' and @name='x']
- //o[@base='func1' and @ver='1.2.3']
- //o[@base='func2' and not(@ver)]
- //o[@base='func3' and @ver='3.2.1']
- //o[@base='func4' and @ver='10.20.30']
- //o[@base='.stdout' and @ver='1.28.5']
- //o[@base='.sprintf' and @ver='0.28.5' and @name='y']
input: |
# No comments.
[] > main
func0|3.4.5 > x
func1|1.2.3
1
func2 2
func3|3.2.1
.method
func4|10.20.30
QQ.io.stdout|1.28.5
QQ.txt.sprintf|0.28.5 > y
"Hello world"
name: integration
on:
push:
branches:
- master
pull_request:
branches:
- master
jobs:
integration:
name: integration
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: 21
- uses: actions/cache@v4
with:
path: ~/.m2/repository
key: ubuntu-surefire-jdk-21-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: ubuntu-surefire-jdk-21-maven-
- run: |
mvn clean install -PskipUTs --errors --batch-mode
18 changes: 1 addition & 17 deletions .github/workflows/mvn.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,23 +54,7 @@ jobs:
path: ~/.m2/repository
key: ${{ runner.os }}-jdk-${{ matrix.java }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-jdk-${{ matrix.java }}-maven-
# The next step is required to avoid some exceptions that occur
# when running on Windows OS. For example like this one:
# - https://github.com/objectionary/eo/issues/2336
# The step disables http multiplexing in Cargo which cause some problems
# on Windows OS.
# You can read more about multiplexing right here
# - https://stackoverflow.com/questions/36517829/what-does-multiplexing-mean-in-http-2
# Multiplexing in Rust:
# - https://doc.rust-lang.org/cargo/reference/config.html#httpmultiplexing
- name: Set Cargo config (Windows)
if: matrix.os == 'windows-2022'
run: |
echo [http] >> %USERPROFILE%\.cargo\config.toml
echo multiplexing = false >> %USERPROFILE%\.cargo\config.toml
shell: cmd
- run: cargo --version
- uses: JesseTG/rm@v1.0.3
with:
path: ~/.m2/repository/org/eolang
- run: mvn clean install --errors --batch-mode
- run: mvn clean install -PskipITs --errors --batch-mode
2 changes: 1 addition & 1 deletion .github/workflows/qulice.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,4 +43,4 @@ jobs:
path: ~/.m2/repository
key: ubuntu-qulice-jdk-21-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: ubuntu-qulice-jdk-21-maven-
- run: mvn clean verify -DskipTests -DskipITs -Pqulice --errors --batch-mode
- run: mvn clean verify -PskipTests -Pqulice --errors --batch-mode
11 changes: 7 additions & 4 deletions .github/workflows/zerocracy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,24 +21,27 @@
# SOFTWARE.
---
name: zerocracy
run-name: "zerocracy judges"
'on':
schedule:
- cron: '0 2,6,10,14,18,22 * * *'
- cron: '0 0,2,4,6,8,10,12,14,16,18,20,22 * * *'
concurrency:
group: zerocracy
cancel-in-progress: false
jobs:
zerocracy:
runs-on: ubuntu-24.04
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
- uses: zerocracy/judges-action@0.0.55
- uses: zerocracy/judges-action@0.0.65
with:
verbose: false
token: ${{ secrets.ZEROCRACY_TOKEN }}
github_token: ${{ secrets.GITHUB_TOKEN }}
repositories: objectionary/*
options: |
github_token=${{ secrets.GITHUB_TOKEN }}
vitals_url=https://www.eolang.org/zerocracy/objectionary-vitals.html
repositories=objectionary/*
factbase: objectionary.fb
- uses: zerocracy/pages-action@0.0.40
with:
Expand Down
57 changes: 29 additions & 28 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,11 +63,14 @@ All of them have something **we don't tolerate**:
## Quick Start

First, install [Java SE](https://www.oracle.com/java/technologies/downloads/),
[npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm),
[Rust with Cargo][cargo]
and [eoc](https://github.com/objectionary/eoc).
[npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm).
Then, you install [eoc](https://github.com/objectionary/eoc):

Then, start with a simple EO program in `app.eo` file:
```bash
npm install -g eolang@0.28.0
```

Then, start with a simple EO program in the `app.eo` file:

```eo
# Just prints hello.
Expand All @@ -76,16 +79,16 @@ Then, start with a simple EO program in `app.eo` file:
"Hello, world!\n"
```

Compile it like this (may take a minute or so):
Compile it like this (may take up to a minute or so):

```bash
eoc link
eoc --easy link
```

Then, run it:

```bash
eoc --alone dataize app
eoc --easy --alone dataize app
```

You should see "Hello, world!" printed.
Expand Down Expand Up @@ -259,28 +262,28 @@ the `eo-runtime` module:
<!-- benchmark_begin -->

```text
to-java.xsl 65282 33.25%
add-refs.xsl 22510 11.47%
set-locators.xsl 11742 5.98%
tests.xsl 10472 5.33%
rename-tests-inners.xsl 9189 4.68%
resolve-aliases.xsl 5867 2.99%
add-probes.xsl 5862 2.99%
classes.xsl 5526 2.81%
explicit-data.xsl 5464 2.78%
package.xsl 5319 2.71%
vars-float-up.xsl 5301 2.70%
add-default-package.xsl 5166 2.63%
cti-adds-errors.xsl 4775 2.43%
expand-qqs.xsl 4197 2.14%
expand-aliases.xsl 4080 2.08%
clean-up.xsl 3813 1.94%
to-java.xsl 68264 32.87%
add-refs.xsl 24448 11.77%
set-locators.xsl 12970 6.25%
tests.xsl 10989 5.29%
rename-tests-inners.xsl 9114 4.39%
add-probes.xsl 6215 2.99%
resolve-aliases.xsl 5968 2.87%
vars-float-up.xsl 5879 2.83%
classes.xsl 5856 2.82%
add-default-package.xsl 5548 2.67%
explicit-data.xsl 5511 2.65%
package.xsl 5313 2.56%
cti-adds-errors.xsl 5106 2.46%
expand-qqs.xsl 4279 2.06%
clean-up.xsl 4133 1.99%
atoms-with-bound-attrs.xsl 4106 1.98%
```

The results were calculated in [this GHA job][benchmark-gha]
on 2024-12-13 at 05:54,
on 2024-12-23 at 05:07,
on Linux with 4 CPUs.
The total is 196332 milliseconds.
The total is 207665 milliseconds.
We show only the first 16 most expensive XSL stylesheets.

<!-- benchmark_end -->
Expand Down Expand Up @@ -321,6 +324,4 @@ to enhance the performance of EO components:

[![YourKit](https://www.yourkit.com/images/yklogo.png)](https://www.yourkit.com)

[cargo]: https://doc.rust-lang.org/cargo/getting-started/installation.html

[benchmark-gha]: https://github.com/objectionary/eo/actions/runs/12310206821
[benchmark-gha]: https://github.com/objectionary/eo/actions/runs/12461404086
27 changes: 11 additions & 16 deletions eo-maven-plugin/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ create a file `pom.xml` with this content (it's just a sample):
<plugin>
<groupId>org.eolang</groupId>
<artifactId>eo-maven-plugin</artifactId>
<version>0.49.1</version>
<version>0.49.4</version>
<executions>
<execution>
<goals>
Expand Down Expand Up @@ -147,21 +147,16 @@ Here `fibonacci` is the name of the desired integration test, `-DskipTests` is u

## How to disable Integration Tests

It is sometime necessary to temporary disable the integration tests (for example for introducing
It is sometime necessary to temporarily disable the integration tests (for example for introducing
braking changes into plugin or EO runtime). This can be achieved by disabling `maven-invoker-plugin`
execution within `eo-maven-plugin/pom.xml`:
using profile:

```xml
<plugins>
...
<plugin>
<artifactId>maven-invoker-plugin</artifactId>
<version>0.49.1</version>
<configuration>
<skipInstallation>true</skipInstallation>
<skipInvocation>true</skipInvocation>
</configuration>
</plugin>
...
</plugins>
```shell
mvn clean install -PskipITs
```

or by setting skipITs property:

```shell
mvn clean install -DskipITs
```
51 changes: 16 additions & 35 deletions eo-maven-plugin/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,12 @@ SOFTWARE.
<dependency>
<groupId>org.eolang</groupId>
<artifactId>lints</artifactId>
<version>0.0.24</version>
<version>0.0.26</version>
</dependency>
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>jakarta.json</artifactId>
<version>1.1.6</version>
</dependency>
<dependency>
<groupId>com.yegor256</groupId>
Expand Down Expand Up @@ -134,11 +139,6 @@ SOFTWARE.
<version>3.9.9</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.17.1</version>
</dependency>
<dependency>
<groupId>org.twdata.maven</groupId>
<artifactId>mojo-executor</artifactId>
Expand Down Expand Up @@ -185,6 +185,12 @@ SOFTWARE.
<artifactId>farea</artifactId>
<!-- version from parent POM -->
</dependency>
<dependency>
<groupId>com.yegor256</groupId>
<artifactId>together</artifactId>
<!-- version from parent POM -->
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.yegor256</groupId>
<artifactId>mktmp</artifactId>
Expand All @@ -193,7 +199,7 @@ SOFTWARE.
<dependency>
<groupId>com.yegor256</groupId>
<artifactId>tojos</artifactId>
<version>0.18.3</version>
<version>0.18.4</version>
</dependency>
<dependency>
<groupId>javax.json</groupId>
Expand All @@ -218,11 +224,6 @@ SOFTWARE.
<artifactId>commons-lang3</artifactId>
<version>3.17.0</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.18.0</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-reload4j</artifactId>
Expand Down Expand Up @@ -260,11 +261,6 @@ SOFTWARE.
logging system. -->
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.yegor256</groupId>
<artifactId>jaxec</artifactId>
<!-- version from parent POM -->
</dependency>
<dependency>
<groupId>com.yegor256</groupId>
<artifactId>jhome</artifactId>
Expand All @@ -285,11 +281,6 @@ SOFTWARE.
<artifactId>jping</artifactId>
<!-- version from parent POM -->
</dependency>
<dependency>
<groupId>com.moandjiezana.toml</groupId>
<artifactId>toml4j</artifactId>
<version>0.7.2</version>
</dependency>
</dependencies>
<build>
<plugins>
Expand All @@ -307,21 +298,11 @@ SOFTWARE.
</plugin>
<plugin>
<artifactId>maven-invoker-plugin</artifactId>
<configuration>
<configuration combine.self="override">
<skipInstallation>${skipITs}</skipInstallation>
<skipInvocation>${skipITs}</skipInvocation>
<pomExcludes>
<!--
@todo #2660:30min Enable the following integration tests when it's possible.
Now they don't work because many .eo files are absent in the
objectionary/home repository or can't be successfully parsed because of the
syntax changes. Once they are released, the tests
should work as is, without any modifications.
-->
<exclude>custom_goals/pom.xml</exclude>
<exclude>fibonacci/pom.xml</exclude>
<exclude>rewritten_sources/pom.xml</exclude>
<exclude>duplicate_classes/pom.xml</exclude>
<exclude>simple/pom.xml</exclude>
<exclude>hash_package_layer/pom.xml</exclude>
</pomExcludes>
</configuration>
</plugin>
Expand Down
Loading

0 comments on commit 8c39600

Please sign in to comment.