Run Everywhere

Post Reply
User avatar
DGDanforth
Posts: 1061
Joined: Tue Sep 17, 2013 1:16 am
Location: Palo Alto, California, USA
Contact:

Run Everywhere

Post by DGDanforth »

A long term goal for BlackBox/Component Pascal is to have it running on all of the major platforms.

The Java virtual machine seems to allow that for Java.

P-Code for Pascal was a step in that direction. I never used P-Code but came close working as a consultant for Three Rivers Computer Corporation where their PERQ machine was P-Code based.

Efficiency is an issue with such machines but Parallels Desktop for Mac is a virtual machine that actually runs faster than the Mac OS code from Apple.
It should be possible (with lots of work) to produce a virtual machine for BlackBox.

Also Android (Java based) seems to have a large foothold in the mobile computing community. BlackBox does not address that community. It should since the hardware for those machines are now comparable to laptops and desktops and could easily support Component Pascal.

I would like to make it a goal of the Center to have BB run everywhere.

Comments?
-Doug
luowy
Posts: 234
Joined: Mon Oct 20, 2014 12:52 pm

Re: Run Everywhere

Post by luowy »

what needed for building a android app builder within BB?
i only know a compiler backend for java byte code is needed,like jbed,gpcp.
seem a lot of work to do, very hard.
User avatar
DGDanforth
Posts: 1061
Joined: Tue Sep 17, 2013 1:16 am
Location: Palo Alto, California, USA
Contact:

Re: Run Everywhere

Post by DGDanforth »

luowy wrote:what needed for building a android app builder within BB?
i only know a compiler backend for java byte code is needed,like jbed,gpcp.
seem a lot of work to do, very hard.
Perhaps we can "piggyback" on some other virtual machine that runs on mobile devices?

-Doug
luowy
Posts: 234
Joined: Mon Oct 20, 2014 12:52 pm

Re: Run Everywhere

Post by luowy »

DGDanforth wrote:Perhaps we can "piggyback" on some other virtual machine that runs on mobile devices?

-Doug
yes, ride on jvm,like jbed. but jbed is closed,the gpcp is open source,and it's author is working for 1.4 version.
User avatar
DGDanforth
Posts: 1061
Joined: Tue Sep 17, 2013 1:16 am
Location: Palo Alto, California, USA
Contact:

Re: Run Everywhere

Post by DGDanforth »

luowy wrote:
DGDanforth wrote:Perhaps we can "piggyback" on some other virtual machine that runs on mobile devices?

-Doug
yes, ride on jvm,like jbed. but jbed is closed,the gpcp is open source,and it's author is working for 1.4 version.
Thank you. I am trying to get gpcp running with their JVM but have not yet succeeded.
luowy
Posts: 234
Joined: Mon Oct 20, 2014 12:52 pm

Re: Run Everywhere

Post by luowy »

just now,using gpcp within bb is not easy, we'd better rewrite a new backend for java byte code like jbed base on gpcp source, after it's 1.4 version release out.
User avatar
DGDanforth
Posts: 1061
Joined: Tue Sep 17, 2013 1:16 am
Location: Palo Alto, California, USA
Contact:

Re: Run Everywhere

Post by DGDanforth »

luowy wrote:just now,using gpcp within bb is not easy, we'd better rewrite a new backend for java byte code like jbed base on gpcp source, after it's 1.4 version release out.
I am making progress.
The gpcp-JVM code has some added commands that do NOT correspond to Component Pascal.
Also, the BB compiler seems to be more strict than whatever gpcp uses.
For example, forward procedures(^) in BB must have the same export mark as the actual procedure
whereas the gpcp version does not follow that rule.
Also defining an ABSTRACT extension of an EXTENSIBLE record seems to be acceptable for gpcp but not for BB.
I am not impressed with the gpcp code. Its overly complex.
I agree with luowy that we need a new backend for java byte codes.
Once I finish transforming the .cp files to .odc (that compile in BB) I'll have a better understanding of how to generate the byte codes.
-Doug
User avatar
DGDanforth
Posts: 1061
Joined: Tue Sep 17, 2013 1:16 am
Location: Palo Alto, California, USA
Contact:

Re: Run Everywhere

Post by DGDanforth »

Code: Select all

dRes := lSet > rSet;
Arg....!
John Gough has really violated Component Pascal. Comparison of two SETs can not be done as he states in his ExprDesc.cp file.
Now I have to determine his intent and HOPE I get it right. Grumble...

Sets are unordered collection of objects. There is no order relationship between sets.
Now the "size" of two sets can be compared. But is that his intent?

-Doug
User avatar
DGDanforth
Posts: 1061
Joined: Tue Sep 17, 2013 1:16 am
Location: Palo Alto, California, USA
Contact:

Re: Run Everywhere

Post by DGDanforth »

I searched the BB framework for the word SYSTEM. It occurs in 72 files.
72 Files found
263 Files searched
14 Dirs searched
0.5 Time (sec)
That makes things difficult for porting to various platforms.

I did the search when I discovered that the Java version of the Gardens Point compiler does not handle SYSTEM
but a form of it is handled by the .NET version.

Hence one either needs to modify the JVM compiler of Gardens point OR eliminate the use of SYSTEM from all 72 BB files.

Side note: I have been able to compile Fonts to Java.
-Doug
User avatar
DGDanforth
Posts: 1061
Joined: Tue Sep 17, 2013 1:16 am
Location: Palo Alto, California, USA
Contact:

Re: Run Everywhere

Post by DGDanforth »

SlashDot wrote:An anonymous reader quotes a report from Liliputing:
First announced last year, Microsoft provided an update on Windows 10 ARM at the MS Build developer conference today. And the company confirmed that not only would Windows 10 ARM be able to run legacy apps developed for computers with x86 processors but you'd be able to just download any old Win32 app from the internet, install it, and run it on a computer running Windows 10 ARM. In other words, Windows 10 S runs on devices with ARM or x86 processors, but only supports Windows Store apps. Windows 10 ARM only runs on devices with ARM chips... but supports apps from pretty much any source. Developers don't need to convert their software in any way, because Windows 10 ARM includes a built-in emulation layer that allows Win32 apps to run on an ARM-powered system. But Microsoft demonstrated how you could download a common program like 7zip from the internet and simply install it on a device with a Qualcomm Snapdragon 835 processor. Of course, developers can also package software optimized for ARM as Universal Windows Platform apps for distribution in the Windows Store. But they don't necessarily have to.
Post Reply