Skip to content

blink bug revealed by running Go binary on linux/amd64 #213

Description

@glycerine

blink appears to corrupt data somewhere that shows up when I run my lisp interpreter, https://github.com/glycerine/zygomys, on it. To fetch: go install github.com/glycerine/zygomys/cmd/zygo@latest under go1.25.6.
This does not happen running the native amd64 binary.

go version go1.25.6 linux/amd64
$ uname -a
Linux rog 6.14.0-37-generic #37~24.04.1-Ubuntu SMP PREEMPT_DYNAMIC Thu Nov 20 10:25:38 UTC 2 x86_64 x86_64 x86_64 GNU/Linux

(goivy-venv) jaten@rog ~/go/src/github.com/jart/blink (master) $ file `which zygo`
file `which zygo`
/home/jaten/go/bin/zygo: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=b19e\
d790efe983885198985b3b1630284bade0ac, with debug_info, not stripped
(goivy-venv) jaten@rog ~/go/src/github.com/jart/blink (master) $ blink `which zygo`
blink `which zygo`
zygo version v9.6.0/fd768f9fcf055e3105abe356eae47324c9e0c699
press tab (repeatedly) to get completion suggestions. Shift-tab goes back. Ctrl-d to exit.
zygo> a=10
a=10
10
zygo> fatal error: slice bounds out of range

goroutine 1 gp=0xc000002380 m=5 mp=0xc000100008 [running]:
runtime.throw({0x8e74ab?, 0xc9f740?})
        /mnt/oldrog/usr/local/go1.25.6/src/runtime/panic.go:1094 +0x48 fp=0xc0001bf2d8 sp=0xc0001bf2a8 pc=0x481548
runtime.panicCheck1(0xc0001bf320?, {0x8e74ab, 0x19})
        /mnt/oldrog/usr/local/go1.25.6/src/runtime/panic.go:59 +0x94 fp=0xc0001bf2f8 sp=0xc0001bf2d8 pc=0x446eb4
runtime.goPanicSliceAlen(0x6, 0x20)
        /mnt/oldrog/usr/local/go1.25.6/src/runtime/panic.go:128 +0x2e fp=0xc0001bf338 sp=0xc0001bf2f8 pc=0x4470ae
runtime.stringtoslicerune(0xc0001bf414, {0x8db6c4, 0x6})
        /mnt/oldrog/usr/local/go1.25.6/src/runtime/string.go:241 +0x152 fp=0xc0001bf380 sp=0xc0001bf338 pc=0x4683d2
github.com/glycerine/liner.(*State).Prompt(0xc0001e1680, {0x8db6c4, 0x6})
        /home/jaten/go/pkg/mod/github.com/glycerine/liner@v0.0.0-20160121172638-72909af234e0/line.go:582 +0x187 fp=0xc0001bf938 sp=0xc0001bf380 pc=0x7139a7
github.com/glycerine/zygomys/v9/zygo.(*Prompter).Getline(0xc00026a180, 0x0)
        /home/jaten/go/src/github.com/glycerine/zygomys/zygo/liner.go:125 +0xb2 fp=0xc0001bf9a0 sp=0xc0001bf938 pc=0x798772
github.com/glycerine/zygomys/v9/zygo.(*Prompter).getExpressionWithLiner(0xc00026a180, 0xc00020eea0, 0x0, 0x0)
        /home/jaten/go/src/github.com/glycerine/zygomys/zygo/repl.go:91 +0x145 fp=0xc0001bfaf8 sp=0xc0001bf9a0 pc=0x7a87a5
github.com/glycerine/zygomys/v9/zygo.Repl(0xc00020eea0, 0xc0001f9ea0)
        /home/jaten/go/src/github.com/glycerine/zygomys/zygo/repl.go:183 +0x485 fp=0xc0001bfe10 sp=0xc0001bfaf8 pc=0x7aa3a5
github.com/glycerine/zygomys/v9/zygo.ReplMain(0xc0001f9ea0)
        /home/jaten/go/src/github.com/glycerine/zygomys/zygo/repl.go:499 +0x405 fp=0xc0001bff00 sp=0xc0001bfe10 pc=0x7abfa5
main.main()
        /home/jaten/go/src/github.com/glycerine/zygomys/cmd/zygo/main.go:37 +0x18f fp=0xc0001bff50 sp=0xc0001bff00 pc=0x7becef
runtime.main()
        /mnt/oldrog/usr/local/go1.25.6/src/runtime/proc.go:285 +0x29d fp=0xc0001bffe0 sp=0xc0001bff50 pc=0x44c41d
runtime.goexit({})
        /mnt/oldrog/usr/local/go1.25.6/src/runtime/asm_amd64.s:1693 +0x1 fp=0xc0001bffe8 sp=0xc0001bffe0 pc=0x489701

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions