eo icon indicating copy to clipboard operation
eo copied to clipboard

eoc test fails after eoc unphi

Open deemp opened this issue 1 year ago • 36 comments

I used eoc 0.15.1

Workflow: https://github.com/objectionary/normalizer/actions/runs/7843597391/job/21404276775#step:6:36 Pipeline script: https://github.com/objectionary/normalizer/blob/53ce6966b4df5e138a4ce22214c6c697720ea0c1/pipeline.sh

Initial EO

+architect [email protected]
+home https://github.com/objectionary/eo
+tests
+package org.eolang
+version 0.0.0

[] > compares-two-bools
  eq. > @
    TRUE
    TRUE

[] > compares-two-different-types
  not. > @
    eq.
      TRUE
      42

[] > forks-on-condition
  eq. > @
    if.
      5.eq 8
      123
      42
    42

[] > iterates-over-simple-counter
  memory 0 > x
  and. > @
    eq.
      x.write 5
      5
    eq.
      while.
        x.as-int.lt 10
        [i]
          x.write > @
            x.as-int.plus 1
      11

[] > compares-bool-to-bytes
  and. > @
    TRUE.eq 01-
    FALSE.eq 00-

[] > compares-bool-to-string
  and. > @
    TRUE.eq "\001"
    FALSE.eq "\000"

[] > compares-bool-to-bytes-reverse
  and. > @
    01-.as-bytes.eq TRUE
    00-.as-bytes.eq FALSE

Converted to PHI

{org ↦ ⟦eolang ↦ ⟦compares-two-bools ↦ ⟦φ ↦ Φ.org.eolang.bool(α0 ↦ Φ.org.eolang.bytes(Δ ⤍ 01-)).eq(α0 ↦ Φ.org.eolang.bool(α0 ↦ Φ.org.eolang.bytes(Δ ⤍ 01-)))⟧, compares-two-different-types ↦ ⟦φ ↦ Φ.org.eolang.bool(α0 ↦ Φ.org.eolang.bytes(Δ ⤍ 01-)).eq(α0 ↦ Φ.org.eolang.int(α0 ↦ Φ.org.eolang.bytes(Δ ⤍ 00-00-00-00-00-00-00-2A))).not⟧, forks-on-condition ↦ ⟦φ ↦ Φ.org.eolang.int(α0 ↦ Φ.org.eolang.bytes(Δ ⤍ 00-00-00-00-00-00-00-05)).eq(α0 ↦ Φ.org.eolang.int(α0 ↦ Φ.org.eolang.bytes(Δ ⤍ 00-00-00-00-00-00-00-08))).if(α0 ↦ Φ.org.eolang.int(α0 ↦ Φ.org.eolang.bytes(Δ ⤍ 00-00-00-00-00-00-00-7B)), α1 ↦ Φ.org.eolang.int(α0 ↦ Φ.org.eolang.bytes(Δ ⤍ 00-00-00-00-00-00-00-2A))).eq(α0 ↦ Φ.org.eolang.int(α0 ↦ Φ.org.eolang.bytes(Δ ⤍ 00-00-00-00-00-00-00-2A)))⟧, iterates-over-simple-counter ↦ ⟦x ↦ Φ.org.eolang.memory(α0 ↦ Φ.org.eolang.int(α0 ↦ Φ.org.eolang.bytes(Δ ⤍ 00-00-00-00-00-00-00-00))), φ ↦ ξ.x.write(α0 ↦ Φ.org.eolang.int(α0 ↦ Φ.org.eolang.bytes(Δ ⤍ 00-00-00-00-00-00-00-05))).eq(α0 ↦ Φ.org.eolang.int(α0 ↦ Φ.org.eolang.bytes(Δ ⤍ 00-00-00-00-00-00-00-05))).and(α0 ↦ ξ.x.as-int.lt(α0 ↦ Φ.org.eolang.int(α0 ↦ Φ.org.eolang.bytes(Δ ⤍ 00-00-00-00-00-00-00-0A))).while(α0 ↦ ⟦i ↦ ∅, φ ↦ ξ.ρ.x.write(α0 ↦ ξ.ρ.x.as-int.plus(α0 ↦ Φ.org.eolang.int(α0 ↦ Φ.org.eolang.bytes(Δ ⤍ 00-00-00-00-00-00-00-01))))⟧).eq(α0 ↦ Φ.org.eolang.int(α0 ↦ Φ.org.eolang.bytes(Δ ⤍ 00-00-00-00-00-00-00-0B))))⟧, compares-bool-to-bytes ↦ ⟦φ ↦ Φ.org.eolang.bool(α0 ↦ Φ.org.eolang.bytes(Δ ⤍ 01-)).eq(α0 ↦ Φ.org.eolang.bytes(Δ ⤍ 01-)).and(α0 ↦ Φ.org.eolang.bool(α0 ↦ Φ.org.eolang.bytes(Δ ⤍ 00-)).eq(α0 ↦ Φ.org.eolang.bytes(Δ ⤍ 00-)))⟧, compares-bool-to-string ↦ ⟦φ ↦ Φ.org.eolang.bool(α0 ↦ Φ.org.eolang.bytes(Δ ⤍ 01-)).eq(α0 ↦ Φ.org.eolang.string(α0 ↦ Φ.org.eolang.bytes(Δ ⤍ 01-))).and(α0 ↦ Φ.org.eolang.bool(α0 ↦ Φ.org.eolang.bytes(Δ ⤍ 00-)).eq(α0 ↦ Φ.org.eolang.string(α0 ↦ Φ.org.eolang.bytes(Δ ⤍ 00-))))⟧, compares-bool-to-bytes-reverse ↦ ⟦φ ↦ Φ.org.eolang.bytes(Δ ⤍ 01-).as-bytes.eq(α0 ↦ Φ.org.eolang.bool(α0 ↦ Φ.org.eolang.bytes(Δ ⤍ 01-))).and(α0 ↦ Φ.org.eolang.bytes(Δ ⤍ 00-).as-bytes.eq(α0 ↦ Φ.org.eolang.bool(α0 ↦ Φ.org.eolang.bytes(Δ ⤍ 00-))))⟧, λ ⤍ Package⟧, λ ⤍ Package⟧}

Normalized

⟦ org ↦ ⟦ eolang ↦ ⟦ compares-two-bools ↦ ⟦ φ ↦ Φ.org.eolang.bool (α0 ↦ Φ.org.eolang.bytes (Δ ⤍ 01-)).eq (α0 ↦ Φ.org.eolang.bool (α0 ↦ Φ.org.eolang.bytes (Δ ⤍ 01-))) ⟧, compares-two-different-types ↦ ⟦ φ ↦ Φ.org.eolang.bool (α0 ↦ Φ.org.eolang.bytes (Δ ⤍ 01-)).eq (α0 ↦ Φ.org.eolang.int (α0 ↦ Φ.org.eolang.bytes (Δ ⤍ 00-00-00-00-00-00-00-2A))).not ⟧, forks-on-condition ↦ ⟦ φ ↦ Φ.org.eolang.int (α0 ↦ Φ.org.eolang.bytes (Δ ⤍ 00-00-00-00-00-00-00-05)).eq (α0 ↦ Φ.org.eolang.int (α0 ↦ Φ.org.eolang.bytes (Δ ⤍ 00-00-00-00-00-00-00-08))).if (α0 ↦ Φ.org.eolang.int (α0 ↦ Φ.org.eolang.bytes (Δ ⤍ 00-00-00-00-00-00-00-7B)), α1 ↦ Φ.org.eolang.int (α0 ↦ Φ.org.eolang.bytes (Δ ⤍ 00-00-00-00-00-00-00-2A))).eq (α0 ↦ Φ.org.eolang.int (α0 ↦ Φ.org.eolang.bytes (Δ ⤍ 00-00-00-00-00-00-00-2A))) ⟧, iterates-over-simple-counter ↦ ⟦ x ↦ Φ.org.eolang.memory (α0 ↦ Φ.org.eolang.int (α0 ↦ Φ.org.eolang.bytes (Δ ⤍ 00-00-00-00-00-00-00-00))), φ ↦ ξ.x.write (α0 ↦ Φ.org.eolang.int (α0 ↦ Φ.org.eolang.bytes (Δ ⤍ 00-00-00-00-00-00-00-05))).eq (α0 ↦ Φ.org.eolang.int (α0 ↦ Φ.org.eolang.bytes (Δ ⤍ 00-00-00-00-00-00-00-05))).and (α0 ↦ ξ.x.as-int.lt (α0 ↦ Φ.org.eolang.int (α0 ↦ Φ.org.eolang.bytes (Δ ⤍ 00-00-00-00-00-00-00-0A))).while (α0 ↦ ⟦ i ↦ ∅, φ ↦ ξ.ρ.x.write (α0 ↦ ξ.ρ.x.as-int.plus (α0 ↦ Φ.org.eolang.int (α0 ↦ Φ.org.eolang.bytes (Δ ⤍ 00-00-00-00-00-00-00-01)))) ⟧).eq (α0 ↦ Φ.org.eolang.int (α0 ↦ Φ.org.eolang.bytes (Δ ⤍ 00-00-00-00-00-00-00-0B)))) ⟧, compares-bool-to-bytes ↦ ⟦ φ ↦ Φ.org.eolang.bool (α0 ↦ Φ.org.eolang.bytes (Δ ⤍ 01-)).eq (α0 ↦ Φ.org.eolang.bytes (Δ ⤍ 01-)).and (α0 ↦ Φ.org.eolang.bool (α0 ↦ Φ.org.eolang.bytes (Δ ⤍ 00-)).eq (α0 ↦ Φ.org.eolang.bytes (Δ ⤍ 00-))) ⟧, compares-bool-to-string ↦ ⟦ φ ↦ Φ.org.eolang.bool (α0 ↦ Φ.org.eolang.bytes (Δ ⤍ 01-)).eq (α0 ↦ Φ.org.eolang.string (α0 ↦ Φ.org.eolang.bytes (Δ ⤍ 01-))).and (α0 ↦ Φ.org.eolang.bool (α0 ↦ Φ.org.eolang.bytes (Δ ⤍ 00-)).eq (α0 ↦ Φ.org.eolang.string (α0 ↦ Φ.org.eolang.bytes (Δ ⤍ 00-)))) ⟧, compares-bool-to-bytes-reverse ↦ ⟦ φ ↦ Φ.org.eolang.bytes (Δ ⤍ 01-).as-bytes.eq (α0 ↦ Φ.org.eolang.bool (α0 ↦ Φ.org.eolang.bytes (Δ ⤍ 01-))).and (α0 ↦ Φ.org.eolang.bytes (Δ ⤍ 00-).as-bytes.eq (α0 ↦ Φ.org.eolang.bool (α0 ↦ Φ.org.eolang.bytes (Δ ⤍ 00-)))) ⟧, λ ⤍ Package ⟧, λ ⤍ Package ⟧ ⟧

Converted back to EO

+package org.eolang

[] > compares-two-bools
  Q
  .org
  .eolang
  Q
  .bool
    .org
    .eolang
    01-
    .bytes:0
  Q
  .eq > @
    .org
    .eolang
    Q
    .bool:0
      .org
      .eolang
      01-
      .bytes:0

[] > compares-two-different-types
  Q
  .org
  .eolang
  Q
  .bool
    .org
    .eolang
    01-
    .bytes:0
  Q
  .eq
    .org
    .eolang
    Q
    .int:0
      .org
      .eolang
      00-00-00-00-00-00-00-2A
      .bytes:0
  .not > @

[] > forks-on-condition
  Q
  .org
  .eolang
  Q
  .int
    .org
    .eolang
    00-00-00-00-00-00-00-05
    .bytes:0
  Q
  .eq
    .org
    .eolang
    Q
    .int:0
      .org
      .eolang
      00-00-00-00-00-00-00-08
      .bytes:0
  Q
  .if
    .org
    .eolang
    Q
    .int:0
      .org
      .eolang
      00-00-00-00-00-00-00-7B
      .bytes:0
    Q
    .org
    .eolang
    Q
    .int:1
      .org
      .eolang
      00-00-00-00-00-00-00-2A
      .bytes:0
  Q
  .eq > @
    .org
    .eolang
    Q
    .int:0
      .org
      .eolang
      00-00-00-00-00-00-00-2A
      .bytes:0

[] > iterates-over-simple-counter
  Q
  .org
  .eolang
  Q
  .memory > x
    .org
    .eolang
    Q
    .int:0
      .org
      .eolang
      00-00-00-00-00-00-00-00
      .bytes:0
  $
  .x
  Q
  .write
    .org
    .eolang
    Q
    .int:0
      .org
      .eolang
      00-00-00-00-00-00-00-05
      .bytes:0
  Q
  .eq
    .org
    .eolang
    Q
    .int:0
      .org
      .eolang
      00-00-00-00-00-00-00-05
      .bytes:0
  $
  .and > @
    .x
    .as-int
    Q
    .lt
      .org
      .eolang
      Q
      .int:0
        .org
        .eolang
        00-00-00-00-00-00-00-0A
        .bytes:0
    [i]:0
      $
      .^
      .x
      $
      .write > @
        .^
        .x
        .as-int
        Q
        .plus:0
          .org
          .eolang
          Q
          .int:0
            .org
            .eolang
            00-00-00-00-00-00-00-01
            .bytes:0
    .while
    Q
    .eq:0
      .org
      .eolang
      Q
      .int:0
        .org
        .eolang
        00-00-00-00-00-00-00-0B
        .bytes:0

[] > compares-bool-to-bytes
  Q
  .org
  .eolang
  Q
  .bool
    .org
    .eolang
    01-
    .bytes:0
  Q
  .eq
    .org
    .eolang
    01-
    .bytes:0
  Q
  .and > @
    .org
    .eolang
    Q
    .bool
      .org
      .eolang
      00-
      .bytes:0
    Q
    .eq:0
      .org
      .eolang
      00-
      .bytes:0

[] > compares-bool-to-string
  Q
  .org
  .eolang
  Q
  .bool
    .org
    .eolang
    01-
    .bytes:0
  Q
  .eq
    .org
    .eolang
    Q
    .string:0
      .org
      .eolang
      01-
      .bytes:0
  Q
  .and > @
    .org
    .eolang
    Q
    .bool
      .org
      .eolang
      00-
      .bytes:0
    Q
    .eq:0
      .org
      .eolang
      Q
      .string:0
        .org
        .eolang
        00-
        .bytes:0

[] > compares-bool-to-bytes-reverse
  Q
  .org
  .eolang
  01-
  .bytes
  .as-bytes
  Q
  .eq
    .org
    .eolang
    Q
    .bool:0
      .org
      .eolang
      01-
      .bytes:0
  Q
  .and > @
    .org
    .eolang
    00-
    .bytes
    .as-bytes
    Q
    .eq:0
      .org
      .eolang
      Q
      .bool:0
        .org
        .eolang
        00-
        .bytes:0

eoc test error:

[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo-normalized/bool-tests.eo:9': [9:4] no viable alternative at input 'Q\n  .bool\n    INT.': "    .org"
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo-normalized/bool-tests.eo:8': [8:2] extraneous input '.' expecting {COMMENT, 'Q', 'QQ', '*', '<', '&', '$', '[', '(', '@', '^', BYTES, BOOL, STRING, INT, FLOAT, HEX, NAME, TEXT, UNTAB}: "  .bool"
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo-normalized/bool-tests.eo:10': [10:-1] extraneous input 'INT' expecting {COMMENT, 'Q', 'QQ', '*', '<', '&', '$', '[', '(', '@', '^', BYTES, BOOL, STRING, INT, FLOAT, HEX, NAME, TEXT, UNTAB}: "    .eolang"
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo-normalized/bool-tests.eo:12': [12:10] no viable alternative at input '01-\n    .bytes:': "    .bytes:0"
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo-normalized/bool-tests.eo:12': [12:4] extraneous input '.' expecting {COMMENT, 'Q', 'QQ', '*', '<', '&', '$', '[', '(', '@', '^', BYTES, BOOL, STRING, INT, FLOAT, HEX, NAME, TEXT, UNTAB}: "    .bytes:0"
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo-normalized/bool-tests.eo:15': [15:4] no viable alternative at input 'Q\n  .eq > @\n    INT.': "    .org"
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo-normalized/bool-tests.eo:14': [14:2] mismatched input '.' expecting {<EOF>, COMMENT, 'Q', 'QQ', '*', '<', '&', '$', '[', '(', '@', '^', BYTES, BOOL, STRING, INT, FLOAT, HEX, NAME, TEXT}: "  .eq > @"
[ERROR] net.sf.saxon.style.XSLMessage@6d40af55: This transformation must be applied only after you remove @method attributes from objects, using 'wrap-method-calls.xsl'
[ERROR] #fatalError(): Processing terminated by xsl:message at line 82 in set-locators.xsl; SystemID: file:///org/eolang/parser/set-locators.xsl; Line#: 82; Column#: 36
[ERROR] Processing terminated by xsl:message at line 82 in set-locators.xsl
[ERROR] 'org.eolang.maven.ShakeMojo@85ee7b6' execution failed
[ERROR] Processing terminated by xsl:message at line 82 in set-locators.xsl
[ERROR] Failed to execute goal org.eolang:eo-maven-plugin:0.34.1:assemble (default-cli) on project eoc: 'org.eolang.maven.AssembleMojo@6de6faa6' execution failed: java.lang.IllegalStateException: org.apache.maven.plugin.MojoFailureException: 'org.eolang.maven.ShakeMojo@85ee7b6' execution failed: java.io.UncheckedIOException: java.io.IOException: java.util.concurrent.ExecutionException: java.lang.IllegalArgumentException: Failed to transform by net.sf.saxon.jaxp.TransformerImpl: Processing terminated by xsl:message at line 82 in set-locators.xsl; SystemID: file:///org/eolang/parser/set-locators.xsl; Line#: 82; Column#: 36 -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
The command "/home/eyjafjallajokull/Desktop/gh/normalizer/node_modules/eolang/mvnw/mvnw eo:assemble -Deo.version=0.34.1 -Deo.hash=0.34.1 --quiet -Deo.sourcesDir=/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo-normalized -Deo.targetDir=/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo-normalized/.eoc -Deo.outputDir=/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo-normalized/.eoc/classes -Deo.generatedDir=/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo-normalized/.eoc/generated-sources -Deo.placed=/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo-normalized/.eoc/eo-placed.csv -Deo.placedFormat=csv --batch-mode --color=never --update-snapshots --fail-fast --strict-checksums" exited with #1 code

deemp avatar Feb 09 '24 11:02 deemp

Normalized phi expression is incorrect image

⟦ org ↦ ⟦ eolang ↦ ⟦ compares-two-bools..., should be { org ↦ ⟦ eolang ↦ ⟦ compares-two-bools...

maxonfjvipon avatar Feb 09 '24 12:02 maxonfjvipon

@deemp there's also bug in our PhiMojo: it should throw an exception when meet parsing errors

maxonfjvipon avatar Feb 09 '24 12:02 maxonfjvipon

Okay. eoc test fails without normalization.

Workflow: https://github.com/objectionary/normalizer/actions/runs/7844948642/job/21408311976#step:6:39

Initial EO

+architect [email protected]
+home https://github.com/objectionary/eo
+tests
+package org.eolang
+version 0.0.0

[] > compares-two-bools
  eq. > @
    TRUE
    TRUE

Converted to PHI

{org ↦ ⟦eolang ↦ ⟦compares-two-bools ↦ ⟦φ ↦ Φ.org.eolang.bool(α0 ↦ Φ.org.eolang.bytes(Δ ⤍ 01-)).eq(α0 ↦ Φ.org.eolang.bool(α0 ↦ Φ.org.eolang.bytes(Δ ⤍ 01-)))⟧, λ ⤍ Package⟧, λ ⤍ Package⟧}

Converted back to EO

+package org.eolang

[] > compares-two-bools
  Q
  .org
  .eolang
  Q
  .bool
    .org
    .eolang
    01-
    .bytes:0
  Q
  .eq > @
    .org
    .eolang
    Q
    .bool:0
      .org
      .eolang
      01-
      .bytes:0

unphi warning

line 1:346 no viable alternative at input 'org ↦ ⟦eolang ↦ ⟦bytes ↦ ⟦eq ↦ ⟦λ ⤍ Lambda, x ↦ ∅⟧, size ↦ ⟦λ ⤍ Lambda⟧, slice ↦ ⟦λ ⤍ Lambda, start ↦ ∅, len ↦ ∅⟧, as-string ↦ ⟦λ ⤍ Lambda⟧, as-int ↦ ⟦λ ⤍ Lambda⟧, as-float ↦ ⟦λ ⤍ Lambda⟧, and ↦ ⟦λ ⤍ Lambda, b ↦ ∅⟧, or ↦ ⟦λ ⤍ Lambda, b ↦ ∅⟧, xor ↦ ⟦λ ⤍ Lambda, b ↦ ∅⟧, not ↦ ⟦λ ⤍ Lambda⟧, left ↦ ⟦x ↦ ∅⟧, right ↦ ⟦λ ⤍ Lambda, x ↦ ∅⟧, as-bool ↦ ⟦ξ'
PHI files converted into XMIR files at .eoc/unphi

Test

[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo-not-normalized/bool-tests.eo:9': [9:4] no viable alternative at input 'Q\n  .bool\n    INT.': "    .org"
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo-not-normalized/bool-tests.eo:8': [8:2] extraneous input '.' expecting {COMMENT, 'Q', 'QQ', '*', '<', '&', '$', '[', '(', '@', '^', BYTES, BOOL, STRING, INT, FLOAT, HEX, NAME, TEXT, UNTAB}: "  .bool"
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo-not-normalized/bool-tests.eo:10': [10:-1] extraneous input 'INT' expecting {COMMENT, 'Q', 'QQ', '*', '<', '&', '$', '[', '(', '@', '^', BYTES, BOOL, STRING, INT, FLOAT, HEX, NAME, TEXT, UNTAB}: "    .eolang"
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo-not-normalized/bool-tests.eo:12': [12:10] no viable alternative at input '01-\n    .bytes:': "    .bytes:0"
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo-not-normalized/bool-tests.eo:12': [12:4] extraneous input '.' expecting {COMMENT, 'Q', 'QQ', '*', '<', '&', '$', '[', '(', '@', '^', BYTES, BOOL, STRING, INT, FLOAT, HEX, NAME, TEXT, UNTAB}: "    .bytes:0"
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo-not-normalized/bool-tests.eo:15': [15:4] no viable alternative at input 'Q\n  .eq > @\n    INT.': "    .org"
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo-not-normalized/bool-tests.eo:14': [14:2] mismatched input '.' expecting {<EOF>, COMMENT, 'Q', 'QQ', '*', '<', '&', '$', '[', '(', '@', '^', BYTES, BOOL, STRING, INT, FLOAT, HEX, NAME, TEXT}: "  .eq > @"
[ERROR] net.sf.saxon.style.XSLMessage@782b9273: This transformation must be applied only after you remove @method attributes from objects, using 'wrap-method-calls.xsl'
[ERROR] #fatalError(): Processing terminated by xsl:message at line 82 in set-locators.xsl; SystemID: file:///org/eolang/parser/set-locators.xsl; Line#: 82; Column#: 36
[ERROR] Processing terminated by xsl:message at line 82 in set-locators.xsl
[ERROR] 'org.eolang.maven.ShakeMojo@7fbfb81f' execution failed
[ERROR] Processing terminated by xsl:message at line 82 in set-locators.xsl
[ERROR] Failed to execute goal org.eolang:eo-maven-plugin:0.34.1:assemble (default-cli) on project eoc: 'org.eolang.maven.AssembleMojo@5f2de715' execution failed: java.lang.IllegalStateException: org.apache.maven.plugin.MojoFailureException: 'org.eolang.maven.ShakeMojo@7fbfb81f' execution failed: java.io.UncheckedIOException: java.io.IOException: java.util.concurrent.ExecutionException: java.lang.IllegalArgumentException: Failed to transform by net.sf.saxon.jaxp.TransformerImpl: Processing terminated by xsl:message at line 82 in set-locators.xsl; SystemID: file:///org/eolang/parser/set-locators.xsl; Line#: 82; Column#: 36 -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
The command "/home/eyjafjallajokull/Desktop/gh/normalizer/node_modules/eolang/mvnw/mvnw eo:assemble -Deo.version=0.34.1 -Deo.hash=0.34.1 --quiet -Deo.sourcesDir=/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo-not-normalized -Deo.targetDir=/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo-not-normalized/.eoc -Deo.outputDir=/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo-not-normalized/.eoc/classes -Deo.generatedDir=/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo-not-normalized/.eoc/generated-sources -Deo.placed=/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo-not-normalized/.eoc/eo-placed.csv -Deo.placedFormat=csv --batch-mode --color=never --update-snapshots --fail-fast --strict-checksums" exited with #1 code

deemp avatar Feb 09 '24 13:02 deemp

@deemp could you please provide me full phi from here?

line 1:346 no viable alternative at input 'org ↦ ⟦eolang ↦ ⟦bytes ↦ ⟦eq ↦ ⟦λ ⤍ Lambda'

maxonfjvipon avatar Feb 09 '24 14:02 maxonfjvipon

@maxonfjvipon, where does it come from?

This phi has less than 346 columns.

{org ↦ ⟦eolang ↦ ⟦compares-two-bools ↦ ⟦φ ↦ Φ.org.eolang.bool(α0 ↦ Φ.org.eolang.bytes(Δ ⤍ 01-)).eq(α0 ↦ Φ.org.eolang.bool(α0 ↦ Φ.org.eolang.bytes(Δ ⤍ 01-)))⟧, λ ⤍ Package⟧, λ ⤍ Package⟧}

I used this script for testing without normalization.

https://github.com/objectionary/normalizer/blob/601a878f42813184eda6208b12ff3b0b1a449e8c/pipeline.sh

I reused .eoc in phi because it failed otherwise

mkdir -p eo-not-normalized
cd phi
cp -r ../eo/.eoc .
eo unphi

deemp avatar Feb 09 '24 14:02 deemp

line 1:346 no viable alternative at input 'org ↦ ⟦eolang ↦ ⟦bytes ↦ ⟦eq ↦ ⟦λ ⤍ Lambda, x ↦ ∅⟧, size ↦ ⟦λ ⤍ Lambda⟧, slice ↦ ⟦λ ⤍ Lambda, start ↦ ∅, len ↦ ∅⟧, as-string ↦ ⟦λ ⤍ Lambda⟧, as-int ↦ ⟦λ ⤍ Lambda⟧, as-float ↦ ⟦λ ⤍ Lambda⟧, and ↦ ⟦λ ⤍ Lambda, b ↦ ∅⟧, or ↦ ⟦λ ⤍ Lambda, b ↦ ∅⟧, xor ↦ ⟦λ ⤍ Lambda, b ↦ ∅⟧, not ↦ ⟦λ ⤍ Lambda⟧, left ↦ ⟦x ↦ ∅⟧, right ↦ ⟦λ ⤍ Lambda, x ↦ ∅⟧, as-bool ↦ ⟦ξ' PHI files converted into XMIR files at .eoc/unphi

This phi expression is not parsable by our Phi parse because of #2864

maxonfjvipon avatar Feb 13 '24 11:02 maxonfjvipon

Switched eo repo to 0.35.2, set eoc --parser=0.35.2. Got errors:

Convert EO to PHI

The directory .eoc deleted
Warning: JAVA_HOME environment variable is not set.
EO objects registered in .eoc/eo-foreign.json
Assembling into .eoc
Warning: JAVA_HOME environment variable is not set.
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo/.eoc/4-pull/org/eolang/as-phi.eo:29': Comment must be at least 64 characters long
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo/.eoc/4-pull/org/eolang/bool.eo:29': [29:0] extraneous input '[' expecting {COMMENTARY, 'Q', 'QQ', '*', '<', '&', '$', '(', '@', '^', BYTES, BOOL, STRING, INT, FLOAT, HEX, NAME, TEXT}: "[as-bytes] > bool"
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo/.eoc/4-pull/org/eolang/bytes.eo:29': [29:0] mismatched input '[' expecting {COMMENTARY, 'Q', 'QQ', '*', '<', '&', '$', '(', '@', '^', BYTES, BOOL, STRING, INT, FLOAT, HEX, NAME, TEXT}: "[] > bytes"
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo/.eoc/4-pull/org/eolang/bool.eo:29': [29:9] no viable alternative at input 'as-bytes]': "[as-bytes] > bool"
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo/.eoc/4-pull/org/eolang/memory.eo:29': Comment must be at least 64 characters long
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo/.eoc/4-pull/org/eolang/io/stdout.eo:29': [29:0] extraneous input '[' expecting {COMMENTARY, 'Q', 'QQ', '*', '<', '&', '$', '(', '@', '^', BYTES, BOOL, STRING, INT, FLOAT, HEX, NAME, TEXT}: "[text] > stdout /bool"
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo/.eoc/4-pull/org/eolang/int.eo:29': [29:0] extraneous input '[' expecting {COMMENTARY, 'Q', 'QQ', '*', '<', '&', '$', '(', '@', '^', BYTES, BOOL, STRING, INT, FLOAT, HEX, NAME, TEXT}: "[as-bytes] > int"
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo/.eoc/4-pull/org/eolang/string.eo:29': [29:0] extraneous input '[' expecting {COMMENTARY, 'Q', 'QQ', '*', '<', '&', '$', '(', '@', '^', BYTES, BOOL, STRING, INT, FLOAT, HEX, NAME, TEXT}: "[as-bytes] > string"
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo/.eoc/4-pull/org/eolang/io/stdout.eo:29': [29:5] no viable alternative at input 'text]': "[text] > stdout /bool"
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo/.eoc/4-pull/org/eolang/int.eo:29': [29:9] no viable alternative at input 'as-bytes]': "[as-bytes] > int"
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo/.eoc/4-pull/org/eolang/as-phi.eo:29': Comment must contain only ASCII printable characters: 0x20-0x7f
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo/.eoc/4-pull/org/eolang/string.eo:29': [29:9] no viable alternative at input 'as-bytes]': "[as-bytes] > string"
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo/.eoc/4-pull/org/eolang/as-phi.eo:29': Comment must end with dot
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo/.eoc/4-pull/org/eolang/float.eo:29': [29:0] extraneous input '[' expecting {COMMENTARY, 'Q', 'QQ', '*', '<', '&', '$', '(', '@', '^', BYTES, BOOL, STRING, INT, FLOAT, HEX, NAME, TEXT}: "[as-bytes] > float"
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo/.eoc/4-pull/org/eolang/io/stdin.eo:29': [29:0] mismatched input '[' expecting {COMMENTARY, 'Q', 'QQ', '*', '<', '&', '$', '(', '@', '^', BYTES, BOOL, STRING, INT, FLOAT, HEX, NAME, TEXT}: "[] > stdin"
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo/.eoc/4-pull/org/eolang/positive-infinity.eo:52': [52:39] no viable alternative at input '# Positive infinity\n[] > positive-infinity\n  INT1.0.div 0.0 > @\n\n  # Tests that $ = x\n  [x] > eq\n    INTeq. > @\n      INT^.as-bytes\n      x.as-bytes\nEXPONENTEXPONENT\n  # Tests that $ < x\n  [x] > lt\n    INTFALSE > @\nEXPONENT\n  # Tests that $ ≤ x\n  [x] > lte\n    INT^.eq x > @\nEXPONENT\n  # Tests that $ > x\n  [x] > gt\n    INTx > value!\n    not. > @\n      INTor.\n        INTvalue.as-bytes.eq (nan.as-bytes)': "        value.as-bytes.eq (nan.as-bytes)"
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo/.eoc/4-pull/org/eolang/float.eo:29': [29:9] no viable alternative at input 'as-bytes]': "[as-bytes] > float"
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo/.eoc/4-pull/org/eolang/negative-infinity.eo:44': [44:39] no viable alternative at input '# Negative infinity\n[] > negative-infinity\n  INT-1.0.div 0.0 > @\n\n  # Tests that $ = x\n  [x] > eq\n    INTeq. > @\n      INT^.as-bytes\n      x.as-bytes\nEXPONENTEXPONENT\n  # Tests that $ < x\n  [x] > lt\n    INTx > value!\n    not. > @\n      INTor.\n        INTvalue.as-bytes.eq (nan.as-bytes)': "        value.as-bytes.eq (nan.as-bytes)"
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo/.eoc/4-pull/org/eolang/heap.eo:29': Comment must be at least 64 characters long
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo/.eoc/4-pull/org/eolang/goto.eo:29': Comment must end with dot
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo/.eoc/4-pull/org/eolang/switch.eo:45': [45:2] no viable alternative at input '# Allow to choose right options according to cases conditions.\n# Parameter cases is the array of two dimensional array, which\n# consist of condition bool value and expected value, if this\n# condition is TRUE.\n# e.g.\n# switch\n#   *\n#     TRUE\n#     "this value will be returned"\n#   *\n#     FALSE\n#     "this value will be skipped"\n#\n# This object returns value of only first truly statement.\n[cases] > switch\n  INTcases.length > len!\n  [': "  [index] > case-at"
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo/.eoc/4-pull/org/eolang/rust.eo:29': [29:0] extraneous input '[' expecting {COMMENTARY, 'Q', 'QQ', '*', '<', '&', '$', '(', '@', '^', BYTES, BOOL, STRING, INT, FLOAT, HEX, NAME, TEXT}: "[code portal params] > rust /?"
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo/.eoc/4-pull/org/eolang/heap.eo:63': Comment must be at least 64 characters long
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo/.eoc/4-pull/org/eolang/tuple.eo:33': [33:4] no viable alternative at input '# Tuple.\n[head tail] > tuple\n  INT# Empty tuple\n  [] > empty\n    INT[': "    [i] > at"
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo/.eoc/4-pull/org/eolang/rust.eo:29': [29:19] no viable alternative at input 'code portal params]': "[code portal params] > rust /?"
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo/.eoc/4-pull/org/eolang/nop.eo:29': Comment must be at least 64 characters long
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo/.eoc/4-pull/org/eolang/cage.eo:29': Comment must end with dot
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo/.eoc/4-pull/org/eolang/nop.eo:29': Comment must end with dot
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo/.eoc/4-pull/org/eolang/heap.eo:63': Comment must end with dot
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo/.eoc/4-pull/org/eolang/heap.eo:67': Comment must be at least 64 characters long
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo/.eoc/4-pull/org/eolang/nan.eo:29': Comment must be at least 64 characters long
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo/.eoc/4-pull/org/eolang/heap.eo:67': Comment must end with dot
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo/.eoc/4-pull/org/eolang/nan.eo:29': Comment must end with dot
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo/.eoc/4-pull/org/eolang/ram.eo:37': [37:2] no viable alternative at input '# Random-access memory (RAM).\n[size] > ram\n  INT# Write bytes from position.\n  [position data] > write /true\n\n  # Slice fixed size of bytes from position.\n  [position size] > slice /ram-slice\n\n  [': "  [position size] > ram-slice"
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo/.eoc/4-pull/org/eolang/heap.eo:74': Comment must be at least 64 characters long
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo/.eoc/4-pull/org/eolang/nan.eo:33': Comment must be at least 64 characters long
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo/.eoc/4-pull/org/eolang/seq.eo:29': Comment must be at least 64 characters long
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo/.eoc/4-pull/org/eolang/nan.eo:33': Comment must end with dot
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo/.eoc/4-pull/org/eolang/heap.eo:74': Comment must end with dot
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo/.eoc/4-pull/org/eolang/nan.eo:37': Comment must be at least 64 characters long
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo/.eoc/4-pull/org/eolang/heap.eo:79': Comment must be at least 64 characters long
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo/.eoc/4-pull/org/eolang/nan.eo:37': Comment must end with dot
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo/.eoc/4-pull/org/eolang/nan.eo:41': Comment must be at least 64 characters long
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo/.eoc/4-pull/org/eolang/nan.eo:41': Comment must contain only ASCII printable characters: 0x20-0x7f
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo/.eoc/4-pull/org/eolang/nan.eo:41': Comment must end with dot
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo/.eoc/4-pull/org/eolang/nan.eo:45': Comment must be at least 64 characters long
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo/.eoc/4-pull/org/eolang/nan.eo:45': Comment must end with dot
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo/.eoc/4-pull/org/eolang/nan.eo:49': Comment must be at least 64 characters long
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo/.eoc/4-pull/org/eolang/nan.eo:49': Comment must contain only ASCII printable characters: 0x20-0x7f
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo/.eoc/4-pull/org/eolang/nan.eo:49': Comment must end with dot
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo/.eoc/4-pull/org/eolang/nan.eo:53': Comment must be at least 64 characters long
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo/.eoc/4-pull/org/eolang/nan.eo:53': Comment must end with dot
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo/.eoc/4-pull/org/eolang/nan.eo:57': Comment must be at least 64 characters long
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo/.eoc/4-pull/org/eolang/nan.eo:57': Comment must end with dot
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo/.eoc/4-pull/org/eolang/nan.eo:61': Comment must be at least 64 characters long
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo/.eoc/4-pull/org/eolang/nan.eo:61': Comment must end with dot
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo/.eoc/4-pull/org/eolang/nan.eo:65': Comment must be at least 64 characters long
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo/.eoc/4-pull/org/eolang/nan.eo:65': Comment must end with dot
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo/.eoc/4-pull/org/eolang/nan.eo:69': Comment must be at least 64 characters long
[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo/.eoc/4-pull/org/eolang/nan.eo:69': Comment must end with dot
EO program assembled in .eoc
Warning: JAVA_HOME environment variable is not set.
XMIR files converted into PHI files at .eoc

as-phi.eo

# The MIT License (MIT)
#
# Copyright (c) 2016-2023 Objectionary.com
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included
# in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.

+architect [email protected]
+home https://github.com/objectionary/eo
+package org.eolang
+rt jvm org.eolang:eo-runtime:0.35.0
+version 0.35.0

# Turns an object into a φ-term
[x] > as-phi /string

deemp avatar Feb 13 '24 12:02 deemp

@deemp do you use test sources from EO 0.35.2?

maxonfjvipon avatar Feb 13 '24 12:02 maxonfjvipon

Yes.

as-phi-tests.eo

# The MIT License (MIT)
#
# Copyright (c) 2016-2024 Objectionary.com
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included
# in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.

+alias org.eolang.io.stdout
+architect [email protected]
+home https://github.com/objectionary/eo
+tests
+package org.eolang
+version 0.0.0

# Test.
[] > prints-itself
  gt. > @
    length.
      as-phi $
    0

# Test.
[] > prints-itself-to-console
  42 > x
  stdout > @
    as-phi $

bool-tests.eo

# The MIT License (MIT)
#
# Copyright (c) 2016-2024 Objectionary.com
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included
# in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.

+architect [email protected]
+home https://github.com/objectionary/eo
+tests
+package org.eolang
+version 0.0.0

# Test.
[] > compares-two-bools
  eq. > @
    TRUE
    TRUE

# Test.
[] > compares-two-different-types
  not. > @
    eq.
      TRUE
      42

# Test.
[] > forks-on-condition
  eq. > @
    if.
      5.eq 8
      123
      42
    42

# Test.
[] > iterates-over-simple-counter
  memory 0 > x
  and. > @
    eq.
      x.write 5
      5
    eq.
      while.
        x.as-int.lt 10
        [i]
          x.write > @
            x.as-int.plus 1
      11

# Test.
[] > compares-bool-to-bytes
  and. > @
    TRUE.eq 01-
    FALSE.eq 00-

# Test.
[] > compares-bool-to-string
  and. > @
    TRUE.eq "\001"
    FALSE.eq "\000"

# Test.
[] > compares-bool-to-bytes-reverse
  and. > @
    01-.as-bytes.eq TRUE
    00-.as-bytes.eq FALSE

deemp avatar Feb 13 '24 12:02 deemp

as-phi.eo on master (link) is different from 4-pull/as-phi.eo.

4-pull/as-phi.eo:

# The MIT License (MIT)
#
# Copyright (c) 2016-2023 Objectionary.com
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included
# in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.

+architect [email protected]
+home https://github.com/objectionary/eo
+package org.eolang
+rt jvm org.eolang:eo-runtime:0.35.0
+version 0.35.0

# Turns an object into a φ-term
[x] > as-phi /string

deemp avatar Feb 13 '24 12:02 deemp

@deemp we updated sourced in objectionary/home, please try again

maxonfjvipon avatar Feb 13 '24 13:02 maxonfjvipon

Still

[ERROR] Failed to parse '/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo/.eoc/4-pull/org/eolang/io/stdout.eo:29': Comment must be at least 64 characters long

deemp avatar Feb 13 '24 13:02 deemp

If I use the --parser option in eoc phi or eoc unphi, no Phi or EO files are generated.

deemp avatar Feb 13 '24 17:02 deemp

Current summary.

I want to run eoc phi and eoc unphi on current eo-runtime tests (e.g., bool.eo).

  • eoc phi fails because eoc 0.15.1 uses an old parser.
  • eoc --parser=0.35.2 doesn't generate phi files.

How do I generate phi files and then unphi them using the latest eo?

deemp avatar Feb 14 '24 13:02 deemp

@deemp I released eoc 0.16.0. It seems that it works with your example out of the box. Please try:

$ eoc phi
$ eoc unphi

yegor256 avatar Feb 14 '24 14:02 yegor256

It fails at eoc unphi because of $\xi$ without a dispatch. This error was fixed in eo 0.35.2.

Error

Convert PHI to EO without normalization

Warning: JAVA_HOME environment variable is not set.
[ERROR] 1 files with parsing errors were found: [as-phi-tests.phi]
[ERROR] Failed to execute goal org.eolang:eo-maven-plugin:0.35.1:phi-to-xmir (default-cli) on project eoc: 'org.eolang.maven.UnphiMojo@642413d4' execution failed: java.lang.IllegalStateException: 1 files with parsing errors were found: [as-phi-tests.phi] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
The command "/home/eyjafjallajokull/Desktop/gh/normalizer/node_modules/eolang/mvnw/mvnw eo:phi-to-xmir -Deo.version=0.35.1 -Deo.hash=0.35.1 --quiet -Deo.sourcesDir=/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/phi -Deo.targetDir=/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/phi/.eoc -Deo.outputDir=/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/phi/.eoc/classes -Deo.generatedDir=/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/phi/.eoc/generated-sources -Deo.placed=/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/phi/.eoc/eo-placed.csv -Deo.placedFormat=csv -DunphiInputDir=/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/phi/.eoc/phi -DunphiOutputDir=/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/phi/.eoc/unphi --batch-mode --color=never --update-snapshots --fail-fast --strict-checksums" exited with #1 code

as-phi-tests.eo

# The MIT License (MIT)
#
# Copyright (c) 2016-2024 Objectionary.com
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included
# in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.

+alias org.eolang.io.stdout
+architect [email protected]
+home https://github.com/objectionary/eo
+tests
+package org.eolang
+version 0.0.0

# Test.
[] > prints-itself
  gt. > @
    length.
      as-phi $
    0

# Test.
[] > prints-itself-to-console
  42 > x
  stdout > @
    as-phi $

as-phi-tests.phi

{
  org ↦ ⟦
    eolang ↦ ⟦
      prints-itself ↦ ⟦
        φ ↦ Φ.org.eolang.as-phi(
          α0 ↦ ξ
        ).length.gt(
          α0 ↦ Φ.org.eolang.int(
            α0 ↦ Φ.org.eolang.bytes(
              Δ ⤍ 00-00-00-00-00-00-00-00
            )
          )
        )
      ⟧,
      prints-itself-to-console ↦ ⟦
        x ↦ Φ.org.eolang.int(
          α0 ↦ Φ.org.eolang.bytes(
            Δ ⤍ 00-00-00-00-00-00-00-2A
          )
        ),
        φ ↦ Φ.org.eolang.io.stdout(
          α0 ↦ Φ.org.eolang.as-phi(
            α0 ↦ ξ
          )
        )
      ⟧,
      λ ⤍ Package
    ⟧,
    λ ⤍ Package
  ⟧
}

deemp avatar Feb 14 '24 14:02 deemp

I used eolang 0.17.0.

There's an error during eoc test

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:3.2.5:test (default-cli) on project eoc: No tests were executed!  (Set -DfailIfNoTests=false to ignore this error.) -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
The command "/home/eyjafjallajokull/Desktop/gh/normalizer/node_modules/eolang/mvnw/mvnw surefire:test -Deo.version=0.35.2 -Deo.hash=130afdd1456a0cbafd52aee8d7bc612e1faac547 --quiet -Deo.sourcesDir=/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo-not-normalized -Deo.targetDir=/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo-not-normalized/.eoc -Deo.outputDir=/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo-not-normalized/.eoc/classes -Deo.generatedDir=/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo-not-normalized/.eoc/generated-sources -Deo.placed=/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo-not-normalized/.eoc/eo-placed.csv -Deo.placedFormat=csv --batch-mode --color=never --update-snapshots --fail-fast --strict-checksums" exited with #1 code

bool-tests.eo

# The MIT License (MIT)
#
# Copyright (c) 2016-2024 Objectionary.com
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included
# in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.

+architect [email protected]
+home https://github.com/objectionary/eo
+tests
+package org.eolang
+version 0.0.0

# Test.
[] > compares-two-bools
  eq. > @
    TRUE
    TRUE

bool-tests.phi (after eoc phi)

{
  ⟦
    org ↦ ⟦
      eolang ↦ ⟦
        compares-two-bools ↦ ⟦
          φ ↦ Φ.org.eolang.bool(
            α0 ↦ Φ.org.eolang.bytes(
              Δ ⤍ 01-
            )
          ).eq(
            α0 ↦ Φ.org.eolang.bool(
              α0 ↦ Φ.org.eolang.bytes(
                Δ ⤍ 01-
              )
            )
          )
        ⟧,
        λ ⤍ Package
      ⟧,
      λ ⤍ Package
    ⟧
  ⟧
}

bool-tests.eo (after eoc unphi)

+package org.eolang

# This is the default 64+ symbols comment in front of named abstract object.
[] > compares-two-bools
  Q
  .org
  .eolang
  .bool
    Q
    .org
    .eolang
    .bytes:0
      01
  .eq > @
    Q
    .org
    .eolang
    .bool:0
      Q
      .org
      .eolang
      .bytes:0
        01

deemp avatar Feb 14 '24 18:02 deemp

@deemp the problem is that the +tests meta is not created in the generated .eo file after unphi. If you put it there manually, should work:

+package org.eolang
+tests

# This is the default 64+ symbols comment in front of named abstract object.
[] > compares-two-bools
  Q
  .org
  .eolang
  .bool
    Q
    .org
    .eolang
    .bytes:0
      01
  .eq > @
    Q
    .org
    .eolang
    .bool:0
      Q
      .org
      .eolang
      .bytes:0
        01

We should think about representing EO tags somehow in the .phi expression.

yegor256 avatar Feb 15 '24 05:02 yegor256

With this fix, eoc test works. However, eoc phi generates invalid files.

as-phi-tests.eo

# The MIT License (MIT)
#
# Copyright (c) 2016-2024 Objectionary.com
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included
# in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.

+alias org.eolang.io.stdout
+architect [email protected]
+home https://github.com/objectionary/eo
+tests
+package org.eolang
+version 0.0.0

# Test.
[] > prints-itself
  gt. > @
    length.
      as-phi $
    0

as-phi-tests.phi

{
  ⟦
    org ↦ ⟦
      eolang ↦ ⟦
        prints-itself ↦ ⟦
          φ ↦ Φ.org.eolang.as-phi(
            α0 ↦ ξ
          ).length.gt(
            α0 ↦ Φ.org.eolang.int(
              α0 ↦ Φ.org.eolang.bytes(
                Δ ⤍ 00-00-00-00-00-00-00-00
              )
            )
          )
        ⟧,
        λ ⤍ Package
      ⟧,
      λ ⤍ Package
    ⟧
  ⟧
}

deemp avatar Feb 15 '24 10:02 deemp

!!!I can't reproduce!!!

Fails on eoc test with this error:

[ERROR] /home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo-not-normalized/bool-tests.eo, line 13: [13:11] no viable alternative at input '# This is the default 64+ symbols comment in front of named abstract object.\n[] > compares-two-bools\n  INTQ\n  .org\n  .eolang\n  .bool\n    INTQ\n    .org\n    .eolang\n    .bytes:\n      ': "    .bytes:"
[ERROR] net.sf.saxon.style.XSLMessage@4dfaac1f: Critical error identified:
  /home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo-not-normalized/bool-tests.eo, 13: [13:11] no viable alternative at input '# This is the default 64+ symbols comment in front of named abstract object.\n[] &gt; compares-two-bools\n  INTQ\n  .org\n  .eolang\n  .bool\n    INTQ\n    .org\n    .eolang\n    .bytes:\n      ': "    .bytes:";
[ERROR] #fatalError(): Processing terminated by xsl:message at line 31 in fail-on-critical.xsl; SystemID: file:///org/eolang/parser/fail-on-critical.xsl; Line#: 31; Column#: 34
[ERROR] Processing terminated by xsl:message at line 31 in fail-on-critical.xsl
[ERROR] Failed to execute goal org.eolang:eo-maven-plugin:0.35.2:verify (default-cli) on project eoc: 'org.eolang.maven.VerifyMojo@5a50d9fc' execution failed: java.io.UncheckedIOException: java.io.IOException: java.util.concurrent.ExecutionException: java.lang.IllegalArgumentException: Failed to transform by net.sf.saxon.jaxp.TransformerImpl: Processing terminated by xsl:message at line 31 in fail-on-critical.xsl; SystemID: file:///org/eolang/parser/fail-on-critical.xsl; Line#: 31; Column#: 34 -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
The command "/home/eyjafjallajokull/Desktop/gh/normalizer/node_modules/eolang/mvnw/mvnw eo:verify -Deo.version=0.35.2 -Deo.hash=130afdd1456a0cbafd52aee8d7bc612e1faac547 --quiet -Deo.sourcesDir=/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo-normalized -Deo.targetDir=/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo-normalized/.eoc -Deo.outputDir=/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo-normalized/.eoc/classes -Deo.generatedDir=/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo-normalized/.eoc/generated-sources -Deo.placed=/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo-normalized/.eoc/eo-placed.csv -Deo.placedFormat=csv --batch-mode --color=never --update-snapshots --fail-fast --strict-checksums" exited with #1 code

as-phi-tests.phi (after normalization)

{ ⟦ org ↦ ⟦ eolang ↦ ⟦ prints-itself ↦ ⟦ φ ↦ Φ.org.eolang.as-phi (α0 ↦ ξ).length.gt (α0 ↦ Φ.org.eolang.int (α0 ↦ Φ.org.eolang.bytes (Δ ⤍ 00-00-00-00-00-00-00-00))) ⟧, λ ⤍ Package ⟧, λ ⤍ Package ⟧ ⟧ }

as-phi-tests.eo (after unphi)

+tests
+package org.eolang

# This is the default 64+ symbols comment in front of named abstract object.
[] > prints-itself
  Q
  .org
  .eolang
  .as-phi
    $:0
  .length
  .gt > @
    Q
    .org
    .eolang
    .int:0
      Q
      .org
      .eolang
      .bytes:0
        00-00-00-00-00-00-00-00

deemp avatar Feb 15 '24 11:02 deemp

Hmm, can't reproduce this error when I run only as-phi-tests.eo.

deemp avatar Feb 15 '24 11:02 deemp

However, I can reproduce an error when running eoc test only on bool-tests.eo (after unphi):

[ERROR] /home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo-normalized/bool-tests.eo, line 57: [57:11] no viable alternative at input '# This is the default 64+ symbols comment in front of named abstract object.\n[] > iterates-over-simple-counter\n  INTQ\n  .org\n  .eolang\n  .memory > x\n    INTQ\n    .org\n    .eolang\n    .int:0\n      INTQ\n      .org\n      .eolang\n      .bytes:0\n        INT00-00-00-00-00-00-00-00\n  EXPONENTEXPONENTEXPONENT$\n  .x\n  .write\n    INTQ\n    .org\n    .eolang\n    .int:0\n      INTQ\n      .org\n      .eolang\n      .bytes:0\n        INT00-00-00-00-00-00-00-05\n  EXPONENTEXPONENTEXPONENT.eq\n    INTQ\n    .org\n    .eolang\n    .int:0\n      INTQ\n      .org\n      .eolang\n      .bytes:0\n        INT00-00-00-00-00-00-00-05\n  EXPONENTEXPONENTEXPONENT.and > @\n    INT$\n    .x\n    .as-int\n    .lt\n      INTQ\n      .org\n      .eolang\n      .int:0\n        INTQ\n        .org\n        .eolang\n        .bytes:0\n          INT00-00-00-00-00-00-00-0A\n    EXPONENTEXPONENTEXPONENT.while\n      INT# This is the default 64+ symbols comment in front of named abstract object.\n      [i]:0\n        ': "      [i]:0"
[ERROR] net.sf.saxon.style.XSLMessage@4812a045: Critical error identified:
  /home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo-normalized/bool-tests.eo, 57: [57:11] no viable alternative at input '# This is the default 64+ symbols comment in front of named abstract object.\n[] &gt; iterates-over-simple-counter\n  INTQ\n  .org\n  .eolang\n  .memory &gt; x\n    INTQ\n    .org\n    .eolang\n    .int:0\n      INTQ\n      .org\n      .eolang\n      .bytes:0\n        INT00-00-00-00-00-00-00-00\n  EXPONENTEXPONENTEXPONENT$\n  .x\n  .write\n    INTQ\n    .org\n    .eolang\n    .int:0\n      INTQ\n      .org\n      .eolang\n      .bytes:0\n        INT00-00-00-00-00-00-00-05\n  EXPONENTEXPONENTEXPONENT.eq\n    INTQ\n    .org\n    .eolang\n    .int:0\n      INTQ\n      .org\n      .eolang\n      .bytes:0\n        INT00-00-00-00-00-00-00-05\n  EXPONENTEXPONENTEXPONENT.and &gt; @\n    INT$\n    .x\n    .as-int\n    .lt\n      INTQ\n      .org\n      .eolang\n      .int:0\n        INTQ\n        .org\n        .eolang\n        .bytes:0\n          INT00-00-00-00-00-00-00-0A\n    EXPONENTEXPONENTEXPONENT.while\n      INT# This is the default 64+ symbols comment in front of named abstract object.\n      [i]:0\n        ': "      [i]:0";
[ERROR] #fatalError(): Processing terminated by xsl:message at line 31 in fail-on-critical.xsl; SystemID: file:///org/eolang/parser/fail-on-critical.xsl; Line#: 31; Column#: 34
[ERROR] Processing terminated by xsl:message at line 31 in fail-on-critical.xsl
[ERROR] Failed to execute goal org.eolang:eo-maven-plugin:0.35.2:verify (default-cli) on project eoc: 'org.eolang.maven.VerifyMojo@5a50d9fc' execution failed: java.io.UncheckedIOException: java.io.IOException: java.util.concurrent.ExecutionException: java.lang.IllegalArgumentException: Failed to transform by net.sf.saxon.jaxp.TransformerImpl: Processing terminated by xsl:message at line 31 in fail-on-critical.xsl; SystemID: file:///org/eolang/parser/fail-on-critical.xsl; Line#: 31; Column#: 34 -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
The command "/home/eyjafjallajokull/Desktop/gh/normalizer/node_modules/eolang/mvnw/mvnw eo:verify -Deo.version=0.35.2 -Deo.hash=130afdd1456a0cbafd52aee8d7bc612e1faac547 --quiet -Deo.sourcesDir=/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo-normalized -Deo.targetDir=/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo-normalized/.eoc -Deo.outputDir=/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo-normalized/.eoc/classes -Deo.generatedDir=/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo-normalized/.eoc/generated-sources -Deo.placed=/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo-normalized/.eoc/eo-placed.csv -Deo.placedFormat=csv --batch-mode --color=never --update-snapshots --fail-fast --strict-checksums" exited with #1 code

bool-tests.eo

# The MIT License (MIT)
#
# Copyright (c) 2016-2024 Objectionary.com
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included
# in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.

+architect [email protected]
+home https://github.com/objectionary/eo
+tests
+package org.eolang
+version 0.0.0

# Test.
[] > iterates-over-simple-counter
  memory 0 > x
  and. > @
    eq.
      x.write 5
      5
    eq.
      while.
        x.as-int.lt 10
        [i]
          x.write > @
            x.as-int.plus 1
      11

bool-tests.phi

{
  ⟦
    org ↦ ⟦
      eolang ↦ ⟦
        iterates-over-simple-counter ↦ ⟦
          x ↦ Φ.org.eolang.memory(
            α0 ↦ Φ.org.eolang.int(
              α0 ↦ Φ.org.eolang.bytes(
                Δ ⤍ 00-00-00-00-00-00-00-00
              )
            )
          ),
          φ ↦ ξ.x.write(
            α0 ↦ Φ.org.eolang.int(
              α0 ↦ Φ.org.eolang.bytes(
                Δ ⤍ 00-00-00-00-00-00-00-05
              )
            )
          ).eq(
            α0 ↦ Φ.org.eolang.int(
              α0 ↦ Φ.org.eolang.bytes(
                Δ ⤍ 00-00-00-00-00-00-00-05
              )
            )
          ).and(
            α0 ↦ ξ.x.as-int.lt(
              α0 ↦ Φ.org.eolang.int(
                α0 ↦ Φ.org.eolang.bytes(
                  Δ ⤍ 00-00-00-00-00-00-00-0A
                )
              )
            ).while(
              α0 ↦ ⟦
                i ↦ ∅,
                φ ↦ ξ.ρ.x.write(
                  α0 ↦ ξ.ρ.x.as-int.plus(
                    α0 ↦ Φ.org.eolang.int(
                      α0 ↦ Φ.org.eolang.bytes(
                        Δ ⤍ 00-00-00-00-00-00-00-01
                      )
                    )
                  )
                )
              ⟧
            ).eq(
              α0 ↦ Φ.org.eolang.int(
                α0 ↦ Φ.org.eolang.bytes(
                  Δ ⤍ 00-00-00-00-00-00-00-0B
                )
              )
            )
          )
        ⟧,
        λ ⤍ Package
      ⟧,
      λ ⤍ Package
    ⟧
  ⟧
}

bool-tests.eo (after unphi)

+tests
+package org.eolang

# This is the default 64+ symbols comment in front of named abstract object.
[] > iterates-over-simple-counter
  Q
  .org
  .eolang
  .memory > x
    Q
    .org
    .eolang
    .int:0
      Q
      .org
      .eolang
      .bytes:0
        00-00-00-00-00-00-00-00
  $
  .x
  .write
    Q
    .org
    .eolang
    .int:0
      Q
      .org
      .eolang
      .bytes:0
        00-00-00-00-00-00-00-05
  .eq
    Q
    .org
    .eolang
    .int:0
      Q
      .org
      .eolang
      .bytes:0
        00-00-00-00-00-00-00-05
  .and > @
    $
    .x
    .as-int
    .lt
      Q
      .org
      .eolang
      .int:0
        Q
        .org
        .eolang
        .bytes:0
          00-00-00-00-00-00-00-0A
    .while
      # This is the default 64+ symbols comment in front of named abstract object.
      [i]:0
        $
        .^
        .x
        .write > @
          $
          .^
          .x
          .as-int
          .plus:0
            Q
            .org
            .eolang
            .int:0
              Q
              .org
              .eolang
              .bytes:0
                00-00-00-00-00-00-00-01
    .eq:0
      Q
      .org
      .eolang
      .int:0
        Q
        .org
        .eolang
        .bytes:0
          00-00-00-00-00-00-00-0B

deemp avatar Feb 15 '24 11:02 deemp

@rultor release, tag is 0.35.3

yegor256 avatar Feb 15 '24 12:02 yegor256

@rultor release, tag is 0.35.3

@yegor256 OK, I will release it now. Please check the progress here

rultor avatar Feb 15 '24 12:02 rultor

@rultor release, tag is 0.35.3

@deemp @yegor256 Oops, I failed. You can see the full log here (spent 14min)

rultor avatar Feb 15 '24 13:02 rultor

@deemp version 0.35.3 released, try eoc --parser=0.35.3

yegor256 avatar Feb 15 '24 14:02 yegor256

Another error during eoc test --parser=0.35.3

[ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.823 s <<< FAILURE! -- in EOorg.EOeolang.EOiterates_over_simple_counterTest
[ERROR] EOorg.EOeolang.EOiterates_over_simple_counterTest.works -- Time elapsed: 0.785 s <<< ERROR!
EOorg.EOeolang.EOerror$ExError: EOorg.EOeolang.EOstringν13405(Δ = [85, 110, 101, 120, 112, 101, 99, 116, 101, 100, 32, 101, 114, 114, 111, 114, 32, 39, 110, 117, 108, 108, 39, 32, 111, 102, 32, 116, 121, 112, 101, 32, 83, 116, 97, 99, 107, 79, 118, 101, 114, 102, 108, 111, 119, 69, 114, 114, 111, 114, 59, 32, 99, 97, 117, 115, 101, 100, 32, 98, 121, 32] = "Unexpected error 'null' of type StackOverflowError; caused by ")
        at org.eolang.PhSafe.attr(PhSafe.java:93)
        at org.eolang.PhImmovable.attr(PhImmovable.java:81)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhMethod.lambda$new$0(PhMethod.java:43)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhMethod.lambda$new$0(PhMethod.java:43)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.copy(PhOnce.java:82)
        at org.eolang.PhLocated.copy(PhLocated.java:108)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:87)
        at org.eolang.PhWith.lambda$new$3(PhWith.java:87)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhDefault.attr(PhDefault.java:254)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhNamed.attr(PhNamed.java:88)
        at org.eolang.PhSafe.attr(PhSafe.java:90)
        at org.eolang.Dataized.take(Dataized.java:99)
        at EOorg.EOeolang.EObool$EOwhile.lambda(EObool$EOwhile.java:67)
        at org.eolang.AtomSafe.lambda(AtomSafe.java:47)
        at org.eolang.CachedPhi.get(CachedPhi.java:82)
        at org.eolang.PhDefault.attr(PhDefault.java:249)
        at org.eolang.PhNamed.attr(PhNamed.java:88)
        at org.eolang.PhSafe.attr(PhSafe.java:90)
        at org.eolang.PhImmovable.attr(PhImmovable.java:81)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhMethod.lambda$new$0(PhMethod.java:43)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhMethod.lambda$new$0(PhMethod.java:43)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.copy(PhOnce.java:82)
        at org.eolang.PhLocated.copy(PhLocated.java:108)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:87)
        at org.eolang.PhWith.lambda$new$3(PhWith.java:87)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhDefault.attr(PhDefault.java:254)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhNamed.attr(PhNamed.java:88)
        at org.eolang.PhSafe.attr(PhSafe.java:90)
        at org.eolang.Dataized.take(Dataized.java:99)
        at EOorg.EOeolang.EObool$EOwhile.lambda(EObool$EOwhile.java:67)
        at org.eolang.AtomSafe.lambda(AtomSafe.java:47)
        at org.eolang.CachedPhi.get(CachedPhi.java:82)
        at org.eolang.PhDefault.attr(PhDefault.java:249)
        at org.eolang.PhNamed.attr(PhNamed.java:88)
        at org.eolang.PhSafe.attr(PhSafe.java:90)
        at org.eolang.PhImmovable.attr(PhImmovable.java:81)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhMethod.lambda$new$0(PhMethod.java:43)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhMethod.lambda$new$0(PhMethod.java:43)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.copy(PhOnce.java:82)
        at org.eolang.PhLocated.copy(PhLocated.java:108)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:87)
        at org.eolang.PhWith.lambda$new$3(PhWith.java:87)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhDefault.attr(PhDefault.java:254)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhNamed.attr(PhNamed.java:88)
        at org.eolang.PhSafe.attr(PhSafe.java:90)
        at org.eolang.Dataized.take(Dataized.java:99)
        at EOorg.EOeolang.EObool$EOwhile.lambda(EObool$EOwhile.java:67)
        at org.eolang.AtomSafe.lambda(AtomSafe.java:47)
        at org.eolang.CachedPhi.get(CachedPhi.java:82)
        at org.eolang.PhDefault.attr(PhDefault.java:249)
        at org.eolang.PhNamed.attr(PhNamed.java:88)
        at org.eolang.PhSafe.attr(PhSafe.java:90)
        at org.eolang.PhImmovable.attr(PhImmovable.java:81)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhMethod.lambda$new$0(PhMethod.java:43)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhMethod.lambda$new$0(PhMethod.java:43)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.copy(PhOnce.java:82)
        at org.eolang.PhLocated.copy(PhLocated.java:108)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:87)
        at org.eolang.PhWith.lambda$new$3(PhWith.java:87)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhDefault.attr(PhDefault.java:254)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhNamed.attr(PhNamed.java:88)
        at org.eolang.PhSafe.attr(PhSafe.java:90)
        at org.eolang.Dataized.take(Dataized.java:99)
        at EOorg.EOeolang.EObool$EOwhile.lambda(EObool$EOwhile.java:67)
        at org.eolang.AtomSafe.lambda(AtomSafe.java:47)
        at org.eolang.CachedPhi.get(CachedPhi.java:82)
        at org.eolang.PhDefault.attr(PhDefault.java:249)
        at org.eolang.PhNamed.attr(PhNamed.java:88)
        at org.eolang.PhSafe.attr(PhSafe.java:90)
        at org.eolang.PhImmovable.attr(PhImmovable.java:81)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhMethod.lambda$new$0(PhMethod.java:43)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhMethod.lambda$new$0(PhMethod.java:43)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.copy(PhOnce.java:82)
        at org.eolang.PhLocated.copy(PhLocated.java:108)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:87)
        at org.eolang.PhWith.lambda$new$3(PhWith.java:87)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhDefault.attr(PhDefault.java:254)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhNamed.attr(PhNamed.java:88)
        at org.eolang.PhSafe.attr(PhSafe.java:90)
        at org.eolang.Dataized.take(Dataized.java:99)
        at EOorg.EOeolang.EObool$EOwhile.lambda(EObool$EOwhile.java:67)
        at org.eolang.AtomSafe.lambda(AtomSafe.java:47)
        at org.eolang.CachedPhi.get(CachedPhi.java:82)
        at org.eolang.PhDefault.attr(PhDefault.java:249)
        at org.eolang.PhNamed.attr(PhNamed.java:88)
        at org.eolang.PhSafe.attr(PhSafe.java:90)
        at org.eolang.PhImmovable.attr(PhImmovable.java:81)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhMethod.lambda$new$0(PhMethod.java:43)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhMethod.lambda$new$0(PhMethod.java:43)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.copy(PhOnce.java:82)
        at org.eolang.PhLocated.copy(PhLocated.java:108)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:87)
        at org.eolang.PhWith.lambda$new$3(PhWith.java:87)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhDefault.attr(PhDefault.java:254)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhNamed.attr(PhNamed.java:88)
        at org.eolang.PhSafe.attr(PhSafe.java:90)
        at org.eolang.Dataized.take(Dataized.java:99)
        at EOorg.EOeolang.EObool$EOwhile.lambda(EObool$EOwhile.java:67)
        at org.eolang.AtomSafe.lambda(AtomSafe.java:47)
        at org.eolang.CachedPhi.get(CachedPhi.java:82)
        at org.eolang.PhDefault.attr(PhDefault.java:249)
        at org.eolang.PhNamed.attr(PhNamed.java:88)
        at org.eolang.PhSafe.attr(PhSafe.java:90)
        at org.eolang.PhImmovable.attr(PhImmovable.java:81)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhMethod.lambda$new$0(PhMethod.java:43)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhMethod.lambda$new$0(PhMethod.java:43)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.copy(PhOnce.java:82)
        at org.eolang.PhLocated.copy(PhLocated.java:108)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:87)
        at org.eolang.PhWith.lambda$new$3(PhWith.java:87)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhDefault.attr(PhDefault.java:254)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhNamed.attr(PhNamed.java:88)
        at org.eolang.PhSafe.attr(PhSafe.java:90)
        at org.eolang.Dataized.take(Dataized.java:99)
        at EOorg.EOeolang.EObool$EOwhile.lambda(EObool$EOwhile.java:67)
        at org.eolang.AtomSafe.lambda(AtomSafe.java:47)
        at org.eolang.CachedPhi.get(CachedPhi.java:82)
        at org.eolang.PhDefault.attr(PhDefault.java:249)
        at org.eolang.PhNamed.attr(PhNamed.java:88)
        at org.eolang.PhSafe.attr(PhSafe.java:90)
        at org.eolang.PhImmovable.attr(PhImmovable.java:81)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhMethod.lambda$new$0(PhMethod.java:43)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhMethod.lambda$new$0(PhMethod.java:43)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.copy(PhOnce.java:82)
        at org.eolang.PhLocated.copy(PhLocated.java:108)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:87)
        at org.eolang.PhWith.lambda$new$3(PhWith.java:87)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhDefault.attr(PhDefault.java:254)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhNamed.attr(PhNamed.java:88)
        at org.eolang.PhSafe.attr(PhSafe.java:90)
        at org.eolang.Dataized.take(Dataized.java:99)
        at EOorg.EOeolang.EObool$EOwhile.lambda(EObool$EOwhile.java:67)
        at org.eolang.AtomSafe.lambda(AtomSafe.java:47)
        at org.eolang.CachedPhi.get(CachedPhi.java:82)
        at org.eolang.PhDefault.attr(PhDefault.java:249)
        at org.eolang.PhNamed.attr(PhNamed.java:88)
        at org.eolang.PhSafe.attr(PhSafe.java:90)
        at org.eolang.PhImmovable.attr(PhImmovable.java:81)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhMethod.lambda$new$0(PhMethod.java:43)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhMethod.lambda$new$0(PhMethod.java:43)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.copy(PhOnce.java:82)
        at org.eolang.PhLocated.copy(PhLocated.java:108)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:87)
        at org.eolang.PhWith.lambda$new$3(PhWith.java:87)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhDefault.attr(PhDefault.java:254)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhNamed.attr(PhNamed.java:88)
        at org.eolang.PhSafe.attr(PhSafe.java:90)
        at org.eolang.Dataized.take(Dataized.java:99)
        at EOorg.EOeolang.EObool$EOwhile.lambda(EObool$EOwhile.java:67)
        at org.eolang.AtomSafe.lambda(AtomSafe.java:47)
        at org.eolang.CachedPhi.get(CachedPhi.java:82)
        at org.eolang.PhDefault.attr(PhDefault.java:249)
        at org.eolang.PhNamed.attr(PhNamed.java:88)
        at org.eolang.PhSafe.attr(PhSafe.java:90)
        at org.eolang.PhImmovable.attr(PhImmovable.java:81)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhMethod.lambda$new$0(PhMethod.java:43)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhMethod.lambda$new$0(PhMethod.java:43)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.copy(PhOnce.java:82)
        at org.eolang.PhLocated.copy(PhLocated.java:108)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:87)
        at org.eolang.PhWith.lambda$new$3(PhWith.java:87)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhDefault.attr(PhDefault.java:254)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhNamed.attr(PhNamed.java:88)
        at org.eolang.PhSafe.attr(PhSafe.java:90)
        at org.eolang.Dataized.take(Dataized.java:99)
        at EOorg.EOeolang.EObool$EOwhile.lambda(EObool$EOwhile.java:67)
        at org.eolang.AtomSafe.lambda(AtomSafe.java:47)
        at org.eolang.CachedPhi.get(CachedPhi.java:82)
        at org.eolang.PhDefault.attr(PhDefault.java:249)
        at org.eolang.PhNamed.attr(PhNamed.java:88)
        at org.eolang.PhSafe.attr(PhSafe.java:90)
        at org.eolang.PhImmovable.attr(PhImmovable.java:81)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhMethod.lambda$new$0(PhMethod.java:43)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhMethod.lambda$new$0(PhMethod.java:43)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.copy(PhOnce.java:82)
        at org.eolang.PhLocated.copy(PhLocated.java:108)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:87)
        at org.eolang.PhWith.lambda$new$3(PhWith.java:87)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhDefault.attr(PhDefault.java:254)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhNamed.attr(PhNamed.java:88)
        at org.eolang.PhSafe.attr(PhSafe.java:90)
        at org.eolang.Dataized.take(Dataized.java:99)
        at EOorg.EOeolang.EObool$EOwhile.lambda(EObool$EOwhile.java:67)
        at org.eolang.AtomSafe.lambda(AtomSafe.java:47)
        at org.eolang.CachedPhi.get(CachedPhi.java:82)
        at org.eolang.PhDefault.attr(PhDefault.java:249)
        at org.eolang.PhNamed.attr(PhNamed.java:88)
        at org.eolang.PhSafe.attr(PhSafe.java:90)
        at org.eolang.PhImmovable.attr(PhImmovable.java:81)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhMethod.lambda$new$0(PhMethod.java:43)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhMethod.lambda$new$0(PhMethod.java:43)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.copy(PhOnce.java:82)
        at org.eolang.PhLocated.copy(PhLocated.java:108)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:87)
        at org.eolang.PhWith.lambda$new$3(PhWith.java:87)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhDefault.attr(PhDefault.java:254)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhNamed.attr(PhNamed.java:88)
        at org.eolang.PhSafe.attr(PhSafe.java:90)
        at org.eolang.Dataized.take(Dataized.java:99)
        at EOorg.EOeolang.EObool$EOwhile.lambda(EObool$EOwhile.java:67)
        at org.eolang.AtomSafe.lambda(AtomSafe.java:47)
        at org.eolang.CachedPhi.get(CachedPhi.java:82)
        at org.eolang.PhDefault.attr(PhDefault.java:249)
        at org.eolang.PhNamed.attr(PhNamed.java:88)
        at org.eolang.PhSafe.attr(PhSafe.java:90)
        at org.eolang.PhImmovable.attr(PhImmovable.java:81)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhMethod.lambda$new$0(PhMethod.java:43)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhMethod.lambda$new$0(PhMethod.java:43)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.copy(PhOnce.java:82)
        at org.eolang.PhLocated.copy(PhLocated.java:108)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:87)
        at org.eolang.PhWith.lambda$new$3(PhWith.java:87)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhDefault.attr(PhDefault.java:254)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhNamed.attr(PhNamed.java:88)
        at org.eolang.PhSafe.attr(PhSafe.java:90)
        at org.eolang.Dataized.take(Dataized.java:99)
        at EOorg.EOeolang.EObool$EOwhile.lambda(EObool$EOwhile.java:67)
        at org.eolang.AtomSafe.lambda(AtomSafe.java:47)
        at org.eolang.CachedPhi.get(CachedPhi.java:82)
        at org.eolang.PhDefault.attr(PhDefault.java:249)
        at org.eolang.PhNamed.attr(PhNamed.java:88)
        at org.eolang.PhSafe.attr(PhSafe.java:90)
        at org.eolang.PhImmovable.attr(PhImmovable.java:81)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhMethod.lambda$new$0(PhMethod.java:43)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhMethod.lambda$new$0(PhMethod.java:43)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.copy(PhOnce.java:82)
        at org.eolang.PhLocated.copy(PhLocated.java:108)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:87)
        at org.eolang.PhWith.lambda$new$3(PhWith.java:87)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhDefault.attr(PhDefault.java:254)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhNamed.attr(PhNamed.java:88)
        at org.eolang.PhSafe.attr(PhSafe.java:90)
        at org.eolang.Dataized.take(Dataized.java:99)
        at EOorg.EOeolang.EObool$EOwhile.lambda(EObool$EOwhile.java:67)
        at org.eolang.AtomSafe.lambda(AtomSafe.java:47)
        at org.eolang.CachedPhi.get(CachedPhi.java:82)
        at org.eolang.PhDefault.attr(PhDefault.java:249)
        at org.eolang.PhNamed.attr(PhNamed.java:88)
        at org.eolang.PhSafe.attr(PhSafe.java:90)
        at org.eolang.PhImmovable.attr(PhImmovable.java:81)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhMethod.lambda$new$0(PhMethod.java:43)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhMethod.lambda$new$0(PhMethod.java:43)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.copy(PhOnce.java:82)
        at org.eolang.PhLocated.copy(PhLocated.java:108)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:87)
        at org.eolang.PhWith.lambda$new$3(PhWith.java:87)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhDefault.attr(PhDefault.java:254)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhNamed.attr(PhNamed.java:88)
        at org.eolang.PhSafe.attr(PhSafe.java:90)
        at org.eolang.Dataized.take(Dataized.java:99)
        at EOorg.EOeolang.EObool$EOwhile.lambda(EObool$EOwhile.java:67)
        at org.eolang.AtomSafe.lambda(AtomSafe.java:47)
        at org.eolang.CachedPhi.get(CachedPhi.java:82)
        at org.eolang.PhDefault.attr(PhDefault.java:249)
        at org.eolang.PhNamed.attr(PhNamed.java:88)
        at org.eolang.PhSafe.attr(PhSafe.java:90)
        at org.eolang.PhImmovable.attr(PhImmovable.java:81)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhMethod.lambda$new$0(PhMethod.java:43)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhMethod.lambda$new$0(PhMethod.java:43)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.copy(PhOnce.java:82)
        at org.eolang.PhLocated.copy(PhLocated.java:108)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:87)
        at org.eolang.PhWith.lambda$new$3(PhWith.java:87)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhDefault.attr(PhDefault.java:254)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhNamed.attr(PhNamed.java:88)
        at org.eolang.PhSafe.attr(PhSafe.java:90)
        at org.eolang.Dataized.take(Dataized.java:99)
        at EOorg.EOeolang.EObool$EOwhile.lambda(EObool$EOwhile.java:67)
        at org.eolang.AtomSafe.lambda(AtomSafe.java:47)
        at org.eolang.CachedPhi.get(CachedPhi.java:82)
        at org.eolang.PhDefault.attr(PhDefault.java:249)
        at org.eolang.PhNamed.attr(PhNamed.java:88)
        at org.eolang.PhSafe.attr(PhSafe.java:90)
        at org.eolang.PhImmovable.attr(PhImmovable.java:81)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhMethod.lambda$new$0(PhMethod.java:43)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhMethod.lambda$new$0(PhMethod.java:43)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.copy(PhOnce.java:82)
        at org.eolang.PhLocated.copy(PhLocated.java:108)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:87)
        at org.eolang.PhWith.lambda$new$3(PhWith.java:87)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhDefault.attr(PhDefault.java:254)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhNamed.attr(PhNamed.java:88)
        at org.eolang.PhSafe.attr(PhSafe.java:90)
        at org.eolang.Dataized.take(Dataized.java:99)
        at EOorg.EOeolang.EObool$EOwhile.lambda(EObool$EOwhile.java:67)
        at org.eolang.AtomSafe.lambda(AtomSafe.java:47)
        at org.eolang.CachedPhi.get(CachedPhi.java:82)
        at org.eolang.PhDefault.attr(PhDefault.java:249)
        at org.eolang.PhNamed.attr(PhNamed.java:88)
        at org.eolang.PhSafe.attr(PhSafe.java:90)
        at org.eolang.PhImmovable.attr(PhImmovable.java:81)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhMethod.lambda$new$0(PhMethod.java:43)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhMethod.lambda$new$0(PhMethod.java:43)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.copy(PhOnce.java:82)
        at org.eolang.PhLocated.copy(PhLocated.java:108)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:87)
        at org.eolang.PhWith.lambda$new$3(PhWith.java:87)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhDefault.attr(PhDefault.java:254)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhNamed.attr(PhNamed.java:88)
        at org.eolang.PhSafe.attr(PhSafe.java:90)
        at org.eolang.Dataized.take(Dataized.java:99)
        at EOorg.EOeolang.EObool$EOwhile.lambda(EObool$EOwhile.java:67)
        at org.eolang.AtomSafe.lambda(AtomSafe.java:47)
        at org.eolang.CachedPhi.get(CachedPhi.java:82)
        at org.eolang.PhDefault.attr(PhDefault.java:249)
        at org.eolang.PhNamed.attr(PhNamed.java:88)
        at org.eolang.PhSafe.attr(PhSafe.java:90)
        at org.eolang.PhImmovable.attr(PhImmovable.java:81)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhMethod.lambda$new$0(PhMethod.java:43)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhMethod.lambda$new$0(PhMethod.java:43)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.copy(PhOnce.java:82)
        at org.eolang.PhLocated.copy(PhLocated.java:108)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:87)
        at org.eolang.PhWith.lambda$new$3(PhWith.java:87)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhDefault.attr(PhDefault.java:254)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhNamed.attr(PhNamed.java:88)
        at org.eolang.PhSafe.attr(PhSafe.java:90)
        at org.eolang.Dataized.take(Dataized.java:99)
        at EOorg.EOeolang.EObool$EOwhile.lambda(EObool$EOwhile.java:67)
        at org.eolang.AtomSafe.lambda(AtomSafe.java:47)
        at org.eolang.CachedPhi.get(CachedPhi.java:82)
        at org.eolang.PhDefault.attr(PhDefault.java:249)
        at org.eolang.PhNamed.attr(PhNamed.java:88)
        at org.eolang.PhSafe.attr(PhSafe.java:90)
        at org.eolang.PhImmovable.attr(PhImmovable.java:81)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhMethod.lambda$new$0(PhMethod.java:43)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhMethod.lambda$new$0(PhMethod.java:43)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.copy(PhOnce.java:82)
        at org.eolang.PhLocated.copy(PhLocated.java:108)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:87)
        at org.eolang.PhWith.lambda$new$3(PhWith.java:87)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhDefault.attr(PhDefault.java:254)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhNamed.attr(PhNamed.java:88)
        at org.eolang.PhSafe.attr(PhSafe.java:90)
        at org.eolang.Dataized.take(Dataized.java:99)
        at EOorg.EOeolang.EObool$EOwhile.lambda(EObool$EOwhile.java:67)
        at org.eolang.AtomSafe.lambda(AtomSafe.java:47)
        at org.eolang.CachedPhi.get(CachedPhi.java:82)
        at org.eolang.PhDefault.attr(PhDefault.java:249)
        at org.eolang.PhNamed.attr(PhNamed.java:88)
        at org.eolang.PhSafe.attr(PhSafe.java:90)
        at org.eolang.PhImmovable.attr(PhImmovable.java:81)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhMethod.lambda$new$0(PhMethod.java:43)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhMethod.lambda$new$0(PhMethod.java:43)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.copy(PhOnce.java:82)
        at org.eolang.PhLocated.copy(PhLocated.java:108)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:87)
        at org.eolang.PhWith.lambda$new$3(PhWith.java:87)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhDefault.attr(PhDefault.java:254)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhNamed.attr(PhNamed.java:88)
        at org.eolang.PhSafe.attr(PhSafe.java:90)
        at org.eolang.Dataized.take(Dataized.java:99)
        at EOorg.EOeolang.EObool$EOwhile.lambda(EObool$EOwhile.java:67)
        at org.eolang.AtomSafe.lambda(AtomSafe.java:47)
        at org.eolang.CachedPhi.get(CachedPhi.java:82)
        at org.eolang.PhDefault.attr(PhDefault.java:249)
        at org.eolang.PhNamed.attr(PhNamed.java:88)
        at org.eolang.PhSafe.attr(PhSafe.java:90)
        at org.eolang.PhImmovable.attr(PhImmovable.java:81)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhMethod.lambda$new$0(PhMethod.java:43)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhMethod.lambda$new$0(PhMethod.java:43)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.copy(PhOnce.java:82)
        at org.eolang.PhLocated.copy(PhLocated.java:108)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:87)
        at org.eolang.PhWith.lambda$new$3(PhWith.java:87)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhDefault.attr(PhDefault.java:254)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhNamed.attr(PhNamed.java:88)
        at org.eolang.PhSafe.attr(PhSafe.java:90)
        at org.eolang.Dataized.take(Dataized.java:99)
        at EOorg.EOeolang.EObool$EOwhile.lambda(EObool$EOwhile.java:67)
        at org.eolang.AtomSafe.lambda(AtomSafe.java:47)
        at org.eolang.CachedPhi.get(CachedPhi.java:82)
        at org.eolang.PhDefault.attr(PhDefault.java:249)
        at org.eolang.PhNamed.attr(PhNamed.java:88)
        at org.eolang.PhSafe.attr(PhSafe.java:90)
        at org.eolang.PhImmovable.attr(PhImmovable.java:81)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhMethod.lambda$new$0(PhMethod.java:43)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhMethod.lambda$new$0(PhMethod.java:43)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.copy(PhOnce.java:82)
        at org.eolang.PhLocated.copy(PhLocated.java:108)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:87)
        at org.eolang.PhWith.lambda$new$3(PhWith.java:87)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhDefault.attr(PhDefault.java:254)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhNamed.attr(PhNamed.java:88)
        at org.eolang.PhSafe.attr(PhSafe.java:90)
        at org.eolang.Dataized.take(Dataized.java:99)
        at EOorg.EOeolang.EObool$EOwhile.lambda(EObool$EOwhile.java:67)
        at org.eolang.AtomSafe.lambda(AtomSafe.java:47)
        at org.eolang.CachedPhi.get(CachedPhi.java:82)
        at org.eolang.PhDefault.attr(PhDefault.java:249)
        at org.eolang.PhNamed.attr(PhNamed.java:88)
        at org.eolang.PhSafe.attr(PhSafe.java:90)
        at org.eolang.PhImmovable.attr(PhImmovable.java:81)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhMethod.lambda$new$0(PhMethod.java:43)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhMethod.lambda$new$0(PhMethod.java:43)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.copy(PhOnce.java:82)
        at org.eolang.PhLocated.copy(PhLocated.java:108)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:87)
        at org.eolang.PhWith.lambda$new$3(PhWith.java:87)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhDefault.attr(PhDefault.java:254)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhNamed.attr(PhNamed.java:88)
        at org.eolang.PhSafe.attr(PhSafe.java:90)
        at org.eolang.Dataized.take(Dataized.java:99)
        at EOorg.EOeolang.EObool$EOwhile.lambda(EObool$EOwhile.java:67)
        at org.eolang.AtomSafe.lambda(AtomSafe.java:47)
        at org.eolang.CachedPhi.get(CachedPhi.java:82)
        at org.eolang.PhDefault.attr(PhDefault.java:249)
        at org.eolang.PhNamed.attr(PhNamed.java:88)
        at org.eolang.PhSafe.attr(PhSafe.java:90)
        at org.eolang.PhImmovable.attr(PhImmovable.java:81)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhMethod.lambda$new$0(PhMethod.java:43)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhMethod.lambda$new$0(PhMethod.java:43)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.copy(PhOnce.java:82)
        at org.eolang.PhLocated.copy(PhLocated.java:108)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:87)
        at org.eolang.PhWith.lambda$new$3(PhWith.java:87)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhDefault.attr(PhDefault.java:254)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhNamed.attr(PhNamed.java:88)
        at org.eolang.PhSafe.attr(PhSafe.java:90)
        at org.eolang.Dataized.take(Dataized.java:99)
        at EOorg.EOeolang.EObool$EOwhile.lambda(EObool$EOwhile.java:67)
        at org.eolang.AtomSafe.lambda(AtomSafe.java:47)
        at org.eolang.CachedPhi.get(CachedPhi.java:82)
        at org.eolang.PhDefault.attr(PhDefault.java:249)
        at org.eolang.PhNamed.attr(PhNamed.java:88)
        at org.eolang.PhSafe.attr(PhSafe.java:90)
        at org.eolang.PhImmovable.attr(PhImmovable.java:81)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhMethod.lambda$new$0(PhMethod.java:43)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhMethod.lambda$new$0(PhMethod.java:43)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.copy(PhOnce.java:82)
        at org.eolang.PhLocated.copy(PhLocated.java:108)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:87)
        at org.eolang.PhWith.lambda$new$3(PhWith.java:87)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhDefault.attr(PhDefault.java:254)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhNamed.attr(PhNamed.java:88)
        at org.eolang.PhSafe.attr(PhSafe.java:90)
        at org.eolang.Dataized.take(Dataized.java:99)
        at EOorg.EOeolang.EObool$EOwhile.lambda(EObool$EOwhile.java:67)
        at org.eolang.AtomSafe.lambda(AtomSafe.java:47)
        at org.eolang.CachedPhi.get(CachedPhi.java:82)
        at org.eolang.PhDefault.attr(PhDefault.java:249)
        at org.eolang.PhNamed.attr(PhNamed.java:88)
        at org.eolang.PhSafe.attr(PhSafe.java:90)
        at org.eolang.PhImmovable.attr(PhImmovable.java:81)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhMethod.lambda$new$0(PhMethod.java:43)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhMethod.lambda$new$0(PhMethod.java:43)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.copy(PhOnce.java:82)
        at org.eolang.PhLocated.copy(PhLocated.java:108)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:87)
        at org.eolang.PhWith.lambda$new$3(PhWith.java:87)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhDefault.attr(PhDefault.java:254)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhNamed.attr(PhNamed.java:88)
        at org.eolang.PhSafe.attr(PhSafe.java:90)
        at org.eolang.Dataized.take(Dataized.java:99)
        at EOorg.EOeolang.EObool$EOwhile.lambda(EObool$EOwhile.java:67)
        at org.eolang.AtomSafe.lambda(AtomSafe.java:47)
        at org.eolang.CachedPhi.get(CachedPhi.java:82)
        at org.eolang.PhDefault.attr(PhDefault.java:249)
        at org.eolang.PhNamed.attr(PhNamed.java:88)
        at org.eolang.PhSafe.attr(PhSafe.java:90)
        at org.eolang.PhImmovable.attr(PhImmovable.java:81)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhMethod.lambda$new$0(PhMethod.java:43)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhMethod.lambda$new$0(PhMethod.java:43)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.copy(PhOnce.java:82)
        at org.eolang.PhLocated.copy(PhLocated.java:108)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:87)
        at org.eolang.PhWith.lambda$new$3(PhWith.java:87)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhDefault.attr(PhDefault.java:254)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhNamed.attr(PhNamed.java:88)
        at org.eolang.PhSafe.attr(PhSafe.java:90)
        at org.eolang.Dataized.take(Dataized.java:99)
        at EOorg.EOeolang.EObool$EOwhile.lambda(EObool$EOwhile.java:67)
        at org.eolang.AtomSafe.lambda(AtomSafe.java:47)
        at org.eolang.CachedPhi.get(CachedPhi.java:82)
        at org.eolang.PhDefault.attr(PhDefault.java:249)
        at org.eolang.PhNamed.attr(PhNamed.java:88)
        at org.eolang.PhSafe.attr(PhSafe.java:90)
        at org.eolang.PhImmovable.attr(PhImmovable.java:81)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhMethod.lambda$new$0(PhMethod.java:43)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhMethod.lambda$new$0(PhMethod.java:43)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.copy(PhOnce.java:82)
        at org.eolang.PhLocated.copy(PhLocated.java:108)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:87)
        at org.eolang.PhWith.lambda$new$3(PhWith.java:87)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhDefault.attr(PhDefault.java:254)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhNamed.attr(PhNamed.java:88)
        at org.eolang.PhSafe.attr(PhSafe.java:90)
        at org.eolang.Dataized.take(Dataized.java:99)
        at EOorg.EOeolang.EObool$EOwhile.lambda(EObool$EOwhile.java:67)
        at org.eolang.AtomSafe.lambda(AtomSafe.java:47)
        at org.eolang.CachedPhi.get(CachedPhi.java:82)
        at org.eolang.PhDefault.attr(PhDefault.java:249)
        at org.eolang.PhNamed.attr(PhNamed.java:88)
        at org.eolang.PhSafe.attr(PhSafe.java:90)
        at org.eolang.PhImmovable.attr(PhImmovable.java:81)
        at org.eolang.PhOnce.attr(PhOnce.java:92)
        at org.eolang.PhLocated.attr(PhLocated.java:118)
        at org.eolang.PhMethod.lambda$new$0(PhMethod.java:43)
        at org.eolang.Data$Once.lambda$take$0(Data.java:120)
        at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:209)
        at org.eolang.Data$Once.take(Data.java:116)
        at org.eolang.PhOnce.attr(PhOnce.java:92)

[ERROR] Errors: 
[ERROR]   EOiterates_over_simple_counterTest>PhDefault.attr:249->PhDefault.attr:254->PhDefault.attr:249->PhDefault.attr:254->PhDefault.attr:249->PhDefault.attr:254->PhDefault.attr:249->PhDefault.attr:254->PhDefault.attr:249->PhDefault.attr:254->PhDefault.attr:249->PhDefault.attr:254->PhDefault.attr:249->PhDefault.attr:254->PhDefault.attr:249->PhDefault.attr:254->PhDefault.attr:249->PhDefault.attr:254->PhDefault.attr:249->PhDefault.attr:254->PhDefault.attr:249->PhDefault.attr:254->PhDefault.attr:249->PhDefault.attr:254->PhDefault.attr:249->PhDefault.attr:254->PhDefault.attr:249->PhDefault.attr:254->PhDefault.attr:249->PhDefault.attr:254->PhDefault.attr:249->PhDefault.attr:254->PhDefault.attr:249->PhDefault.attr:254->PhDefault.attr:249->PhDefault.attr:254->PhDefault.attr:249->PhDefault.attr:254->PhDefault.attr:249->PhDefault.attr:254->PhDefault.attr:249->PhDefault.attr:254->PhDefault.attr:249->PhDefault.attr:254->PhDefault.attr:249->PhDefault.attr:254->PhDefault.attr:249->PhDefault.attr:254->PhDefault.attr:249->PhDefault.attr:254->PhDefault.attr:249->PhDefault.attr:254->PhDefault.attr:249->PhDefault.attr:254->PhDefault.attr:249->PhDefault.attr:254->PhDefault.attr:249->PhDefault.attr:254 » Ex EOorg.EOeolang.EOstringν13405(Δ = [85, 110, 101, 120, 112, 101, 99, 116, 101, 100, 32, 101, 114, 114, 111, 114, 32, 39, 110, 117, 108, 108, 39, 32, 111, 102, 32, 116, 121, 112, 101, 32, 83, 116, 97, 99, 107, 79, 118, 101, 114, 102, 108, 111, 119, 69, 114, 114, 111, 114, 59, 32, 99, 97, 117, 115, 101, 100, 32, 98, 121, 32] = "Unexpected error 'null' of type StackOverflowError; caused by ")
[ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:3.2.5:test (default-cli) on project eoc: 
[ERROR] 
[ERROR] Please refer to /home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo-not-normalized/.eoc/surefire-reports for the individual test results.
[ERROR] Please refer to dump files (if any exist) [date].dump, [date]-jvmRun[N].dump and [date].dumpstream.
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
The command "/home/eyjafjallajokull/Desktop/gh/normalizer/node_modules/eolang/mvnw/mvnw surefire:test -Deo.version=0.35.3 -Deo.hash=130afdd1456a0cbafd52aee8d7bc612e1faac547 --quiet -Deo.sourcesDir=/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo-not-normalized -Deo.targetDir=/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo-not-normalized/.eoc -Deo.outputDir=/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo-not-normalized/.eoc/classes -Deo.generatedDir=/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo-not-normalized/.eoc/generated-sources -Deo.placed=/home/eyjafjallajokull/Desktop/gh/normalizer/pipeline/eo-not-normalized/.eoc/eo-placed.csv -Deo.placedFormat=csv --batch-mode --color=never --update-snapshots --fail-fast --strict-checksums" exited with #1 code

bool-tests.eo

# The MIT License (MIT)
#
# Copyright (c) 2016-2024 Objectionary.com
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included
# in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.

+architect [email protected]
+home https://github.com/objectionary/eo
+tests
+package org.eolang
+version 0.0.0

# Test.
[] > iterates-over-simple-counter
  memory 0 > x
  and. > @
    eq.
      x.write 5
      5
    eq.
      while.
        x.as-int.lt 10
        [i]
          x.write > @
            x.as-int.plus 1
      11

bool-tests.phi

{
  ⟦
    org ↦ ⟦
      eolang ↦ ⟦
        iterates-over-simple-counter ↦ ⟦
          x ↦ Φ.org.eolang.memory(
            α0 ↦ Φ.org.eolang.int(
              α0 ↦ Φ.org.eolang.bytes(
                Δ ⤍ 00-00-00-00-00-00-00-00
              )
            )
          ),
          φ ↦ ξ.x.write(
            α0 ↦ Φ.org.eolang.int(
              α0 ↦ Φ.org.eolang.bytes(
                Δ ⤍ 00-00-00-00-00-00-00-05
              )
            )
          ).eq(
            α0 ↦ Φ.org.eolang.int(
              α0 ↦ Φ.org.eolang.bytes(
                Δ ⤍ 00-00-00-00-00-00-00-05
              )
            )
          ).and(
            α0 ↦ ξ.x.as-int.lt(
              α0 ↦ Φ.org.eolang.int(
                α0 ↦ Φ.org.eolang.bytes(
                  Δ ⤍ 00-00-00-00-00-00-00-0A
                )
              )
            ).while(
              α0 ↦ ⟦
                i ↦ ∅,
                φ ↦ ξ.ρ.x.write(
                  α0 ↦ ξ.ρ.x.as-int.plus(
                    α0 ↦ Φ.org.eolang.int(
                      α0 ↦ Φ.org.eolang.bytes(
                        Δ ⤍ 00-00-00-00-00-00-00-01
                      )
                    )
                  )
                )
              ⟧
            ).eq(
              α0 ↦ Φ.org.eolang.int(
                α0 ↦ Φ.org.eolang.bytes(
                  Δ ⤍ 00-00-00-00-00-00-00-0B
                )
              )
            )
          )
        ⟧,
        λ ⤍ Package
      ⟧,
      λ ⤍ Package
    ⟧
  ⟧
}

bool-tests.eo (after unphi)

+tests
+package org.eolang

# This is the default 64+ symbols comment in front of named abstract object.
[] > iterates-over-simple-counter
  Q
  .org
  .eolang
  .memory > x
    Q
    .org
    .eolang
    .int:0
      Q
      .org
      .eolang
      .bytes:0
        00-00-00-00-00-00-00-00
  $
  .x
  .write
    Q
    .org
    .eolang
    .int:0
      Q
      .org
      .eolang
      .bytes:0
        00-00-00-00-00-00-00-05
  .eq
    Q
    .org
    .eolang
    .int:0
      Q
      .org
      .eolang
      .bytes:0
        00-00-00-00-00-00-00-05
  .and > @
    $
    .x
    .as-int
    .lt
      Q
      .org
      .eolang
      .int:0
        Q
        .org
        .eolang
        .bytes:0
          00-00-00-00-00-00-00-0A
    .while
      [i]:0
        $
        .^
        .x
        .write > @
          $
          .^
          .x
          .as-int
          .plus:0
            Q
            .org
            .eolang
            .int:0
              Q
              .org
              .eolang
              .bytes:0
                00-00-00-00-00-00-00-01
    .eq:0
      Q
      .org
      .eolang
      .int:0
        Q
        .org
        .eolang
        .bytes:0
          00-00-00-00-00-00-00-0B

deemp avatar Feb 15 '24 18:02 deemp

@deemp @maxonfjvipon the mistake is here, in phi:

α0 ↦ ⟦
                i ↦ ∅,
                φ ↦ ξ.ρ.x.write(
                  α0 ↦ ξ.ρ.x.as-int.plus(
                    α0 ↦ Φ.org.eolang.int(
                      α0 ↦ Φ.org.eolang.bytes(
                        Δ ⤍ 00-00-00-00-00-00-00-01
                      )
                    )
                  )
                )
              ⟧

Here, x is not ξ.ρ.x, but ξ.σ.x. Somehow, we generate a wrong phi -- that's why the EO generated afterwards doesn't work.

yegor256 avatar Feb 19 '24 11:02 yegor256

@yegor256 in init EO we don't have ^ or &. In phi they appear after we "build" path to the object which is placed out of current scope (here to the x). Now this building algorithm injects ρ every time we meet abstract object. We can change this algorithm as follows:

  • inject ρ if named abstract object is met
  • inject σ if anonymous abstract object is met

WDYT? Will it cover all possible scenarios?

maxonfjvipon avatar Feb 26 '24 12:02 maxonfjvipon

@maxonfjvipon we should inject ^. This "injection" is implemented through ref attributes, when we "optimize" XMIR

yegor256 avatar Feb 26 '24 12:02 yegor256