unofficial mirror of guile-user@gnu.org 
 help / color / mirror / Atom feed
From: Marko Rauhamaa <marko@pacujo.net>
To: Michael Tiedtke <michele.titke@o2online.de>
Cc: "guile-user@gnu.org" <guile-user@gnu.org>
Subject: Re: Message Passing with GOOPS
Date: Thu, 25 Jun 2015 12:07:42 +0300	[thread overview]
Message-ID: <87pp4kxijl.fsf@elektro.pacujo.net> (raw)
In-Reply-To: <558BA01C.9070208@o2online.de> (Michael Tiedtke's message of "Thu, 25 Jun 2015 08:30:52 +0200")

Michael Tiedtke <michele.titke@o2online.de>:

> Nice! What about (define-class <stack> (<list>) ...)? In GOOPS every
> primitive type is (or should be) a class that can be used with
> multiple inheritance. It's enough to (use-modules (oop goops)).

My "simpleton" doesn't have classes. It's *object* oriented, not *class*
oriented.

> Then you're missing /this/, too.

Not at all. It's very present in simpleton:

========================================================================
(define-public (<domain-client> .mux .peer-address)
  (define .this
    (let ((.super (<datagram-client> .mux .peer-address))
          (.opmap (make-hash-table))
          (.next-key 0))

      (define (query domain-name record-type listener xid)
        ; ...

      (define (handle-recv message)
        ; ...

    (make-object .super query handle-recv)))
  .this)
========================================================================

>  But /super/ is missing in my implementation. What should it do with
> multiple inheritance?  How should it know about the inherited
> definitions?

Multiple inheritance is there in simpleton, without classes.

> You're lookup table is just a table. You could use an environment or to
> keep the size of the structure to the ground:

In simpleton, each object has a unique dispatch table.


Marko



  reply	other threads:[~2015-06-25  9:07 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-24 20:21 Message Passing with GOOPS Michael Tiedtke
2015-06-24 22:07 ` Marko Rauhamaa
2015-06-25  6:30   ` Michael Tiedtke
2015-06-25  9:07     ` Marko Rauhamaa [this message]
2015-06-25 10:59       ` Michael Tiedtke
2015-06-26  8:18 ` Ralf Mattes
2015-06-26  9:26   ` Marko Rauhamaa
2015-06-26 11:13     ` Pascal J. Bourguignon
2015-06-26 12:21       ` Marko Rauhamaa
2015-06-26 10:15   ` Michael Tiedtke

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/guile/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87pp4kxijl.fsf@elektro.pacujo.net \
    --to=marko@pacujo.net \
    --cc=guile-user@gnu.org \
    --cc=michele.titke@o2online.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).