jira.codehaus.org

  • Log In Access more options
    • Online Help
    • Keyboard Shortcuts
    • About JIRA
    • JIRA Credits
    • What?s New
  • Dashboards Access more options (Alt+d)
  • Projects Access more options (Alt+p)
  • Issues Access more options (Alt+i)
  • RVM
  • RVM-629

Incorrect usage of @Untraced?

  • Log In
  • Views
    • XML
    • Word
    • Printable

Details

  • Type: Bug Bug
  • Status: Open Open
  • Priority: Minor Minor
  • Resolution: Unresolved
  • Affects Version/s: 3.0.1
  • Fix Version/s: 3.1.3
  • Component/s: Instruction Architecture: Intel, Instruction Architecture: PowerPC, MMTk, Runtime: JNI, Runtime: Threads and Concurrency
  • Labels:
    None

Description

The annotation @Untraced is used in several places throughout JikesRVM for public fields - this conflicts with the specification of @Untraced that states fields must be declared private. Is this a typo in the definition of @Untraced or some sort of abuse?

Some potentially problematic files include:
MMTk/src/org/mmtk/vm/VM.java
rvm/src/org/jikesrvm/ppc/Registers.java
rvm/src/org/jikesrvm/ia32/Registers.java
rvm/src/org/jikesrvm/scheduler/ProcessorLock.java
rvm/src/org/jikesrvm/scheduler/RVMThread.java
rvm/src/org/jikesrvm/scheduler/Processor.java
rvm/src/org/jikesrvm/jni/JNIEnvironment.java

Activity

Ascending order - Click to sort in descending order
  • All
  • Comments
  • Work Log
  • History
  • Activity
Hide
Permalink
Daniel Frampton added a comment - 12/Aug/08 5:38 AM

Apologies, this is something that is in need of some tidying up. The fundamental issue is that Untraced has implications for the code sequence compiled when accessing the field (it does not compile in read/write barriers). For that reason the field must be resolved whenever we compile code that uses it, as annotations are not visible for unresolved classes.

A simple way to deal with this is to ensure that all Untraced fields are private, as such fields are never accessed in an 'unresolved' manner. However, this was not the safety mechanism ulitimately used: the requirement was toned down to failing when an @Untraced field is resolved at runtime. This does catch all the problem cases, but only shows itself as a runtime (rather than compile/bootimage time) error.

I will leave this open to improve the code and/or update the documentation.

Show
Daniel Frampton added a comment - 12/Aug/08 5:38 AM Apologies, this is something that is in need of some tidying up. The fundamental issue is that Untraced has implications for the code sequence compiled when accessing the field (it does not compile in read/write barriers). For that reason the field must be resolved whenever we compile code that uses it, as annotations are not visible for unresolved classes. A simple way to deal with this is to ensure that all Untraced fields are private, as such fields are never accessed in an 'unresolved' manner. However, this was not the safety mechanism ulitimately used: the requirement was toned down to failing when an @Untraced field is resolved at runtime. This does catch all the problem cases, but only shows itself as a runtime (rather than compile/bootimage time) error. I will leave this open to improve the code and/or update the documentation.
Hide
Permalink
David Grove added a comment - 08/Jun/09 9:44 AM

Defer to 3.1.1

Show
David Grove added a comment - 08/Jun/09 9:44 AM Defer to 3.1.1
Hide
Permalink
David Grove added a comment - 04/Jul/10 1:26 PM

bulk defer open issues to 3.1.2

Show
David Grove added a comment - 04/Jul/10 1:26 PM bulk defer open issues to 3.1.2
Hide
Permalink
David Grove added a comment - 22/Dec/11 5:47 AM

Bulk defer to 3.1.3; not essential to address for 3.1.2.

Show
David Grove added a comment - 22/Dec/11 5:47 AM Bulk defer to 3.1.3; not essential to address for 3.1.2.

People

  • Assignee:
    Daniel Frampton
    Reporter:
    Laurence Hellyer
Vote (0)
Watch (0)

Dates

  • Created:
    12/Aug/08 4:48 AM
    Updated:
    22/Dec/11 5:47 AM
  • Atlassian JIRA (v5.0.4#731-sha1:3aa7374)
  • Report a problem
  • Powered by a free Atlassian JIRA open source license for Codehaus. Try JIRA - bug tracking software for your team.