[Vm-dev] Slang for Cuis (WIP, experimental)
Paul DeBruicker
pdebruic at gmail.com
Wed May 20 02:16:20 UTC 2020
Not sure about the Socket/SUnit or FFI-Z3 issues but this JSON works fine in
5.3:
JSON - http://www.squeaksource.com/JSON.html
MCHttpRepository
location: 'http://www.squeaksource.com/JSON'
user: ''
password: ''
And the latest versions (e.g. March 2013) of PetitParser & PetitParserTests
on Lukas Rengglis site work too:
MCHttpRepository
location: 'http://source.lukas-renggli.ch/petit/'
user: ''
password: ''
Hope htis helps
Paul
David T. Lewis wrote
> Hi Boris,
>
> Replying with CC to the Squeak oversight board - we have a meeting
> scheduled
> tomorrow, and I would like to put the following topic on our agenda. Let's
> see if we can to something to help. From Boris Shingarov's message:
>
>
> OSTVM is hosted in Squeak.?? With all my love for Squeak, I still
> can't
> use it for this kind of work.?? There are blocker problems with SUnit
> (causes erratic behavior of Socket code which works fine outside
> SUnit),
> so I can't have tests, I resort to launching everything from doits.??
> I
> have no PetitParser.?? I have no JSON.?? I can't use my FFI-to-Z3
> bindings.?? In the middle of working I randomly get unexpected
> problems
> with access to source.squeak.org.?? And so on.
>
> I will not even pretend to understand some of the issues being discussed,
> but things like SUnit problems and availabity of JSON (for example) are
> surely things that we can make progress on.
>
> Dave
>
>
>
> On Tue, May 19, 2020 at 01:05:53PM -0400, Boris Shingarov wrote:
>>
>>
>> >Hunh - I didn't remember that at all; I thought Boris Shingarov had
>> >been Mr OS/2-Squeak.
>> There were two OS/2 ports that did non-overlapping things because they
>> were designed with orthogonal goals in mind.
>>
>> Juan's port was a "real PresentationManager/2 application", but it was a
>> real PM/2 *Squeak* in that it opened a PM/2 window and BitBlt'd the
>> Squeak Display to that.
>>
>> Opposite to that, the idea of "real PM/2" to me meant "Native Widgets"
>> and I wanted to have that in Squeak.?? The problem was, in a live system
>> (which is also "truly single-threaded"), how do I debug the
>> "native-widget" event loop when the PM/2 is tied up by the BitBlt UI???
>> This meant that Juan's design wouldn't fit: I needed to somehow have all
>> the Squeak tools but without touching PM/2.?? This was enabled by two
>> things: (1) compiling the VM with Ian's sqXWindow.c, so Squeak would
>> show on an X display while appearing to OS/2 initially as a headless app
>> talking to the network, and (2) writing an FFI for the VM --
>> "native-widget" PM/2 calls were made via that FFI.
>>
>>
>> >I wouldn't be surprised if it still works. But this was never part of
>> >the official releases.
>> I very much wanted to merge it upstream into Ian's unix port (the diff
>> was very small).?? The desire seems weird and silly now, but back then I
>> somehow thought it would make a difference, and I remember I was very
>> frustrated that the merge didn't happen.?? But it *is* part of the 1.23
>> distribution on files.squeak.org today.
>>
>>
>> >Later this was the base of his extremely interesting Cheese project.
>> >
>> Oh yes -- Cheese.?? This is what 3 years later led to the work on Eclipse
>> SWT.
>>
>>
>> >/I started with dissecting Slang out of the Cuis VMMaker packages and
>> >VMMakerJS (SqeakJS) project into a couple of packages which could be
>> >used for generating anything besides VM plugins./
>> You don't need Alien plugins to do VMIL18-simulation-style development
>> of the core VM.?? For that there is now the Smalltalk implementation of
>> RSP, which I recently added to VMMaker.?? There is a wide choice how to
>> run the native CPU code: various simulators (gem5 or qemu), or on
>> production silicon under GDB, or on some FPGA prototype under OpenOCD,
>> ... well ... really anything that knows how to speak RSP.?? This will
>> have a number of far-reaching consequences; this margin is too narrow to
>> explain them, but you can watch a number of my presentations on the
>> subject.
>>
>> Where does this stand right now?
>>
>> VMIL-18-simulation of Cog runs fine over RSP.?? VMMaker depends on a
>> subtle inaccuracy in the Alien's emulation of instruction atomicity.??
>> This will cause VMMaker to fail on off-the-shelf production silicon.??
>> But when you modify the CPU to behave like Alien, OSTVM runs just fine
>> (I verified on gem5).?? So it's a matter of very small fix to the Cogit
>> to match what the stock processor is doing, before we have the full
>> freedom to run anywhere we want.
>>
>>
>> The larger problem that stops me from bringing in all the rest of the
>> system (the target-agnostic synthesizer, the binutils-in-Smalltalk, the
>> symbolic execution engine, the superoptimizer, etc), is the lack of a
>> usable mother-Smalltalk.
>>
>> OSTVM is hosted in Squeak.?? With all my love for Squeak, I still can't
>> use it for this kind of work.?? There are blocker problems with SUnit
>> (causes erratic behavior of Socket code which works fine outside SUnit),
>> so I can't have tests, I resort to launching everything from doits.?? I
>> have no PetitParser.?? I have no JSON.?? I can't use my FFI-to-Z3
>> bindings.?? In the middle of working I randomly get unexpected problems
>> with access to source.squeak.org.?? And so on.
>>
>>
>> So.
>>
>> Is there an environment where work would not be blocked by such problems?
>>
>> Let's look.
>>
>> >Pharo VM did not only fork the transpiled C code, they also put the
>> >Smalltalk VMMaker code in the repository and maintain it there. They
>> >do not use the VMMaker Monticello repository if I understand
>> >correctly. So in their repository and workflow, it really is a source
>> >fork.
>> You must know some magic!?? something I've been begging the Pharo people
>> for months to tell me the secret where to download that source from.?? I
>> tried the */headless/* branch, but it doesn't even compile in Pharo.?? I
>> tried asking on pharo-dev, but I got zero responses since February.
>>
>>
>> So.
>>
>> The million-dollar question again:
>>
>> Is there *any* environment that works well enough to do OST VM work in?
>>
>> >I started with dissecting Slang out of the Cuis VMMaker packages and
>> >VMMakerJS (SqeakJS) project into a couple of packages which could be
>> >used for generating anything besides VM plugins.
>> >
>> >Atleast that's my intentiont, I don't yet know of how that project
>> >idea will pan out, atleast I intend to learn something of how Slang
>> >works and how it's generated.
>> >
>> >It's currently highly expiremental, but I got some of the existing
>> >VMMaker testscases "green" and so I thought I could share the current
>> >state of it. Maybe the whole idea of using it outside the VMMaker is
>> >not so a good idea, maybe, maybe not :-)
>> >
>> For the reasons I just explained above, I believe it would be more than
>> just "a good idea".?? It is critical to the viability of this whole
>> stack.?? If your project works, it give us an environment enabling
>> further collaboration on OSTVM.?? Well, I must admit I don't know which
>> way is shorter / more straightforward: this, or making Squeak work.?? I
>> would be happy either way.?? I don't care which: I have much bigger fish
>> to fry.
>>
>> -- boris
>>
>>
--
Sent from: http://forum.world.st/Squeak-VM-f104410.html
More information about the Vm-dev
mailing list