for those who have interest in procedure objects decoration

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

for those who have interest in procedure objects decoration

Marco Maggi
Ciao,

  I'm composing unofficial documentation  for CHICKEN internals that are
usable from client code.   As part of this I have  added a section about
decorating procedure objects:

<http://marcomaggi.github.io/docs/chicken-internals.html/procs-decoration.html>

I'm  not sure  I've  got everything  right.  I  accept  issues and  pull
requests at the project's site:

           <https://github.com/marcomaggi/mmck-chicken-docs>

--
Marco Maggi

_______________________________________________
Chicken-users mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/chicken-users
Reply | Threaded
Open this post in threaded view
|

Re: for those who have interest in procedure objects decoration

Peter Bex
On Wed, May 22, 2019 at 10:59:17AM +0200, Marco Maggi wrote:
> Ciao,
>
>   I'm composing unofficial documentation  for CHICKEN internals that are
> usable from client code.   As part of this I have  added a section about
> decorating procedure objects:
>
> <http://marcomaggi.github.io/docs/chicken-internals.html/procs-decoration.html>

Hi Marco,

This looks pretty cool!  One request though: could you please add some
blatant warnings that this stuff is not meant to be relied upon in user
code?  These are internals instead of an official API for a reason; we
can change them at will (this has happened in the past, and will happen
in the future).

So it's acceptable to use these, but only if there's no alternative, and
you may end up having to use cond-expand for various different versions.

Cheers,
Peter

_______________________________________________
Chicken-users mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/chicken-users

signature.asc (499 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: for those who have interest in procedure objects decoration

Marco Maggi
Peter Bex wrote:

> On Wed, May 22, 2019 at 10:59:17AM +0200, Marco Maggi wrote:
>> Ciao,

>>   I'm composing unofficial documentation  for CHICKEN internals that are
>> usable from client code.   As part of this I have  added a section about
>> decorating procedure objects:

>> <http://marcomaggi.github.io/docs/chicken-internals.html/procs-decoration.html>

> Hi Marco,

> This looks pretty cool!  One request though: could you please add some
> blatant warnings that this stuff is not meant to be relied upon in user
> code?  These are internals instead of an official API for a reason; we
> can change them at will (this has happened in the past, and will happen
> in the future).

Yes.  I will add it in the document overview.

> So it's acceptable to use these, but only if there's no alternative, and
> you may end up having to use cond-expand for various different versions.

Speaking of which!  "chicken-doc" does not know about COND-EXPAND! I get
a blank page when I try it (the same with UNQUOTE and UNQUOTE-SPLICING).
--
Marco Maggi

_______________________________________________
Chicken-users mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/chicken-users
Reply | Threaded
Open this post in threaded view
|

Re: for those who have interest in procedure objects decoration

Peter Bex
On Wed, May 22, 2019 at 03:05:44PM +0200, Marco Maggi wrote:
> Peter Bex wrote:
> > This looks pretty cool!  One request though: could you please add some
> > blatant warnings that this stuff is not meant to be relied upon in user
> > code?  These are internals instead of an official API for a reason; we
> > can change them at will (this has happened in the past, and will happen
> > in the future).
>
> Yes.  I will add it in the document overview.

Thanks!

> > So it's acceptable to use these, but only if there's no alternative, and
> > you may end up having to use cond-expand for various different versions.
>
> Speaking of which!  "chicken-doc" does not know about COND-EXPAND! I get
> a blank page when I try it (the same with UNQUOTE and UNQUOTE-SPLICING).

Hm, that's interesting.  Unquote and unquote-splicing are not actually
bound to anything; they're only available inside quasiquote, so they can't
be imported or renamed or anything:

  (module foo () (import (only scheme quasiquote +)) `(foo ,(+ 1 2)))

So it makes sense they don't have a separate entry.  It's like having =>
as a separate entry; it doesn't exist either except in cond and case
forms.

For cond-expand, that's another story we should find out where to
document it.  It's available inside empty modules too, because it needs
to be available before even importing anything.  It's not from any
module, that's probably why we dropped it.  Perhaps under "Extensions to
the standard"?

Cheers,
Peter

_______________________________________________
Chicken-users mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/chicken-users

signature.asc (499 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: for those who have interest in procedure objects decoration

Marco Maggi
Peter Bex wrote:

> Hm, that's interesting.  Unquote and unquote-splicing are not actually
> bound to anything; they're only available inside quasiquote, so they can't
> be imported or renamed or anything:

>   (module foo () (import (only scheme quasiquote +)) `(foo ,(+ 1 2)))

> So it makes sense they don't have a separate entry.  It's like having =>
> as a separate entry; it doesn't exist either except in cond and case
> forms.

But people will search for them.
--
Marco Maggi

_______________________________________________
Chicken-users mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/chicken-users
Reply | Threaded
Open this post in threaded view
|

Re: for those who have interest in procedure objects decoration

John Cowan
In reply to this post by Peter Bex


On Wed, May 22, 2019 at 9:28 AM Peter Bex <[hidden email]> wrote:
 
So it makes sense they don't have a separate entry.  It's like having =>
as a separate entry; it doesn't exist either except in cond and case
forms.

Nevertheless, it's a good idea to bind unquote, unquote-splicing, and =>
to macros that throw an error,
so that you can safely rebind them as ordinary variables if you want to.

 
John Cowan          http://vrici.lojban.org/~cowan        [hidden email]
Humpty Dump Dublin squeaks through his norse
                Humpty Dump Dublin hath a horrible vorse
But for all his kinks English / And his irismanx brogues
                Humpty Dump Dublin's grandada of all rogues.  --Cousin James


_______________________________________________
Chicken-users mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/chicken-users