[#33161] Call/CC and Ruby iterators. — olczyk@... (Thaddeus L Olczyk)

Reading about call/cc in Scheme I get the impression that it is very

11 messages 2002/02/05

[#33242] favicon.ico — Dave Thomas <Dave@...>

19 messages 2002/02/06
[#33256] Re: favicon.ico — Leon Torres <leon@...> 2002/02/06

[#33435] Reg: tiny contest: who's faster? (add_a_gram) — grady@... (Steven Grady)

> My current solution works correctly with various inputs.

17 messages 2002/02/08

[#33500] Ruby Embedded Documentation — William Djaja Tjokroaminata <billtj@...>

Hi,

24 messages 2002/02/10
[#33502] Re: Ruby Embedded Documentation — "Lyle Johnson" <ljohnson@...> 2002/02/10

> Now, I am using Ruby on Linux, and I have downloaded Ruby version

[#33615] Name resolution in Ruby — stern@... (Alan Stern)

I've been struggling to understand how name resolution is supposed to

16 messages 2002/02/11

[#33617] choice of HTML templating system — Paul Brannan <paul@...>

I am not a web developer, nor do I pretend to be one.

23 messages 2002/02/11

[#33619] make first letter lowercase — sebi@... (sebi)

hello,

20 messages 2002/02/11
[#33620] Re: [newbie] make first letter lowercase — Tobias Reif <tobiasreif@...> 2002/02/11

sebi wrote:

[#33624] Re: [newbie] make first letter lowercase — "Jeff 'japhy' Pinyan" <jeffp@...> 2002/02/11

On Feb 11, Tobias Reif said:

[#33632] Re: [newbie] make first letter lowercase — Mathieu Bouchard <matju@...> 2002/02/12

[#33731] simple XML parsing (greedy / non-greedy — Ron Jeffries <ronjeffries@...>

Suppose I had this text

14 messages 2002/02/13

[#33743] qualms about respond_to? idiom — David Alan Black <dblack@...>

Hi --

28 messages 2002/02/13
[#33751] Re: qualms about respond_to? idiom — Dave Thomas <Dave@...> 2002/02/13

David Alan Black <dblack@candle.superlink.net> writes:

[#33754] Re: qualms about respond_to? idiom — David Alan Black <dblack@...> 2002/02/13

Hi --

[#33848] "Powered by Ruby" banner — Yuri Leikind <YuriLeikind@...>

Hello Ruby folks,

78 messages 2002/02/14
[#33909] Re: "Powered by Ruby" banner — Leon Torres <leon@...> 2002/02/14

On Thu, 14 Feb 2002, Yuri Leikind wrote:

[#33916] RE: "Powered by Ruby" banner — "Jack Dempsey" <dempsejn@...> 2002/02/15

A modest submission:

[#33929] Re: "Powered by Ruby" banner — yet another bill smith <bigbill.smith@...> 2002/02/15

Kent Dahl wrote:

[#33932] OT Netscape 4.x? was Re: "Powered by Ruby" banner — Chris Gehlker <gehlker@...> 2002/02/15

On 2/15/02 5:54 AM, "yet another bill smith" <bigbill.smith@verizon.net>

[#33933] RE: OT Netscape 4.x? was Re: "Powered by Ruby" banner — "Jack Dempsey" <dempsejn@...> 2002/02/15

i just don't understand why it didn't show up! dhtml/javascript, ok, but a

[#33937] Re: OT Netscape 4.x? was Re: "Powered by Ruby" banner — Chris Gehlker <gehlker@...> 2002/02/15

On 2/15/02 7:16 AM, "Jack Dempsey" <dempsejn@georgetown.edu> wrote:

[#33989] Re: OT OmniWeb [was: Netscape 4.x?] — Sean Russell <ser@...> 2002/02/16

Chris Gehlker wrote:

[#33991] Re: OT OmniWeb [was: Netscape 4.x?] — Rob Partington <rjp@...> 2002/02/16

In message <3c6e5e01_1@spamkiller.newsgroups.com>,

[#33993] Re: OT OmniWeb [was: Netscape 4.x?] — Thomas Hurst <tom.hurst@...> 2002/02/16

* Rob Partington (rjp@browser.org) wrote:

[#33925] Re: "Powered by Ruby" banner — Martin Maciaszek <mmaciaszek@...> 2002/02/15

In article <3C6CFCCA.5AD5CA67@scnsoft.com>, Yuri Leikind wrote:

[#33956] Re: "Powered by Ruby" banner — Leon Torres <leon@...> 2002/02/15

On Fri, 15 Feb 2002, Martin Maciaszek wrote:

[#33851] Ruby and .NET — Patrik Sundberg <ps@...>

I have been reading a bit about .NET for the last couple of days and must say

53 messages 2002/02/14

[#34024] Compiled companion language for Ruby? — Erik Terpstra <erik@...>

Hmmm, seems that my previous post was in a different thread, I'll try

12 messages 2002/02/16

[#34036] The GUI Returns — "Horacio Lopez" <vruz@...>

Hello all,

33 messages 2002/02/17

[#34162] Epic4/Ruby — Thomas Hurst <tom.hurst@...>

Rejoice, for you no longer have to put up with that evil excuse for a

34 messages 2002/02/18

[#34185] Operator overloading and multiple arguments — ptkwt@...1.aracnet.com (Phil Tomson)

I'm trying to overload the '<=' operator in a class in order to use it for

10 messages 2002/02/18

[#34217] Ruby for web development — beripome@... (Billy)

Hi all,

21 messages 2002/02/19

[#34350] FAQ for comp.lang.ruby — "Hal E. Fulton" <hal9000@...>

RUBY NEWSGROUP FAQ -- Welcome to comp.lang.ruby! (Revised 2001-2-18)

15 messages 2002/02/20

[#34375] Setting the Ruby continued — <jostein.berntsen@...>

Hi,

24 messages 2002/02/20
[#34384] Re: Setting the Ruby continued — Paulo Schreiner <paulo@...> 2002/02/20

Also VERY important:

[#34467] recursive require — Ron Jeffries <ronjeffries@...>

I'm having a really odd thing happen with two files that mutually

18 messages 2002/02/21

[#34503] special characters — Tobias Reif <tobiasreif@...>

Hi all,

13 messages 2002/02/22

[#34517] Windows Installer Ruby 166-0 available — Andrew Hunt <andy@...>

16 messages 2002/02/22

[#34597] rdoc/xml questions — Dave Thomas <Dave@...>

24 messages 2002/02/23

[#34631] Object/Memory Management — "Sean O'Dell" <sean@...>

I'm new to Ruby and the community here (I've been learning Ruby for a grand

44 messages 2002/02/23

[#34682] duplicate method name — Ron Jeffries <ronjeffries@...>

I just found a case in a test file where i had two tests of the same

16 messages 2002/02/24
[#34687] Re: duplicate method name — s@... (Stefan Schmiedl) 2002/02/24

Hi Ron.

[#34791] Style Question — Ron Jeffries <ronjeffries@...>

So I'm building this set theory library. The "only" object is supposed

13 messages 2002/02/25

[#34912] RCR?: parallel to until: as_soon_as — Tobias Reif <tobiasreif@...>

Hi,

18 messages 2002/02/26

[#34972] OT A Question on work styles — Chris Gehlker <gehlker@...>

As a Mac baby I just had to step through ruby in GDB *from the command line*

20 messages 2002/02/28

[#35015] Time Comparison — "Sean O'Dell" <sean@...>

I am using the time object to compare times between two files and I'm

21 messages 2002/02/28

Modules and Interface Protocols [Was: type check and dynamic binding]

From: "David Simmons" <david.simmons@...>
Date: 2002-02-14 06:38:39 UTC
List: ruby-talk #33833
"Michael Lucas-Smith" <michaell@wizardis.com.au> wrote in message
news:3C6B4A9F.E09246E7@wizardis.com.au...
> So effectively, an interface acts as a module as in Ruby + a formal
interface
> definition.

I am not expert enough in Ruby's implementation to fully understand what its
"module" imply. On the surface, your statement is correct.

SmallScript also has the concept of "module" and the use of the term in the
Ruby context is boggling my brain slightly [but then again, I'm kind of
hungry so maybe its just a blood sugar thing].

In SmallScript:

A module is a "unit" of deployment and packaging for binary distribution and
loading. It therefore serves as a "unit" of (packaging/loading) ownership
for any bindable/scopeable elements.

A scope (namespace) is a "unit" of priviledge and encapsulation. It
determines what is or is not visible/accessible from a particular context.

An interface is a "unit" of shareable/re-useable behavior, and serves as a
first class representation for both an implementation of, and the semantics
for, a protocol contract.

Like any <Behavior> type, an interface defines a collection of methods that
a given type of object has available. For a given object type, the set of
all its "behaviors" (types) collectively determine its set of "available"
methods. Noting that the set of applicable accessible methods is a subset of
the available methods. Each method additionally specifies various binding
predicates that determine runtime scoping-priviledge/access and the binding
priority of one method relative any other available methods.

A class is a type of behavior, as are metaclass, etc. Types are classes.
Interfaces are special kind of class. Namespaces are classes. Modules are
classes that implement module interface semantics [typically this would be
for projects, applications, components, and libraries].

Namespaces binding priviledge/scope is a distinct/orthogonal concept to that
of packaging/ownership. Thus one can define a module X and a module Y. Both
of which contain/own elements which are defined within Z namespace.

Because a module is a class, and classes are namespaces, the module may also
serve as a single entity for both roles. But the roles of namespace unit and
module/deployment unit are distinct.

The object model defines strong-names for all <Behavior> entities. Where a
strong name is a UUID that has universal identity. The strong-names
therefore define fixed length unique identity for any given behavioral
(namespace/module/etc) entity. This eliminates classic package and module
problems with pathing, or ambiguities resulting from human naming or
renaming patterns.

Modules contain references as both paths, and strong-names. When a module is
loaded its set of external module pre-requisites are examined. From that the
set of module pre-requiste uuid's are examined. Those uuid's are then used
to unambiguously locate the require external modules as constrained by
version pre-requisites for a given module.

This mechanism eliminates disk related path concerns and provides the
architecture for modules to be loaded/obtained from network as well as local
media stores. I.e., the UUID and other signature information in the module
enable generation of standard URL/URI for use in locating a module. Modules
are installed on a machine and detected automatically (or explicitly) by the
runtime architecture.

When a module is loaded it may create/load methods, variables, etc and
thereby alter classes (or any other behavior). Every change it makes is
"owned" by the module. Which allows efficient unloading and ensures that
dynamic changes throughout the system can be tracked for subsequent updating
of the module into new versions [synonomous with classic Smalltalk notions
of image snapshots, but at a module level of granularity].

Does this help?

-- Dave S. [www.smallscript.org]

>
> David Simmons wrote:
>
> > I realize the previous posts declaration example did not sufficiently
> > illustrate the superclass vs interface distinctions for those not
familiar
> > with the SmallScript AML syntax. So here is a slightly more extended
> > example:
> >
> >     Interface name: ICollection {
> >         ...generic method implementations here...
> >     }
> >     Class name: MyThing extends: MySuperClass
> >         implements: ICollection
> >     {
> >         ...maybe *no* collection related methods here
> >            if the default implementations in <ICollection>
> >            provided all the necessary behavior. Unlike
> >            languages such as Java with only abstract
> >            interfaces, we can maximize re-use through
> >            the design and implementation of behavior
> >            directly in interfaces. Allowing classes to
> >            override or extend those default implementations...
> >     }
> >
> >     Class name: AnotherThing extends: AnUnrelatedSuperclass
> >         implements: ICollection.
> >
> > We can then ask:
> >
> >     aMyThing isKindOf: ICollection. "will answer true"
> >
> >     AnotherThing isKindOf: ICollection. "will also answer true"
> >
> > Where <MyThing> and <AnotherThing> share *no* superclasses in common.
But
> > they do share supertypes in common; specifically <ICollection>.
> >
> > -- Dave S. [www.smallscript.org]
> >
>


begin 666 Dave Simmons.vcf
M0D5'24XZ5D-!4D0-"E9%4E-)3TXZ,BXQ#0I..E-I;6UO;G,[1&%V:60[00T*
M1DXZ1&%V92!3:6UM;VYS#0I.24-+3D%-13I$879E(%,N#0I/4D<Z4VUA;&Q3
M8W)I<'0@3$Q##0I54DP[5T]22SIH='1P.B\O=W=W+G-M86QL<V-R:7!T+F]R
M9PT*14U!24P[4%)%1CM)3E1%4DY%5#ID879I9"YS:6UM;VYS0'-M86QL<V-R
J:7!T+F-O;0T*4D56.C(P,#(P,C$T5# V,#$R,%H-"D5.1#I60T%21 T*
`
end

In This Thread

Prev Next