eo-runtime
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>org.eolang</groupId>
<artifactId>eo-runtime</artifactId>
<version>0.61.0</version>
</dependency><?xml version="1.0" encoding="UTF-8"?>
<!--
* SPDX-FileCopyrightText: Copyright (c) 2016-2026 Objectionary.com
* SPDX-License-Identifier: MIT
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.eolang</groupId>
<artifactId>eo-parent</artifactId>
<version>0.61.0</version>
</parent>
<artifactId>eo-runtime</artifactId>
<packaging>jar</packaging>
<name>eo-runtime</name>
<description>EO runtime library</description>
<properties>
<!-- This is required for later correct replacement of argline -->
<argLine/>
</properties>
<dependencies>
<dependency>
<!--
This dependency is required by the javadoc plugin. In the eo-runtime,
we use classes from this JAR, but can't have it as a normal dependency.
That's why the scope is "provided" here: it won't become a transitive
one, but at the same time will satisfy javadoc plugin.
-->
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
<version>5.18.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jul-to-slf4j</artifactId>
<version>2.0.17</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>2.0.17</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.5.29</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.eolang</groupId>
<artifactId>xax</artifactId>
<!-- version from parent POM -->
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.yegor256</groupId>
<artifactId>jaxec</artifactId>
<!-- version from parent POM -->
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.yegor256</groupId>
<artifactId>jhome</artifactId>
<!-- version from parent POM -->
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.jcabi</groupId>
<artifactId>jcabi-log</artifactId>
<!-- version from parent POM -->
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.jcabi</groupId>
<artifactId>jcabi-xml</artifactId>
<!-- version from parent POM -->
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.jcabi</groupId>
<artifactId>jcabi-manifests</artifactId>
<!-- version from parent POM -->
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.cactoos</groupId>
<artifactId>cactoos</artifactId>
<!-- version from parent POM -->
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.llorllale</groupId>
<artifactId>cactoos-matchers</artifactId>
<version>0.25</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
<!-- version from parent POM -->
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<!-- version from parent POM -->
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit-pioneer</groupId>
<artifactId>junit-pioneer</artifactId>
<!-- version from parent POM -->
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.yegor256</groupId>
<artifactId>jping</artifactId>
<!-- version from parent POM -->
<scope>test</scope>
</dependency>
<dependency>
<groupId>net.sf.saxon</groupId>
<artifactId>Saxon-HE</artifactId>
<!-- version from parent POM -->
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.yegor256</groupId>
<artifactId>farea</artifactId>
<!-- version from parent POM -->
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.yegor256</groupId>
<artifactId>mktmp</artifactId>
<!-- version from parent POM -->
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.yegor256</groupId>
<artifactId>together</artifactId>
<!-- version from parent POM -->
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.yegor256</groupId>
<artifactId>maybeslow</artifactId>
<!-- version from parent POM -->
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.eolang</groupId>
<artifactId>jucs</artifactId>
<!-- version from parent POM -->
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.github.artsok</groupId>
<artifactId>rerunner-jupiter</artifactId>
<version>2.1.6</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skipTests>${skipUTs}</skipTests>
<runOrder>random</runOrder>
<argLine>
@{argLine} -Xmx${heap-size} -Xss${stack-size} -Duser.language=ru -Duser.region=RU
</argLine>
<systemPropertyVariables>
<eo.version>${project.version}</eo.version>
<java.util.logging.config.file>
${project.basedir}/src/test/resources/jul.properties
</java.util.logging.config.file>
</systemPropertyVariables>
<!-- Default surefire plugin corrupts native stdout. It means the text that was
printed in native method will not be printed in 'mvn clean install'. This configuration
switches surefire communication channel from default to TCP/IP and solves the bug.
More detailed: https://stackoverflow.com/questions/55272870/surefire-maven-plugin-corrupted-stdout-by-directly-writing-to-native-stream-in
and https://maven.apache.org/surefire/maven-surefire-plugin/examples/process-communication.html-->
<forkNode implementation="org.apache.maven.plugin.surefire.extensions.SurefireForkNodeFactory"/>
<properties>
<configurationParameters>
junit.jupiter.execution.parallel.enabled = true
junit.jupiter.execution.parallel.mode.default = concurrent
junit.jupiter.execution.parallel.mode.classes.default = concurrent
</configurationParameters>
</properties>
</configuration>
</plugin>
<plugin>
<groupId>org.eolang</groupId>
<artifactId>eo-maven-plugin</artifactId>
<version>${project.version}</version>
<configuration>
<foreign>${project.build.directory}/eo-foreign.csv</foreign>
<foreignFormat>csv</foreignFormat>
<failOnWarning>false</failOnWarning>
<offline>true</offline>
</configuration>
<executions>
<execution>
<id>compile</id>
<goals>
<goal>register</goal>
<goal>compile</goal>
<goal>transpile</goal>
<goal>unplace</goal>
<goal>unspile</goal>
</goals>
<configuration>
<skipSourceLints>
<!-- Required to be skipped, since we in runtime origin library. -->
<lint>prohibited-package</lint>
<!--
@todo #4148:30min. Enable `unused-void-attr` lint.
We should enable this lint after the following issue with magic
voids will be resolved: https://github.com/objectionary/lints/issues/574.
Don't forget to enable `unused-void-attr` in the `test–compile`
execution as well.
-->
<lint>unused-void-attr</lint>
<!--
@todo #4148:30min. Enable `duplicate-names-in-diff-context` lint.
For now its too pedantic.
See this: https://github.com/objectionary/lints/issues/578.
Also, we should fix the bug with false positives with lambda object
names in the atoms, in order to enable this lint.
-->
<lint>duplicate-names-in-diff-context</lint>
<!--
@todo #4096:30min. Enable `sparse-decoration` lint.
After we merged EO tests together with their source objects, and removed
`+tests` meta, we have complains about sparse-decoration. Let's adjust and
enable it.
-->
<lint>sparse-decoration</lint>
<!--
@todo #4935:30min. Enable `comment-not-capitalized` lint.
The lint incorrectly flags comments starting with `@to-do` as not capitalized.
We should enable it after the lints repo fixes the issue to
ignore @to-do markers. See: https://github.com/objectionary/lints/issues/805
-->
<lint>comment-not-capitalized</lint>
<!--
@todo #4538:30min. Enable `object-has-data` lint.
The lint incorrectly flags all objects with bytes inside because they
don't have @base='Φ.org.eolang.bytes'. It was changed in
https://github.com/objectionary/eo/issues/4538. Right now we have just Φ.bytes
-->
<lint>object-has-data</lint>
</skipSourceLints>
<skipProgramLints>
<lint>inconsistent-args</lint>
</skipProgramLints>
<!--
@todo #4987:30min. Reduce keepBinaries back to package-info entries only.
Due to incorrect default value of classesDir in MjSafe (fixed in #4987),
MjUnplace and MjUnspile were not working properly, so all classes —
hand-written, generated, and placed — were published to Maven Central by
mistake (see #4538). As a result, when eo-runtime resolves itself as a
dependency, all those extra classes get placed into target/classes and
would be included in the JAR unless explicitly kept here. Once a release
with the fix is published to Maven Central and this module stops resolving
the bloated artifact, this list can be reduced back to the five
package-info.class entries.
-->
<keepBinaries>
<glob>org/eolang/AtComposite.class</glob>
<glob>org/eolang/Atom.class</glob>
<glob>org/eolang/AtomSafe.class</glob>
<glob>org/eolang/AtOnce.class</glob>
<glob>org/eolang/AtRho.class</glob>
<glob>org/eolang/Attr.class</glob>
<glob>org/eolang/AtVoid.class</glob>
<glob>org/eolang/AtWithRho.class</glob>
<glob>org/eolang/Bytes.class</glob>
<glob>org/eolang/BytesOf.class</glob>
<glob>org/eolang/BytesRaw.class</glob>
<glob>org/eolang/Data.class</glob>
<glob>org/eolang/Dataized.class</glob>
<glob>org/eolang/EObytes$EOand.class</glob>
<glob>org/eolang/EObytes$EOconcat.class</glob>
<glob>org/eolang/EObytes$EOeq.class</glob>
<glob>org/eolang/EObytes$EOnot.class</glob>
<glob>org/eolang/EObytes$EOor.class</glob>
<glob>org/eolang/EObytes$EOright.class</glob>
<glob>org/eolang/EObytes$EOsize.class</glob>
<glob>org/eolang/EObytes$EOslice.class</glob>
<glob>org/eolang/EObytes$EOxor.class</glob>
<glob>org/eolang/EOerror.class</glob>
<glob>org/eolang/EOfs/EOdir$EOmade$EOmkdir.class</glob>
<glob>org/eolang/EOfs/EOdir$EOtmpfile$EOtouch.class</glob>
<glob>org/eolang/EOfs/EOdir$EOwalk.class</glob>
<glob>org/eolang/EOfs/EOfile$EOdeleted$EOdelete.class</glob>
<glob>org/eolang/EOfs/EOfile$EOexists.class</glob>
<glob>org/eolang/EOfs/EOfile$EOis_directory.class</glob>
<glob>org/eolang/EOfs/EOfile$EOmoved$EOmove.class</glob>
<glob>org/eolang/EOfs/EOfile$EOopen$EOfile_stream$EOread$EOchunk.class</glob>
<glob>org/eolang/EOfs/EOfile$EOopen$EOfile_stream$EOwrite$EOwritten_bytes.class</glob>
<glob>org/eolang/EOfs/EOfile$EOopen$EOprocess_file.class</glob>
<glob>org/eolang/EOfs/EOfile$EOsize.class</glob>
<glob>org/eolang/EOfs/EOfile$EOtouched$EOtouch.class</glob>
<glob>org/eolang/EOfs/Files.class</glob>
<glob>org/eolang/EOfs/package-info.class</glob>
<glob>org/eolang/EOi16$EOas_i32.class</glob>
<glob>org/eolang/EOi32$EOas_i64.class</glob>
<glob>org/eolang/EOi64$EOas_number.class</glob>
<glob>org/eolang/EOi64$EOdiv.class</glob>
<glob>org/eolang/EOi64$EOgt.class</glob>
<glob>org/eolang/EOi64$EOplus.class</glob>
<glob>org/eolang/EOi64$EOtimes.class</glob>
<glob>org/eolang/EOmalloc$EOof$EOφ.class</glob>
<glob>org/eolang/EOmalloc$EOof$EOallocated$EOread.class</glob>
<glob>org/eolang/EOmalloc$EOof$EOallocated$EOresized.class</glob>
<glob>org/eolang/EOmalloc$EOof$EOallocated$EOsize.class</glob>
<glob>org/eolang/EOmalloc$EOof$EOallocated$EOwrite.class</glob>
<glob>org/eolang/EOms/EOacos.class</glob>
<glob>org/eolang/EOms/EOangle$EOcos.class</glob>
<glob>org/eolang/EOms/EOangle$EOsin.class</glob>
<glob>org/eolang/EOms/EOasin.class</glob>
<glob>org/eolang/EOms/EOln.class</glob>
<glob>org/eolang/EOms/EOpow.class</glob>
<glob>org/eolang/EOms/EOsqrt.class</glob>
<glob>org/eolang/EOms/package-info.class</glob>
<glob>org/eolang/EOnumber$EOas_i64.class</glob>
<glob>org/eolang/EOnumber$EOdiv.class</glob>
<glob>org/eolang/EOnumber$EOfloor.class</glob>
<glob>org/eolang/EOnumber$EOgt.class</glob>
<glob>org/eolang/EOnumber$EOplus.class</glob>
<glob>org/eolang/EOnumber$EOtimes.class</glob>
<glob>org/eolang/EOsm/EOos$EOname.class</glob>
<glob>org/eolang/EOsm/EOposix$EOφ.class</glob>
<glob>org/eolang/EOsm/EOwin32$EOφ.class</glob>
<glob>org/eolang/EOsm/package-info.class</glob>
<glob>org/eolang/EOsm/Posix/AcceptSyscall.class</glob>
<glob>org/eolang/EOsm/Posix/BindSyscall.class</glob>
<glob>org/eolang/EOsm/Posix/CloseSyscall.class</glob>
<glob>org/eolang/EOsm/Posix/ConnectSyscall.class</glob>
<glob>org/eolang/EOsm/Posix/CStdLib.class</glob>
<glob>org/eolang/EOsm/Posix/ErrnoSyscall.class</glob>
<glob>org/eolang/EOsm/Posix/GetenvSyscall.class</glob>
<glob>org/eolang/EOsm/Posix/GetpidSyscall.class</glob>
<glob>org/eolang/EOsm/Posix/GettimeofdaySyscall.class</glob>
<glob>org/eolang/EOsm/Posix/InetAddrSyscall.class</glob>
<glob>org/eolang/EOsm/Posix/ListenSyscall.class</glob>
<glob>org/eolang/EOsm/Posix/package-info.class</glob>
<glob>org/eolang/EOsm/Posix/ReadSyscall.class</glob>
<glob>org/eolang/EOsm/Posix/RecvSyscall.class</glob>
<glob>org/eolang/EOsm/Posix/SendSyscall.class</glob>
<glob>org/eolang/EOsm/Posix/SocketSyscall.class</glob>
<glob>org/eolang/EOsm/Posix/StrerrorSyscall.class</glob>
<glob>org/eolang/EOsm/Posix/WriteSyscall.class</glob>
<glob>org/eolang/EOsm/SockaddrIn.class</glob>
<glob>org/eolang/EOsm/Syscall.class</glob>
<glob>org/eolang/EOsm/TupleToArray.class</glob>
<glob>org/eolang/EOsm/Win32/AcceptFuncCall.class</glob>
<glob>org/eolang/EOsm/Win32/BaseTSD.class</glob>
<glob>org/eolang/EOsm/Win32/BindFuncCall.class</glob>
<glob>org/eolang/EOsm/Win32/ClosesocketFuncCall.class</glob>
<glob>org/eolang/EOsm/Win32/ConnectFuncCall.class</glob>
<glob>org/eolang/EOsm/Win32/GetCurrentProcessIdFuncCall.class</glob>
<glob>org/eolang/EOsm/Win32/GetEnvironmentVariableFuncCall.class</glob>
<glob>org/eolang/EOsm/Win32/GetSystemTimeFuncCall.class</glob>
<glob>org/eolang/EOsm/Win32/InetAddrFuncCall.class</glob>
<glob>org/eolang/EOsm/Win32/Kernel32.class</glob>
<glob>org/eolang/EOsm/Win32/ListenFuncCall.class</glob>
<glob>org/eolang/EOsm/Win32/package-info.class</glob>
<glob>org/eolang/EOsm/Win32/ReadFileFuncCall.class</glob>
<glob>org/eolang/EOsm/Win32/RecvFuncCall.class</glob>
<glob>org/eolang/EOsm/Win32/SendFuncCall.class</glob>
<glob>org/eolang/EOsm/Win32/SocketFuncCall.class</glob>
<glob>org/eolang/EOsm/Win32/WinBase.class</glob>
<glob>org/eolang/EOsm/Win32/Wincon.class</glob>
<glob>org/eolang/EOsm/Win32/WinDef.class</glob>
<glob>org/eolang/EOsm/Win32/WinNT.class</glob>
<glob>org/eolang/EOsm/Win32/Winsock.class</glob>
<glob>org/eolang/EOsm/Win32/WriteFileFuncCall.class</glob>
<glob>org/eolang/EOsm/Win32/WSACleanupFuncCall.class</glob>
<glob>org/eolang/EOsm/Win32/WSAGetLastErrorFuncCall.class</glob>
<glob>org/eolang/EOsm/Win32/WSAStartupFuncCall.class</glob>
<glob>org/eolang/EOtry.class</glob>
<glob>org/eolang/EOtt/EOregex$EOφ.class</glob>
<glob>org/eolang/EOtt/EOregex$EOpattern$EOmatch$EOmatched_from_index.class</glob>
<glob>org/eolang/EOtt/EOsprintf.class</glob>
<glob>org/eolang/EOtt/EOsscanf.class</glob>
<glob>org/eolang/EOtt/package-info.class</glob>
<glob>org/eolang/EOtt/SprintfArgs.class</glob>
<glob>org/eolang/ExAbstract.class</glob>
<glob>org/eolang/ExFailure.class</glob>
<glob>org/eolang/ExInterrupted.class</glob>
<glob>org/eolang/Expect.class</glob>
<glob>org/eolang/ExReadOnly.class</glob>
<glob>org/eolang/ExUnset.class</glob>
<glob>org/eolang/Heaps.class</glob>
<glob>org/eolang/JavaPath.class</glob>
<glob>org/eolang/Main.class</glob>
<glob>org/eolang/package-info.class</glob>
<glob>org/eolang/PhCached.class</glob>
<glob>org/eolang/PhCopy.class</glob>
<glob>org/eolang/PhDefault.class</glob>
<glob>org/eolang/Phi.class</glob>
<glob>org/eolang/PhLogged.class</glob>
<glob>org/eolang/PhMethod.class</glob>
<glob>org/eolang/PhOnce.class</glob>
<glob>org/eolang/PhPackage.class</glob>
<glob>org/eolang/PhSafe.class</glob>
<glob>org/eolang/PhVoid.class</glob>
<glob>org/eolang/PhWith.class</glob>
<glob>org/eolang/VerboseBytesAsString.class</glob>
<glob>org/eolang/XmirObject.class</glob>
</keepBinaries>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<executions>
<execution>
<id>snippet-test</id>
<phase>integration-test</phase>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
<configuration>
<argLine>
@{argLine} -Xmx${heap-size} -Xss${stack-size} -Duser.language=ru -Duser.region=RU
</argLine>
<systemPropertyVariables combine.children="append">
<java.class.path>${project.build.outputDirectory}</java.class.path>
<xmir.xsd>${project.basedir}/../eo-parser/src/main/resources/XMIR.xsd</xmir.xsd>
</systemPropertyVariables>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>jacoco</id>
<build>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<executions>
<execution>
<id>jacoco-initialize</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>jacoco-check</id>
<phase>test</phase>
<goals>
<goal>check</goal>
<goal>report</goal>
</goals>
<configuration>
<rules>
<rule>
<element>BUNDLE</element>
<limits>
<limit>
<counter>INSTRUCTION</counter>
<value>COVEREDRATIO</value>
<minimum>0.14</minimum>
</limit>
<limit>
<counter>LINE</counter>
<value>COVEREDRATIO</value>
<minimum>0.13</minimum>
</limit>
<limit>
<counter>BRANCH</counter>
<value>COVEREDRATIO</value>
<minimum>0.03</minimum>
</limit>
<limit>
<counter>COMPLEXITY</counter>
<value>COVEREDRATIO</value>
<minimum>0.08</minimum>
</limit>
<limit>
<counter>METHOD</counter>
<value>COVEREDRATIO</value>
<minimum>0.12</minimum>
</limit>
<limit>
<counter>CLASS</counter>
<value>MISSEDCOUNT</value>
<maximum>1514</maximum>
</limit>
</limits>
</rule>
</rules>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>qulice</id>
<build>
<plugins>
<plugin>
<groupId>org.eolang</groupId>
<artifactId>eo-maven-plugin</artifactId>
<configuration>
<skipLinting>false</skipLinting>
</configuration>
</plugin>
<plugin>
<groupId>com.qulice</groupId>
<artifactId>qulice-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>dependencies:org.eolang:eo-maven-plugin</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.gmaven</groupId>
<artifactId>groovy-maven-plugin</artifactId>
<executions>
<execution>
<id>project-validate</id>
<phase>verify</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<source>${project.basedir}/src/test/groovy/verify.groovy</source>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-xml</artifactId>
<version>3.0.25</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>hone</id>
<build>
<plugins>
<plugin>
<groupId>org.eolang</groupId>
<artifactId>hone-maven-plugin</artifactId>
<version>0.23.3</version>
<executions>
<execution>
<goals>
<goal>pull</goal>
<goal>optimize</goal>
<goal>rmi</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>