标签: read-eval-print-loop

如何改进创建基于Lua的Wireshark解剖器的工作流程

我终于在Lua for Wireshark为我的UDP协议创建了一个Dissector,但是工作流程非常糟糕.它包括在我的编辑器中编辑我的自定义Lua文件,然后双击我的示例捕获文件以启动Wireshark以查看更改.如果出现错误,Wireshark会通过对话框或树分析子窗格中的红线通知我.然后我重新编辑我的自定义Lua文件,然后关闭该Wireshark实例,然后再次双击我的示例捕获文件.这就像编译C文件一样只能看到一个编译器错误.

是否有更好(更快)的方式来查看我的更改,而无需一直重启Wireshark?

当时,我在启用了Lua的情况下使用Wireshark 1.2.9 for Windows.

workflow lua restart wireshark read-eval-print-loop

11
推荐指数
2
解决办法
4099
查看次数

在Scala REPL中导入多个包

在Scala中,我经常需要导入多个包含implicits和其他实用程序的包,特别是在REPL上:

import scala.collection.JavaConversions._
import scala.collection.{mutable => mut}
import com.myapp.db._
import com.orm._
val con = connectDb(...)
...
Run Code Online (Sandbox Code Playgroud)

我知道在Scala中无法导入多个包(虽然包对象范围可以帮助一点),但是从REPL呢?有没有办法在没有大量复制和粘贴的情况下从REPL执行此操作?我也试过使用:load,但在那里导入/创建的东西也没有被引入REPL的范围.我注意到:power命令确实将内容导入范围.

更新::load实际上确实有效.

scala read-eval-print-loop

11
推荐指数
1
解决办法
4423
查看次数

我可以从ocaml toplevel构建图形界面吗?

- 关于交互式顶层和图形UI编程的几个问题:

  1. 是否可以从ocaml toplevel动态构建图形界面?

  2. 也可以使用图形库吗?

gtk ocaml functional-programming ml read-eval-print-loop

11
推荐指数
2
解决办法
765
查看次数

如何自定义SBCL REPL?

有没有办法以某种方式自定义SBCL REPL,使其与CLISP REPL类似.标准的SBCL REPL在Mac OS X上并不真正可用.我不能使用箭头键或退格键.

sbcl common-lisp read-eval-print-loop

11
推荐指数
3
解决办法
2713
查看次数

如何在leiningen repl中预加载clojure文件?

当我启动clojure REPL时,我有一些我想预先加载的clojure函数.除非您在REPL的上下文中使用它们,否则这些函数没什么用处.

如果它有帮助,我通常使用leiningen为我开始一个clojure REPL.

我如何告诉clojure(或leiningen,如果它不能通过扁平的clojure获得)为我预加载包含这些定义的clojure文件?

clojure leiningen read-eval-print-loop

11
推荐指数
1
解决办法
3385
查看次数

如何暂停节点REPL并在稍后阶段恢复并保留所有环境?

我希望暂停REPL会话,以便我可以关闭系统,然后在以后继续在REPL会话上工作,好像我从未关闭它,即不必丢失所有环境.

我认为可能的解决方案可能是

  1. 快照内存,保存到文件并稍后从文件加载env:我认为这将是最好的解决方案,就像使用Windows的"休眠"功能时一样.我发现这个heapdump实用程序用于获取内存快照以分析内存泄漏,但我不知道你是否可以从该快照中恢复整个环境,我找不到这样做的工具.

  2. 保存命令并重放它们:这种方法的一个主要缺点是虽然它适用于简单的事情var x = "Hello World";,但它不适用于像var reciptId = bankAccount.makePayment(1000);重复每次重放操作而不是保存原始函数调用的细节的事情.

  3. 序列化/反序列化整个环境:这将涉及制作环境中存在的所有对象的列表,然后建立一种机制将每个对象写入文件,即序列化它们,然后创建一个反序列化这些并加载它们的机制在需要的时候.我还没有看到一个干净的方法来序列化和反序列化js变量没有限制.我认为这个方法的主要限制是它无法保留引用,所以对象松散了它们的类,在序列化时必须重复事物并且在反序列化时失去它们的相等性 - 例如 var f = function (x) {...}; var a = {}; a.f = f; a.f === f? //is true, not true if your serialization mechanism saves a function defn for f and a.f separately and deserializes them separately ,循环引用可能不起作用(x = {}; x.cyclic = x;... ).所以这种方法,如果它工作将需要大量的脏工作.

所以问题是,实现我希望实现的目标有多难?有什么其他解决方案可以做到这一点?实现这一目标是否存在重大阻碍?

此外,是否有任何替代节点repl程序(如浏览器中的控制台)可以像这样暂停?

相关:

javascript node.js read-eval-print-loop

11
推荐指数
1
解决办法
313
查看次数

如何在应用程序中嵌入图形交互式IronPython shell?

我在我的宠物开源项目RevitPythonShell(建筑建模软件Autodesk Revit Architecture 2010的插件)中尝试了明显的路径:code.interact()使用IronPython引擎设置为STDIN和使用.NET流STDOUT.然后我将这些重定向到TextBox控件.它有点工作,但真的只是一个丑陋的黑客.

主要问题是让所有shell工作正常工作:历史记录的上箭头和下箭头,编辑,复制和粘贴,EOF,语法高亮,工具提示等.要做到这一点需要做很多工作,而且它并不是我想要解决的问题(我正在尝试在Revit中托管交互式shell,而不是制作完美的shell GUI).

如果这不是一个.NET项目,我可能会考虑重用PyCrust/PyWrap,但我不确定是否可以从WinForms项目中完成..NET有什么类似的东西吗?

有没有人实现过IConsole界面,可以展示我需要做什么的例子?看起来这将是正确的路线(而不是使用code模块),但对于我的生活,我无法弄明白.IronPython源代码没有任何评论.

更新:在尝试了一些东西后,我最终选择了精湛的IronLab代码.它包括一个带语法高亮的示例shell和all.代码很好,易于集成.检查有关如何嵌入它的提示的RevitPythonShell代码.

python shell ironpython embedding read-eval-print-loop

10
推荐指数
1
解决办法
4024
查看次数

Vim:在持久的REPL环境中运行选定的代码

R,Python,Scala等都带有REPL环境,我不想错过,但是,大多数时候编辑它们的文本很糟糕,所以我在vim中编辑代码,粘贴它并查看输出并再次编辑vim中的代码.

我可以运行当前文件,!python %我可以用更多的vim魔法运行当前行,但是,这将启动解释器的新进程.

是否可以启动REPL并向正在运行的REPL发送代码行(显然可以得到结果)?

vim read-eval-print-loop

10
推荐指数
1
解决办法
2802
查看次数

REPL/interactive shell是否支持PHP 5.3?

我一直在使用phpsh一段时间了,过去它运行得很好.但它的命名空间支持仍然不是很好,这可能非常令人沮丧.

\Somespace\Someclass::someStaticFunction()在没有禁用检查是否存在方法的情况下,这样做是行不通的,这会导致重置环境的拼写错误导致频繁的致命错误.

有多个PHP REPL,包括PHP内置shell(php -a),使用起来很糟糕.

有没有人知道一个替代方案或者一个具有正确名称空间支持的phpsh-fork?或者也许是一个简单的配置修复我忽略了......


一个例子:

这个测试文件:

<?
namespace testing;

function echoSome(){
        echo 'Something';
}

\testing\echoSome();
Run Code Online (Sandbox Code Playgroud)

在phpsh中生成此输出(如预期的那样)

php> include '/path/test.php';
Something
php>
Run Code Online (Sandbox Code Playgroud)

但是再次尝试相同的调用不起作用:

php> \testing\echoSome();
Not executing input: Possible call to undefined function echoSome()
See /etc/phpsh/config.sample to disable UndefinedFunctionCheck.
Run Code Online (Sandbox Code Playgroud)

没有命名空间,该功能仍然可用:

<?
function echoSome(){
        echo 'Something';
}

echoSome();
Run Code Online (Sandbox Code Playgroud)

在phpsh中:

php> include '/path/test.php';
Something
Run Code Online (Sandbox Code Playgroud)

电话仍然有效:

php> echoSome();
Something
Run Code Online (Sandbox Code Playgroud)

php shell read-eval-print-loop phpsh

10
推荐指数
1
解决办法
1069
查看次数

是否可以使用c#"交互式窗口"而不是VS2017中的即时窗口

C#" 交互式 窗口 "比" 即时 窗口 " 功能更全面.是否可以在调试会话期间将调试上下文加载到其中?

c# debugging read-eval-print-loop visual-studio-2017

10
推荐指数
1
解决办法
1630
查看次数