all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Zhu Zihao <all_but_last@163.com>
To: Stefan Monnier <monnier@iro.umontreal.ca>
Cc: Zhu Zihao <all_but_last@163.com>, emacs-devel@gnu.org
Subject: Re: Slot accessing issues in EIEIO
Date: Thu, 07 May 2020 11:20:49 +0800	[thread overview]
Message-ID: <877dxoh1m6.wl-all_but_last@163.com> (raw)
In-Reply-To: <jwvd07g7mq0.fsf-monnier+emacs@gnu.org>

On Thu, 07 May 2020 05:58:11 +0800,
Stefan Monnier wrote:
> 
> > OK, a closql-object (This is a class defined in closql) is a proxy object to a
> > row in SQL database. So each time user tries to read a slot, closql must sync
> > values between database and Emacs first.
> 
> OK, I'm starting to see vaguely what this is about, but it's still
> rather fuzzy.  To better understand, I suggest that I'll throw some
> solutions so you can shoot them down explaining why they're
> not applicable.
> 
> Would it work to use the `slot-missing` generic function?
> 
> 
>         Stefan
slot-missing just work, but I don't think it gets things done right.

If we use slot-missing. We have to manage the column names manually instead of
present them in slots. We should keep the proxy object doesn't have any
slot to make slot-missing work, or your slot name may collide with SQL column
name.

Thus, we have to give up the direct way to describe the structure of SQL
database. We can't use defclass and slots definition now because we wanna use
slot-missing. If I create another type of proxy object(e.g. will log to some file
when accessing a slot), I have to repeat the pattern I mentioned above. It's
harmful for reusability.




  reply	other threads:[~2020-05-07  3:20 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-06  4:17 Slot accessing issues in EIEIO Zhu Zihao
2020-05-06 13:28 ` Stefan Monnier
2020-05-06 14:28   ` Zhu Zihao
2020-05-06 21:58     ` Stefan Monnier
2020-05-07  3:20       ` Zhu Zihao [this message]
2020-05-07  3:39         ` Stefan Monnier
2020-05-07  4:00           ` Zhu Zihao
2020-05-07  4:55             ` Zhu Zihao
2020-05-07 12:11             ` Stefan Monnier
2020-05-07 14:13               ` Jonas Bernoulli
2020-05-07 14:52                 ` Zhu Zihao
2020-05-07 14:52                 ` Stefan Monnier
2020-05-08  3:12                   ` Zhu Zihao
2020-05-08  3:48                     ` Stefan Monnier
2020-05-08  9:12                       ` Zhu Zihao
2020-05-08 15:09                         ` Stefan Monnier
2020-05-07 12:15             ` Stefan Monnier
2020-05-07 14:16               ` Jonas Bernoulli
2020-05-07 13:44       ` Jonas Bernoulli
2020-05-08  2:09         ` Stefan Monnier
2020-05-06 15:44   ` Jonas Bernoulli
2020-05-06 15:56     ` Stefan Monnier
2020-05-06 16:43       ` Jonas Bernoulli
2020-05-06 17:06         ` Eric Abrahamsen
2020-05-07 19:32         ` Daniel Colascione
2020-05-06 15:40 ` Jonas Bernoulli

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

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

  git send-email \
    --in-reply-to=877dxoh1m6.wl-all_but_last@163.com \
    --to=all_but_last@163.com \
    --cc=emacs-devel@gnu.org \
    --cc=monnier@iro.umontreal.ca \
    /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.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.