标签: pharo

在Pharo Image启动时添加要运行的东西

我想在pharo图像启动时添加一些东西来运行.没有什么比只调用一个类方法更好的了,它是我的应用程序的入口点.我找不到任何在启动时制作smalltalk脚本的指南.或者你有什么方法可以添加在图像启动时完成的东西吗?

smalltalk startup pharo

7
推荐指数
1
解决办法
539
查看次数

在Smalltalk中为初学者构建应用程序

我是Smalltalk技术的新手.我在编程方面的经验是使用C和C++.我想了解smalltalk的设计方法.任何人都可以提出一些简单的实时应用程序,这些应用程序是用smalltalk开发的,可以帮助像我这样的初学者探索smalltalk的途径.目前我正在试验我在Pharo上的smalltalk学习.

smalltalk squeak pharo

7
推荐指数
2
解决办法
663
查看次数

你怎么能以编程方式将一个类变量添加到Pharo的一个类中?

你怎么能以编程方式将一个类变量添加到Pharo的一个类中?它应该在类构建器中,您可以在其中将实例变量添加到类中.但我没有看到它.

smalltalk pharo

7
推荐指数
1
解决办法
300
查看次数

在Smalltalk中解析RDF

在任何Smalltalk风格中,是否有任何示例显示如何解析RDF文件?我见过的唯一的包是Rikaiko与RDFXMLReader类,但没有引用,它似乎很undocummented.

rdf smalltalk visualworks squeak pharo

7
推荐指数
1
解决办法
317
查看次数

如何在Pharo Smalltalk中与雅典/开罗进行视角转换

我在Pharo Smalltalk的雅典/开罗发现了仿射变换功能(旋转,剪切,平移,缩放).

我正在寻找透视转型.这有可能吗?至少在开罗API中似乎没有这方面的便利方法.

透视转型

smalltalk transformation matrix pharo cairo

7
推荐指数
1
解决办法
820
查看次数

如何在SUnit中测试跑步者?

我想在Pharo中测试SUnit测试.改变测试运行方式的正确方法是什么?

例:

我想在测试中引入超时,我运行的每个测试都应该在给定的延迟后中止.

问题:

SUnit没有专门TestRunner的模型,可以让我轻松地介绍更改.我可以创建一个新的子类TestResult并在那里使用API​​(runCase:,addError:...)来获得足够的控制.但是,更改结果类以修改测试运行方式的行为会感到奇怪.

我习惯了SMark,我有一个专门的跑步者来修改这些东西.

unit-testing smalltalk pharo

7
推荐指数
1
解决办法
189
查看次数

在更改vm原语时调试VM中的解释器

上下文

作为一个大学项目,我们想要改变pharo vm以使用对象表,看看会发生什么.

我们使用来自github和VMMaker 的pharo-vm克隆.构建VM工作正常.

为了开始,我们添加了一个返回增量Integer的原语:

InterpreterPrimitives>>primitiveIntegerIncrement
    "increments an integer"
    self pushInteger: self popInteger + 1 .
Run Code Online (Sandbox Code Playgroud)

StackInterpreter class>>initializePrimitiveTable据此修改

MaxPrimitiveIndex := 576.
"... and so on ..."
    (575 primitiveFail)
    (576 primitiveIntegerIncrement))
Run Code Online (Sandbox Code Playgroud)

它有效.

问题

当我们对VM进行更改时,我们想要在SmalltalkImage中进行测试运行,因此我们不需要编译并看到它不起作用.

就像是:

StackInterpreter test: '1 inc'
Run Code Online (Sandbox Code Playgroud)

如果原语错误或发生错误,我可以调试.当然需要做得更多,但我怎样才能做到这一点?

我们尝试了什么

  1. VMMaker-InterpreterSimulationStackInterpreterSimulator.尝试评论中的代码

    DoIt
        ^ (StackInterpreterSimulator new openOn: Smalltalk imageName) test 
    
    Run Code Online (Sandbox Code Playgroud)

    错误:

        displayForm := 'Display has not yet been installed' asDisplayText form.
    
    Run Code Online (Sandbox Code Playgroud)

    ByteString不明白 asDisplayText

  2. (CogVMSimulator new openOn: Smalltalk imageName) test 
    (InterpreterSimulator …
    Run Code Online (Sandbox Code Playgroud)

smalltalk squeak pharo vm-implementation

7
推荐指数
1
解决办法
267
查看次数

Monticello:在复制到远程存储库时同步协作开发/正确编号版本的工作流程

在工作的同时,我做了很多修改.每当代码形式合理时,我都愿意提交.但并非所有这些提交都很有趣.所以我将这些提交提交到本地磁盘或私有服务器.它看起来像这样:

  • Foo早上拿了包,所以它的版本是FamousSmalltalkGuy.14.
  • 我在当地早上(15),午餐(16)和晚上(17)承诺.现在Foo在本地打包是最多的DanielLyons.17.
  • 看起来像Famous Smalltalk Guy将15版本推向了Smalltalkhub.
  • 我合并FamousSmalltalkGuy.15了我的图像,生成DanielLyons.18.

现在我想推进DanielLyons.18Smalltalkhub.什么是正确的做法?

  1. 复制版本(单击Monticello UI中的"复制"按钮).

    这感觉错了,因为届时将有来自不连续FamousSmalltalkGuy.15DanielLyons.18.

  2. 在Smalltalkhub存储库中提交新版本,手动DanielLyons.15在框中书写.

    这感觉不对,因为它似乎混淆了我的本地形象.毕竟,它DanielLyons.15之前已经看过了,这不是它.

我确信这里有正确的事情,但我不知道它是什么.如果有人能够对正确的蒙蒂塞洛工作流程进行同步协作开发,我将非常感激.谢谢!

version-control smalltalk pharo monticello

7
推荐指数
1
解决办法
119
查看次数

Pharo的双重派遣

有人可以用Smalltalk解释Pharo 4.0中双重调度的过程吗?我是Smalltalk的新手并且很难掌握这个概念,因为与Smalltalk相比,它在Java中的实现方式非常不同.如果有人可以通过一个例子解释它,将会非常有帮助.

smalltalk double-dispatch pharo

7
推荐指数
1
解决办法
986
查看次数

研究smalltalk和pharo的资源?

我已经下载了pharobyexample.org电子书,但它似乎与最新版本的pharo不同步,我也想知道有哪些资源可以帮助我学习smalltalk.

smalltalk pharo

7
推荐指数
1
解决办法
255
查看次数