Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Are we getting the fields in metaclasses wrong? #63

@smarr

Description

@smarr

The following program shows inconsistent output for different SOM implementations, and SOM++ may have unexpected fields:

Haoran = (

  answersForHaoran: aClass = (
    aClass name println.
    '  superclass: \'' print.
    aClass superclass print. '\'' println.
    '  class is: \'' print.
    aClass class print. '\'' println.
    '  SOM source-defined fields: '  print. aClass fields length println.
    aClass fields do: [ :fieldName |
      '    ' print. fieldName println.
    ].
    '  methods: ' print. aClass methods length println.
    aClass methods do: [ :methodName |
      '    ' print. methodName println.
    ].

    '  isClass: ' print. aClass isClass println.
    '  isMetaClass: ' print. aClass isMetaClass println.
    '' println.
    '' println.
  )

  run = (
    self answersForHaoran: Object.

    self answersForHaoran: Class.

    self answersForHaoran: Metaclass.

    self answersForHaoran: Metaclass class.

    self answersForHaoran: Metaclass class class.

    self answersForHaoran: Class class.

    self answersForHaoran: Class class class.

    self answersForHaoran: Object class.

    self answersForHaoran: Object class class.
  )
)

core-lib.patch
pysom.txt
som-java.txt
sompp.txt
trufflesom.txt

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions