朱莉娅或屏幕中的奇怪虫子

时间:2016-04-18 15:21:30

标签: linux julia gnu-screen

在Debian 8 Linux上,我使用vim和screen一起将行从vim发送到julia会话。今天,我尝试了https://github.com/Keno/Cxx.jl。我按照那里的指示(即我编译了最新版本0.5.0-dev + 3609 of Julia)。当我尝试示例1时出现以下错误,我可以通过以下简单步骤确定它:

  1. 创建以下文件(不要覆盖您自己的文件):

    printf "using Cxx\ncxx\"\"\"#include<iostream> \"\"\"\ncxx\"\"\"void testfunction(){std::cout<<\"worked\"<< std::endl;}\"\"\"\njulia_function() = @cxx testfunction()\n" > start

    printf "julia_function()\n" > freeze

  2. 打开终端1(我使用gnome-terminal)并编写screen -S session,然后用julia启动Julia。它应该看起来像

  3.                _
       _       _ _(_)_     |  A fresh approach to technical computing
      (_)     | (_) (_)    |  Documentation: http://docs.julialang.org
       _ _   _| |_  __ _   |  Type "?help" for help.
      | | | | | | |/ _` |  |
      | | |_| | | | (_| |  |  Version 0.5.0-dev+3609 (2016-04-18 07:07 UTC)
     _/ |\__'_|_|_|\__'_|  |  Commit a136a6e (0 days old master)
    |__/                   |  x86_64-linux-gnu
    
    julia> 
    
    1. 打开终端2并执行操作
      screen -S session -p 0 -X eval "readreg p start" "paste p"
      终端1现在应该看起来像
    2.                _
         _       _ _(_)_     |  A fresh approach to technical computing
        (_)     | (_) (_)    |  Documentation: http://docs.julialang.org
         _ _   _| |_  __ _   |  Type "?help" for help.
        | | | | | | |/ _` |  |
        | | |_| | | | (_| |  |  Version 0.5.0-dev+3609 (2016-04-18 07:07 UTC)
       _/ |\__'_|_|_|\__'_|  |  Commit a136a6e (0 days old master)
      |__/                   |  x86_64-linux-gnu
      
      julia> using Cxx
      
      julia> cxx"""#include<iostream> """
      true
      
      julia> cxx"""void testfunction(){std::cout<<"worked"<< std::endl;}"""
      true
      
      julia> julia_function() = @cxx testfunction()
      julia_function (generic function with 1 method)
      
      julia> 

      现在出现奇怪的错误:写“ju”,使用TAB完成“julia_function”并在终端1中手动添加“()”导致

      julia> julia_function()
      worked
      
      julia> 
      

      但如果我在终端2中执行步骤1,2,3,然后screen -S session -p 0 -X eval "readreg p freeze" "paste p"或在终端1中编写julia_function()而不使用TAB来完成,那么我会在终端1中冻结:

      julia> julia_function()

      如果我执行步骤1,2,3,如上所述使用TAB完成,那么(即第一次调用之后,编译函数){{1}在终端2和screen -S session -p 0 -X eval "readreg p freeze" "paste p"中,不使用终端1中的TAB按预期工作(它打印“工作”)并且不会导致冻结。

      如果我根本不使用屏幕,它可以工作(有和没有TAB)。你能告诉我这里发生了什么吗?

0 个答案:

没有答案