Smalltalk 是运行时方法

Smalltalk 是运行时方法,smalltalk,pharo,Smalltalk,Pharo,在Pharo Smalltalk中,有没有办法判断当前映像是运行时映像还是开发映像?我想创建一种方法来发出关闭运行时映像而不是开发映像的信号 Smalltalk映像中没有“运行时”与“开发”这样的内在区别。但是,由于这是一个实时环境,您可以按照自己的意愿来表示,例如通过单例。比如: SessionType class>>uniqueInstance ^ uniqueInstance ifNil: [ uniqueInstance := self new ] SessionTyp

在Pharo Smalltalk中,有没有办法判断当前映像是运行时映像还是开发映像?我想创建一种方法来发出关闭运行时映像而不是开发映像的信号

Smalltalk映像中没有“运行时”与“开发”这样的内在区别。但是,由于这是一个实时环境,您可以按照自己的意愿来表示,例如通过单例。比如:

SessionType class>>uniqueInstance
  ^ uniqueInstance ifNil: [ uniqueInstance := self new ]

SessionType>>isDevelopment
  ^ isDevelopment

SessionType>>isDevelopment: aBoolean
  isDevelopment := aBoolean

在Pharo中,有一个剥离功能,可以删除开发时类和工具,并将其打包为运行时。它与VA类似,但在工艺方面与VA不同

没有方便的方法来检查它是否是一个运行时与开发人员,但在Smalltalk中添加一个比较便宜。。因此,请继续并将其添加到

SmalltalkImage>>isRuntime

^( Smalltalk at: #Metacello1 ifAbsent: [ ] ) isNil
“或者,您保证的任何类在运行时不始终存在于运行时映像中,而始终存在于开发中。”


ImageCleaner>>为生产/发布提供清理方法。并提供更多支持。

感谢您的快速响应。我对Pharo非常陌生。我所有的Smalltalk体验都来自VA Smalltalk。他们过去有一种方法,(我相信是在系统级别上),这表示您是在开发映像中还是在打包的运行时映像中。如果您发现它很有用,请在要包含在core中的开发人员邮件列表中列出一个案例。社区对好的想法非常开放(特别是在伴有代码哈哈的情况下)。欢迎来到Pharo:)我对开发人员邮件列表一无所知。您能详细说明一下吗?