You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@lucy.apache.org by "Marvin Humphrey (JIRA)" <ji...@apache.org> on 2012/05/02 21:14:49 UTC
[lucy-issues] [jira] [Commented] (LUCY-233) Implement Clownfish Method class
[ https://issues.apache.org/jira/browse/LUCY-233?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13266838#comment-13266838 ]
Marvin Humphrey commented on LUCY-233:
--------------------------------------
Looks good, +1 to commit!
Comments:
* The METHOD_PTR patch looks fine.
* I chuckled at the "Bootstrap VTables" hacks necessary when the the parcel
prefix is "lucy_" (which will eventually change to "cfish_") so that
VTable_init() could be generalized out of VTable_bootstrap().
* Nice adding comments in the generated code. That makes both the transpiler
output and the sprintf format string easier to grok.
* FWIW, the variable "x" which is "reserved for future use" in VTable can go
away. It's an artifact of when OFFSET vars had fixed values.
* I think it makes sense for Method objects to become immutable, like
VTables (modulo the mutable host object bug for VTables). That would mean
overriding Inc_RefCount() and Dec_RefCount() and leaking them
intentionally.
* It's a long-term concern that VTables now contain more elements that aren't
immutable, e.g. VArrays. Our goals for thread support are minimal -- we
only support strongly divorced concurrency -- but if VTables and their
components are not immutable, we'll have thread safety issues. Perhaps we
need classes like "FinalString", "FinalHash", etc. to support situations
like this.
* I notice that the Method takes ownership of the CharBuf "name" in
Method_init() in the third patch. What we do elsewhere is pass in a "const
CharBuf*" and CB_Clone() it, so that the caller doesn't have to worry about
whether they modify it. The same thing applies to VTable_init() in patch
4.
* CB_newf(name) might be better written as CB_newf("%s", name), since the
first arg is a format string.
> Implement Clownfish Method class
> --------------------------------
>
> Key: LUCY-233
> URL: https://issues.apache.org/jira/browse/LUCY-233
> Project: Lucy
> Issue Type: Task
> Components: Clownfish
> Reporter: Nick Wellnhofer
> Attachments: 0001-Rename-METHOD-macro-to-METHOD_PTR.patch, 0002-Rework-VTable-bootstrapping.patch, 0003-Initial-implementation-of-Method-class.patch, 0004-Rework-VTable-method-initialization.patch
>
>
> As discussed on lucy-dev, it would be nice to have a Clownfish class for methods. The VTables would then contain a VArray of Methods which can be used to setup host language overrides and later to lookup offsets dynamically.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira