Squeaklets: the bigger picture

agree at carltonfields.com agree at carltonfields.com
Tue Feb 8 20:44:17 UTC 2000


> Is it true that fileIns, since they modify the VM, are  more like
> VM patches while plug-ins because they are separate, are real
> extensions?
> > So, apart from the nomenclature, are the roles for plug-ins versus
> fileIns distinct and clear? Should they be?

OK.  The VM is the program, written in native machine language, that boots up, puts up a window, and starts interpreting ST bytecodes.  The "image" file is a file which is loaded by the VM, represents all Smalltalk objects in memory (sans those which are dynamically loaded through "projects").  These objects include the code you think about when you think about Smalltalk.

Generally, your statement that File-Ins don't modify the VM is wholly incorrect.  File-Ins are, basically, scripts that modify the image.  They are usually compilations of Smalltalk source code to be loaded in and compiled into bytecodes, and instructions for doing that, but can also include scripts of Smalltalk code to be executed for other reasons.  Theoretically, a script could modify the VM code files, but that would be odd.  A script can, of course, change the stored source code for the VM, so a new updated VM can be built, but doesn't modify the currently running VM.  You are, of course, quite correct that you cannot assume everyone has loaded any file-ins.

Plugins are overused terms.

One kind of plugin is the native-language code for a browser, like netscape, that permits it to display views of URI's for which the browser doesn't have its own support.  One possible application of a plugin is to permit a browser to run and display Smalltalk code.

Another kind of plugin is ANY KIND OF CODE that is dynamically loaded by a program.  Squeak, for example, uses plugins which are native language code that "extends" the interpreter so that it can run "pluggable primitives."  We use terms like "pluggable" in other ways throughout the Smalltalk image that has nothing to do with this use of the term.

I'm sure there are zillions of other uses of the phrase plugin, but I hope this much clarifies a few things.  FileIns generally change the image and load code, but don't modify the VM directly.  Plugins permit Squeak to extend the VM to run native code (usually because its faster, but sometimes because its the only way to do something).  And Squeak itself can be a plugin for a browser, such as Netscape.





More information about the Squeak-dev mailing list