VMMaker/Plugins newbee question

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
14 messages Options
Reply | Threaded
Open this post in threaded view
|

VMMaker/Plugins newbee question

Klaus D. Witzel
List,

I'm using VMMaker and "build" on Win32 to routinely generate and compile  
(and run) experiments with Squeak's VM.

When I want a "small" VM, one that has (besides memory) just access to

- display
- keyboard
- mouse

are there any plugins I must include in VMMaker?

I'm asking because I want to create a new tool set for C compilation, for  
experiments with microkernels, and I don't want to spend too much time  
with dependencies of plugins.

Thank you very much in advance.

/Klaus


Reply | Threaded
Open this post in threaded view
|

Re: VMMaker/Plugins newbee question

Bert Freudenberg-3

Am 27.10.2005 um 10:36 schrieb Klaus D. Witzel:

> List,
>
> I'm using VMMaker and "build" on Win32 to routinely generate and  
> compile (and run) experiments with Squeak's VM.
>
> When I want a "small" VM, one that has (besides memory) just access to
>
> - display
> - keyboard
> - mouse
>
> are there any plugins I must include in VMMaker?

Well, for displaying you really need BitBlt. Some other plugins  
provide speedier execution for certain operations (strings, math,  
morphic transforms etc) but the image should have fallback-code when  
the plugins are not available.

- Bert -


Reply | Threaded
Open this post in threaded view
|

Re: VMMaker/Plugins newbee question

David T. Lewis
In reply to this post by Klaus D. Witzel
On Thu, Oct 27, 2005 at 10:36:00AM +0200, Klaus D. Witzel wrote:
>
> When I want a "small" VM, one that has (besides memory) just access to
>
> - display
> - keyboard
> - mouse
>
> are there any plugins I must include in VMMaker?

The plugins FilePlugin, B3DEnginePlugin, and BitBltSimulation
are necessary for a usable VM.

FilePlugin is required to allow access to the sources and
changes files. In principle it should be possible to do without
B3DEnginePlugin and BitBltSimulation, but the necessary error
handling does not seem to be in place in the image.

If you want access to networking, you must also include
SocketPlugin in the build.

Dave


Reply | Threaded
Open this post in threaded view
|

Re: VMMaker/Plugins newbee question

Klaus D. Witzel
In reply to this post by Klaus D. Witzel
Thank you Bert, David and Alan for advice and interest.

It looks like I'll have to come back soon with some currently unforseeable  
issues :)

/Klaus

On Thu, 27 Oct 2005 10:36:00 +0200, Klaus D. Witzel  
<[hidden email]> wrote:

> List,
>
> I'm using VMMaker and "build" on Win32 to routinely generate and compile  
> (and run) experiments with Squeak's VM.
>
> When I want a "small" VM, one that has (besides memory) just access to
>
> - display
> - keyboard
> - mouse
>
> are there any plugins I must include in VMMaker?
>
> I'm asking because I want to create a new tool set for C compilation,  
> for experiments with microkernels, and I don't want to spend too much  
> time with dependencies of plugins.
>
> Thank you very much in advance.
>
> /Klaus
>
>



Reply | Threaded
Open this post in threaded view
|

re: VMMaker/Plugins newbee question

ccrraaiigg
In reply to this post by Klaus D. Witzel

Hi Klaus--

http://lists.squeakfoundation.org/pipermail/spoon/2004-March/000050.html


-C

--
Craig Latta
improvisational musical informaticist
www.netjam.org
Smalltalkers do: [:it | All with: Class, (And love: it)]



Reply | Threaded
Open this post in threaded view
|

Re: VMMaker/Plugins newbee question

Klaus D. Witzel
Thank you Craig I just tested with #(BitBlt File FloatArray Security Misc)  
and the 3.7.1 Win32 "build" no longer compiles (lots of unrelated  
references, for example to JoyStick, DragAndDrop, Socket :(

Alan: may I ask what microkernel is your target?

/Klaus

On Fri, 28 Oct 2005 02:44:18 +0200, Craig Latta <[hidden email]> wrote:

>
> Hi Klaus--
>
> http://lists.squeakfoundation.org/pipermail/spoon/2004-March/000050.html
>
>
> -C
>



Reply | Threaded
Open this post in threaded view
|

Re: VMMaker/Plugins newbee question

timrowledge

On 28-Oct-05, at 11:06 AM, Klaus D. Witzel wrote:


> Thank you Craig I just tested with #(BitBlt File FloatArray  
> Security Misc) and the 3.7.1 Win32 "build" no longer compiles (lots  
> of unrelated references, for example to JoyStick, DragAndDrop,  
> Socket :(
>
You will need the Bitblt in order to display and I think FloatArray  
is used in some common morphic methods and Misc has a lot of useful  
string scanning prims but Security should not be needed.
 From a compiling point of view *none* of the plugins should be  
needed; if the compiler/linker is complaining then something is wrong  
with the makefile stuff. I think that Andreas generally has stuff set  
up to compile plugins internally so that may be an indicator of  
changes needed in the makefile. On RISC OS I make all the plugins  
external and there are *no* compile interdependencies between VM core  
and any plugin. There should not be any for any platform.

I see that in the latest copy of sqWin32Intel. on my machine there is  
an explicit call to ioInitSecurity() which is completely wrong; it  
forces you to have the security plugin linked directly to the vm  
core. There simply isn't any need to do this. The plugin will get  
loaded and initialized when it is needed.
I also see a curious file called sqWin32Stubs.c which has a large  
number of function references straight into plugins - since I don't  
do Windows I have no idea what this could be for - but it does have  
#ifdefs you can turn off and they might help. You'll find many of  
them in sqWin32.h - look for the #ifdef MINIMAL.


tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim




Reply | Threaded
Open this post in threaded view
|

Re: VMMaker/Plugins newbee question

Andreas.Raab
In reply to this post by Klaus D. Witzel
Try to

#define NO_SOCKET
#define NO_SOUND
#define NO_JOYSTICK
#define NO_PRINTER
#define NO_MIDI
#define NO_ASYNC_FILES
#define NO_PLUGIN_SUPPORT
#define NO_DIRECTINPUT
#define NO_SERIAL_PORT
#define NO_NETWORK

#define NO_SERVICE
#define NO_PREFERENCES
#define NO_PRINTER
#define NO_WHEEL_MOUSE

in sqWin32.h; that should do it.

Cheers,
   - Andreas

Klaus D. Witzel wrote:

> Thank you Craig I just tested with #(BitBlt File FloatArray Security
> Misc)  and the 3.7.1 Win32 "build" no longer compiles (lots of
> unrelated  references, for example to JoyStick, DragAndDrop, Socket :(
>
> Alan: may I ask what microkernel is your target?
>
> /Klaus
>
> On Fri, 28 Oct 2005 02:44:18 +0200, Craig Latta <[hidden email]> wrote:
>
>>
>> Hi Klaus--
>>
>> http://lists.squeakfoundation.org/pipermail/spoon/2004-March/000050.html
>>
>>
>> -C
>>
>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: VMMaker/Plugins newbee question

Andreas.Raab
In reply to this post by timrowledge
tim Rowledge wrote:
> I see that in the latest copy of sqWin32Intel. on my machine there is  
> an explicit call to ioInitSecurity() which is completely wrong; it  
> forces you to have the security plugin linked directly to the vm   core.
> There simply isn't any need to do this. The plugin will get  loaded and
> initialized when it is needed.

Sigh. We've had this discussion a couple of years ago already and
nothing has changed since. So let me repeat what I explained to you back
then: If you want to ensure that you can load an image in secured mode,
you cannot wait until that image voluntarily loads the plugin (because
it never will). You *have* to initialize the plugin automatically and
you *have* to do that before the image is even loaded.

   - Andreas

Reply | Threaded
Open this post in threaded view
|

Re: VMMaker/Plugins newbee question

Klaus D. Witzel
In reply to this post by Andreas.Raab
Thank you Andreas that was my first idea after I compared the (old) WinCE  
version of the files with (current) Win32. But I get the messages below.  
Any suggestion which plugins to include / exclude, or is it something else.

I'm using the 3.7.1. source files together with full Squeak3.7, will take  
any better version that compiles and runs for

- display
- keyboard
- mouse

/Klaus

(sorry, the following lines wrap incorrect)
gcc -mwindows -o ./release/Squeak.exe ./release/sqNamedPrims.o  
./release/sqVirtualMachine.o ./release/sqWin32Alloc.o  
./release/sqWin32Args.o ./release/sqWin32DirectInput.
o ./release/sqWin32Directory.o ./release/sqWin32Exports.o  
./release/sqWin32ExternalPrims.o ./release/sqWin32GUID.o  
./release/sqWin32Intel.o ./release/sqWin32PluginSupport
.o ./release/sqWin32Prefs.o ./release/sqWin32Service.o  
./release/sqWin32Stubs.o ./release/sqWin32Utils.o  
./release/sqWin32Window.o ./release/gnu-interp.o ./release/Squeak
.exp ./release/resource.o ./release/BitBltPlugin.lib  
./release/FilePlugin.lib ./release/FloatArrayPlugin.lib  
./release/MiscPrimitivePlugin.lib ./release/SecurityPlugin.li
b -lddraw -ldinput -lopengl32 -lwsock32 -lcomdlg32 -lole32 -lwinmm  
-luser32 -lgdi32 -lkernel32 -lcrtdll
./release/sqWin32Exports.o(.data+0x8)://D/3.7.1/win32/./vm/sqWin32Exports.c:  
undefined reference to `win32JoystickDebugInfo'
./release/sqWin32Exports.o(.data+0x14)://D/3.7.1/win32/./vm/sqWin32Exports.c:  
undefined reference to `win32JoystickDebugPrintRawValues'
./release/sqWin32Exports.o(.data+0x20)://D/3.7.1/win32/./vm/sqWin32Exports.c:  
undefined reference to `win32JoystickDebugPrintAlternativeValues'
./release/sqWin32Exports.o(.data+0x2c)://D/3.7.1/win32/./vm/sqWin32Exports.c:  
undefined reference to `win32DebugPrintSocketState'
./release/sqWin32Prefs.o: In function `HandlePrefsMenu':
//D/3.7.1/win32/./vm/sqWin32Prefs.c:377: undefined reference to  
`win32DebugPrintSocketState'
./release/sqWin32Window.o: In function `SetupWindows':
//D/3.7.1/win32/./vm/sqWin32Window.c:785: undefined reference to  
`SetupDragAndDrop'
make: *** [Squeak.exe] Error 1

On Fri, 28 Oct 2005 21:34:12 +0200, Andreas Raab <[hidden email]>  
wrote:

> Try to
>
> #define NO_SOCKET
> #define NO_SOUND
> #define NO_JOYSTICK
> #define NO_PRINTER
> #define NO_MIDI
> #define NO_ASYNC_FILES
> #define NO_PLUGIN_SUPPORT
> #define NO_DIRECTINPUT
> #define NO_SERIAL_PORT
> #define NO_NETWORK
>
> #define NO_SERVICE
> #define NO_PREFERENCES
> #define NO_PRINTER
> #define NO_WHEEL_MOUSE
>
> in sqWin32.h; that should do it.
>
> Cheers,
>    - Andreas
>
> Klaus D. Witzel wrote:
>> Thank you Craig I just tested with #(BitBlt File FloatArray Security  
>> Misc)  and the 3.7.1 Win32 "build" no longer compiles (lots of  
>> unrelated  references, for example to JoyStick, DragAndDrop, Socket :(
>>  Alan: may I ask what microkernel is your target?
>>  /Klaus
>>  On Fri, 28 Oct 2005 02:44:18 +0200, Craig Latta <[hidden email]>  
>> wrote:
>>
>>>
>>> Hi Klaus--
>>>
>>> http://lists.squeakfoundation.org/pipermail/spoon/2004-March/000050.html
>>>
>>>
>>> -C
>>>
>>
>



Reply | Threaded
Open this post in threaded view
|

Re: VMMaker/Plugins newbee question

timrowledge
In reply to this post by Andreas.Raab

On 28-Oct-05, at 12:55 PM, Andreas Raab wrote:


> tim Rowledge wrote:
>
>
>> I see that in the latest copy of sqWin32Intel. on my machine there  
>> is  an explicit call to ioInitSecurity() which is completely  
>> wrong; it  forces you to have the security plugin linked directly  
>> to the vm   core. There simply isn't any need to do this. The  
>> plugin will get  loaded and initialized when it is needed.
>>
>>
>
> Sigh. We've had this discussion a couple of years ago already and  
> nothing has changed since. So let me repeat what I explained to you  
> back then: If you want to ensure that you can load an image in  
> secured mode, you cannot wait until that image voluntarily loads  
> the plugin (because it never will). You *have* to initialize the  
> plugin automatically and you *have* to do that before the image is  
> even loaded.
>

Sigh. We've had this discussion about five years ago and nothing has  
changed since. So let me explain what I said back then;  that is not  
an excuse for making a direct call to a function in a plugin. How  
about using the correct ioLoadFunction() call that is specifically  
intended to provide clean, safe access to a plugin function? You even  
commented it as the correct way to do this.

tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim




Reply | Threaded
Open this post in threaded view
|

Re: VMMaker/Plugins newbee question

Andreas.Raab
To which I replied that in this particular case I don't care because I
want to make sure that the plugin is present and functioning. Do we
really need to rehash the whole discussion?

   - A.

tim Rowledge wrote:

>
> On 28-Oct-05, at 12:55 PM, Andreas Raab wrote:
>
>
>> tim Rowledge wrote:
>>
>>
>>> I see that in the latest copy of sqWin32Intel. on my machine there  
>>> is  an explicit call to ioInitSecurity() which is completely  wrong;
>>> it  forces you to have the security plugin linked directly  to the
>>> vm   core. There simply isn't any need to do this. The  plugin will
>>> get  loaded and initialized when it is needed.
>>>
>>>
>>
>> Sigh. We've had this discussion a couple of years ago already and  
>> nothing has changed since. So let me repeat what I explained to you  
>> back then: If you want to ensure that you can load an image in  
>> secured mode, you cannot wait until that image voluntarily loads  the
>> plugin (because it never will). You *have* to initialize the  plugin
>> automatically and you *have* to do that before the image is  even loaded.
>>
>
> Sigh. We've had this discussion about five years ago and nothing has  
> changed since. So let me explain what I said back then;  that is not  an
> excuse for making a direct call to a function in a plugin. How  about
> using the correct ioLoadFunction() call that is specifically  intended
> to provide clean, safe access to a plugin function? You even  commented
> it as the correct way to do this.
>
> tim

Reply | Threaded
Open this post in threaded view
|

Re: VMMaker/Plugins newbee question

johnmci
This implies the security plugin is MANDATORY, which is I didn't  
think it was?

On 28-Oct-05, at 3:44 PM, Andreas Raab wrote:

> To which I replied that in this particular case I don't care  
> because I want to make sure that the plugin is present and  
> functioning. Do we really need to rehash the whole discussion?
>
>   - A.
>
> tim Rowledge wrote:
>
>> On 28-Oct-05, at 12:55 PM, Andreas Raab wrote:
>>
>>> tim Rowledge wrote:
>>>
>>>
>>>
>>>> I see that in the latest copy of sqWin32Intel. on my machine  
>>>> there  is  an explicit call to ioInitSecurity() which is  
>>>> completely  wrong; it  forces you to have the security plugin  
>>>> linked directly  to the vm   core. There simply isn't any need  
>>>> to do this. The  plugin will get  loaded and initialized when it  
>>>> is needed.
>>>>
>>>>
>>>>
>>>
>>> Sigh. We've had this discussion a couple of years ago already  
>>> and  nothing has changed since. So let me repeat what I explained  
>>> to you  back then: If you want to ensure that you can load an  
>>> image in  secured mode, you cannot wait until that image  
>>> voluntarily loads  the plugin (because it never will). You *have*  
>>> to initialize the  plugin automatically and you *have* to do that  
>>> before the image is  even loaded.
>>>
>>>
>> Sigh. We've had this discussion about five years ago and nothing  
>> has  changed since. So let me explain what I said back then;  that  
>> is not  an excuse for making a direct call to a function in a  
>> plugin. How  about using the correct ioLoadFunction() call that is  
>> specifically  intended to provide clean, safe access to a plugin  
>> function? You even  commented it as the correct way to do this.
>> tim
>>
>
>

--
========================================================================
===
John M. McIntosh <[hidden email]> 1-800-477-2659
Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
========================================================================
===


Reply | Threaded
Open this post in threaded view
|

Re: VMMaker/Plugins newbee question

Andreas.Raab
Yes, I think it should be mandatory.

Cheers,
   - Andreas

John M McIntosh wrote:

> This implies the security plugin is MANDATORY, which is I didn't  think
> it was?
>
> On 28-Oct-05, at 3:44 PM, Andreas Raab wrote:
>
>> To which I replied that in this particular case I don't care  because
>> I want to make sure that the plugin is present and  functioning. Do we
>> really need to rehash the whole discussion?
>>
>>   - A.
>>
>> tim Rowledge wrote:
>>
>>> On 28-Oct-05, at 12:55 PM, Andreas Raab wrote:
>>>
>>>> tim Rowledge wrote:
>>>>
>>>>
>>>>
>>>>> I see that in the latest copy of sqWin32Intel. on my machine  
>>>>> there  is  an explicit call to ioInitSecurity() which is  
>>>>> completely  wrong; it  forces you to have the security plugin  
>>>>> linked directly  to the vm   core. There simply isn't any need  to
>>>>> do this. The  plugin will get  loaded and initialized when it  is
>>>>> needed.
>>>>>
>>>>>
>>>>>
>>>>
>>>> Sigh. We've had this discussion a couple of years ago already  and  
>>>> nothing has changed since. So let me repeat what I explained  to
>>>> you  back then: If you want to ensure that you can load an  image
>>>> in  secured mode, you cannot wait until that image  voluntarily
>>>> loads  the plugin (because it never will). You *have*  to initialize
>>>> the  plugin automatically and you *have* to do that  before the
>>>> image is  even loaded.
>>>>
>>>>
>>> Sigh. We've had this discussion about five years ago and nothing  
>>> has  changed since. So let me explain what I said back then;  that  
>>> is not  an excuse for making a direct call to a function in a  
>>> plugin. How  about using the correct ioLoadFunction() call that is  
>>> specifically  intended to provide clean, safe access to a plugin  
>>> function? You even  commented it as the correct way to do this.
>>> tim
>>>
>>
>>
>
> --
> ========================================================================
> ===
> John M. McIntosh <[hidden email]> 1-800-477-2659
> Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
> ========================================================================
> ===
>
>