Discussion:
Smalltalk and CORBA
Stephen Pope
2012-01-28 10:03:00 UTC
Permalink
I'm glad that there are several others interested in CORBA ORBs for Squeak. The
basic prerequisites that are currently still open issues include:
(1) Weak references and collections;
(2) First-class exceptions (including unwinding); and
(3) a ParserGenerator.

(1) has been recently added to Squeak by Andreas Raab. (Has anyone tested it
heavily?)

There are several solutions to (2), including a (partial) VisualWorks-compatible
version (by yours truly), a VisualSmalltalk-like version (by Tim Jones), and an
ANSI Smalltalk version (from R A Harmon). None of these is complete, nor do they
have the VM support for full block unwinding.

(3) Is a bit complicated. The public domain TGen package is rather tightly bound
to the VisualWorks Smalltalk compiler, which is diferent in many respects from
Squeak's. I believe that getting a port of TGen is the next important step to
getting a CORBA ORB ported.

Jeff Eastman (the author of both H-P DistributedSmalltalk and DNS
SmalltalkBroker [STB]) has expressed great interest in porting STB to Squeak,
but is waiting for the 3 facilities mentioned above to be made available first.
--
stp

Stephen Travis Pope
***@create.ucsb.edu -- http://www.create.ucsb.edu/~stp/
David Farber
2012-01-28 10:04:35 UTC
Permalink
Post by Stephen Pope
I'm glad that there are several others interested in CORBA ORBs for Squeak. The
(1) Weak references and collections;
(2) First-class exceptions (including unwinding); and
(3) a ParserGenerator.
(3) Is a bit complicated. The public domain TGen package is rather tightly
bound to the VisualWorks Smalltalk compiler, which is diferent in many respects
from Squeak's. I believe that getting a port of TGen is the next important step
to getting a CORBA ORB ported.
--
stp
(i hate to go on record for saying this, but...) i am working on a
parser-generator in squeak. (that is, i've done most of the design and very
little of the implementation.) i have looked at T-Gen, and decided against
porting it because, well, because i didn't like it; but that doesn't mean
that it couldn't be done. as for T-Gen being tightly coupled to the VW
compiler, i don't know if this makes any difference, but i was using the
VisualAge port of T-Gen. (in fact, i had to do some work to get it to run in
v3.0). i don't know how closely related VA and VW's compilers are or what
was done in the VA port to mitigate the dependency. (i don't have VA loaded
on this machine right now, so i can't pull up quickly to take a look).

T-Gen didn't like very complex grammars, and i couldn't figure out how to
write a tree builder class (this was in the VA port as well as using the
original VW code in VWNC [which needed a one-line fix to run]).

at any rate, i am not currently doing any work on my parser generator
(tentatively called TURK), so i suppose that is not much use to those out
there wanting to do CORBA stuff.

i do have a proposal, though. since there are so many of us with such good
ideas and so little time, i reccomend that we ask (politely, but with that
tone of voice that clearly indicate that we are not going to take no for an
answer) Mark G. to start lending us his undergrads as implementation slaves.
hey, i did my undergrad at Georgia Tech, and writing a parser-generator in
one quarter (oh wait, are they are semesters yet or does that start fall
99?) is just the kind of thing a Tech prof would say "well, i *guess* that
would be ok" to, implying that they were hoping for something a little more
"substantial" from you.

yes no?

dave

--
j. david farber
oo architect+mentor
numenor labs incorporated
in sunny boulder colorado
***@numenor.com
www.numenor.com
Mark Guzdial
2012-01-28 10:22:45 UTC
Permalink
Post by David Farber
i do have a proposal, though. since there are so many of us with such good
ideas and so little time, i reccomend that we ask (politely, but with that
tone of voice that clearly indicate that we are not going to take no for an
answer) Mark G. to start lending us his undergrads as implementation slaves.
I think that is a great idea! Uh, wait, something is not quite right
here...
Oh fine -- get me in trouble with the students! :-) (You should hear the
grief I'm getting over in the Squeakers list!)

More seriously: If you can define some specific tasks that you need to get
CORBA support in Squeak, I can:
- Consider them for class assignments (if they're pedagogically useful, and
you can use 100 different implementations :-)
- Suggest them as extra credit assignments for my class
- Post them on my list of project suggestions. We have a requirement for
undergraduate design/research projects, and that's the source for some
wonderful things like Ross Philipson's PWS Admin utility.
- Ask if any of the Georgia Tech Squeakers wants to take on the task.

There is interest among the students here for CORBA support in Squeak --
it's one of the more common questions I get from students who want to use
Squeak in their co-op jobs.

Mark

--------------------------
Mark Guzdial : Georgia Tech : College of Computing : Atlanta, GA 30332-0280
(404) 894-5618 : Fax (404) 894-0673 : ***@cc.gatech.edu
http://www.cc.gatech.edu/gvu/people/Faculty/Mark.Guzdial.html
Serg Koren
2012-01-28 10:52:15 UTC
Permalink
Post by Mark Guzdial
Post by David Farber
i do have a proposal, though. since there are so many of us with such good
ideas and so little time, i reccomend that we ask (politely, but with that
tone of voice that clearly indicate that we are not going to take no for an
answer) Mark G. to start lending us his undergrads as
implementation slaves.
I think that is a great idea! Uh, wait, something is not quite right
here...
Oh fine -- get me in trouble with the students! :-) (You should hear the
grief I'm getting over in the Squeakers list!)
More seriously: If you can define some specific tasks that you need to get
- Consider them for class assignments (if they're pedagogically useful, and
you can use 100 different implementations :-)
- Suggest them as extra credit assignments for my class
- Post them on my list of project suggestions. We have a requirement for
undergraduate design/research projects, and that's the source for some
wonderful things like Ross Philipson's PWS Admin utility.
- Ask if any of the Georgia Tech Squeakers wants to take on the task.
There is interest among the students here for CORBA support in Squeak --
it's one of the more common questions I get from students who want to use
Squeak in their co-op jobs.
Mark
--------------------------
Mark Guzdial : Georgia Tech : College of Computing : Atlanta, GA 30332-0280
http://www.cc.gatech.edu/gvu/people/Faculty/Mark.Guzdial.html
Key targets would be:
- Design of Smalltalk IDL mappings (I think a prelim one already
exits on www.omg.org.)
- Design of IIOP to be implemented under Squeak
- Design of IDL compiler to translate standard IDL to program
skeleton and stub coded in Smalltalk/Squeak (with associated design
of the skeleton and stub).
- Design of a Naming Service implemented under Squeak.

That would give you pretty much the core features of an ORB and
enough to be able to get something running to interface to other
non-Squeak ORBs (which is what CORBA is all about anyway ;-) ).
After that, you can deal with other services, etc.
Ralph E. Johnson
2012-01-28 10:12:34 UTC
Permalink
Post by Stephen Pope
I'm glad that there are several others interested in CORBA ORBs for Squeak. The
(1) Weak references and collections;
(2) First-class exceptions (including unwinding); and
(3) a ParserGenerator.
(1) has been recently added to Squeak by Andreas Raab.
(2) has been done by Craig Latta

(3) would be solved by a port of T-gen. Some people suggested
having some students write a parser generator as a class project.

First, if the goal is CORBA, it would be a lot easier to write an
IDL parser by hand (recursive descent) than to write a parser generator.
T-gen has its problems, but it is not a bad parser generator. I do not
believe that an undergraduate working for 4-6 months will produce anything
nearly as good. Don Roberts has been using it for a few years and is
thinking about writing a new parser generator that fixes T-gen's
problems, but he keeps telling people here to just use T-gen and
not to wait on getting a new one, nor to try to make one themselves
unless they are really into parser generators.
Post by Stephen Pope
Jeff Eastman (the author of both H-P DistributedSmalltalk and DNS
SmalltalkBroker [STB]) has expressed great interest in porting STB to Squeak,
but is waiting for the 3 facilities mentioned above to be made available first.
It seems odd to me for people to be talking about making an ORB when
Mr. Distributed Smalltalk, a guru of ORBs and master object designer,
has volunteered to do it! By all means, lets see if Jeff will do it.
We should figure out what is in his way and get rid of it, not try to
compete with him.

It seems to me that the main things that people can do to help are
1) test weak pointers and report errors to Andreas
2) test Craig's exception handling code and report errors to him
3) port T-gen

1 and 2 are in fact great things for large numbers of people to do
in parallel. Testing new packages is a good way of learning how
they work. If you have ever wondered about weak pointers or exception
handling, try retrofiting some of your programs. Or retrofit the
image. You might try to use weak pointers to close a file when you
are no longer using it. You might go through the image and put
exception handling in, writing lots of test cases to make sure you
don't break anything and that Craig's code works, of course. Even
if you don't produce any useful code or find any errors, you will
learn a lot.

-Ralph
Marc Nijdam
2012-01-28 10:14:34 UTC
Permalink
Post by Stephen Pope
I'm glad that there are several others interested in CORBA ORBs for
Squeak. The basic prerequisites that are currently still open issues
(1) Weak references and collections;
(2) First-class exceptions (including unwinding); and
(3) a ParserGenerator.
(1) has been recently added to Squeak by Andreas Raab. (Has anyone
tested it heavily?)
Not heavily...
Post by Stephen Pope
There are several solutions to (2), including a (partial)
VisualWorks-compatible version (by yours truly), a
VisualSmalltalk-like version (by Tim Jones), and an ANSI Smalltalk
version (from R A Harmon). None of these is complete, nor do they
have the VM support for full block unwinding.
What are the plans for adding VM support for this. I'd volunteer but
given my lack of expertise in VM internals this is unlikely to be
successfull.
Post by Stephen Pope
(3) Is a bit complicated. The public domain TGen package is rather
tightly bound to the VisualWorks Smalltalk compiler, which is
diferent in many respects from Squeak's. I believe that getting a
port of TGen is the next important step to getting a CORBA ORB
ported.
Is someone already working on this?

Marc
Jake Hamby
2012-01-28 10:19:54 UTC
Permalink
Hi
Does anyone know of a free CORBA ORB that supports bindings for
Smalltalk?
I would also be interested in such a product. I'd love to be able to
connect Squeak objects to objects written in other languages using
CORBA. Maybe if nobody else is working on it, I'll write one myself.
:)

-Jake
Ralph Johnson
2012-01-28 10:29:44 UTC
Permalink
Post by Stephen Pope
(3) Is a bit complicated. The public domain TGen package is rather
tightly bound to the VisualWorks Smalltalk compiler, which is
diferent in many respects from Squeak's. I believe that getting a
port of TGen is the next important step to getting a CORBA ORB
ported.
Not really. It is tied to the VisualWorks GUI framework.
However, it has been ported to VisualAge and VSE, so it
can't be that hard to port. Most of it is the parser generator,
not the environment for managing grammars.

Perhaps you were confused with classes like AbstractParser and
AbstractScanner. It might look like they are tied into the
standard compiler, but they aren't.

If anybody is porting it and needs advice, contact Don Roberts
(***@cs.uiuc.edu) who has used it a lot recently.

-Ralph
Marcel Weiher
2012-01-28 10:33:49 UTC
Permalink
- Design of Smalltalk IDL mappings (I think a prelim one already
exits on www.omg.org.)
- Design of IIOP to be implemented under Squeak
- Design of IDL compiler to translate standard IDL to program
skeleton and stub coded in Smalltalk/Squeak (with associated design
of the skeleton and stub).
- Design of a Naming Service implemented under Squeak.
This is a good plan, but let's make these generic so we can have the
following groups working together on a unified base for diverse
solutions:

1. CORBA fans
2. Native interface hackers
3. Distributed Squeak researchers

It would be a shame if each group were to duplicate lots of base
functionality. Specifically, the points above could be generalized
as follows (off the top of my head):

- a Smalltalk argument marshalling subsystem

- converts Smalltalk objects specified in a msg.to basic types
- converts basic types to external representation
- converts external types to Smalltalk objects (incl. proxies)
- IIOP as a concrete subclass
- HTTP-ng as a (future) concrete subclass
- C-callout as a concrete subclass
- Distributed-Squeak encoder as a concrete subclass
- ...
- needs signature info from signature subsystem

Needed:
- Feedback on IIOP encoding
- Feedback on C-type argument marshalling from API implementors
- Ideas + Feedback on what types need to be encoded


- a signature subsystem
- return a list of basic types to be used by the marshalling subsystem
- CORBA IDL as a concrete subclass
- CORBA dynamic invocaiton interface (DII) as a subclass
- Objective-C dynamic type info as a subclass
- C header-file parser as a subclass
- ...

Needed:
- Feedback on the various type encoding schemes (I could provide
for Objective-C)

- Proxy management
- can be used by many of the specific instances

- Name management
- How to look up objects by name in various systems
- URL, etc.
- For Objective-C, this would usually only be classes
+ application/services ports for distributed object connections

I really, really would not want to have all this effort duplicated
over and over again, and would volunteer to do the integration work.

Marcel
Markus Kohler
2012-01-28 10:43:03 UTC
Permalink
Peter Smet wrote:
[snip]
Because CORBA is location transparent, it should be possible to replace all
bridges to C, C++, DLLs etc and use CORBA to dispatch all calls to code
outside the VM - Even if the code is on the same machine. A big problem for
CORBA is how to pass objects by value (how can you guarantee that a method
can be implemented on the receiving machine?).
The latest CORBA standard supports pass by value.
I don't know how it works nor do I know if any CORBA implementation
already supports it.
Smalltalk and Java should go
a long way towards solving this problem with the VM.
Java's RMI solves the pass by value problem. It also solves the problem
of automatically loading
missing classes.
I think a free Smalltalk CORBA implementation would be of great benefit for
the Smalltalk community.
I would like it too :-)
The days of standalone programs running
sequentially are numbered. I know PARC have something called ILU - but I
don't know too much about it. I don't think it is a full CORBA 2.0
implementation. It is probably worth checking to see if it could act as a
squeak ORB. The big downside to using ORBS is that your programming must use
'typing' again (remember that word).
Not necessarily.
Corba also defines a dynamic invocation interface (DII), which is
hard to use from statically typed languages like C++ but could be used
easily from Smalltalk.
It's probably a bit slower than doing statically typed calls, but it
would be very easy to use.

One may have a look at CorbaScript
(http://corbaweb.lifl.fr/CorbaScript/) to see what I mean.

I think squeak could do it better :-]
This is a pain, to say the least.
Having just been introduced to Haskell, I love the way this language uses
type inference - Dan Ingalls once made the comment that if Squeak looked at
its own belly button long enough it would be nice if it could determine all
the types in the system....
Just some ideas...
Peter
Markus
--
Markus Kohler mailto:***@hp.com
Ivan Brusic
2012-01-28 10:45:31 UTC
Permalink
Post by David Farber
i do have a proposal, though. since there are so many of us with such good
ideas and so little time, i reccomend that we ask (politely, but with that
tone of voice that clearly indicate that we are not going to take no for an
answer) Mark G. to start lending us his undergrads as implementation slaves.
I think that is a great idea! Uh, wait, something is not quite right
here...

Ivan
--
Ivan Brusic | "Computers are nothing but a perfect
Graduate Student | illusion of order" - Iggy Pop
College of Computing & GVU Center |
Georgia Institute of Technology | E-mail: ivan [at] cc.gatech.edu
JENS at ejs.is ()
2012-01-28 10:58:29 UTC
Permalink
On Wednesday, December 09, 1998 1:05 AM, Jake Hamby
Post by Jake Hamby
Hi
Does anyone know of a free CORBA ORB that supports bindings for
Smalltalk?
I would also be interested in such a product. I'd love to be able to
connect Squeak objects to objects written in other languages using
CORBA. Maybe if nobody else is working on it, I'll write one myself.
:)
I've been considering this my self, but as I know litle about Smalltalk
(more about CORBA) I was hoping that someone had done this. I'm planning
on learning Smalltalk and begin using it, but it depends on the
availability of a (free :) CORBA binding. MICO is perhaps a good place
to start as it should be relatively simple to add new bindings to it,
considering their micro kernel approach to the ORB.
If I find the time I would lend a hand to implement a binding. Any
others?

Jens
Stephen Travis Pope
2012-01-28 10:25:06 UTC
Permalink
Hi Jeff,

This is great news! May I forward it to the larger squeak list as a call for
participation?

stp

PS: How are you both? Take a look at www.expertcity.com to see what I've been
up to...
Stephen(s),
Windward Solutions has ended our VAR distribution agreement with DNS (now
Promia) and would be happy to facilitate a port to Squeak. I've been
thinking of this for a month or so, thus this is good timing. My colleague
Robert Hirschfeld has expressed interest in assisting with this too,
however, we are both short on bandwidth right now. If the Squeak community
wants to do the port, I'll sign the license and we'll provide consultation.
Jeff
-----Original Message-----
Sent: Friday, November 19, 1999 2:31 PM
Subject: Re: Smalltalk and CORBA
You're right, Stephan, that the prerequisites are in place, and I think a
port of an
existing ORB (e.g., Jeff Eastman's SmalltalkBroker), or new ORB (e.g., Xu
Wang's S2S)
would be great (as long as I'm not expected to write it). I'm forwarding
this note to
Jeff Eastman and Xu Wang -- let's see what they say...
stp
Post by Stephen Pope
I'm glad that there are several others interested in CORBA ORBs for
Squeak. The
Post by Stephen Pope
(1) Weak references and collections;
(2) First-class exceptions (including unwinding); and
(3) a ParserGenerator.
(1) has been recently added to Squeak by Andreas Raab. (Has anyone
tested it
Post by Stephen Pope
heavily?)
There are several solutions to (2), including a (partial)
VisualWorks-compatible
Post by Stephen Pope
version (by yours truly), a VisualSmalltalk-like version (by Tim Jones),
and an
Post by Stephen Pope
ANSI Smalltalk version (from R A Harmon). None of these is complete, nor
do they
Post by Stephen Pope
have the VM support for full block unwinding.
(3) Is a bit complicated. The public domain TGen package is rather
tightly bound
Post by Stephen Pope
to the VisualWorks Smalltalk compiler, which is diferent in many
respects from
Post by Stephen Pope
Squeak's. I believe that getting a port of TGen is the next important
step to
Post by Stephen Pope
getting a CORBA ORB ported.
Jeff Eastman (the author of both H-P DistributedSmalltalk and DNS
SmalltalkBroker [STB]) has expressed great interest in porting STB to
Squeak,
Post by Stephen Pope
but is waiting for the 3 facilities mentioned above to be made available
first.
Well if I understand things right the guys at The Fourth Estate (thanks
John and
Paul) have written exceptions and ported TGen to Squeak. So are we ready
now to add
CORBA support?
- Steve
--
stp
Stephen Travis Pope -- http://www.create.ucsb.edu/~stp
--

stp
Stephen Travis Pope -- http://www.create.ucsb.edu/~stp
***@create.ucsb.edu -- ***@cornell.edu
Stephen Travis Pope
2012-01-28 10:50:30 UTC
Permalink
You're right, Stephan, that the prerequisites are in place, and I think a port of an
existing ORB (e.g., Jeff Eastman's SmalltalkBroker), or new ORB (e.g., Xu Wang's S2S)
would be great (as long as I'm not expected to write it). I'm forwarding this note to
Jeff Eastman and Xu Wang -- let's see what they say...

stp
Post by Stephen Pope
I'm glad that there are several others interested in CORBA ORBs for Squeak. The
(1) Weak references and collections;
(2) First-class exceptions (including unwinding); and
(3) a ParserGenerator.
(1) has been recently added to Squeak by Andreas Raab. (Has anyone tested it
heavily?)
There are several solutions to (2), including a (partial) VisualWorks-compatible
version (by yours truly), a VisualSmalltalk-like version (by Tim Jones), and an
ANSI Smalltalk version (from R A Harmon). None of these is complete, nor do they
have the VM support for full block unwinding.
(3) Is a bit complicated. The public domain TGen package is rather tightly bound
to the VisualWorks Smalltalk compiler, which is diferent in many respects from
Squeak's. I believe that getting a port of TGen is the next important step to
getting a CORBA ORB ported.
Jeff Eastman (the author of both H-P DistributedSmalltalk and DNS
SmalltalkBroker [STB]) has expressed great interest in porting STB to Squeak,
but is waiting for the 3 facilities mentioned above to be made available first.
Well if I understand things right the guys at The Fourth Estate (thanks John and
Paul) have written exceptions and ported TGen to Squeak. So are we ready now to add
CORBA support?
- Steve
--

stp
Stephen Travis Pope -- http://www.create.ucsb.edu/~stp
***@create.ucsb.edu -- ***@cornell.edu
Xu Wang
2012-01-28 10:56:18 UTC
Permalink
Although adding a IDL binding to S2S is not a big deal, but I think
S2S is good enough for me right now. Personally, I'm more interested
in advanced distributed applications and less interested in STANDARDs ;-).
S2S is just a small building block I need to have to build something eles
(it is purely personal hobby).

If you want a CORBA ORB to talk to other CORBA ORBs,
port SmalltalkBroker may be the way to go.

BTW: if anyone is using S2S and want better performance (e.g. 10ms/percall),
send me a email and I'll try to make a patch for you.

-xwang
Post by Stephen Travis Pope
You're right, Stephan, that the prerequisites are in place, and I think a port of an
existing ORB (e.g., Jeff Eastman's SmalltalkBroker), or new ORB (e.g., Xu Wang's S2S)
would be great (as long as I'm not expected to write it). I'm forwarding this note to
Jeff Eastman and Xu Wang -- let's see what they say...
stp
erequisites are in place, and I think a port of an
Post by Stephen Travis Pope
existing ORB (e.g., Jeff Eastman's SmalltalkBroker), or new ORB (e.g., Xu Wang's S2S)
would be great (as long as I'm not expected to write it). I'm forwarding this note to
Jeff Eastman and Xu Wang -- let's see what they say...
stp
Loading...