Skip to content
This repository has been archived by the owner on Dec 20, 2017. It is now read-only.

Investigate if sample code can be made compatible with Doop extractor #22

Open
nkeynes-oracle opened this issue Jul 3, 2017 · 4 comments

Comments

@nkeynes-oracle
Copy link
Contributor

nkeynes-oracle commented Jul 3, 2017

The sample files reference relations such as BasicBlockRef that are not generated by the Doop extractor. These references should be removed if possible so that the sample code can work with Doop-extracted fact tables.

@nkeynes-oracle nkeynes-oracle changed the title Sample datalog files contain references to non-doop fact relations Investigate if sample code can be made compatible with Doop extractor Jul 5, 2017
@nkeynes-oracle
Copy link
Contributor Author

It looks like there's a few separate issues involved here -
a) Doop doesn't appear to write out fact files that would otherwise be empty
b) Some fact files are expected to have slightly different names (e.g. MethodSignature-Descriptor.facts vs MethodSignatureDescriptor.facts)
c) Some expected fact files are not generated by Doop at all (e.g. BasicBlockEntry)
d) It looks like the generated facts have changed between the binary Doop release and current tip-of-tree. For the moment focusing on the released version.

With respect to (c) we appear to be missing the following relations:
BasicBlockEntry
BasicBlockIn
ExternalHeapAllocation
FieldSignatureRef
HeapAllocationRefDebugInfo
LoadInstanceFieldIndex
NestedClass
StoreInstanceFieldIndex
UnknownReturnedHeapAllocation

@b-scholz
Copy link

b-scholz commented Jul 6, 2017

A lot of this work is already done here:

https://github.com/souffle-lang/java-pts

Changing the spec from open-world to closed-world needs to be done.

@paddykrishnan
Copy link
Member

It would require some effort to get the new version of Doop to work with Souffle. The tool-chain used by Doop has become more sophisticated and the underlying schema for some of the relations have changed.

@thomasgilray
Copy link

I can run the version in the /logic/ folder of the souffle-lang/java-pts repo, but still get various missing files (e.g. ClassModifier.facts) from that version too. Is there an older version where this was in a working state? (Although maybe it requires an older souffle.)

FYI: I have to run java7 and use the extractor in build/libs/ instead of build/lib/ but otherwise I followed the readme.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants