[copy and paste bug] REPL 的谜之 bug

这个可恶的 bug 显著降低了我 copy and paste from github 的效率。
大概下降了 66 倍 (66s/1s)。内存占用少量上升 145M/130M。当然 copy 的代码越长,paste 的效率下降越严重。

复现很简单,copy 一段缩进深且行数多的代码,贴到 REPL 里。REPL 就会贴进去又删除,然后就会变得很奇怪,并且并不会报错。最后这个函数还定义成功了,并且可以用。但是就很浪费时间了。

效果见 gif

0_copy_AND_paste_bug

v1.0 & v0.7 可复现的测试代码
copy_and_paste_bug.jl

function add1(x)
# 0 spaces
    # 4 spaces
    # 4 spaces
        # 8 spaces
        # 8 spaces
        # 8 spaces
            # 12 spaces
        # 8 spaces
            # 12 spaces
            # 12 spaces
            # 12 spaces
                # 16 spaces
                # 16 spaces
                    # 20 spaces
                # 16 spaces
                    # 20 spaces
                    return x + 1
                # 16 spaces
                    # 20 spaces
                    # 20 spaces
                    # 20 spaces
                # 16 spaces
                # 16 spaces
            # 12 spaces
            # 12 spaces
            # 12 spaces
        # 8 spaces
    # 4 spaces
        # 8 spaces
        # 8 spaces
    # 4 spaces
# 0 spaces        
end

1.0 刷屏太长了,从 0.7 可以看出 REPL 在不断的尝试贴如代码段,而贴入的代码又被不断地删掉。贴入的部分代码段也不报错。




可以再继续尝试各种情况,然后去提 issue。

你要的是这个?

https://github.com/JuliaLang/julia/pull/29129

不得不说,这个 bug 让我养成了不往 REPL 里粘长代码的习惯。。。 :disappointed_relieved:

上一个被养成的习惯是不用 debugger :disappointed_relieved: :face_with_raised_eyebrow: :thinking:

我都是在REPL写代码然后粘贴到文档

1.0.2 版本后好像就没有这个 bug 了。

2 个赞