|
Authored by: Anonymous on Monday, May 14 2012 @ 08:42 PM EDT |
Also look at the confusion between a program being loaded as data versus as
instructions.[ Reply to This | Parent | # ]
|
|
Authored by: Anonymous on Monday, May 14 2012 @ 09:05 PM EDT |
There's no nice way to say it. Dr. Mitchell's testimony is extremely
disingenuous.
Dr. Mitchell: Yes.
Dr. Mitchell: What are
they?
Dr. Mitchell: The field indexes.
Oracle: But those are numbers,
does it matter?
Dr. Mitchell: Not at all, a number can be a symbolic
reference.
Oracle: What about the claim construction that says a number
can’t be a symbolic reference?
Dr. Mitchell: Nothing. A number is a
perfectly good name. Adding the dex file to the poster. It includes the
instructions, list of opcodes and operands, but not the resolve field
table.
Oracle: Is the field index in a Dalvik instruction a symbolic
reference?
Dr. Mitchell: It is, according to the court’s construction. It is
a reference and it identifies data. It is a name (01) and that name is not a
numeric memory location for the data (if it were, we wouldn’t have to resolve
it) and it is resolved dynamically rather than statically.
This is
completely untrue, and Dr. Mitchell must know it.
Dr.
Mitchell: It obtains the data according to this numeric references. The next
time this instruction is executed, the VM looks in this table and doesn’t need
to do the search process again. This works for this instruction and any other
one with the symbolic reference field@01.
Back to the definition of symbolic
reference. Dynamic is not disputed for resolve.c. Dr. Mitchell writes the
definition out even though it’s on all our screens. Shows the name is 01. Memory
location is 48. 01 not equal to 48. Therefore he says it is a symbolic
reference, not a numeric reference.
Yeah, and my golden retriever
is really a flying pig.
Oracle: And how does this happen in
dexopt?
Dr. Mitchell: Basically the same. The difference is that the I get
instruction is rewritten and the symbolic name is written to a numeric
reference. So iget is rewritten to igetquick and the 01 is changed to the memory
location. But all the references have the same meaning whether dexopt runs or
not.
Oracle: Does dexopt run dynamically?
Dr. Mitchell: Yes. It is the
dynamic process of searching through these references and as a portion of the
Dalvik VM. It resolves the location of classes loaded into memory at run-time.
It’s all dependent on information known at runtime and not known independent of
the platform of the code. I don’t have anything against Dr. August, but if I
could not share his water glass, that would be good.
Ah, so it
"runs dynamically", under Dr. Mitchell's definition of dynamic which is
different from everyone else's. It's a "dynamic process", and because dexopt
shares a bunch of code with the VM core, this process is "as a portion of the
Dalvik VM".
....
I think this case has clearly demonstrated one of the
real problems with the U.S. legal system today. There is essentially no penalty
for lying under oath. "Dueling experts" is the norm, and when one of the
experts lies through his teeth, nothing gets done about it. [ Reply to This | Parent | # ]
|
|
Authored by: Anonymous on Monday, May 14 2012 @ 09:08 PM EDT |
Also, he said that "17" is a valid symbolic reference. However, the
Java
Language Specification declares that no symbolic reference (variable/field/
class/etc name) can start with a number. As such, 17 is a very bad symbolic
reference. I realize that mathematically it doesn't matter but that the compiler
has to recognize between symbolic references and constants.[ Reply to This | Parent | # ]
|
|
Authored by: Anonymous on Monday, May 14 2012 @ 09:34 PM EDT |
Dr. Mitchell teaches the CS242:
Programming Languages course at Stanford (or at least he did in Fall
2011).
If you scroll down to Wed, Nov 9 (2011) you see what that class was
about:
Implementation structures
Java virtual machine and bytecode
rewriting. Modern optimizations such as polymorphic inline
cache.
He
re are the slides from that day (pdf).
One of the slides (slide 8, I
think) is titled "JVM Linker and Verifier". It says this:
JVM
Linker and Verifier
Linker
- Adds compiled class or interface to
runtime system
- Creates static fields and initializes them
-
Resolves names
* Checks symbolic names and replaces with direct
references
Verifier
- Check bytecode of a class or interface
before loaded
- Throw VerifyError exception if error
occurs
(emphasis mine).
Dr. Mitchell has taught
classes on how symbolic references are resolved in a Java VM, so he clearly
knows this subject material.
I can't think of any charitable explanation for
the testimony he gave in court today. Dr. Mitchell must know Dr. August's
testimony was truthful, and his was not. [ Reply to This | Parent | # ]
|
|
Authored by: jbb on Monday, May 14 2012 @ 09:39 PM EDT |
It is amazing that people are allowed to lie on the witness stand with impunity.
There should be a law to make that sort of thing illegal.
--- Our job
is to remind ourselves that there are more contexts
than the one we’re in now — the one that we think is reality.
-- Alan Kay [ Reply to This | Parent | # ]
|
|
Authored by: Anonymous on Monday, May 14 2012 @ 11:04 PM EDT |
Oracle: Does dexopt run dynamically?
Dr. Mitchell: Yes. It is
the dynamic process of searching through these references and as a portion of
the Dalvik VM. It resolves the location of classes loaded into memory at
run-time. It’s all dependent on information known at runtime and not known
independent of the platform of the code. I don’t have anything against Dr.
August, but if I could not share his water glass, that would be
good…
It is the dynamic process of searching
through these references...
MEANING: If it
wasn't dynamic it would be halted. Different meaning of dynamic to that which
would be understood by someone skilled in the art (and who wasn't being paid to
understand something else).
It resolves the location of classes
loaded into memory at run-time.
MEANING: It
resolves the location of classes which will be loaded into
memory at runtime. By my own definition of runtime - see below - dexopt does
not run at the Dalvik application's runtime
[At run time, the
program and the input are both available to the run time system.
"Concepts
in Programming Languages" by John C. Mitchell Page
6
http://www.amazon.com/dp/0521780985 (Page 6 appears in the
preview)
]
It’s all dependent on information known
at runtime and not known independent of the platform of the code.
MEANING: This sounds good and the 'not known independent
of' double negative will guarantee no-one can understand or contradict
me
I don’t have anything against Dr. August, but if I could not
share his water glass, that would be
good…
MEANING: I've told so many half truths
under oath that my mouth has gone dry. [ Reply to This | Parent | # ]
|
|
Authored by: frederik on Monday, May 14 2012 @ 11:13 PM EDT |
"Pattern matching" == "execution", "symbolic reference" == "indirect memory
reference", "dynamic" == "static", "execution" == "emulation". The linker runs,
so linking is "runtime", ...
[Blackwhite ...] "Applied to an
opponent, it means the habit of impudently claiming that black is white, in
contradiction of the plain facts. Applied to a Party member, it means a loyal
willingness to say that black is white when Party discipline demands this. But
it means also the ability to believe that black is white, and more, to know that
black is white, and to forget that one has ever believed the contrary. This
demands a continuous alteration of the past, made possible by the system of
thought which really embraces all the rest, and which is known in Newspeak as
doublethink." (Orwell, 1984).
"To tell deliberate
lies while genuinely believing in them, to forget any fact that has become
inconvenient, and then, when it becomes necessary again, to draw it back from
oblivion for just as long as it is needed, to deny the existence of objective
reality and all the while to take account of the reality which one denies – all
this is indispensably necessary." (Orwell, 1984)
[ Reply to This | Parent | # ]
|
|
|
|
|