Open trosos opened 2 years ago
I believe that I maybe found a bug in the compiler.
cat > puzzle.cl <<EOF (mod params (defun ident (arg) (f (list arg)) ) (ident (ident params)) ) EOF run puzzle.cl
I expect a CLVM puzzle to be written to stdout, which would output its solution when passed to brun (i.e. "identity puzzle").
brun
The run command fails with the following message:
run
FAIL: first of non-cons 1
When I modify the puzzle in either one of the following ways, then it translates and the resulting CLVM behaves as expected:
(f (list arg))
(f arg)
(list arg)
(f (f arg))
(list (list arg))
(list (f arg))
(ident (ident params))
(ident params)
(mod params ...)
(mod (params) ...)
Please note that the documentation admits any of the following possibilities:
(mod (param_one param_two) ...)
(mod ((param)) ...)
Quoting https://chialisp.com/docs/high_level_lang#squaring-a-list:
You can name each parameter in a list or you can name the list itself. This works at any place where you name parameters, and allows you to handle lists where you aren't sure of the size.
thanks i have a candidate fix for this fairly certain it's a stray bug introduced in the conversion to rust pr: https://github.com/Chia-Network/clvm_tools_rs/pull/65
I believe that I maybe found a bug in the compiler.
Steps to reproduce:
Expected result:
I expect a CLVM puzzle to be written to stdout, which would output its solution when passed to
brun
(i.e. "identity puzzle").Actual results:
The
run
command fails with the following message:Some more insight:
When I modify the puzzle in either one of the following ways, then it translates and the resulting CLVM behaves as expected:
(f (list arg))
->(f arg)
(f (list arg))
->(list arg)
(f (list arg))
->(f (f arg))
(f (list arg))
->(list (list arg))
(f (list arg))
->(list (f arg))
(ident (ident params))
->(ident params)
(mod params ...)
->(mod (params) ...)
Please note that the documentation admits any of the following possibilities:
(mod params ...)
(mod (param_one param_two) ...)
(mod ((param)) ...)
Quoting https://chialisp.com/docs/high_level_lang#squaring-a-list: