REBOL3 tracker
  0.9.11 beta
Ticket #0001621 User: anonymous

Project:

Previous Next
TypeIssue Statussubmitted Date16-Jun-2010 12:40
Versionalpha 99 CategoryPorts Submitted bymeijeru
PlatformAll Severityminor Prioritynormal

Summary ACTOR component of built-in SCHEME has curious specification
Description The ACTOR component of a built-in scheme is a native! function of one argument: a port!. Its molded value is make native! [[port!]]. Note that this suggests that the argument name is port! and the argument type is any-type! minus unset!. However, TYPES-OF this native yields an empty block. One would perhaps have expected a molded value of make native! [[port [port!]]], where admittedly the argument name is indifferent.
Example code
>> p: make port! [scheme: 'console]
>> probe :p/actor
== make native! [[port!]]
>> spec-of :p/actor
== [port!]
>> types-of :p/actor
== []

Assigned ton/a Fixed in- Last Update16-Jun-2010 12:46


Comments
(0002393)
meijeru
16-Jun-2010 12:46

Inspection of the actual implementation yields some more information. This is not part of the issue, but, may be relevant anyhow. In contrast to other native functions, the /ACTOR value is implemented with a spec-block which is identical to the context frame in memory, and the context frame lacks the usual SELF component (dummy as it may be for selfless contexts). Thus the stored context frame has one entry only, and this has a typeset of [end!]. I suppose that, given the special treatment of native port actors, the stored information is almost irrrelevant, but for the purposes of molding the value, it could have been more conforming.

Date User Field Action Change
16-Jun-2010 12:46 meijeru Comment : 0002393 Added -
16-Jun-2010 12:40 meijeru Ticket Added -