[INFO] updating cached repository https://github.com/Vonstrab/Aps [INFO] running `"git" "-c" "credential.helper=" "-c" "credential.helper=/big/crater/work/cargo-home/bin/git-credential-null" "-c" "remote.origin.fetch=refs/heads/*:refs/heads/*" "fetch" "origin" "--force" "--prune"` [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 7340d7315afde87066b501560c8fd40b55ba40ef [INFO] testing Vonstrab/Aps against beta-2019-09-28 for beta-1.39-1 [INFO] running `"git" "clone" "work/cache/git-repos/https%3A%2F%2Fgithub.com%2FVonstrab%2FAps" "work/builds/worker-10/source"` [INFO] [stderr] Cloning into 'work/builds/worker-10/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/Vonstrab/Aps on toolchain beta-2019-09-28 [INFO] running `"/big/crater/work/cargo-home/bin/cargo" "+beta-2019-09-28" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started tweaking git repo https://github.com/Vonstrab/Aps [INFO] finished tweaking git repo https://github.com/Vonstrab/Aps [INFO] tweaked toml for git repo https://github.com/Vonstrab/Aps written to work/builds/worker-10/source/Cargo.toml [INFO] crate git repo https://github.com/Vonstrab/Aps already has a lockfile, it will not be regenerated [INFO] running `"/big/crater/work/cargo-home/bin/cargo" "+beta-2019-09-28" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"docker" "create" "-v" "/big/crater/work/builds/worker-10/target:/opt/rustwide/target:rw,Z" "-v" "/big/crater/work/builds/worker-10/source:/opt/rustwide/workdir:ro,Z" "-v" "/big/crater/work/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/big/crater/work/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2019-09-28" "build" "--frozen"` [INFO] [stdout] 080aecc79b3f028904d04f629384ae511af088637724fcf21265937c4198f27f [INFO] running `"docker" "start" "-a" "080aecc79b3f028904d04f629384ae511af088637724fcf21265937c4198f27f"` [INFO] [stderr] Compiling serde v1.0.87 [INFO] [stderr] Compiling byteorder v1.3.1 [INFO] [stderr] Compiling bit-vec v0.5.0 [INFO] [stderr] Compiling diff v0.1.11 [INFO] [stderr] Compiling lalrpop-util v0.16.3 [INFO] [stderr] Compiling regex-syntax v0.5.6 [INFO] [stderr] Compiling ascii-canvas v1.0.0 [INFO] [stderr] Compiling itertools v0.8.0 [INFO] [stderr] Compiling ena v0.11.0 [INFO] [stderr] Compiling aho-corasick v0.6.9 [INFO] [stderr] Compiling atty v0.2.11 [INFO] [stderr] Compiling syn v0.15.26 [INFO] [stderr] Compiling phf_generator v0.7.24 [INFO] [stderr] Compiling bit-set v0.5.0 [INFO] [stderr] Compiling string_cache_codegen v0.4.2 [INFO] [stderr] Compiling regex v1.1.0 [INFO] [stderr] Compiling block-buffer v0.7.0 [INFO] [stderr] Compiling sha2 v0.8.0 [INFO] [stderr] Compiling string_cache v0.7.3 [INFO] [stderr] Compiling regex v0.2.11 [INFO] [stderr] Compiling serde_derive v1.0.87 [INFO] [stderr] Compiling docopt v1.0.2 [INFO] [stderr] Compiling lalrpop v0.16.3 [INFO] [stderr] Compiling aps v1.0.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 46.37s [INFO] running `"docker" "inspect" "080aecc79b3f028904d04f629384ae511af088637724fcf21265937c4198f27f"` [INFO] running `"docker" "rm" "-f" "080aecc79b3f028904d04f629384ae511af088637724fcf21265937c4198f27f"` [INFO] [stdout] 080aecc79b3f028904d04f629384ae511af088637724fcf21265937c4198f27f [INFO] running `"docker" "create" "-v" "/big/crater/work/builds/worker-10/target:/opt/rustwide/target:rw,Z" "-v" "/big/crater/work/builds/worker-10/source:/opt/rustwide/workdir:ro,Z" "-v" "/big/crater/work/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/big/crater/work/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2019-09-28" "test" "--frozen" "--no-run"` [INFO] [stdout] 6e5e60c433f71061f493f6b116b1f3501be34f5bca54d1890e196f39872073f9 [INFO] running `"docker" "start" "-a" "6e5e60c433f71061f493f6b116b1f3501be34f5bca54d1890e196f39872073f9"` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Compiling aps v1.0.0 (/opt/rustwide/workdir) [INFO] [stderr] warning: function is never used: `prog_109` [INFO] [stderr] --> src/main.rs:260:5 [INFO] [stderr] | [INFO] [stderr] 260 | fn prog_109() { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 5.59s [INFO] running `"docker" "inspect" "6e5e60c433f71061f493f6b116b1f3501be34f5bca54d1890e196f39872073f9"` [INFO] running `"docker" "rm" "-f" "6e5e60c433f71061f493f6b116b1f3501be34f5bca54d1890e196f39872073f9"` [INFO] [stdout] 6e5e60c433f71061f493f6b116b1f3501be34f5bca54d1890e196f39872073f9 [INFO] running `"docker" "create" "-v" "/big/crater/work/builds/worker-10/target:/opt/rustwide/target:rw,Z" "-v" "/big/crater/work/builds/worker-10/source:/opt/rustwide/workdir:ro,Z" "-v" "/big/crater/work/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/big/crater/work/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2019-09-28" "test" "--frozen"` [INFO] [stdout] 0a266723ad4e42194f8985fe7a87bd1173be2fe587ae30f4a23286b79a9fb3de [INFO] running `"docker" "start" "-a" "0a266723ad4e42194f8985fe7a87bd1173be2fe587ae30f4a23286b79a9fb3de"` [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 0.44s [INFO] [stderr] Running /opt/rustwide/target/debug/deps/aps_lib-773e215cf1d79e2b [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] [stderr] Running /opt/rustwide/target/debug/deps/aps_bin-f29cd2df161fbcd9 [INFO] [stdout] [INFO] [stdout] running 46 tests [INFO] [stdout] test aps0::prog_002 ... FAILED [INFO] [stdout] test aps0::prog_005 ... FAILED [INFO] [stdout] test aps0::prog_003 ... FAILED [INFO] [stdout] test aps0::prog_001 ... FAILED [INFO] [stdout] test aps0::prog_006 ... FAILED [INFO] [stdout] test aps0::prog_015 ... FAILED [INFO] [stdout] test aps0::prog_004 ... FAILED [INFO] [stdout] test aps0::prog_007 ... FAILED [INFO] [stdout] test aps0::prog_008 ... FAILED [INFO] [stdout] test aps0::prog_009 ... FAILED [INFO] [stdout] test aps0::prog_014 ... FAILED [INFO] [stdout] test aps0::prog_011 ... FAILED [INFO] [stdout] test aps0::prog_013 ... FAILED [INFO] [stdout] test aps0::prog_010 ... FAILED [INFO] [stdout] test aps0::prog_012 ... FAILED [INFO] [stdout] test aps0::prog_017 ... FAILED [INFO] [stdout] test aps1::prog_104 ... FAILED [INFO] [stdout] test aps0::prog_016 ... FAILED [INFO] [stdout] test aps1::prog_110 ... FAILED [INFO] [stdout] test aps1::prog_112 ... FAILED [INFO] [stdout] test aps1::prog_105 ... FAILED [INFO] [stdout] test aps1::prog_113 ... FAILED [INFO] [stdout] test aps1::prog_108 ... FAILED [INFO] [stdout] test aps1::prog_102 ... FAILED [INFO] [stdout] test aps1::prog_106 ... FAILED [INFO] [stdout] test aps1::prog_101 ... FAILED [INFO] [stdout] test aps1::prog_103 ... FAILED [INFO] [stdout] test aps1::prog_107 ... FAILED [INFO] [stdout] test aps1::prog_117 ... FAILED [INFO] [stdout] test aps1::prog_111 ... FAILED [INFO] [stdout] test aps1::prog_100 ... FAILED [INFO] [stdout] test aps1::prog_118 ... FAILED [INFO] [stdout] test aps1::prog_114 ... FAILED [INFO] [stdout] test aps1::prog_116 ... FAILED [INFO] [stdout] test aps2::prog_206 ... FAILED [INFO] [stdout] test aps1::prog_115 ... FAILED [INFO] [stdout] test aps1::prog_120 ... FAILED [INFO] [stdout] test aps2::prog_201 ... FAILED [INFO] [stdout] test aps2::prog_200 ... FAILED [INFO] [stdout] test aps0::prog_000 ... FAILED [INFO] [stdout] test aps2::prog_205 ... FAILED [INFO] [stdout] test aps2::prog_202 ... FAILED [INFO] [stdout] test aps2::prog_203 ... FAILED [INFO] [stdout] test aps1::prog_119 ... FAILED [INFO] [stdout] test aps2::prog_204 ... FAILED [INFO] [stdout] test aps2::prog_207 ... FAILED [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [INFO] [stdout] ---- aps0::prog_002 stdout ---- [INFO] [stdout] Parse file : "test/aps0/prog002.aps" [INFO] [stdout] Code : [INFO] [stdout] [ [INFO] [stdout] CONST x int 42; [INFO] [stdout] ECHO x [INFO] [stdout] ] [INFO] [stdout] [INFO] [stdout] AST : ASTCMDS ASTConst ( "x" , int , ASTInt(42) ), FSTAT( ASTEcho ( ASTIdent( "x" ) ) ) [INFO] [stdout] [INFO] [stdout] OutProlog : cdms( dec( const( x , int , integer( 42 ) ) ) , stat( echo( id( x ) ) ) ). [INFO] [stdout] thread 'aps0::prog_002' panicked at 'Erreur de type', src/main.rs:103:9 [INFO] [stdout] note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace. [INFO] [stdout] [INFO] [stdout] ---- aps0::prog_005 stdout ---- [INFO] [stdout] Parse file : "test/aps0/prog005.aps" [INFO] [stdout] Code : [INFO] [stdout] [ [INFO] [stdout] CONST x int 7; [INFO] [stdout] CONST x int (mul x 3); [INFO] [stdout] ECHO (mul x 2) [INFO] [stdout] ] [INFO] [stdout] [INFO] [stdout] AST : ASTCMDS ASTConst ( "x" , int , ASTInt(7) ), ASTCMDS ASTConst ( "x" , int , ASTBinPrim( Mul , ASTIdent( "x" ) , ASTInt(3) ) ), FSTAT( ASTEcho ( ASTBinPrim( Mul , ASTIdent( "x" ) , ASTInt(2) ) ) ) [INFO] [stdout] [INFO] [stdout] OutProlog : cdms( dec( const( x , int , integer( 7 ) ) ) , cdms( dec( const( x , int , binOpInt( id( x ) , integer( 3 ) ) ) ) , stat( echo( binOpInt( id( x ) , integer( 2 ) ) ) ) ) ). [INFO] [stdout] thread 'aps0::prog_005' panicked at 'Erreur de type', src/main.rs:103:9 [INFO] [stdout] [INFO] [stdout] ---- aps0::prog_003 stdout ---- [INFO] [stdout] Parse file : "test/aps0/prog003.aps" [INFO] [stdout] Code : [INFO] [stdout] [ [INFO] [stdout] CONST x int 21; [INFO] [stdout] ECHO (mul x 2) [INFO] [stdout] ] [INFO] [stdout] [INFO] [stdout] AST : ASTCMDS ASTConst ( "x" , int , ASTInt(21) ), FSTAT( ASTEcho ( ASTBinPrim( Mul , ASTIdent( "x" ) , ASTInt(2) ) ) ) [INFO] [stdout] [INFO] [stdout] OutProlog : cdms( dec( const( x , int , integer( 21 ) ) ) , stat( echo( binOpInt( id( x ) , integer( 2 ) ) ) ) ). [INFO] [stdout] thread 'aps0::prog_003' panicked at 'Erreur de type', src/main.rs:103:9 [INFO] [stdout] [INFO] [stdout] ---- aps0::prog_001 stdout ---- [INFO] [stdout] Parse file : "test/aps0/prog001.aps" [INFO] [stdout] Code : [INFO] [stdout] [ [INFO] [stdout] ECHO (sub (div (add 73 128) 3) (add 3 (mul 11 2))) [INFO] [stdout] ] [INFO] [stdout] [INFO] [stdout] AST : FSTAT( ASTEcho ( ASTBinPrim( Sub , ASTBinPrim( Div , ASTBinPrim( Add , ASTInt(73) , ASTInt(128) ) , ASTInt(3) ) , ASTBinPrim( Add , ASTInt(3) , ASTBinPrim( Mul , ASTInt(11) , ASTInt(2) ) ) ) ) ) [INFO] [stdout] [INFO] [stdout] OutProlog : stat( echo( binOpInt( binOpInt( binOpInt( integer( 73 ) , integer( 128 ) ) , integer( 3 ) ) , binOpInt( integer( 3 ) , binOpInt( integer( 11 ) , integer( 2 ) ) ) ) ) ) . [INFO] [stdout] thread 'aps0::prog_001' panicked at 'Erreur de type', src/main.rs:103:9 [INFO] [stdout] [INFO] [stdout] ---- aps0::prog_006 stdout ---- [INFO] [stdout] Parse file : "test/aps0/prog006.aps" [INFO] [stdout] Code : [INFO] [stdout] [ [INFO] [stdout] ECHO (if (eq 0 0) 42 43) [INFO] [stdout] ] [INFO] [stdout] AST : FSTAT( ASTEcho ( ASTif( ASTBinPrim( Eq , ASTInt(0) , ASTInt(0) ) ,ASTInt(42), ASTInt(43)) ) ) [INFO] [stdout] [INFO] [stdout] OutProlog : stat( echo( exprIf( binOpIntBool( integer( 0 ) , integer( 0 ) ) , integer( 42 ) , integer( 43 ) ) ) ) . [INFO] [stdout] thread 'aps0::prog_006' panicked at 'Erreur de type', src/main.rs:103:9 [INFO] [stdout] [INFO] [stdout] ---- aps0::prog_015 stdout ---- [INFO] [stdout] Parse file : "test/aps0/prog015.aps" [INFO] [stdout] Code : [INFO] [stdout] [ [INFO] [stdout] ECHO ([x:int](add x 5) 37) [INFO] [stdout] ] [INFO] [stdout] thread 'aps0::prog_015' panicked at 'Parser failure: UnrecognizedToken { token: Some((10, Token(20, "["), 11)), expected: ["\"add\"", "\"alloc\"", "\"and\"", "\"div\"", "\"eq\"", "\"if\"", "\"len\"", "\"lt\"", "\"mul\"", "\"not\"", "\"nth\"", "\"or\"", "\"sub\"", "r#\"([a-zA-Z])([a-zA-Z0-9])*\"#"] }', src/libcore/result.rs:1165:5 [INFO] [stdout] [INFO] [stdout] ---- aps0::prog_004 stdout ---- [INFO] [stdout] Parse file : "test/aps0/prog004.aps" [INFO] [stdout] Code : [INFO] [stdout] [ [INFO] [stdout] CONST x int 7; [INFO] [stdout] CONST y int (mul x 3); [INFO] [stdout] ECHO (mul y 2) [INFO] [stdout] ] [INFO] [stdout] [INFO] [stdout] AST : ASTCMDS ASTConst ( "x" , int , ASTInt(7) ), ASTCMDS ASTConst ( "y" , int , ASTBinPrim( Mul , ASTIdent( "x" ) , ASTInt(3) ) ), FSTAT( ASTEcho ( ASTBinPrim( Mul , ASTIdent( "y" ) , ASTInt(2) ) ) ) [INFO] [stdout] [INFO] [stdout] OutProlog : cdms( dec( const( x , int , integer( 7 ) ) ) , cdms( dec( const( y , int , binOpInt( id( x ) , integer( 3 ) ) ) ) , stat( echo( binOpInt( id( y ) , integer( 2 ) ) ) ) ) ). [INFO] [stdout] thread 'aps0::prog_004' panicked at 'Erreur de type', src/main.rs:103:9 [INFO] [stdout] [INFO] [stdout] ---- aps0::prog_007 stdout ---- [INFO] [stdout] Parse file : "test/aps0/prog007.aps" [INFO] [stdout] Code : [INFO] [stdout] [ [INFO] [stdout] ECHO (if (eq 0 0) 42 43) [INFO] [stdout] ] [INFO] [stdout] AST : FSTAT( ASTEcho ( ASTif( ASTBinPrim( Eq , ASTInt(0) , ASTInt(0) ) ,ASTInt(42), ASTInt(43)) ) ) [INFO] [stdout] [INFO] [stdout] OutProlog : stat( echo( exprIf( binOpIntBool( integer( 0 ) , integer( 0 ) ) , integer( 42 ) , integer( 43 ) ) ) ) . [INFO] [stdout] thread 'aps0::prog_007' panicked at 'Erreur de type', src/main.rs:103:9 [INFO] [stdout] [INFO] [stdout] ---- aps0::prog_008 stdout ---- [INFO] [stdout] Parse file : "test/aps0/prog008.aps" [INFO] [stdout] Code : [INFO] [stdout] [ [INFO] [stdout] ECHO (if (lt 0 1) 42 43) [INFO] [stdout] ] [INFO] [stdout] AST : FSTAT( ASTEcho ( ASTif( ASTBinPrim( Lt , ASTInt(0) , ASTInt(1) ) ,ASTInt(42), ASTInt(43)) ) ) [INFO] [stdout] [INFO] [stdout] OutProlog : stat( echo( exprIf( binOpIntBool( integer( 0 ) , integer( 1 ) ) , integer( 42 ) , integer( 43 ) ) ) ) . [INFO] [stdout] thread 'aps0::prog_008' panicked at 'Erreur de type', src/main.rs:103:9 [INFO] [stdout] [INFO] [stdout] ---- aps0::prog_009 stdout ---- [INFO] [stdout] Parse file : "test/aps0/prog009.aps" [INFO] [stdout] Code : [INFO] [stdout] [ [INFO] [stdout] ECHO (if (lt 1 0) 43 42) [INFO] [stdout] ] [INFO] [stdout] AST : FSTAT( ASTEcho ( ASTif( ASTBinPrim( Lt , ASTInt(1) , ASTInt(0) ) ,ASTInt(43), ASTInt(42)) ) ) [INFO] [stdout] [INFO] [stdout] OutProlog : stat( echo( exprIf( binOpIntBool( integer( 1 ) , integer( 0 ) ) , integer( 43 ) , integer( 42 ) ) ) ) . [INFO] [stdout] thread 'aps0::prog_009' panicked at 'Erreur de type', src/main.rs:103:9 [INFO] [stdout] [INFO] [stdout] ---- aps0::prog_014 stdout ---- [INFO] [stdout] Parse file : "test/aps0/prog014.aps" [INFO] [stdout] Code : [INFO] [stdout] [ [INFO] [stdout] CONST f (int -> int) [x:int] (add x 5); [INFO] [stdout] ECHO (f 37) [INFO] [stdout] ] [INFO] [stdout] AST : ASTCMDS ASTConst ( "f" , int -> int , ASTAbs( [Arg { ident: "x", id_type: int }] , ASTBinPrim( Add , ASTIdent( "x" ) , ASTInt(5) ) ) ), FSTAT( ASTEcho ( ASTApp( "f" ,[ASTInt(37)]) ) ) [INFO] [stdout] [INFO] [stdout] OutProlog : cdms( dec( const( f , int -> int , abs( [(x , int)] , binOpInt( id( x ) , integer( 5 ) ) ) ) ) , stat( echo( app( f , [integer( 37 )] ) ) ) ). [INFO] [stdout] thread 'aps0::prog_014' panicked at 'Erreur de type', src/main.rs:103:9 [INFO] [stdout] [INFO] [stdout] ---- aps0::prog_011 stdout ---- [INFO] [stdout] Parse file : "test/aps0/prog011.aps" [INFO] [stdout] Code : [INFO] [stdout] [ [INFO] [stdout] CONST a int 5; [INFO] [stdout] FUN f int [x:int] (add x a); [INFO] [stdout] ECHO (f 37) [INFO] [stdout] ] [INFO] [stdout] AST : ASTCMDS ASTConst ( "a" , int , ASTInt(5) ), ASTCMDS ASTFunc ( "f" , int , [Arg { ident: "x", id_type: int }] , ASTBinPrim( Add , ASTIdent( "x" ) , ASTIdent( "a" ) ) ), FSTAT( ASTEcho ( ASTApp( "f" ,[ASTInt(37)]) ) ) [INFO] [stdout] [INFO] [stdout] OutProlog : cdms( dec( const( a , int , integer( 5 ) ) ) , cdms( dec( fonction( f , int , [(x , int)] , binOpInt( id( x ) , id( a ) ) ) ) , stat( echo( app( f , [integer( 37 )] ) ) ) ) ). [INFO] [stdout] thread 'aps0::prog_011' panicked at 'Erreur de type', src/main.rs:103:9 [INFO] [stdout] [INFO] [stdout] ---- aps0::prog_013 stdout ---- [INFO] [stdout] Parse file : "test/aps0/prog013.aps" [INFO] [stdout] Code : [INFO] [stdout] [ [INFO] [stdout] FUN REC f int [x:int] (if (lt x 42) (f (add x 1)) (if (lt 42 x) (f (sub x 1)) x)); [INFO] [stdout] ECHO (f 53) [INFO] [stdout] ] [INFO] [stdout] AST : ASTCMDS ASTFuncRec ( "f" , int , [Arg { ident: "x", id_type: int }] , ASTif( ASTBinPrim( Lt , ASTIdent( "x" ) , ASTInt(42) ) ,ASTApp( "f" ,[ASTBinPrim( Add , ASTIdent( "x" ) , ASTInt(1) )]), ASTif( ASTBinPrim( Lt , ASTInt(42) , ASTIdent( "x" ) ) ,ASTApp( "f" ,[ASTBinPrim( Sub , ASTIdent( "x" ) , ASTInt(1) )]), ASTIdent( "x" ))) ), FSTAT( ASTEcho ( ASTApp( "f" ,[ASTInt(53)]) ) ) [INFO] [stdout] [INFO] [stdout] OutProlog : cdms( dec( fonctionRec( f , int , [(x , int)] , exprIf( binOpIntBool( id( x ) , integer( 42 ) ) , app( f , [binOpInt( id( x ) , integer( 1 ) )] ) , exprIf( binOpIntBool( integer( 42 ) , id( x ) ) , app( f , [binOpInt( id( x ) , integer( 1 ) )] ) , id( x ) ) ) ) ) , stat( echo( app( f , [integer( 53 )] ) ) ) ). [INFO] [stdout] thread 'aps0::prog_013' panicked at 'Erreur de type', src/main.rs:103:9 [INFO] [stdout] [INFO] [stdout] ---- aps0::prog_010 stdout ---- [INFO] [stdout] Parse file : "test/aps0/prog010.aps" [INFO] [stdout] Code : [INFO] [stdout] [ [INFO] [stdout] FUN f int [x:int] (add x 5); [INFO] [stdout] ECHO (f 37) [INFO] [stdout] ] [INFO] [stdout] AST : ASTCMDS ASTFunc ( "f" , int , [Arg { ident: "x", id_type: int }] , ASTBinPrim( Add , ASTIdent( "x" ) , ASTInt(5) ) ), FSTAT( ASTEcho ( ASTApp( "f" ,[ASTInt(37)]) ) ) [INFO] [stdout] [INFO] [stdout] OutProlog : cdms( dec( fonction( f , int , [(x , int)] , binOpInt( id( x ) , integer( 5 ) ) ) ) , stat( echo( app( f , [integer( 37 )] ) ) ) ). [INFO] [stdout] thread 'aps0::prog_010' panicked at 'Erreur de type', src/main.rs:103:9 [INFO] [stdout] [INFO] [stdout] ---- aps0::prog_012 stdout ---- [INFO] [stdout] Parse file : "test/aps0/prog012.aps" [INFO] [stdout] Code : [INFO] [stdout] [ [INFO] [stdout] FUN REC f int [x:int] (if (lt x 42) (f (add x 1)) (if (lt 42 x) (f (sub x 1)) x)); [INFO] [stdout] ECHO (f 23) [INFO] [stdout] ] [INFO] [stdout] AST : ASTCMDS ASTFuncRec ( "f" , int , [Arg { ident: "x", id_type: int }] , ASTif( ASTBinPrim( Lt , ASTIdent( "x" ) , ASTInt(42) ) ,ASTApp( "f" ,[ASTBinPrim( Add , ASTIdent( "x" ) , ASTInt(1) )]), ASTif( ASTBinPrim( Lt , ASTInt(42) , ASTIdent( "x" ) ) ,ASTApp( "f" ,[ASTBinPrim( Sub , ASTIdent( "x" ) , ASTInt(1) )]), ASTIdent( "x" ))) ), FSTAT( ASTEcho ( ASTApp( "f" ,[ASTInt(23)]) ) ) [INFO] [stdout] [INFO] [stdout] OutProlog : cdms( dec( fonctionRec( f , int , [(x , int)] , exprIf( binOpIntBool( id( x ) , integer( 42 ) ) , app( f , [binOpInt( id( x ) , integer( 1 ) )] ) , exprIf( binOpIntBool( integer( 42 ) , id( x ) ) , app( f , [binOpInt( id( x ) , integer( 1 ) )] ) , id( x ) ) ) ) ) , stat( echo( app( f , [integer( 23 )] ) ) ) ). [INFO] [stdout] thread 'aps0::prog_012' panicked at 'Erreur de type', src/main.rs:103:9 [INFO] [stdout] [INFO] [stdout] ---- aps0::prog_017 stdout ---- [INFO] [stdout] Parse file : "test/aps0/prog017.aps" [INFO] [stdout] Code : [INFO] [stdout] [ [INFO] [stdout] FUN f (int -> int) [x:int][y:int](add x y); [INFO] [stdout] ECHO ((f 21) 21) [INFO] [stdout] ] [INFO] [stdout] thread 'aps0::prog_017' panicked at 'Parser failure: UnrecognizedToken { token: Some((56, Token(3, "("), 57)), expected: ["\"add\"", "\"alloc\"", "\"and\"", "\"div\"", "\"eq\"", "\"if\"", "\"len\"", "\"lt\"", "\"mul\"", "\"not\"", "\"nth\"", "\"or\"", "\"sub\"", "r#\"([a-zA-Z])([a-zA-Z0-9])*\"#"] }', src/libcore/result.rs:1165:5 [INFO] [stdout] [INFO] [stdout] ---- aps1::prog_104 stdout ---- [INFO] [stdout] Parse file : "test/aps1/prog104.aps" [INFO] [stdout] Code : [INFO] [stdout] [ [INFO] [stdout] CONST x int 0; [INFO] [stdout] IF (eq x 42) [INFO] [stdout] [ ECHO x ] [INFO] [stdout] [ ECHO 42 ] [INFO] [stdout] ] [INFO] [stdout] AST : ASTCMDS ASTConst ( "x" , int , ASTInt(0) ), FSTAT( ASTIF( ASTBinPrim( Eq , ASTIdent( "x" ) , ASTInt(42) ) , FSTAT( ASTEcho ( ASTIdent( "x" ) ) ) , FSTAT( ASTEcho ( ASTInt(42) ) ) ) ) [INFO] [stdout] [INFO] [stdout] OutProlog : cdms( dec( const( x , int , integer( 0 ) ) ) , stat( statIf( binOpIntBool( id( x ) , integer( 42 ) ) , stat( echo( id( x ) ) ) , stat( echo( integer( 42 ) ) ) ) ) ). [INFO] [stdout] thread 'aps1::prog_104' panicked at 'Erreur de type', src/main.rs:103:9 [INFO] [stdout] [INFO] [stdout] ---- aps0::prog_016 stdout ---- [INFO] [stdout] Parse file : "test/aps0/prog016.aps" [INFO] [stdout] Code : [INFO] [stdout] [ [INFO] [stdout] ECHO ([f:(int->int)](f 37) [x:int](add x 5)) [INFO] [stdout] ] [INFO] [stdout] thread 'aps0::prog_016' panicked at 'Parser failure: UnrecognizedToken { token: Some((10, Token(20, "["), 11)), expected: ["\"add\"", "\"alloc\"", "\"and\"", "\"div\"", "\"eq\"", "\"if\"", "\"len\"", "\"lt\"", "\"mul\"", "\"not\"", "\"nth\"", "\"or\"", "\"sub\"", "r#\"([a-zA-Z])([a-zA-Z0-9])*\"#"] }', src/libcore/result.rs:1165:5 [INFO] [stdout] [INFO] [stdout] ---- aps1::prog_110 stdout ---- [INFO] [stdout] Parse file : "test/aps1/prog110.aps" [INFO] [stdout] Code : [INFO] [stdout] [ [INFO] [stdout] VAR x int; [INFO] [stdout] VAR b bool; [INFO] [stdout] SET x 0; [INFO] [stdout] SET b false; [INFO] [stdout] WHILE (not b) [ [INFO] [stdout] SET x (add x 1); [INFO] [stdout] IF (eq x 42) [INFO] [stdout] [ SET b true ] [INFO] [stdout] [ SET b false ] [INFO] [stdout] ]; [INFO] [stdout] ECHO x [INFO] [stdout] ] [INFO] [stdout] AST : ASTCMDS ASTVar ( "x" ,int ), ASTCMDS ASTVar ( "b" ,bool ), ASTCMDS ASTSet( Ident("x") , ASTInt(0) ), ASTCMDS ASTSet( Ident("b") , ASTBool(false) ), ASTCMDS ASTWHILE( ASTPrim( Not, ASTIdent( "b" ) ) , ASTCMDS ASTSet( Ident("x") , ASTBinPrim( Add , ASTIdent( "x" ) , ASTInt(1) ) ), FSTAT( ASTIF( ASTBinPrim( Eq , ASTIdent( "x" ) , ASTInt(42) ) , FSTAT( ASTSet( Ident("b") , ASTBool(true) ) ) , FSTAT( ASTSet( Ident("b") , ASTBool(false) ) ) ) ) ), FSTAT( ASTEcho ( ASTIdent( "x" ) ) ) [INFO] [stdout] [INFO] [stdout] OutProlog : cdms( dec( var( x , int ) ) , cdms( dec( var( b , bool ) ) , cdms( stat( set( id(x) , integer( 0 ) ) ) , cdms( stat( set( id(b) , false ) ) , cdms( stat( swhile( unOp( id( b ) ) , cdms( stat( set( id(x) , binOpInt( id( x ) , integer( 1 ) ) ) ) , stat( statIf( binOpIntBool( id( x ) , integer( 42 ) ) , stat( set( id(b) , true ) ) , stat( set( id(b) , false ) ) ) ) ) ) ) , stat( echo( id( x ) ) ) ) ) ) ) ). [INFO] [stdout] thread 'aps1::prog_110' panicked at 'Erreur de type', src/main.rs:103:9 [INFO] [stdout] [INFO] [stdout] ---- aps1::prog_112 stdout ---- [INFO] [stdout] Parse file : "test/aps1/prog112.aps" [INFO] [stdout] Code : [INFO] [stdout] [ [INFO] [stdout] PROC printBool [b:bool] [INFO] [stdout] [ [INFO] [stdout] IF b [ECHO 1 ] [ECHO 0] [INFO] [stdout] ]; [INFO] [stdout] CALL printBool true [INFO] [stdout] ] [INFO] [stdout] AST : ASTCMDS ASTProc ( "printBool" , [Arg { ident: "b", id_type: bool }] , FSTAT( ASTIF( ASTIdent( "b" ) , FSTAT( ASTEcho ( ASTInt(1) ) ) , FSTAT( ASTEcho ( ASTInt(0) ) ) ) ) ), FSTAT( ASTCall( "printBool" , [ASTBool(true)] ) ) [INFO] [stdout] [INFO] [stdout] OutProlog : cdms( dec( proc( printBool , [(b , bool)] , stat( statIf( id( b ) , stat( echo( integer( 1 ) ) ) , stat( echo( integer( 0 ) ) ) ) ) )) , stat( call( printBool , [true] ) ) ). [INFO] [stdout] thread 'aps1::prog_112' panicked at 'Erreur de type', src/main.rs:103:9 [INFO] [stdout] [INFO] [stdout] ---- aps1::prog_105 stdout ---- [INFO] [stdout] Parse file : "test/aps1/prog105.aps" [INFO] [stdout] Code : [INFO] [stdout] [ [INFO] [stdout] VAR x int; [INFO] [stdout] VAR y int; [INFO] [stdout] SET x 42; [INFO] [stdout] IF (eq x 42) [INFO] [stdout] [ ECHO x ] [INFO] [stdout] [ SET y 42 ]; [INFO] [stdout] ECHO y [INFO] [stdout] ] [INFO] [stdout] AST : ASTCMDS ASTVar ( "x" ,int ), ASTCMDS ASTVar ( "y" ,int ), ASTCMDS ASTSet( Ident("x") , ASTInt(42) ), ASTCMDS ASTIF( ASTBinPrim( Eq , ASTIdent( "x" ) , ASTInt(42) ) , FSTAT( ASTEcho ( ASTIdent( "x" ) ) ) , FSTAT( ASTSet( Ident("y") , ASTInt(42) ) ) ), FSTAT( ASTEcho ( ASTIdent( "y" ) ) ) [INFO] [stdout] [INFO] [stdout] OutProlog : cdms( dec( var( x , int ) ) , cdms( dec( var( y , int ) ) , cdms( stat( set( id(x) , integer( 42 ) ) ) , cdms( stat( statIf( binOpIntBool( id( x ) , integer( 42 ) ) , stat( echo( id( x ) ) ) , stat( set( id(y) , integer( 42 ) ) ) ) ) , stat( echo( id( y ) ) ) ) ) ) ). [INFO] [stdout] thread 'aps1::prog_105' panicked at 'Erreur de type', src/main.rs:103:9 [INFO] [stdout] note: panic did not include expected string 'variable not initialised' [INFO] [stdout] ---- aps1::prog_113 stdout ---- [INFO] [stdout] Parse file : "test/aps1/prog113.aps" [INFO] [stdout] Code : [INFO] [stdout] [ [INFO] [stdout] PROC printBool [b:bool] [INFO] [stdout] [ [INFO] [stdout] IF b [ ECHO 1 ] [ ECHO 0 ] [INFO] [stdout] ]; [INFO] [stdout] CALL printBool false [INFO] [stdout] ] [INFO] [stdout] AST : ASTCMDS ASTProc ( "printBool" , [Arg { ident: "b", id_type: bool }] , FSTAT( ASTIF( ASTIdent( "b" ) , FSTAT( ASTEcho ( ASTInt(1) ) ) , FSTAT( ASTEcho ( ASTInt(0) ) ) ) ) ), FSTAT( ASTCall( "printBool" , [ASTBool(false)] ) ) [INFO] [stdout] [INFO] [stdout] OutProlog : cdms( dec( proc( printBool , [(b , bool)] , stat( statIf( id( b ) , stat( echo( integer( 1 ) ) ) , stat( echo( integer( 0 ) ) ) ) ) )) , stat( call( printBool , [false] ) ) ). [INFO] [stdout] thread 'aps1::prog_113' panicked at 'Erreur de type', src/main.rs:103:9 [INFO] [stdout] [INFO] [stdout] ---- aps1::prog_108 stdout ---- [INFO] [stdout] Parse file : "test/aps1/prog108.aps" [INFO] [stdout] Code : [INFO] [stdout] [ [INFO] [stdout] VAR x int; [INFO] [stdout] SET x 42; [INFO] [stdout] ECHO x; [INFO] [stdout] WHILE (lt x 42) [ [INFO] [stdout] SET x (add x 1); [INFO] [stdout] ECHO x [INFO] [stdout] ]; [INFO] [stdout] ECHO x [INFO] [stdout] ] [INFO] [stdout] AST : ASTCMDS ASTVar ( "x" ,int ), ASTCMDS ASTSet( Ident("x") , ASTInt(42) ), ASTCMDS ASTEcho ( ASTIdent( "x" ) ), ASTCMDS ASTWHILE( ASTBinPrim( Lt , ASTIdent( "x" ) , ASTInt(42) ) , ASTCMDS ASTSet( Ident("x") , ASTBinPrim( Add , ASTIdent( "x" ) , ASTInt(1) ) ), FSTAT( ASTEcho ( ASTIdent( "x" ) ) ) ), FSTAT( ASTEcho ( ASTIdent( "x" ) ) ) [INFO] [stdout] [INFO] [stdout] OutProlog : cdms( dec( var( x , int ) ) , cdms( stat( set( id(x) , integer( 42 ) ) ) , cdms( stat( echo( id( x ) ) ) , cdms( stat( swhile( binOpIntBool( id( x ) , integer( 42 ) ) , cdms( stat( set( id(x) , binOpInt( id( x ) , integer( 1 ) ) ) ) , stat( echo( id( x ) ) ) ) ) ) , stat( echo( id( x ) ) ) ) ) ) ). [INFO] [stdout] thread 'aps1::prog_108' panicked at 'Erreur de type', src/main.rs:103:9 [INFO] [stdout] [INFO] [stdout] ---- aps1::prog_102 stdout ---- [INFO] [stdout] Parse file : "test/aps1/prog102.aps" [INFO] [stdout] Code : [INFO] [stdout] [ [INFO] [stdout] VAR x int; [INFO] [stdout] SET x 21; [INFO] [stdout] SET x (mul x 2); [INFO] [stdout] ECHO x [INFO] [stdout] ] [INFO] [stdout] AST : ASTCMDS ASTVar ( "x" ,int ), ASTCMDS ASTSet( Ident("x") , ASTInt(21) ), ASTCMDS ASTSet( Ident("x") , ASTBinPrim( Mul , ASTIdent( "x" ) , ASTInt(2) ) ), FSTAT( ASTEcho ( ASTIdent( "x" ) ) ) [INFO] [stdout] [INFO] [stdout] OutProlog : cdms( dec( var( x , int ) ) , cdms( stat( set( id(x) , integer( 21 ) ) ) , cdms( stat( set( id(x) , binOpInt( id( x ) , integer( 2 ) ) ) ) , stat( echo( id( x ) ) ) ) ) ). [INFO] [stdout] thread 'aps1::prog_102' panicked at 'Erreur de type', src/main.rs:103:9 [INFO] [stdout] [INFO] [stdout] ---- aps1::prog_106 stdout ---- [INFO] [stdout] Parse file : "test/aps1/prog106.aps" [INFO] [stdout] Code : [INFO] [stdout] [ [INFO] [stdout] VAR x int; [INFO] [stdout] VAR y int; [INFO] [stdout] IF (eq x 42) [INFO] [stdout] [ ECHO x ] [INFO] [stdout] [ SET y 42 ]; [INFO] [stdout] ECHO y [INFO] [stdout] ] [INFO] [stdout] AST : ASTCMDS ASTVar ( "x" ,int ), ASTCMDS ASTVar ( "y" ,int ), ASTCMDS ASTIF( ASTBinPrim( Eq , ASTIdent( "x" ) , ASTInt(42) ) , FSTAT( ASTEcho ( ASTIdent( "x" ) ) ) , FSTAT( ASTSet( Ident("y") , ASTInt(42) ) ) ), FSTAT( ASTEcho ( ASTIdent( "y" ) ) ) [INFO] [stdout] [INFO] [stdout] OutProlog : cdms( dec( var( x , int ) ) , cdms( dec( var( y , int ) ) , cdms( stat( statIf( binOpIntBool( id( x ) , integer( 42 ) ) , stat( echo( id( x ) ) ) , stat( set( id(y) , integer( 42 ) ) ) ) ) , stat( echo( id( y ) ) ) ) ) ). [INFO] [stdout] thread 'aps1::prog_106' panicked at 'Erreur de type', src/main.rs:103:9 [INFO] [stdout] note: panic did not include expected string 'variable not initialised' [INFO] [stdout] ---- aps1::prog_101 stdout ---- [INFO] [stdout] Parse file : "test/aps1/prog101.aps" [INFO] [stdout] Code : [INFO] [stdout] [ [INFO] [stdout] VAR x int; [INFO] [stdout] SET x 21; [INFO] [stdout] ECHO (mul x 2) [INFO] [stdout] ] [INFO] [stdout] AST : ASTCMDS ASTVar ( "x" ,int ), ASTCMDS ASTSet( Ident("x") , ASTInt(21) ), FSTAT( ASTEcho ( ASTBinPrim( Mul , ASTIdent( "x" ) , ASTInt(2) ) ) ) [INFO] [stdout] [INFO] [stdout] OutProlog : cdms( dec( var( x , int ) ) , cdms( stat( set( id(x) , integer( 21 ) ) ) , stat( echo( binOpInt( id( x ) , integer( 2 ) ) ) ) ) ). [INFO] [stdout] thread 'aps1::prog_101' panicked at 'Erreur de type', src/main.rs:103:9 [INFO] [stdout] [INFO] [stdout] ---- aps1::prog_103 stdout ---- [INFO] [stdout] Parse file : "test/aps1/prog103.aps" [INFO] [stdout] Code : [INFO] [stdout] [ [INFO] [stdout] CONST x int 0; [INFO] [stdout] IF (eq x 42) [INFO] [stdout] [ ECHO x ] [INFO] [stdout] [ ECHO 42 ] [INFO] [stdout] ] [INFO] [stdout] AST : ASTCMDS ASTConst ( "x" , int , ASTInt(0) ), FSTAT( ASTIF( ASTBinPrim( Eq , ASTIdent( "x" ) , ASTInt(42) ) , FSTAT( ASTEcho ( ASTIdent( "x" ) ) ) , FSTAT( ASTEcho ( ASTInt(42) ) ) ) ) [INFO] [stdout] [INFO] [stdout] OutProlog : cdms( dec( const( x , int , integer( 0 ) ) ) , stat( statIf( binOpIntBool( id( x ) , integer( 42 ) ) , stat( echo( id( x ) ) ) , stat( echo( integer( 42 ) ) ) ) ) ). [INFO] [stdout] thread 'aps1::prog_103' panicked at 'Erreur de type', src/main.rs:103:9 [INFO] [stdout] [INFO] [stdout] ---- aps1::prog_107 stdout ---- [INFO] [stdout] Parse file : "test/aps1/prog107.aps" [INFO] [stdout] Code : [INFO] [stdout] [ [INFO] [stdout] VAR x int; [INFO] [stdout] SET x 0; [INFO] [stdout] ECHO x; [INFO] [stdout] WHILE (lt x 42) [ [INFO] [stdout] SET x (add x 1) [INFO] [stdout] ]; [INFO] [stdout] ECHO x [INFO] [stdout] ] [INFO] [stdout] AST : ASTCMDS ASTVar ( "x" ,int ), ASTCMDS ASTSet( Ident("x") , ASTInt(0) ), ASTCMDS ASTEcho ( ASTIdent( "x" ) ), ASTCMDS ASTWHILE( ASTBinPrim( Lt , ASTIdent( "x" ) , ASTInt(42) ) , FSTAT( ASTSet( Ident("x") , ASTBinPrim( Add , ASTIdent( "x" ) , ASTInt(1) ) ) ) ), FSTAT( ASTEcho ( ASTIdent( "x" ) ) ) [INFO] [stdout] [INFO] [stdout] OutProlog : cdms( dec( var( x , int ) ) , cdms( stat( set( id(x) , integer( 0 ) ) ) , cdms( stat( echo( id( x ) ) ) , cdms( stat( swhile( binOpIntBool( id( x ) , integer( 42 ) ) , stat( set( id(x) , binOpInt( id( x ) , integer( 1 ) ) ) ) ) ) , stat( echo( id( x ) ) ) ) ) ) ). [INFO] [stdout] thread 'aps1::prog_107' panicked at 'Erreur de type', src/main.rs:103:9 [INFO] [stdout] [INFO] [stdout] ---- aps1::prog_117 stdout ---- [INFO] [stdout] Parse file : "test/aps1/prog117.aps" [INFO] [stdout] Code : [INFO] [stdout] [ [INFO] [stdout] VAR r int; [INFO] [stdout] FUN le bool [x:int,y:int] (or (eq x y) (lt x y)); [INFO] [stdout] PROC REC loop [f: (int -> int), n:int] [INFO] [stdout] [ [INFO] [stdout] IF (le n 0) [INFO] [stdout] [ ECHO r ] [INFO] [stdout] [ [INFO] [stdout] SET r (f r); [INFO] [stdout] CALL loop f (sub n 1) [INFO] [stdout] ] [INFO] [stdout] ]; [INFO] [stdout] SET r 21; [INFO] [stdout] CALL loop [x:int](add x 1) 21 [INFO] [stdout] ] [INFO] [stdout] thread 'aps1::prog_117' panicked at 'Parser failure: UnrecognizedToken { token: Some((129, Token(0, "0"), 130)), expected: ["\" \"", "\")\"", "\";\"", "\"]\""] }', src/libcore/result.rs:1165:5 [INFO] [stdout] [INFO] [stdout] ---- aps1::prog_111 stdout ---- [INFO] [stdout] Parse file : "test/aps1/prog111.aps" [INFO] [stdout] Code : [INFO] [stdout] [ [INFO] [stdout] VAR x int; [INFO] [stdout] VAR b bool; [INFO] [stdout] SET x 0; [INFO] [stdout] SET b false; [INFO] [stdout] WHILE (not b) [ [INFO] [stdout] IF (eq x 42) [INFO] [stdout] [ SET b true ] [INFO] [stdout] [ SET x (add x 1) ] [INFO] [stdout] ]; [INFO] [stdout] ECHO x [INFO] [stdout] ] [INFO] [stdout] AST : ASTCMDS ASTVar ( "x" ,int ), ASTCMDS ASTVar ( "b" ,bool ), ASTCMDS ASTSet( Ident("x") , ASTInt(0) ), ASTCMDS ASTSet( Ident("b") , ASTBool(false) ), ASTCMDS ASTWHILE( ASTPrim( Not, ASTIdent( "b" ) ) , FSTAT( ASTIF( ASTBinPrim( Eq , ASTIdent( "x" ) , ASTInt(42) ) , FSTAT( ASTSet( Ident("b") , ASTBool(true) ) ) , FSTAT( ASTSet( Ident("x") , ASTBinPrim( Add , ASTIdent( "x" ) , ASTInt(1) ) ) ) ) ) ), FSTAT( ASTEcho ( ASTIdent( "x" ) ) ) [INFO] [stdout] [INFO] [stdout] OutProlog : cdms( dec( var( x , int ) ) , cdms( dec( var( b , bool ) ) , cdms( stat( set( id(x) , integer( 0 ) ) ) , cdms( stat( set( id(b) , false ) ) , cdms( stat( swhile( unOp( id( b ) ) , stat( statIf( binOpIntBool( id( x ) , integer( 42 ) ) , stat( set( id(b) , true ) ) , stat( set( id(x) , binOpInt( id( x ) , integer( 1 ) ) ) ) ) ) ) ) , stat( echo( id( x ) ) ) ) ) ) ) ). [INFO] [stdout] thread 'aps1::prog_111' panicked at 'Erreur de type', src/main.rs:103:9 [INFO] [stdout] [INFO] [stdout] ---- aps1::prog_100 stdout ---- [INFO] [stdout] Parse file : "test/aps1/prog100.aps" [INFO] [stdout] Code : [INFO] [stdout] [ [INFO] [stdout] VAR x int; [INFO] [stdout] SET x 42; [INFO] [stdout] ECHO x [INFO] [stdout] ] [INFO] [stdout] AST : ASTCMDS ASTVar ( "x" ,int ), ASTCMDS ASTSet( Ident("x") , ASTInt(42) ), FSTAT( ASTEcho ( ASTIdent( "x" ) ) ) [INFO] [stdout] [INFO] [stdout] OutProlog : cdms( dec( var( x , int ) ) , cdms( stat( set( id(x) , integer( 42 ) ) ) , stat( echo( id( x ) ) ) ) ). [INFO] [stdout] thread 'aps1::prog_100' panicked at 'Erreur de type', src/main.rs:103:9 [INFO] [stdout] [INFO] [stdout] ---- aps1::prog_118 stdout ---- [INFO] [stdout] Parse file : "test/aps1/prog118.aps" [INFO] [stdout] Code : [INFO] [stdout] [ [INFO] [stdout] VAR x int; [INFO] [stdout] SET x 0; [INFO] [stdout] IF true [INFO] [stdout] [ VAR x bool; SET x false ] [INFO] [stdout] [ ECHO x ]; [INFO] [stdout] VAR x int; [INFO] [stdout] SET x 42; [INFO] [stdout] ECHO x [INFO] [stdout] ] [INFO] [stdout] AST : ASTCMDS ASTVar ( "x" ,int ), ASTCMDS ASTSet( Ident("x") , ASTInt(0) ), ASTCMDS ASTIF( ASTBool(true) , ASTCMDS ASTVar ( "x" ,bool ), FSTAT( ASTSet( Ident("x") , ASTBool(false) ) ) , FSTAT( ASTEcho ( ASTIdent( "x" ) ) ) ), ASTCMDS ASTVar ( "x" ,int ), ASTCMDS ASTSet( Ident("x") , ASTInt(42) ), FSTAT( ASTEcho ( ASTIdent( "x" ) ) ) [INFO] [stdout] [INFO] [stdout] OutProlog : cdms( dec( var( x , int ) ) , cdms( stat( set( id(x) , integer( 0 ) ) ) , cdms( stat( statIf( true , cdms( dec( var( x , bool ) ) , stat( set( id(x) , false ) ) ) , stat( echo( id( x ) ) ) ) ) , cdms( dec( var( x , int ) ) , cdms( stat( set( id(x) , integer( 42 ) ) ) , stat( echo( id( x ) ) ) ) ) ) ) ). [INFO] [stdout] thread 'aps1::prog_118' panicked at 'Erreur de type', src/main.rs:103:9 [INFO] [stdout] [INFO] [stdout] ---- aps1::prog_114 stdout ---- [INFO] [stdout] Parse file : "test/aps1/prog114.aps" [INFO] [stdout] Code : [INFO] [stdout] [ [INFO] [stdout] PROC printBool [b:bool] [INFO] [stdout] [ [INFO] [stdout] IF b [ ECHO 1 ] [ ECHO 0 ] [INFO] [stdout] ]; [INFO] [stdout] CALL printBool (lt false true) [INFO] [stdout] ] [INFO] [stdout] AST : ASTCMDS ASTProc ( "printBool" , [Arg { ident: "b", id_type: bool }] , FSTAT( ASTIF( ASTIdent( "b" ) , FSTAT( ASTEcho ( ASTInt(1) ) ) , FSTAT( ASTEcho ( ASTInt(0) ) ) ) ) ), FSTAT( ASTCall( "printBool" , [ASTBinPrim( Lt , ASTBool(false) , ASTBool(true) )] ) ) [INFO] [stdout] [INFO] [stdout] OutProlog : cdms( dec( proc( printBool , [(b , bool)] , stat( statIf( id( b ) , stat( echo( integer( 1 ) ) ) , stat( echo( integer( 0 ) ) ) ) ) )) , stat( call( printBool , [binOpIntBool( false , true )] ) ) ). [INFO] [stdout] thread 'aps1::prog_114' panicked at 'Erreur de type', src/main.rs:103:9 [INFO] [stdout] [INFO] [stdout] ---- aps1::prog_116 stdout ---- [INFO] [stdout] Parse file : "test/aps1/prog116.aps" [INFO] [stdout] Code : [INFO] [stdout] [ [INFO] [stdout] VAR x int; [INFO] [stdout] PROC REC incr [n:int] [INFO] [stdout] [ [INFO] [stdout] IF (lt x 42) [INFO] [stdout] [ [INFO] [stdout] SET x (add x n); [INFO] [stdout] CALL incr n [INFO] [stdout] ] [INFO] [stdout] [ ECHO x ] [INFO] [stdout] ]; [INFO] [stdout] SET x 21; [INFO] [stdout] ECHO x; [INFO] [stdout] CALL incr 1 [INFO] [stdout] ] [INFO] [stdout] AST : ASTCMDS ASTVar ( "x" ,int ), ASTCMDS ASTProcRec ( "incr" , [Arg { ident: "n", id_type: int }] , FSTAT( ASTIF( ASTBinPrim( Lt , ASTIdent( "x" ) , ASTInt(42) ) , ASTCMDS ASTSet( Ident("x") , ASTBinPrim( Add , ASTIdent( "x" ) , ASTIdent( "n" ) ) ), FSTAT( ASTCall( "incr" , [ASTIdent( "n" )] ) ) , FSTAT( ASTEcho ( ASTIdent( "x" ) ) ) ) ) ), ASTCMDS ASTSet( Ident("x") , ASTInt(21) ), ASTCMDS ASTEcho ( ASTIdent( "x" ) ), FSTAT( ASTCall( "incr" , [ASTInt(1)] ) ) [INFO] [stdout] [INFO] [stdout] OutProlog : cdms( dec( var( x , int ) ) , cdms( dec( procRec( incr , [(n , int)] , stat( statIf( binOpIntBool( id( x ) , integer( 42 ) ) , cdms( stat( set( id(x) , binOpInt( id( x ) , id( n ) ) ) ) , stat( call( incr , [id( n )] ) ) ) , stat( echo( id( x ) ) ) ) ) ) ) , cdms( stat( set( id(x) , integer( 21 ) ) ) , cdms( stat( echo( id( x ) ) ) , stat( call( incr , [integer( 1 )] ) ) ) ) ) ). [INFO] [stdout] thread 'aps1::prog_116' panicked at 'Erreur de type', src/main.rs:103:9 [INFO] [stdout] [INFO] [stdout] ---- aps2::prog_206 stdout ---- [INFO] [stdout] Parse file : "test/aps2/prog206.aps" [INFO] [stdout] Code : [INFO] [stdout] [ [INFO] [stdout] FUN REC fold void [f:(void -> void), xs:(vec void), a:void, i:int] ( [INFO] [stdout] if (lt i (len xs)) [INFO] [stdout] (f (nth xs i) (fold f xs a (add i 1))) [INFO] [stdout] a [INFO] [stdout] ); [INFO] [stdout] CONST xs (vec int) (alloc 5); [INFO] [stdout] SET (nth xs 0) 3; [INFO] [stdout] SET (nth xs 1) 3; [INFO] [stdout] SET (nth xs 2) 3; [INFO] [stdout] SET (nth xs 3) 3; [INFO] [stdout] SET (nth xs 4) 3; [INFO] [stdout] ECHO (fold [x:int,y:int](add x y) xs 0 0) [INFO] [stdout] [INFO] [stdout] ] [INFO] [stdout] thread 'aps2::prog_206' panicked at 'Parser failure: UnrecognizedToken { token: Some((117, Token(3, "("), 118)), expected: ["\" \"", "\")\"", "\";\"", "\"]\""] }', src/libcore/result.rs:1165:5 [INFO] [stdout] [INFO] [stdout] ---- aps1::prog_115 stdout ---- [INFO] [stdout] Parse file : "test/aps1/prog115.aps" [INFO] [stdout] Code : [INFO] [stdout] [ [INFO] [stdout] VAR x int; [INFO] [stdout] PROC incr [n:int] [INFO] [stdout] [ SET x (add x n) ]; [INFO] [stdout] SET x 41; [INFO] [stdout] ECHO x; [INFO] [stdout] CALL incr 1; [INFO] [stdout] ECHO x [INFO] [stdout] ] [INFO] [stdout] AST : ASTCMDS ASTVar ( "x" ,int ), ASTCMDS ASTProc ( "incr" , [Arg { ident: "n", id_type: int }] , FSTAT( ASTSet( Ident("x") , ASTBinPrim( Add , ASTIdent( "x" ) , ASTIdent( "n" ) ) ) ) ), ASTCMDS ASTSet( Ident("x") , ASTInt(41) ), ASTCMDS ASTEcho ( ASTIdent( "x" ) ), ASTCMDS ASTCall( "incr" , [ASTInt(1)] ), FSTAT( ASTEcho ( ASTIdent( "x" ) ) ) [INFO] [stdout] [INFO] [stdout] OutProlog : cdms( dec( var( x , int ) ) , cdms( dec( proc( incr , [(n , int)] , stat( set( id(x) , binOpInt( id( x ) , id( n ) ) ) ) )) , cdms( stat( set( id(x) , integer( 41 ) ) ) , cdms( stat( echo( id( x ) ) ) , cdms( stat( call( incr , [integer( 1 )] ) ) , stat( echo( id( x ) ) ) ) ) ) ) ). [INFO] [stdout] thread 'aps1::prog_115' panicked at 'Erreur de type', src/main.rs:103:9 [INFO] [stdout] [INFO] [stdout] ---- aps1::prog_120 stdout ---- [INFO] [stdout] Parse file : "test/aps1/prog120.aps" [INFO] [stdout] Code : [INFO] [stdout] [ [INFO] [stdout] VAR x int; [INFO] [stdout] SET x 0; [INFO] [stdout] PROC p [n:int] [INFO] [stdout] [ [INFO] [stdout] VAR y int; [INFO] [stdout] SET y (mul n 2); [INFO] [stdout] SET x y [INFO] [stdout] ]; [INFO] [stdout] VAR z int; [INFO] [stdout] SET z 24; [INFO] [stdout] ECHO x; [INFO] [stdout] IF true [INFO] [stdout] [ CALL p 21 ] [INFO] [stdout] [ ECHO x ]; [INFO] [stdout] ECHO x [INFO] [stdout] [INFO] [stdout] ] [INFO] [stdout] AST : ASTCMDS ASTVar ( "x" ,int ), ASTCMDS ASTSet( Ident("x") , ASTInt(0) ), ASTCMDS ASTProc ( "p" , [Arg { ident: "n", id_type: int }] , ASTCMDS ASTVar ( "y" ,int ), ASTCMDS ASTSet( Ident("y") , ASTBinPrim( Mul , ASTIdent( "n" ) , ASTInt(2) ) ), FSTAT( ASTSet( Ident("x") , ASTIdent( "y" ) ) ) ), ASTCMDS ASTVar ( "z" ,int ), ASTCMDS ASTSet( Ident("z") , ASTInt(24) ), ASTCMDS ASTEcho ( ASTIdent( "x" ) ), ASTCMDS ASTIF( ASTBool(true) , FSTAT( ASTCall( "p" , [ASTInt(21)] ) ) , FSTAT( ASTEcho ( ASTIdent( "x" ) ) ) ), FSTAT( ASTEcho ( ASTIdent( "x" ) ) ) [INFO] [stdout] [INFO] [stdout] OutProlog : cdms( dec( var( x , int ) ) , cdms( stat( set( id(x) , integer( 0 ) ) ) , cdms( dec( proc( p , [(n , int)] , cdms( dec( var( y , int ) ) , cdms( stat( set( id(y) , binOpInt( id( n ) , integer( 2 ) ) ) ) , stat( set( id(x) , id( y ) ) ) ) ) )) , cdms( dec( var( z , int ) ) , cdms( stat( set( id(z) , integer( 24 ) ) ) , cdms( stat( echo( id( x ) ) ) , cdms( stat( statIf( true , stat( call( p , [integer( 21 )] ) ) , stat( echo( id( x ) ) ) ) ) , stat( echo( id( x ) ) ) ) ) ) ) ) ) ). [INFO] [stdout] thread 'aps1::prog_120' panicked at 'Erreur de type', src/main.rs:103:9 [INFO] [stdout] [INFO] [stdout] ---- aps2::prog_201 stdout ---- [INFO] [stdout] Parse file : "test/aps2/prog201.aps" [INFO] [stdout] Code : [INFO] [stdout] [ [INFO] [stdout] CONST xs (vec int) (alloc 5); [INFO] [stdout] VAR i int; [INFO] [stdout] SET i 0; [INFO] [stdout] WHILE (lt i (len xs)) [INFO] [stdout] [ [INFO] [stdout] SET (nth xs i) (add i 1); [INFO] [stdout] SET i (add i 1) [INFO] [stdout] ] [INFO] [stdout] [INFO] [stdout] ] [INFO] [stdout] AST : ASTCMDS ASTConst ( "xs" , vec( int ) , ASTAlloc( ASTInt(5) ) ), ASTCMDS ASTVar ( "i" ,int ), ASTCMDS ASTSet( Ident("i") , ASTInt(0) ), FSTAT( ASTWHILE( ASTBinPrim( Lt , ASTIdent( "i" ) , ASTLen( ASTIdent( "xs" ) ) ) , ASTCMDS ASTSet( Nth(Ident("xs"), ASTIdent( "i" )) , ASTBinPrim( Add , ASTIdent( "i" ) , ASTInt(1) ) ), FSTAT( ASTSet( Ident("i") , ASTBinPrim( Add , ASTIdent( "i" ) , ASTInt(1) ) ) ) ) ) [INFO] [stdout] [INFO] [stdout] OutProlog : cdms( dec( const( xs , vec( int ) , alloc( integer( 5 ) ) ) ) , cdms( dec( var( i , int ) ) , cdms( stat( set( id(i) , integer( 0 ) ) ) , stat( swhile( binOpIntBool( id( i ) , len( id( xs ) ) ) , cdms( stat( set( nth( id(xs), id( i )) , binOpInt( id( i ) , integer( 1 ) ) ) ) , stat( set( id(i) , binOpInt( id( i ) , integer( 1 ) ) ) ) ) ) ) ) ) ). [INFO] [stdout] thread 'aps2::prog_201' panicked at 'Erreur de type', src/main.rs:103:9 [INFO] [stdout] [INFO] [stdout] ---- aps2::prog_200 stdout ---- [INFO] [stdout] Parse file : "test/aps2/prog200.aps" [INFO] [stdout] Code : [INFO] [stdout] [ [INFO] [stdout] CONST xs (vec int) (alloc 5); [INFO] [stdout] SET (nth xs 0) 1; [INFO] [stdout] SET (nth xs 1) 2; [INFO] [stdout] SET (nth xs 2) 3; [INFO] [stdout] SET (nth xs 3) 4; [INFO] [stdout] SET (nth xs 4) 5; [INFO] [stdout] ECHO (nth xs 0); [INFO] [stdout] ECHO (nth xs 1); [INFO] [stdout] ECHO (nth xs 2); [INFO] [stdout] ECHO (nth xs 2); [INFO] [stdout] ECHO (nth xs 4) [INFO] [stdout] ] [INFO] [stdout] AST : ASTCMDS ASTConst ( "xs" , vec( int ) , ASTAlloc( ASTInt(5) ) ), ASTCMDS ASTSet( Nth(Ident("xs"), ASTInt(0)) , ASTInt(1) ), ASTCMDS ASTSet( Nth(Ident("xs"), ASTInt(1)) , ASTInt(2) ), ASTCMDS ASTSet( Nth(Ident("xs"), ASTInt(2)) , ASTInt(3) ), ASTCMDS ASTSet( Nth(Ident("xs"), ASTInt(3)) , ASTInt(4) ), ASTCMDS ASTSet( Nth(Ident("xs"), ASTInt(4)) , ASTInt(5) ), ASTCMDS ASTEcho ( ASTNth( ASTIdent( "xs" ) ,ASTInt(0) ) ), ASTCMDS ASTEcho ( ASTNth( ASTIdent( "xs" ) ,ASTInt(1) ) ), ASTCMDS ASTEcho ( ASTNth( ASTIdent( "xs" ) ,ASTInt(2) ) ), ASTCMDS ASTEcho ( ASTNth( ASTIdent( "xs" ) ,ASTInt(2) ) ), FSTAT( ASTEcho ( ASTNth( ASTIdent( "xs" ) ,ASTInt(4) ) ) ) [INFO] [stdout] [INFO] [stdout] OutProlog : cdms( dec( const( xs , vec( int ) , alloc( integer( 5 ) ) ) ) , cdms( stat( set( nth( id(xs), integer( 0 )) , integer( 1 ) ) ) , cdms( stat( set( nth( id(xs), integer( 1 )) , integer( 2 ) ) ) , cdms( stat( set( nth( id(xs), integer( 2 )) , integer( 3 ) ) ) , cdms( stat( set( nth( id(xs), integer( 3 )) , integer( 4 ) ) ) , cdms( stat( set( nth( id(xs), integer( 4 )) , integer( 5 ) ) ) , cdms( stat( echo( expnth( id( xs ) , integer( 0 ) ) ) ) , cdms( stat( echo( expnth( id( xs ) , integer( 1 ) ) ) ) , cdms( stat( echo( expnth( id( xs ) , integer( 2 ) ) ) ) , cdms( stat( echo( expnth( id( xs ) , integer( 2 ) ) ) ) , stat( echo( expnth( id( xs ) , integer( 4 ) ) ) ) ) ) ) ) ) ) ) ) ) ). [INFO] [stdout] thread 'aps2::prog_200' panicked at 'Erreur de type', src/main.rs:103:9 [INFO] [stdout] [INFO] [stdout] ---- aps0::prog_000 stdout ---- [INFO] [stdout] Parse file : "test/aps0/prog000.aps" [INFO] [stdout] Code : [INFO] [stdout] [ [INFO] [stdout] ECHO 42 [INFO] [stdout] ] [INFO] [stdout] [INFO] [stdout] AST : FSTAT( ASTEcho ( ASTInt(42) ) ) [INFO] [stdout] [INFO] [stdout] OutProlog : stat( echo( integer( 42 ) ) ) . [INFO] [stdout] thread 'aps0::prog_000' panicked at 'Erreur de type', src/main.rs:103:9 [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x55aa522c4cd4 - backtrace::backtrace::libunwind::trace::hf625d18232cbbbd4 [INFO] [stdout] at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.37/src/backtrace/libunwind.rs:88 [INFO] [stdout] 1: 0x55aa522c4cd4 - backtrace::backtrace::trace_unsynchronized::h41d74150fc6ff542 [INFO] [stdout] at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.37/src/backtrace/mod.rs:66 [INFO] [stdout] 2: 0x55aa522c4cd4 - std::sys_common::backtrace::_print_fmt::h85d37830c667a1f9 [INFO] [stdout] at src/libstd/sys_common/backtrace.rs:76 [INFO] [stdout] 3: 0x55aa522c4cd4 - ::fmt::h2b7ac01d5feaf9b2 [INFO] [stdout] at src/libstd/sys_common/backtrace.rs:60 [INFO] [stdout] 4: 0x55aa522e4a7c - core::fmt::write::h7fd0d904495c035f [INFO] [stdout] at src/libcore/fmt/mod.rs:1030 [INFO] [stdout] 5: 0x55aa520aa1a5 - std::io::Write::write_fmt::h424452e6ba861394 [INFO] [stdout] at /rustc/5752b6348ee6971573b278c315a02193c847ee32/src/libstd/io/mod.rs:1412 [INFO] [stdout] 6: 0x55aa522bfc11 - std::io::impls::>::write_fmt::h814a51d8ae1dee4a [INFO] [stdout] at src/libstd/io/impls.rs:141 [INFO] [stdout] 7: 0x55aa522c71e5 - std::sys_common::backtrace::_print::h4c743f7c274a5a74 [INFO] [stdout] at src/libstd/sys_common/backtrace.rs:64 [INFO] [stdout] 8: 0x55aa522c71e5 - std::sys_common::backtrace::print::ha5c4f4bf03800d4d [INFO] [stdout] at src/libstd/sys_common/backtrace.rs:49 [INFO] [stdout] 9: 0x55aa522c71e5 - std::panicking::default_hook::{{closure}}::h8b842185774c09e6 [INFO] [stdout] at src/libstd/panicking.rs:196 [INFO] [stdout] 10: 0x55aa522c6e6c - std::panicking::default_hook::hd8ec13ee1bc2a65a [INFO] [stdout] at src/libstd/panicking.rs:207 [INFO] [stdout] 11: 0x55aa522c78e5 - std::panicking::rust_panic_with_hook::hf3b27166e5f403e7 [INFO] [stdout] at src/libstd/panicking.rs:473 [INFO] [stdout] 12: 0x55aa522b45b3 - std::panicking::begin_panic::hda79b793d3807064 [INFO] [stdout] at /rustc/5752b6348ee6971573b278c315a02193c847ee32/src/libstd/panicking.rs:407 [INFO] [stdout] 13: 0x55aa52086212 - aps_bin::test_prog::hc15c218eab190e34 [INFO] [stdout] at src/main.rs:103 [INFO] [stdout] 14: 0x55aa520866d1 - aps_bin::aps0::prog_000::h7af52b391f6e4b60 [INFO] [stdout] at src/main.rs:118 [INFO] [stdout] 15: 0x55aa5208664a - aps_bin::aps0::prog_000::{{closure}}::h8b0730e1c271ae3d [INFO] [stdout] at src/main.rs:117 [INFO] [stdout] 16: 0x55aa520942fe - core::ops::function::FnOnce::call_once::h209ecc79d19a8e9c [INFO] [stdout] at /rustc/5752b6348ee6971573b278c315a02193c847ee32/src/libcore/ops/function.rs:227 [INFO] [stdout] 17: 0x55aa520b409f - as core::ops::function::FnOnce>::call_once::h8b428e8a43aaf8e9 [INFO] [stdout] at /rustc/5752b6348ee6971573b278c315a02193c847ee32/src/liballoc/boxed.rs:922 [INFO] [stdout] 18: 0x55aa522ce84a - __rust_maybe_catch_panic [INFO] [stdout] at src/libpanic_unwind/lib.rs:80 [INFO] [stdout] 19: 0x55aa520ce8ae - std::panicking::try::heccce20d527a3513 [INFO] [stdout] at /rustc/5752b6348ee6971573b278c315a02193c847ee32/src/libstd/panicking.rs:271 [INFO] [stdout] 20: 0x55aa520ce8ae - std::panic::catch_unwind::h7fd8f5d3271f1692 [INFO] [stdout] at /rustc/5752b6348ee6971573b278c315a02193c847ee32/src/libstd/panic.rs:394 [INFO] [stdout] 21: 0x55aa520ce8ae - test::run_test::run_test_inner::{{closure}}::h88b46e5c359957e5 [INFO] [stdout] at src/libtest/lib.rs:1413 [INFO] [stdout] 22: 0x55aa520a9915 - std::sys_common::backtrace::__rust_begin_short_backtrace::h00847676c8212941 [INFO] [stdout] at /rustc/5752b6348ee6971573b278c315a02193c847ee32/src/libstd/sys_common/backtrace.rs:126 [INFO] [stdout] 23: 0x55aa520adaa5 - std::thread::Builder::spawn_unchecked::{{closure}}::{{closure}}::h5dd37acd2295488e [INFO] [stdout] at /rustc/5752b6348ee6971573b278c315a02193c847ee32/src/libstd/thread/mod.rs:470 [INFO] [stdout] 24: 0x55aa520adaa5 - as core::ops::function::FnOnce<()>>::call_once::h9d32b103da0b97c6 [INFO] [stdout] at /rustc/5752b6348ee6971573b278c315a02193c847ee32/src/libstd/panic.rs:315 [INFO] [stdout] 25: 0x55aa520adaa5 - std::panicking::try::do_call::h2bd819a3056c57cd [INFO] [stdout] at /rustc/5752b6348ee6971573b278c315a02193c847ee32/src/libstd/panicking.rs:292 [INFO] [stdout] 26: 0x55aa522ce84a - __rust_maybe_catch_panic [INFO] [stdout] at src/libpanic_unwind/lib.rs:80 [INFO] [stdout] 27: 0x55aa520ae052 - std::panicking::try::h243a25457a848a1a [INFO] [stdout] at /rustc/5752b6348ee6971573b278c315a02193c847ee32/src/libstd/panicking.rs:271 [INFO] [stdout] 28: 0x55aa520ae052 - std::panic::catch_unwind::h74b81f55e55e757c [INFO] [stdout] at /rustc/5752b6348ee6971573b278c315a02193c847ee32/src/libstd/panic.rs:394 [INFO] [stdout] 29: 0x55aa520ae052 - std::thread::Builder::spawn_unchecked::{{closure}}::h4c2d214a2cffa6cf [INFO] [stdout] at /rustc/5752b6348ee6971573b278c315a02193c847ee32/src/libstd/thread/mod.rs:469 [INFO] [stdout] 30: 0x55aa520ae052 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h8a8a187b3fb58e53 [INFO] [stdout] at /rustc/5752b6348ee6971573b278c315a02193c847ee32/src/libcore/ops/function.rs:227 [INFO] [stdout] 31: 0x55aa522bc0ef - as core::ops::function::FnOnce>::call_once::h3cdef3b7ea22cd61 [INFO] [stdout] at /rustc/5752b6348ee6971573b278c315a02193c847ee32/src/liballoc/boxed.rs:922 [INFO] [stdout] 32: 0x55aa522cdc40 - as core::ops::function::FnOnce>::call_once::hc8f25720bf0d5424 [INFO] [stdout] at /rustc/5752b6348ee6971573b278c315a02193c847ee32/src/liballoc/boxed.rs:922 [INFO] [stdout] 33: 0x55aa522cdc40 - std::sys_common::thread::start_thread::h7e8885ccfd5d1932 [INFO] [stdout] at src/libstd/sys_common/thread.rs:13 [INFO] [stdout] 34: 0x55aa522cdc40 - std::sys::unix::thread::Thread::new::thread_start::h5d24df932d688baf [INFO] [stdout] at src/libstd/sys/unix/thread.rs:79 [INFO] [stdout] 35: 0x7fad89bd96db - start_thread [INFO] [stdout] 36: 0x7fad896ea88f - __clone [INFO] [stdout] 37: 0x0 - [INFO] [stdout] [INFO] [stdout] ---- aps2::prog_205 stdout ---- [INFO] [stdout] Parse file : "test/aps2/prog205.aps" [INFO] [stdout] Code : [INFO] [stdout] [ [INFO] [stdout] PROC map [f:(void -> void), xs:(vec void)] [ [INFO] [stdout] VAR i int; [INFO] [stdout] SET i 0; [INFO] [stdout] WHILE (lt i (len xs)) [ [INFO] [stdout] SET (nth xs i) (f (nth xs i)); [INFO] [stdout] SET i (add i 1) [INFO] [stdout] ] [INFO] [stdout] ]; [INFO] [stdout] CONST xs (vec bool) (alloc 4); [INFO] [stdout] SET (nth xs 0) true; [INFO] [stdout] SET (nth xs 1) true; [INFO] [stdout] SET (nth xs 2) false; [INFO] [stdout] SET (nth xs 3) true; [INFO] [stdout] CALL map [x:bool](not x) xs [INFO] [stdout] [INFO] [stdout] ] [INFO] [stdout] thread 'aps2::prog_205' panicked at 'Parser failure: UnrecognizedToken { token: Some((337, Token(1, "xs"), 339)), expected: ["\" \"", "\")\"", "\";\"", "\"]\""] }', src/libcore/result.rs:1165:5 [INFO] [stdout] [INFO] [stdout] ---- aps2::prog_202 stdout ---- [INFO] [stdout] Parse file : "test/aps2/prog202.aps" [INFO] [stdout] Code : [INFO] [stdout] [ [INFO] [stdout] PROC fill [xs:(vec int)] [INFO] [stdout] [ [INFO] [stdout] VAR i int; [INFO] [stdout] SET i 0; [INFO] [stdout] WHILE (lt i (len xs)) [INFO] [stdout] [ [INFO] [stdout] CONST n int (add i 1); [INFO] [stdout] SET (nth xs i) n; [INFO] [stdout] SET i n [INFO] [stdout] ] [INFO] [stdout] ]; [INFO] [stdout] CONST xs (vec int) (alloc 5); [INFO] [stdout] CALL fill xs [INFO] [stdout] ] [INFO] [stdout] [INFO] [stdout] AST : ASTCMDS ASTProc ( "fill" , [Arg { ident: "xs", id_type: vec( int ) }] , ASTCMDS ASTVar ( "i" ,int ), ASTCMDS ASTSet( Ident("i") , ASTInt(0) ), FSTAT( ASTWHILE( ASTBinPrim( Lt , ASTIdent( "i" ) , ASTLen( ASTIdent( "xs" ) ) ) , ASTCMDS ASTConst ( "n" , int , ASTBinPrim( Add , ASTIdent( "i" ) , ASTInt(1) ) ), ASTCMDS ASTSet( Nth(Ident("xs"), ASTIdent( "i" )) , ASTIdent( "n" ) ), FSTAT( ASTSet( Ident("i") , ASTIdent( "n" ) ) ) ) ) ), ASTCMDS ASTConst ( "xs" , vec( int ) , ASTAlloc( ASTInt(5) ) ), FSTAT( ASTCall( "fill" , [ASTIdent( "xs" )] ) ) [INFO] [stdout] [INFO] [stdout] OutProlog : cdms( dec( proc( fill , [(xs , vec( int ))] , cdms( dec( var( i , int ) ) , cdms( stat( set( id(i) , integer( 0 ) ) ) , stat( swhile( binOpIntBool( id( i ) , len( id( xs ) ) ) , cdms( dec( const( n , int , binOpInt( id( i ) , integer( 1 ) ) ) ) , cdms( stat( set( nth( id(xs), id( i )) , id( n ) ) ) , stat( set( id(i) , id( n ) ) ) ) ) ) ) ) ) )) , cdms( dec( const( xs , vec( int ) , alloc( integer( 5 ) ) ) ) , stat( call( fill , [id( xs )] ) ) ) ). [INFO] [stdout] thread 'aps2::prog_202' panicked at 'Erreur de type', src/main.rs:103:9 [INFO] [stdout] [INFO] [stdout] ---- aps2::prog_203 stdout ---- [INFO] [stdout] Parse file : "test/aps2/prog203.aps" [INFO] [stdout] Code : [INFO] [stdout] [ [INFO] [stdout] CONST xs (vec (vec bool)) (alloc 3); [INFO] [stdout] SET (nth xs 0) (alloc 2); [INFO] [stdout] SET (nth xs 1) (alloc 3); [INFO] [stdout] SET (nth xs 2) (alloc 4); [INFO] [stdout] SET (nth (nth xs 0) 0) true; [INFO] [stdout] SET (nth (nth xs 0) 1) true; [INFO] [stdout] SET (nth (nth xs 1) 0) false; [INFO] [stdout] SET (nth (nth xs 1) 1) false; [INFO] [stdout] SET (nth (nth xs 1) 2) false; [INFO] [stdout] SET (nth (nth xs 2) 0) true; [INFO] [stdout] SET (nth (nth xs 2) 1) true; [INFO] [stdout] SET (nth (nth xs 2) 2) true; [INFO] [stdout] SET (nth (nth xs 2) 3) true [INFO] [stdout] ] [INFO] [stdout] [INFO] [stdout] AST : ASTCMDS ASTConst ( "xs" , vec( vec( bool ) ) , ASTAlloc( ASTInt(3) ) ), ASTCMDS ASTSet( Nth(Ident("xs"), ASTInt(0)) , ASTAlloc( ASTInt(2) ) ), ASTCMDS ASTSet( Nth(Ident("xs"), ASTInt(1)) , ASTAlloc( ASTInt(3) ) ), ASTCMDS ASTSet( Nth(Ident("xs"), ASTInt(2)) , ASTAlloc( ASTInt(4) ) ), ASTCMDS ASTSet( Nth(Nth(Ident("xs"), ASTInt(0)), ASTInt(0)) , ASTBool(true) ), ASTCMDS ASTSet( Nth(Nth(Ident("xs"), ASTInt(0)), ASTInt(1)) , ASTBool(true) ), ASTCMDS ASTSet( Nth(Nth(Ident("xs"), ASTInt(1)), ASTInt(0)) , ASTBool(false) ), ASTCMDS ASTSet( Nth(Nth(Ident("xs"), ASTInt(1)), ASTInt(1)) , ASTBool(false) ), ASTCMDS ASTSet( Nth(Nth(Ident("xs"), ASTInt(1)), ASTInt(2)) , ASTBool(false) ), ASTCMDS ASTSet( Nth(Nth(Ident("xs"), ASTInt(2)), ASTInt(0)) , ASTBool(true) ), ASTCMDS ASTSet( Nth(Nth(Ident("xs"), ASTInt(2)), ASTInt(1)) , ASTBool(true) ), ASTCMDS ASTSet( Nth(Nth(Ident("xs"), ASTInt(2)), ASTInt(2)) , ASTBool(true) ), FSTAT( ASTSet( Nth(Nth(Ident("xs"), ASTInt(2)), ASTInt(3)) , ASTBool(true) ) ) [INFO] [stdout] [INFO] [stdout] OutProlog : cdms( dec( const( xs , vec( vec( bool ) ) , alloc( integer( 3 ) ) ) ) , cdms( stat( set( nth( id(xs), integer( 0 )) , alloc( integer( 2 ) ) ) ) , cdms( stat( set( nth( id(xs), integer( 1 )) , alloc( integer( 3 ) ) ) ) , cdms( stat( set( nth( id(xs), integer( 2 )) , alloc( integer( 4 ) ) ) ) , cdms( stat( set( nth( nth( id(xs), integer( 0 )), integer( 0 )) , true ) ) , cdms( stat( set( nth( nth( id(xs), integer( 0 )), integer( 1 )) , true ) ) , cdms( stat( set( nth( nth( id(xs), integer( 1 )), integer( 0 )) , false ) ) , cdms( stat( set( nth( nth( id(xs), integer( 1 )), integer( 1 )) , false ) ) , cdms( stat( set( nth( nth( id(xs), integer( 1 )), integer( 2 )) , false ) ) , cdms( stat( set( nth( nth( id(xs), integer( 2 )), integer( 0 )) , true ) ) , cdms( stat( set( nth( nth( id(xs), integer( 2 )), integer( 1 )) , true ) ) , cdms( stat( set( nth( nth( id(xs), integer( 2 )), integer( 2 )) , true ) ) , stat( set( nth( nth( id(xs), integer( 2 )), integer( 3 )) , true ) ) ) ) ) ) ) ) ) ) ) ) ) ). [INFO] [stdout] thread 'aps2::prog_203' panicked at 'Erreur de type', src/main.rs:103:9 [INFO] [stdout] [INFO] [stdout] ---- aps1::prog_119 stdout ---- [INFO] [stdout] Parse file : "test/aps1/prog119.aps" [INFO] [stdout] Code : [INFO] [stdout] [ [INFO] [stdout] VAR x int; [INFO] [stdout] SET x 0; [INFO] [stdout] PROC p [n:int] [INFO] [stdout] [ [INFO] [stdout] VAR y int; [INFO] [stdout] SET y (mul n 2); [INFO] [stdout] SET x y [INFO] [stdout] ]; [INFO] [stdout] ECHO x; [INFO] [stdout] IF true [INFO] [stdout] [ CALL p 21 ] [INFO] [stdout] [ ECHO x ]; [INFO] [stdout] ECHO x [INFO] [stdout] [INFO] [stdout] ] [INFO] [stdout] AST : ASTCMDS ASTVar ( "x" ,int ), ASTCMDS ASTSet( Ident("x") , ASTInt(0) ), ASTCMDS ASTProc ( "p" , [Arg { ident: "n", id_type: int }] , ASTCMDS ASTVar ( "y" ,int ), ASTCMDS ASTSet( Ident("y") , ASTBinPrim( Mul , ASTIdent( "n" ) , ASTInt(2) ) ), FSTAT( ASTSet( Ident("x") , ASTIdent( "y" ) ) ) ), ASTCMDS ASTEcho ( ASTIdent( "x" ) ), ASTCMDS ASTIF( ASTBool(true) , FSTAT( ASTCall( "p" , [ASTInt(21)] ) ) , FSTAT( ASTEcho ( ASTIdent( "x" ) ) ) ), FSTAT( ASTEcho ( ASTIdent( "x" ) ) ) [INFO] [stdout] [INFO] [stdout] OutProlog : cdms( dec( var( x , int ) ) , cdms( stat( set( id(x) , integer( 0 ) ) ) , cdms( dec( proc( p , [(n , int)] , cdms( dec( var( y , int ) ) , cdms( stat( set( id(y) , binOpInt( id( n ) , integer( 2 ) ) ) ) , stat( set( id(x) , id( y ) ) ) ) ) )) , cdms( stat( echo( id( x ) ) ) , cdms( stat( statIf( true , stat( call( p , [integer( 21 )] ) ) , stat( echo( id( x ) ) ) ) ) , stat( echo( id( x ) ) ) ) ) ) ) ). [INFO] [stdout] thread 'aps1::prog_119' panicked at 'Erreur de type', src/main.rs:103:9 [INFO] [stdout] [INFO] [stdout] ---- aps2::prog_204 stdout ---- [INFO] [stdout] Parse file : "test/aps2/prog204.aps" [INFO] [stdout] Code : [INFO] [stdout] [ [INFO] [stdout] CONST xss (vec (vec bool)) (alloc 3); [INFO] [stdout] VAR i int; [INFO] [stdout] SET i 0; [INFO] [stdout] WHILE (lt i (len xss)) [INFO] [stdout] [ [INFO] [stdout] SET (nth xss i) (alloc (add i 1)); [INFO] [stdout] SET i (add i 1) [INFO] [stdout] ]; [INFO] [stdout] SET (nth (nth xss 0) 0) true [INFO] [stdout] [INFO] [stdout] ] [INFO] [stdout] AST : ASTCMDS ASTConst ( "xss" , vec( vec( bool ) ) , ASTAlloc( ASTInt(3) ) ), ASTCMDS ASTVar ( "i" ,int ), ASTCMDS ASTSet( Ident("i") , ASTInt(0) ), ASTCMDS ASTWHILE( ASTBinPrim( Lt , ASTIdent( "i" ) , ASTLen( ASTIdent( "xss" ) ) ) , ASTCMDS ASTSet( Nth(Ident("xss"), ASTIdent( "i" )) , ASTAlloc( ASTBinPrim( Add , ASTIdent( "i" ) , ASTInt(1) ) ) ), FSTAT( ASTSet( Ident("i") , ASTBinPrim( Add , ASTIdent( "i" ) , ASTInt(1) ) ) ) ), FSTAT( ASTSet( Nth(Nth(Ident("xss"), ASTInt(0)), ASTInt(0)) , ASTBool(true) ) ) [INFO] [stdout] [INFO] [stdout] OutProlog : cdms( dec( const( xss , vec( vec( bool ) ) , alloc( integer( 3 ) ) ) ) , cdms( dec( var( i , int ) ) , cdms( stat( set( id(i) , integer( 0 ) ) ) , cdms( stat( swhile( binOpIntBool( id( i ) , len( id( xss ) ) ) , cdms( stat( set( nth( id(xss), id( i )) , alloc( binOpInt( id( i ) , integer( 1 ) ) ) ) ) , stat( set( id(i) , binOpInt( id( i ) , integer( 1 ) ) ) ) ) ) ) , stat( set( nth( nth( id(xss), integer( 0 )), integer( 0 )) , true ) ) ) ) ) ). [INFO] [stdout] thread 'aps2::prog_204' panicked at 'Erreur de type', src/main.rs:103:9 [INFO] [stdout] [INFO] [stdout] ---- aps2::prog_207 stdout ---- [INFO] [stdout] Parse file : "test/aps2/prog207.aps" [INFO] [stdout] Code : [INFO] [stdout] [ [INFO] [stdout] PROC bubble [xs:(vec int)][ [INFO] [stdout] CONST ln int (len xs); [INFO] [stdout] VAR i int; [INFO] [stdout] SET i 1; [INFO] [stdout] WHILE (lt i ln) [ [INFO] [stdout] CONST X int (nth xs (sub i 1)); [INFO] [stdout] IF (lt (nth xs i) X) [ [INFO] [stdout] SET (nth xs (sub i 1)) (nth xs i); [INFO] [stdout] SET (nth xs i) X; [INFO] [stdout] SET i (add i 1) [INFO] [stdout] ] [INFO] [stdout] [ [INFO] [stdout] SET i (add i 1) [INFO] [stdout] ] [INFO] [stdout] ] [INFO] [stdout] ]; [INFO] [stdout] CONST xs (vec int) (alloc 5); [INFO] [stdout] SET (nth xs 0) 6; [INFO] [stdout] SET (nth xs 1) 5; [INFO] [stdout] SET (nth xs 2) 4; [INFO] [stdout] SET (nth xs 3) 3; [INFO] [stdout] SET (nth xs 4) 2; [INFO] [stdout] CALL bubble xs [INFO] [stdout] ] [INFO] [stdout] AST : ASTCMDS ASTProc ( "bubble" , [Arg { ident: "xs", id_type: vec( int ) }] , ASTCMDS ASTConst ( "ln" , int , ASTLen( ASTIdent( "xs" ) ) ), ASTCMDS ASTVar ( "i" ,int ), ASTCMDS ASTSet( Ident("i") , ASTInt(1) ), FSTAT( ASTWHILE( ASTBinPrim( Lt , ASTIdent( "i" ) , ASTIdent( "ln" ) ) , ASTCMDS ASTConst ( "X" , int , ASTNth( ASTIdent( "xs" ) ,ASTBinPrim( Sub , ASTIdent( "i" ) , ASTInt(1) ) ) ), FSTAT( ASTIF( ASTBinPrim( Lt , ASTNth( ASTIdent( "xs" ) ,ASTIdent( "i" ) ) , ASTIdent( "X" ) ) , ASTCMDS ASTSet( Nth(Ident("xs"), ASTBinPrim( Sub , ASTIdent( "i" ) , ASTInt(1) )) , ASTNth( ASTIdent( "xs" ) ,ASTIdent( "i" ) ) ), ASTCMDS ASTSet( Nth(Ident("xs"), ASTIdent( "i" )) , ASTIdent( "X" ) ), FSTAT( ASTSet( Ident("i") , ASTBinPrim( Add , ASTIdent( "i" ) , ASTInt(1) ) ) ) , FSTAT( ASTSet( Ident("i") , ASTBinPrim( Add , ASTIdent( "i" ) , ASTInt(1) ) ) ) ) ) ) ) ), ASTCMDS ASTConst ( "xs" , vec( int ) , ASTAlloc( ASTInt(5) ) ), ASTCMDS ASTSet( Nth(Ident("xs"), ASTInt(0)) , ASTInt(6) ), ASTCMDS ASTSet( Nth(Ident("xs"), ASTInt(1)) , ASTInt(5) ), ASTCMDS ASTSet( Nth(Ident("xs"), ASTInt(2)) , ASTInt(4) ), ASTCMDS ASTSet( Nth(Ident("xs"), ASTInt(3)) , ASTInt(3) ), ASTCMDS ASTSet( Nth(Ident("xs"), ASTInt(4)) , ASTInt(2) ), FSTAT( ASTCall( "bubble" , [ASTIdent( "xs" )] ) ) [INFO] [stdout] [INFO] [stdout] OutProlog : cdms( dec( proc( bubble , [(xs , vec( int ))] , cdms( dec( const( ln , int , len( id( xs ) ) ) ) , cdms( dec( var( i , int ) ) , cdms( stat( set( id(i) , integer( 1 ) ) ) , stat( swhile( binOpIntBool( id( i ) , id( ln ) ) , cdms( dec( const( X , int , expnth( id( xs ) , binOpInt( id( i ) , integer( 1 ) ) ) ) ) , stat( statIf( binOpIntBool( expnth( id( xs ) , id( i ) ) , id( X ) ) , cdms( stat( set( nth( id(xs), binOpInt( id( i ) , integer( 1 ) )) , expnth( id( xs ) , id( i ) ) ) ) , cdms( stat( set( nth( id(xs), id( i )) , id( X ) ) ) , stat( set( id(i) , binOpInt( id( i ) , integer( 1 ) ) ) ) ) ) , stat( set( id(i) , binOpInt( id( i ) , integer( 1 ) ) ) ) ) ) ) ) ) ) ) ) )) , cdms( dec( const( xs , vec( int ) , alloc( integer( 5 ) ) ) ) , cdms( stat( set( nth( id(xs), integer( 0 )) , integer( 6 ) ) ) , cdms( stat( set( nth( id(xs), integer( 1 )) , integer( 5 ) ) ) , cdms( stat( set( nth( id(xs), integer( 2 )) , integer( 4 ) ) ) , cdms( stat( set( nth( id(xs), integer( 3 )) , integer( 3 ) ) ) , cdms( stat( set( nth( id(xs), integer( 4 )) , integer( 2 ) ) ) , stat( call( bubble , [id( xs )] ) ) ) ) ) ) ) ) ). [INFO] [stdout] thread 'aps2::prog_207' panicked at 'Erreur de type', src/main.rs:103:9 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] aps0::prog_000 [INFO] [stdout] aps0::prog_001 [INFO] [stdout] aps0::prog_002 [INFO] [stdout] aps0::prog_003 [INFO] [stdout] aps0::prog_004 [INFO] [stdout] aps0::prog_005 [INFO] [stdout] aps0::prog_006 [INFO] [stdout] aps0::prog_007 [INFO] [stdout] aps0::prog_008 [INFO] [stdout] aps0::prog_009 [INFO] [stdout] aps0::prog_010 [INFO] [stdout] aps0::prog_011 [INFO] [stdout] aps0::prog_012 [INFO] [stdout] aps0::prog_013 [INFO] [stdout] aps0::prog_014 [INFO] [stdout] aps0::prog_015 [INFO] [stdout] aps0::prog_016 [INFO] [stdout] aps0::prog_017 [INFO] [stdout] aps1::prog_100 [INFO] [stdout] aps1::prog_101 [INFO] [stdout] aps1::prog_102 [INFO] [stdout] aps1::prog_103 [INFO] [stdout] aps1::prog_104 [INFO] [stdout] aps1::prog_105 [INFO] [stdout] aps1::prog_106 [INFO] [stdout] aps1::prog_107 [INFO] [stdout] aps1::prog_108 [INFO] [stdout] aps1::prog_110 [INFO] [stdout] aps1::prog_111 [INFO] [stdout] aps1::prog_112 [INFO] [stdout] aps1::prog_113 [INFO] [stdout] aps1::prog_114 [INFO] [stdout] aps1::prog_115 [INFO] [stdout] aps1::prog_116 [INFO] [stdout] aps1::prog_117 [INFO] [stdout] aps1::prog_118 [INFO] [stdout] aps1::prog_119 [INFO] [stdout] aps1::prog_120 [INFO] [stdout] aps2::prog_200 [INFO] [stdout] aps2::prog_201 [INFO] [stdout] aps2::prog_202 [INFO] [stdout] aps2::prog_203 [INFO] [stdout] aps2::prog_204 [INFO] [stdout] aps2::prog_205 [INFO] [stdout] aps2::prog_206 [INFO] [stdout] aps2::prog_207 [INFO] [stdout] [INFO] [stdout] test result: FAILED. 0 passed; 46 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] [stderr] error: test failed, to rerun pass '--bin aps_bin' [INFO] running `"docker" "inspect" "0a266723ad4e42194f8985fe7a87bd1173be2fe587ae30f4a23286b79a9fb3de"` [INFO] running `"docker" "rm" "-f" "0a266723ad4e42194f8985fe7a87bd1173be2fe587ae30f4a23286b79a9fb3de"` [INFO] [stdout] 0a266723ad4e42194f8985fe7a87bd1173be2fe587ae30f4a23286b79a9fb3de