| Type | Issue | Status | submitted | Date | 16-Jun-2010 12:40 |
|---|---|---|---|---|---|
| Version | alpha 99 | Category | Ports | Submitted by | meijeru |
| Platform | All | Severity | minor | Priority | normal |
| 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 to | n/a | Fixed in | - | Last Update | 16-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 | - |