neugram / ng

scripting language integrated with Go
https://neugram.io
BSD 2-Clause "Simplified" License
916 stars 43 forks source link

ng: implement untyped-float multiplications #192

Closed sbinet closed 6 years ago

sbinet commented 6 years ago

the following fails in ng:

ng> 4.0*2.0
ng eval panic: binOp type mismatch Left: +4 (eval.UntypedFloat), Right: +2 (eval.UntypedFloat) op: *
goroutine 1 [running]:
runtime/debug.Stack(0x65, 0x0, 0x0)
    /usr/lib/go/src/runtime/debug/stack.go:24 +0xa7
runtime/debug.PrintStack()
    /usr/lib/go/src/runtime/debug/stack.go:16 +0x22
neugram.io/ng/eval.(*Program).Eval.func1(0xc4200ae480, 0xc420113610, 0xc4201135f8)
    /home/binet/work/gonum/src/neugram.io/ng/eval/eval.go:516 +0x222
panic(0xb88620, 0xc4200f2180)
    /usr/lib/go/src/runtime/panic.go:491 +0x283
neugram.io/ng/eval.binOp(0xa, 0xc41fc0, 0xc4200f43c0, 0xc41fc0, 0xc4200f4420, 0x1, 0x7ac04e, 0x0, 0x0)
    /home/binet/work/gonum/src/neugram.io/ng/eval/op.go:577 +0x6c79
neugram.io/ng/eval.(*Program).evalExpr(0xc4200ae480, 0x1151c40, 0xc420104500, 0x0, 0x0, 0x0)
    /home/binet/work/gonum/src/neugram.io/ng/eval/eval.go:1521 +0x360d
neugram.io/ng/eval.(*Program).evalStmt(0xc4200ae480, 0x1152640, 0xc4200f4480, 0x0, 0x0, 0x0)
    /home/binet/work/gonum/src/neugram.io/ng/eval/eval.go:925 +0x4655
neugram.io/ng/eval.(*Program).Eval(0xc4200ae480, 0x1152640, 0xc4200f4480, 0xc4200761e0, 0x0, 0x0, 0x0, 0x114b5c0, 0xc4200f2190)
    /home/binet/work/gonum/src/neugram.io/ng/eval/eval.go:537 +0x38c
main.handleResult(0x1, 0xc4200f2170, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
    /home/binet/work/gonum/src/neugram.io/ng/ng.go:393 +0x7ff
main.loop(0xc400000000)
    /home/binet/work/gonum/src/neugram.io/ng/ng.go:385 +0x611
main.main()
    /home/binet/work/gonum/src/neugram.io/ng/ng.go:147 +0x641
ng: ng eval panic: binOp type mismatch Left: +4 (eval.UntypedFloat), Right: +2 (eval.UntypedFloat) op: *