-
Notifications
You must be signed in to change notification settings - Fork 146
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Dashes do not help. No viable alternative at input eo:0.46.0:phi-to-xmir
#3547
Comments
@yegor256 @maxonfjvipon Could you have a look, please? |
@volodya-lombrozo the problem in all the places with <o base="jeo.bool"><!-- false -->
<o base="org.eolang.bytes">00</o>
</o> Extra dash is required: <o base="jeo.bool"><!-- false -->
<o base="org.eolang.bytes">00-</o>
</o> |
Blocked by #3546 |
@volodya-lombrozo still a bug? |
@yegor256 This one is solved, thank you. |
@yegor256 No, it's still here. I'm getting the following:
During App.phi.txt Full log: |
eo:0.43.0:xmir-to-phi
eo:0.46.0:phi-to-xmir
@maxonfjvipon Could you help with it, please? It's kinda urgent and blocks the development. |
@maxonfjvipon the end of the input looks weird: |
@yegor256 @volodya-lombrozo the problem in phi is here:
This is illegal: <o base="jeo.method" name="j$object@init@-%28%29V">
...
<o base="jeo.seq.of0" name="annotations"/>
<o base="jeo.seq.of3" name="@">
...
</o>
</o> Here we have But after optimizations and especially <o base="jeo.method" name="j$object@init@-%28%29V">
<o base="annotations" ref=""/>
<o base="jeo.seq.of3" name="@">
...
</o>
</o>
<o base="jeo.seq.of0" name="annotations"/>
<o base="jeo.seq.of3" name="@">
...
</o> Here I'm not sure but I think the problem is in the |
@volodya-lombrozo when I printer your dissasembled XMIR to EO I got this:
Are you sure it's OK to have |
@yegor256 @volodya-lombrozo actually yes, our
After <objects>
<o line="2" name="object" pos="0">
<o base="y" line="3" name="outer" pos="2">
<o base="method" cut="1" line="4" ref="4"/>
</o>
<o base="x" line="4" name="method" pos="4">
<o base="number" line="5" name="@" pos="6">40-14-00-00-00-00-00-00</o>
</o>
<o base="number" line="5" name="@" pos="6">40-14-00-00-00-00-00-00</o>
</o>
</objects> or in EO:
@yegor256 is it a bug or feature? Because there's a special condition <xsl:template match="o[@name and @name!='@' and ancestor::o[1][not(eo:abstract(.))]]"> |
@yegor256 If I remove the condition I get: <objects>
<o line="2" name="object" pos="0">
<o base="y" line="3" name="outer" pos="2">
<o base="method" cut="1" line="4" ref="4"/>
</o>
<o base="x" line="4" name="method" pos="4">
<o base="@" cut="0" line="5" ref="5"/>
</o>
<o base="number" line="5" name="@" pos="6">40-14-00-00-00-00-00-00</o>
</o>
</objects> or in EO:
WDYT? |
@maxonfjvipon I can rename
|
@maxonfjvipon I used |
@volodya-lombrozo yes, it should solve the problem, because of this. I'm not sure for now is it a bug or feature |
@volodya-lombrozo actually without |
@maxonfjvipon Ok, this problem is gone. Now I just have a broken <o base="org.eolang.string" name="supername"><!-- "java/lang/Object" -->
<o base="org.eolang.bytes">6A-61-76-61-2F-6C-61-6E-67-2F-4F-62-6A-65-63-74</o>
</o> After <o base="string" line="33" name="supername" pos="0"/> It's the first thing I've found. Most probably there many more inconsistencies. There are files that can help you: This issue is still a blocker. |
@maxonfjvipon this looks like a bug to me, but I can't understand the reason behind it... let's assume it's a typo. |
@yegor256 maybe it was, this xsl was made by you in 2020 |
@volodya-lombrozo it seems your I tested it on this XMIR: <program>
<objects>
<o name="j$App">
<o base=".supername">
<o base="$"/>
</o>
<o base=".access">
<o base="$"/>
</o>
<o base=".inte">
<o base="$"/>
</o>
</o>
<o base=".of0" name="interfaces">
<o base=".seq">
<o base=".jeo">
<o base="Q"/>
</o>
</o>
</o>
<o base="org.eolang.string" name="supername">
<o base="org.eolang.bytes">6A-61-76-61-2F-6C-61-6E-67-2F-4F-62-6A-65-63-74</o>
</o>
<o base=".int" name="access">
<o base=".jeo">
<o base="Q"/>
</o>
<o as="0" base=".bytes">
<o base=".eolang">
<o base=".org">
<o base="Q"/>
</o>
</o>00-00-00-00-00-00-00-21</o>
</o>
</objects>
</program> and after <program>
<objects>
<o abstract="" line="2" name="j$App" pos="0">
<o base="string" line="14" name="supername" pos="0">6A-61-76-61-2F-6C-61-6E-67-2F-4F-62-6A-65-63-74</o>
<o base="jeo.int" line="17" name="access" pos="0">
<o as="0" base="bytes" line="18" pos="2">00-00-00-00-00-00-00-21</o>
</o>
<o base="jeo.seq.of0" line="12" name="interfaces" pos="0"/>
</o>
</objects>
</program> |
@maxonfjvipon This helps with <o base="jeo.annotation-property">
<o base="org.eolang.string">
<!-- "PLAIN" -->
<o base="org.eolang.bytes">50-4C-41-49-4E</o>
</o>
<o base="org.eolang.string">
<!-- "value" -->
<o base="org.eolang.bytes">76-61-6C-75-65</o>
</o>
<o base="org.eolang.string">
<!-- "some-parameter" -->
<o base="org.eolang.bytes">73-6F-6D-65-2D-70-61-72-61-6D-65-74-65-72</o>
</o>
</o> After: <o as="2" base="jeo.annotation-property" line="539" pos="2">
<o as="0" base="string" line="540" pos="4">50-4C-41-49-4E</o>
<o as="1" base="string" line="541" pos="4">76-61-6C-75-65</o>
<o as="2" base="string" line="542" pos="4">73-6F-6D-65-2D-70-61-72-61-6D-65-74-65-72</o>
</o> App.xmir.disassemble.txt Please, test the entire file instead of some excerpts. |
@volodya-lombrozo I don't see any problems here. What's wrong? |
@maxonfjvipon we lost |
@volodya-lombrozo but this is how |
@maxonfjvipon It has never been "my desirer". The Again, I did:
I get, |
@volodya-lombrozo try to add 2 more xsl transformations to your unrolling train: new TrFast(
new TrJoined<Shift>(
new TrClasspath<>(
"/org/eolang/parser/wrap-method-calls.xsl"
).back(),
new TrDefault<>(
new StEndless(
new StClasspath(
"/org/eolang/parser/roll-bases.xsl"
)
)
),
new TrClasspath<>(
"/org/eolang/parser/add-refs.xsl",
"/org/eolang/parser/add-cuts.xsl"
).back(),
new TrDefault<Shift>(
new StEndless(
new StClasspath(
"/org/eolang/parser/vars-float-down.xsl"
)
)
),
new TrClasspath<Shift>(
"/org/eolang/parser/remove-cuts.xsl",
"/org/eolang/parser/add-default-package.xsl", // <---- here
"/org/eolang/parser/explicit-data.xsl" // <---- and here
).back()
),
CanonicalXmir.class,
5
) |
@maxonfjvipon We created the The proper solution would be to remove |
@maxonfjvipon I've tried this transformations and got another error: Before: <o base="jeo.method" name="j$object@init@-%28%29V">
<o base="jeo.int" name="access"><!-- 1 -->
<o base="org.eolang.bytes">00-00-00-00-00-00-00-01</o>
</o>
...
</o> After: <o base="jeo.method" line="67" name="j$object@init@-%28%29V" pos="0">
<o base="jeo.int" line="30" name="access" pos="0">
<o as="0" base="org.eolang.bytes" line="31" pos="2">00-00-00-00-00-00-00-21</o>
</o>
...
</o> App.xmir.disassemble.txt |
@volodya-lombrozo you have two (maybe more) objects with name |
@maxonfjvipon I've already done it in the same PR. Moreover, I can't just implement this issue without upgrading |
@maxonfjvipon What exactly should I do to avoid this issue? |
@volodya-lombrozo get rid of duplication of
|
@volodya-lombrozo it seems you've done it wrong because no error is caught |
@maxonfjvipon Or it's one more bug in the |
@maxonfjvipon I don't have
|
@volodya-lombrozo |
@maxonfjvipon I'll try |
@maxonfjvipon I've tried the approach you suggested, here is what I get: Caused by: java.lang.IllegalArgumentException: There is something wrong with the XMIR, found '/program/metas/meta[not(@line) or @line='']':
<?xml version="1.0" encoding="UTF-8"?>
<program xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
dob="2024-12-09T16:16:40"
ms="0"
name="j$Parameter"
revision="b82384c"
time="2024-12-09T13:17:18.655536Z"
version="1.0-SNAPSHOT"
xsi:noNamespaceSchemaLocation="https://www.eolang.org/xsd/XMIR-0.46.0.xsd">
<listing>// class version 52.0 (52)
// access flags 0x2601
public abstract @interface org/eolang/hone/param/Parameter implements java/lang/annotation/Annotation {
// compiled from: Parameter.java
@Ljava/lang/annotation/Retention;(value=Ljava/lang/annotation/RetentionPolicy;.RUNTIME)
@Ljava/lang/annotation/Target;(value={Ljava/lang/annotation/ElementType;.TYPE})
// access flags 0x401
public abstract value()Ljava/lang/String;
}
</listing>
<license>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.</license>
<metas>
<meta>
<head>package</head>
<tail>j$org.j$eolang.j$hone.j$param</tail>
<part>j$org.j$eolang.j$hone.j$param</part>
</meta>
<meta>
<head>alias</head>
<tail>jeo.seq.of2</tail>
<part>jeo.seq.of2</part>
</meta>
<meta>
<head>alias</head>
<tail>jeo.seq.of0</tail>
<part>jeo.seq.of0</part>
</meta>
<meta>
<head>alias</head>
<tail>jeo.seq.of1</tail>
<part>jeo.seq.of1</part>
</meta>
<meta>
<head>alias</head>
<tail>jeo.method</tail>
<part>jeo.method</part>
</meta>
<meta>
<head>alias</head>
<tail>jeo.params</tail>
<part>jeo.params</part>
</meta>
<meta>
<head>alias</head>
<tail>jeo.int</tail>
<part>jeo.int</part>
</meta>
<meta>
<head>alias</head>
<tail>jeo.annotation-property</tail>
<part>jeo.annotation-property</part>
</meta>
<meta>
<head>alias</head>
<tail>jeo.bool</tail>
<part>jeo.bool</part>
</meta>
<meta>
<head>alias</head>
<tail>jeo.class</tail>
<part>jeo.class</part>
</meta>
<meta>
<head>alias</head>
<tail>jeo.annotation</tail>
<part>jeo.annotation</part>
</meta>
<meta>
<head>alias</head>
<tail>jeo.maxs</tail>
<part>jeo.maxs</part>
</meta>
</metas>
<objects>
<o base="jeo.class" name="j$Parameter">
<o base="jeo.int" name="version"><!-- 52 -->
<o base="org.eolang.bytes">00-00-00-00-00-00-00-34</o>
</o>
<o base="jeo.int" name="access"><!-- 9729 -->
<o base="org.eolang.bytes">00-00-00-00-00-00-26-01</o>
</o>
<o base="org.eolang.string" name="supername"><!-- "java/lang/Object" -->
<o base="org.eolang.bytes">6A-61-76-61-2F-6C-61-6E-67-2F-4F-62-6A-65-63-74</o>
</o>
<o base="jeo.seq.of1" name="interfaces">
<o base="org.eolang.string"><!-- "java/lang/annotation/Annotation" -->
<o base="org.eolang.bytes">6A-61-76-61-2F-6C-61-6E-67-2F-61-6E-6E-6F-74-61-74-69-6F-6E-2F-41-6E-6E-6F-74-61-74-69-6F-6E</o>
</o>
</o>
<o base="jeo.method" name="j$value-%28%29Ljava%2Flang%2FString%3B">
<o base="jeo.int" name="access"><!-- 1025 -->
<o base="org.eolang.bytes">00-00-00-00-00-00-04-01</o>
</o>
<o base="org.eolang.string" name="descriptor"><!-- "()Ljava/lang/String;" -->
<o base="org.eolang.bytes">28-29-4C-6A-61-76-61-2F-6C-61-6E-67-2F-53-74-72-69-6E-67-3B</o>
</o>
<o base="org.eolang.string" name="signature"><!-- "" -->
<o base="org.eolang.bytes">--</o>
</o>
<o base="jeo.seq.of0" name="exceptions"/>
<o base="jeo.maxs">
<o base="jeo.int" name="stack"><!-- 0 -->
<o base="org.eolang.bytes">00-00-00-00-00-00-00-00</o>
</o>
<o base="jeo.int" name="locals"><!-- 0 -->
<o base="org.eolang.bytes">00-00-00-00-00-00-00-00</o>
</o>
</o>
<o base="jeo.params" name="method-params"/>
<o base="jeo.seq.of0" name="annotations"/>
<o base="jeo.seq.of0" name="body"/>
<o base="jeo.seq.of0" name="trycatchblocks-value"/>
<o base="jeo.seq.of0" name="local-variable-table"/>
</o>
<o base="jeo.seq.of2" name="annotations">
<o base="jeo.annotation"
name="annotation-1073483870-Ljava%2Flang%2Fannotation%2FRetention%3B">
<o base="org.eolang.string"><!-- "Ljava/lang/annotation/Retention;" -->
<o base="org.eolang.bytes">4C-6A-61-76-61-2F-6C-61-6E-67-2F-61-6E-6E-6F-74-61-74-69-6F-6E-2F-52-65-74-65-6E-74-69-6F-6E-3B</o>
</o>
<o base="jeo.bool"><!-- true -->
<o base="org.eolang.bytes">01-</o>
</o>
<o base="jeo.annotation-property">
<o base="org.eolang.string"><!-- "ENUM" -->
<o base="org.eolang.bytes">45-4E-55-4D</o>
</o>
<o base="org.eolang.string"><!-- "value" -->
<o base="org.eolang.bytes">76-61-6C-75-65</o>
</o>
<o base="org.eolang.string"><!-- "Ljava/lang/annotation/RetentionPolicy;" -->
<o base="org.eolang.bytes">4C-6A-61-76-61-2F-6C-61-6E-67-2F-61-6E-6E-6F-74-61-74-69-6F-6E-2F-52-65-74-65-6E-74-69-6F-6E-50-6F-6C-69-63-79-3B</o>
</o>
<o base="org.eolang.string"><!-- "RUNTIME" -->
<o base="org.eolang.bytes">52-55-4E-54-49-4D-45</o>
</o>
</o>
</o>
<o base="jeo.annotation"
name="annotation-1585082451-Ljava%2Flang%2Fannotation%2FTarget%3B">
<o base="org.eolang.string"><!-- "Ljava/lang/annotation/Target;" -->
<o base="org.eolang.bytes">4C-6A-61-76-61-2F-6C-61-6E-67-2F-61-6E-6E-6F-74-61-74-69-6F-6E-2F-54-61-72-67-65-74-3B</o>
</o>
<o base="jeo.bool"><!-- true -->
<o base="org.eolang.bytes">01-</o>
</o>
<o base="jeo.annotation-property">
<o base="org.eolang.string"><!-- "ARRAY" -->
<o base="org.eolang.bytes">41-52-52-41-59</o>
</o>
<o base="org.eolang.string"><!-- "value" -->
<o base="org.eolang.bytes">76-61-6C-75-65</o>
</o>
<o base="jeo.annotation-property">
<o base="org.eolang.string"><!-- "ENUM" -->
<o base="org.eolang.bytes">45-4E-55-4D</o>
</o>
<o base="org.eolang.string"><!-- "" -->
<o base="org.eolang.bytes">--</o>
</o>
<o base="org.eolang.string"><!-- "Ljava/lang/annotation/ElementType;" -->
<o base="org.eolang.bytes">4C-6A-61-76-61-2F-6C-61-6E-67-2F-61-6E-6E-6F-74-61-74-69-6F-6E-2F-45-6C-65-6D-65-6E-74-54-79-70-65-3B</o>
</o>
<o base="org.eolang.string"><!-- "TYPE" -->
<o base="org.eolang.bytes">54-59-50-45</o>
</o>
</o>
</o>
</o>
</o>
<o base="jeo.seq.of0" name="attributes"/>
</o>
</objects>
</program>
at org.eolang.lints.LintByXsl.sanitized (LintByXsl.java:137)
at org.eolang.lints.LintByXsl.defects (LintByXsl.java:98)
at org.eolang.lints.LintByXsl.defects (LintByXsl.java:45)
at org.eolang.lints.Program.defects (Program.java:87)
at org.eolang.jeo.representation.VerifiedEo.asXml (VerifiedEo.java:68)
at org.eolang.jeo.representation.MeasuredEo.asXml (MeasuredEo.java:58)
at org.eolang.jeo.representation.BytecodeRepresentation.toEO (BytecodeRepresentation.java:117)
at org.eolang.jeo.Disassembling.transform (Disassembling.java:86)
at org.eolang.jeo.Caching.tryTransform (Caching.java:93)
at org.eolang.jeo.Caching.transform (Caching.java:63)
at org.eolang.jeo.Logging.transform (Logging.java:83)
at org.eolang.jeo.Disassembler.disassemble (Disassembler.java:113)
at org.eolang.jeo.ParallelTranslator.translate (ParallelTranslator.java:70)
at java.util.stream.ReferencePipeline$3$1.accept (ReferencePipeline.java:197)
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining (ArrayList.java:1708)
at java.util.stream.AbstractPipeline.copyInto (AbstractPipeline.java:509)
at java.util.stream.ForEachOps$ForEachTask.compute (ForEachOps.java:291)
at java.util.concurrent.CountedCompleter.exec (CountedCompleter.java:754)
at java.util.concurrent.ForkJoinTask.doExec (ForkJoinTask.java:387)
at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec (ForkJoinPool.java:1312)
at java.util.concurrent.ForkJoinPool.scan (ForkJoinPool.java:1843)
at java.util.concurrent.ForkJoinPool.runWorker (ForkJoinPool.java:1808)
at java.util.concurrent.ForkJoinWorkerThread.run (ForkJoinWorkerThread.java:188) I have no idea what I should fix to make it work. The error message is unreadable. |
@volodya-lombrozo check this:
|
@maxonfjvipon What does it mean? |
@volodya-lombrozo @maxonfjvipon it's better to split larger problems into individual independent bug reports. Keeping long conversation like this makes it harder to navigate and trace. |
@yegor256 I would like to do it; however, the recent policy forbids me from doing so. |
@volodya-lombrozo the policy discourages you to submit tickets that don't lead to code changes, but not to NOT submit any bug reports. Keeping such a long discussion is one ticket is counter productive. Try to move in smaller steps forward: try one change, see the problem, report it, get a fix, close the ticket, report a new problem, and so on. If you (and all others) would be paid for each accepted bug report, you would follow this strategy automatically :) |
@volodya-lombrozo if you take a look at phi expression that you get after
Your |
@maxonfjvipon Ok, I will try to do it |
@yegor256 It's hard to draw a clear line between "tickets that don't lead to code changes" and any other tickets. This border doesn't exist, actually.
But safe. I don't loose points. So, for me, personally, it's productive.
I liked it actually and use this in other repositories! I used to enjoy it here as well.
I tend to disagree here. It has become risky to create new tickets. Someone like me can easily lose more points for reporting 'wrong' bugs than for creating 'good' ones. For example, let's imagine I receive 10 points for a 'good' issue but lose 10 points for a 'wrong' one. I end up with zero. So, what is the point of creating issues then? Moreover, it's only you who decides whether to add code changes or not. Personally, I believe it's a fair and right way to go. However, there isn't any formal process or review I can rely on — just your personal decision, which nobody can predict. As a result, it's easier, more profitable, and safer for me to avoid creating new issues. |
@volodya-lombrozo this wouldn't work if programmers would be paid only for accepted bug reports and merged pull requests :) |
@maxonfjvipon I've added random numbers to each name in the Caused by: org.apache.maven.plugin.PluginExecutionException: Execution bytecode-to-xmir of goal org.eolang:jeo-maven-plugin:1.0-SNAPSHOT:disassemble failed: java.lang.IllegalArgumentException: There is something wrong with the XMIR, found '/program/metas/meta[not(@line) or @line='']':
<?xml version="1.0" encoding="UTF-8"?>
<program xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
dob="2024-12-10T10:34:09"
ms="0"
name="j$Parameter"
revision="86f03be"
time="2024-12-10T07:34:27.909958Z"
version="1.0-SNAPSHOT"
xsi:noNamespaceSchemaLocation="https://www.eolang.org/xsd/XMIR-0.46.0.xsd">
<listing>// class version 52.0 (52)
// access flags 0x2601
public abstract @interface org/eolang/hone/param/Parameter implements java/lang/annotation/Annotation {
// compiled from: Parameter.java
@Ljava/lang/annotation/Retention;(value=Ljava/lang/annotation/RetentionPolicy;.RUNTIME)
@Ljava/lang/annotation/Target;(value={Ljava/lang/annotation/ElementType;.TYPE})
// access flags 0x401
public abstract value()Ljava/lang/String;
}
</listing>
<license>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.</license>
<metas>
<meta>
<head>package</head>
<tail>j$org.j$eolang.j$hone.j$param</tail>
<part>j$org.j$eolang.j$hone.j$param</part>
</meta>
<meta>
<head>alias</head>
<tail>jeo.seq.of2</tail>
<part>jeo.seq.of2</part>
</meta>
<meta>
<head>alias</head>
<tail>jeo.seq.of0</tail>
<part>jeo.seq.of0</part>
</meta>
<meta>
<head>alias</head>
<tail>jeo.seq.of1</tail>
<part>jeo.seq.of1</part>
</meta>
<meta>
<head>alias</head>
<tail>jeo.method</tail>
<part>jeo.method</part>
</meta>
<meta>
<head>alias</head>
<tail>jeo.params</tail>
<part>jeo.params</part>
</meta>
<meta>
<head>alias</head>
<tail>jeo.int</tail>
<part>jeo.int</part>
</meta>
<meta>
<head>alias</head>
<tail>jeo.annotation-property</tail>
<part>jeo.annotation-property</part>
</meta>
<meta>
<head>alias</head>
<tail>jeo.bool</tail>
<part>jeo.bool</part>
</meta>
<meta>
<head>alias</head>
<tail>jeo.class</tail>
<part>jeo.class</part>
</meta>
<meta>
<head>alias</head>
<tail>jeo.annotation</tail>
<part>jeo.annotation</part>
</meta>
<meta>
<head>alias</head>
<tail>jeo.maxs</tail>
<part>jeo.maxs</part>
</meta>
</metas>
<objects>
<o base="jeo.class" name="j$Parameter-1151987802">
<o base="jeo.int" name="version-384281494-258684867"><!-- 52 -->
<o base="org.eolang.bytes">00-00-00-00-00-00-00-34</o>
</o>
<o base="jeo.int" name="access-384281494-1213734771"><!-- 9729 -->
<o base="org.eolang.bytes">00-00-00-00-00-00-26-01</o>
</o>
<o base="org.eolang.string" name="supername-384281494"><!-- "java/lang/Object" -->
<o base="org.eolang.bytes">6A-61-76-61-2F-6C-61-6E-67-2F-4F-62-6A-65-63-74</o>
</o>
<o base="jeo.seq.of1" name="interfaces-384281494-2070841150">
<o base="org.eolang.string"><!-- "java/lang/annotation/Annotation" -->
<o base="org.eolang.bytes">6A-61-76-61-2F-6C-61-6E-67-2F-61-6E-6E-6F-74-61-74-69-6F-6E-2F-41-6E-6E-6F-74-61-74-69-6F-6E</o>
</o>
</o>
<o base="jeo.method"
name="j$value-%28%29Ljava%2Flang%2FString%3B-1524873271">
<o base="jeo.int" name="access-370606691-345433748"><!-- 1025 -->
<o base="org.eolang.bytes">00-00-00-00-00-00-04-01</o>
</o>
<o base="org.eolang.string" name="descriptor-370606691"><!-- "()Ljava/lang/String;" -->
<o base="org.eolang.bytes">28-29-4C-6A-61-76-61-2F-6C-61-6E-67-2F-53-74-72-69-6E-67-3B</o>
</o>
<o base="org.eolang.string" name="signature-370606691"><!-- "" -->
<o base="org.eolang.bytes">--</o>
</o>
<o base="jeo.seq.of0" name="exceptions-370606691-395917296"/>
<o base="jeo.maxs">
<o base="jeo.int" name="stack-1447194124-1862724769"><!-- 0 -->
<o base="org.eolang.bytes">00-00-00-00-00-00-00-00</o>
</o>
<o base="jeo.int" name="locals-1447194124-2104385215"><!-- 0 -->
<o base="org.eolang.bytes">00-00-00-00-00-00-00-00</o>
</o>
</o>
<o base="jeo.params" name="method-params-2124135980"/>
<o base="jeo.seq.of0" name="annotations-1542565947"/>
<o base="jeo.seq.of0" name="body-1893882340"/>
<o base="jeo.seq.of0" name="trycatchblocks-value-1105726702"/>
<o base="jeo.seq.of0" name="local-variable-table-29384195"/>
</o>
<o base="jeo.seq.of2" name="annotations-1955924670">
<o base="jeo.annotation"
name="annotation-1738567596-Ljava%2Flang%2Fannotation%2FRetention%3B-1164370441">
<o base="org.eolang.string"><!-- "Ljava/lang/annotation/Retention;" -->
<o base="org.eolang.bytes">4C-6A-61-76-61-2F-6C-61-6E-67-2F-61-6E-6E-6F-74-61-74-69-6F-6E-2F-52-65-74-65-6E-74-69-6F-6E-3B</o>
</o>
<o base="jeo.bool"><!-- true -->
<o base="org.eolang.bytes">01-</o>
</o>
<o base="jeo.annotation-property">
<o base="org.eolang.string"><!-- "ENUM" -->
<o base="org.eolang.bytes">45-4E-55-4D</o>
</o>
<o base="org.eolang.string"><!-- "value" -->
<o base="org.eolang.bytes">76-61-6C-75-65</o>
</o>
<o base="org.eolang.string"><!-- "Ljava/lang/annotation/RetentionPolicy;" -->
<o base="org.eolang.bytes">4C-6A-61-76-61-2F-6C-61-6E-67-2F-61-6E-6E-6F-74-61-74-69-6F-6E-2F-52-65-74-65-6E-74-69-6F-6E-50-6F-6C-69-63-79-3B</o>
</o>
<o base="org.eolang.string"><!-- "RUNTIME" -->
<o base="org.eolang.bytes">52-55-4E-54-49-4D-45</o>
</o>
</o>
</o>
<o base="jeo.annotation"
name="annotation-128680975-Ljava%2Flang%2Fannotation%2FTarget%3B-350346556">
<o base="org.eolang.string"><!-- "Ljava/lang/annotation/Target;" -->
<o base="org.eolang.bytes">4C-6A-61-76-61-2F-6C-61-6E-67-2F-61-6E-6E-6F-74-61-74-69-6F-6E-2F-54-61-72-67-65-74-3B</o>
</o>
<o base="jeo.bool"><!-- true -->
<o base="org.eolang.bytes">01-</o>
</o>
<o base="jeo.annotation-property">
<o base="org.eolang.string"><!-- "ARRAY" -->
<o base="org.eolang.bytes">41-52-52-41-59</o>
</o>
<o base="org.eolang.string"><!-- "value" -->
<o base="org.eolang.bytes">76-61-6C-75-65</o>
</o>
<o base="jeo.annotation-property">
<o base="org.eolang.string"><!-- "ENUM" -->
<o base="org.eolang.bytes">45-4E-55-4D</o>
</o>
<o base="org.eolang.string"><!-- "" -->
<o base="org.eolang.bytes">--</o>
</o>
<o base="org.eolang.string"><!-- "Ljava/lang/annotation/ElementType;" -->
<o base="org.eolang.bytes">4C-6A-61-76-61-2F-6C-61-6E-67-2F-61-6E-6E-6F-74-61-74-69-6F-6E-2F-45-6C-65-6D-65-6E-74-54-79-70-65-3B</o>
</o>
<o base="org.eolang.string"><!-- "TYPE" -->
<o base="org.eolang.bytes">54-59-50-45</o>
</o>
</o>
</o>
</o>
</o>
<o base="jeo.seq.of0" name="attributes-745504428"/>
</o>
</objects>
</program> Thus, it doesn't help at all. Please, fix the bug. It blocks the progress. |
@volodya-lombrozo it's a bug in lints: objectionary/lints#122 Let me fix it and release new version |
@yegor256 Thank you! Waiting for it. |
@volodya-lombrozo try to use lints 0.0.22, it will not raise this exception |
@yegor256 Indeed, I don't get this error anymore. However, I get this: Caused by: java.lang.IllegalStateException: EO is incorrect: [[broken-alias ERROR]:0 The first part of the alias is invalid: "jeo.seq.of2", [broken-alias ERROR]:0 The first part of the alias is invalid: "jeo.seq.of0", [broken-alias ERROR]:0 The first part of the alias is invalid: "jeo.seq.of1", [broken-alias ERROR]:0 The first part of the alias is invalid: "jeo.method", [broken-alias ERROR]:0 The first part of the alias is invalid: "jeo.params", [broken-alias ERROR]:0 The first part of the alias is invalid: "jeo.int", [broken-alias ERROR]:0 The first part of the alias is invalid: "jeo.annotation-property", [broken-alias ERROR]:0 The first part of the alias is invalid: "jeo.bool", [broken-alias ERROR]:0 The first part of the alias is invalid: "jeo.class", [broken-alias ERROR]:0 The first part of the alias is invalid: "jeo.annotation", [broken-alias ERROR]:0 The first part of the alias is invalid: "jeo.maxs", [mandatory-version WARNING]:0 The +version meta is mandatory, but is absent, [incorrect-package WARNING]:0 The format of the +package meta is wrong: "j$org.j$eolang.j$hone.j$param", [unsorted-metas WARNING]:0 The "alias jeo.seq.of2" meta is out of order, [unsorted-metas WARNING]:0 The "alias jeo.seq.of0" meta is out of order, [unsorted-metas WARNING]:0 The "alias jeo.seq.of1" meta is out of order, [unsorted-metas WARNING]:0 The "alias jeo.method" meta is out of order, [unsorted-metas WARNING]:0 The "alias jeo.params" meta is out of order, [unsorted-metas WARNING]:0 The "alias jeo.int" meta is out of order, [unsorted-metas WARNING]:0 The "alias jeo.annotation-property" meta is out of order, [unsorted-metas WARNING]:0 The "alias jeo.bool" meta is out of order, [unsorted-metas WARNING]:0 The "alias jeo.class" meta is out of order, [unsorted-metas WARNING]:0 The "alias jeo.annotation" meta is out of order, [unsorted-metas WARNING]:0 The "alias jeo.maxs" meta is out of order, [mandatory-home WARNING]:0 The +home meta is mandatory, but is absent]
at org.eolang.jeo.representation.VerifiedEo.asXml (VerifiedEo.java:71)
at org.eolang.jeo.representation.MeasuredEo.asXml (MeasuredEo.java:58)
at org.eolang.jeo.representation.BytecodeRepresentation.toEO (BytecodeRepresentation.java:117)
at org.eolang.jeo.Disassembling.transform (Disassembling.java:86)
at org.eolang.jeo.Caching.tryTransform (Caching.java:93)
at org.eolang.jeo.Caching.transform (Caching.java:63)
at org.eolang.jeo.Logging.transform (Logging.java:83)
at org.eolang.jeo.Disassembler.disassemble (Disassembler.java:113)
at org.eolang.jeo.ParallelTranslator.translate (ParallelTranslator.java:70)
at java.util.stream.ReferencePipeline$3$1.accept (ReferencePipeline.java:197)
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining (ArrayList.java:1708)
at java.util.stream.AbstractPipeline.copyInto (AbstractPipeline.java:509)
at java.util.stream.ForEachOps$ForEachTask.compute (ForEachOps.java:291)
at java.util.concurrent.CountedCompleter.exec (CountedCompleter.java:754)
at java.util.concurrent.ForkJoinTask.doExec (ForkJoinTask.java:387)
at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec (ForkJoinPool.java:1312)
at java.util.concurrent.ForkJoinPool.scan (ForkJoinPool.java:1843)
at java.util.concurrent.ForkJoinPool.runWorker (ForkJoinPool.java:1808)
at java.util.concurrent.ForkJoinWorkerThread.run (ForkJoinWorkerThread.java:188) Why aliases are broken? Seems, it's one more bug in |
@volodya-lombrozo please, submit a new ticket for every new problem. |
The issue is similar to this one: #3535 (comment)
In this case I added dashes to bytes, just to try, but the build failed.
How to reproduce:
jeo-maven-plugin:disassemble
intoxmir
xmir
tophi
by usingeo-maven-plugin:0.43.0:xmir-to-phi
phi
back toxmir
by usingeo-maven-plugin:0.43.0:phi-to-xmir
On the (3) step I get the exception:
Expected behaviour: all the transformation work without errors. Moreover,
xmir-to-phi
andphi-to-xmir
shouldn't alter the originalxmir
.These files might be helpful:
App.phi.txt
App.xmir.disassemble.txt
App.xmir.unphi.txt
The text was updated successfully, but these errors were encountered: