Hi Alexander,
The "primitive registration system" is a little more involved than
PRIMITIVE: but we defined that as syntax so we could grep and keep track of
our primitives better and as a placeholder for some future cleanup.
When you make a new "primitive", it needs several things including this in
Factor (which we hope PRIMITIVE: will replace someday):
* core/bootstrap/primitives.factor (make-primitive)
* basis/stack-checker/known-words/known-words.factor (define-primitive)
And this in the VM:
* vm/vm.hpp (defined)
* vm/primities.hpp (exported)
* vm/*.cpp (implemented)
We have an issue for improving this, although we won't likely get to it
right away:
https://github.com/slavapestov/factor/issues/1134
Thanks,
John.
On Tue, Sep 15, 2015 at 2:03 AM, Alexander Ilin <[email protected]> wrote:
> Hello!
>
> I was looking at some words, like <wrapper>, and I saw PRIMITIVE:
>
> IN: scratchpad \ <wrapper> see
> IN: kernel
> PRIMITIVE: <wrapper> ( obj -- wrapper ) foldable flushable
>
> But when I tried to look up PRIMITIVE:, here's what I saw:
>
> If I do IN: scratchpad \ PRIMITIVE: see
> USING: kernel ;
> IN: syntax
> SYNTAX: PRIMITIVE:
> "Primitive definition is not supported" throw ;
>
> Is this the actual definition of PRIMITIVE:? To throw an error? How can
> the <wrapper> work then?
>
> If it is not the actual definition, please help me find the real one.
>
> ---=====---
> Александр
>
>
> ------------------------------------------------------------------------------
> _______________________________________________
> Factor-talk mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/factor-talk
>
------------------------------------------------------------------------------
_______________________________________________
Factor-talk mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/factor-talk