Skip to content

Commit

Permalink
Kendo on RoadRunner final
Browse files Browse the repository at this point in the history
  • Loading branch information
greeshmaswaminathan committed Oct 3, 2016
0 parents commit 45db1f7
Show file tree
Hide file tree
Showing 417 changed files with 88,667 additions and 0 deletions.
19 changes: 19 additions & 0 deletions .classpath
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry excluding="api.txt" kind="src" path="src"/>
<classpathentry exported="true" kind="lib" path="build/jar/ClassLoaderWithListener.jar" sourcepath="src/"/>
<classpathentry kind="src" path="auto"/>
<classpathentry kind="src" output="classes-test" path="test"/>
<classpathentry exported="true" kind="lib" path="jars/java-cup-11a.jar"/>
<classpathentry exported="true" kind="lib" path="jars/JFlex.jar"/>
<classpathentry exported="true" kind="lib" path="jars/hamcrest.jar"/>
<classpathentry exported="true" kind="lib" path="jars/junit.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
<classpathentry kind="lib" path="/Library/Java/JavaVirtualMachines/jdk1.8.0_77.jdk/Contents/Home/lib/tools.jar"/>
<classpathentry kind="src" path=".apt_generated">
<attributes>
<attribute name="optional" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="classes"/>
</classpath>
9 changes: 9 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
auto
build
classes
classes-test
docs
log
test/CTest.class
test/*.arff
classes-test
17 changes: 17 additions & 0 deletions .project
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>RoadRunner</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>
4 changes: 4 additions & 0 deletions .settings/org.eclipse.jdt.apt.core.prefs
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
eclipse.preferences.version=1
org.eclipse.jdt.apt.aptEnabled=true
org.eclipse.jdt.apt.genSrcDir=.apt_generated
org.eclipse.jdt.apt.reconcileEnabled=false
25 changes: 25 additions & 0 deletions .settings/org.eclipse.jdt.core.prefs
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.builder.cleanOutputFolder=ignore
org.eclipse.jdt.core.builder.duplicateResourceTask=warning
org.eclipse.jdt.core.builder.invalidClasspath=abort
org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
org.eclipse.jdt.core.circularClasspath=error
org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource=error
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.processAnnotations=enabled
org.eclipse.jdt.core.compiler.source=1.8
org.eclipse.jdt.core.incompatibleJDKLevel=ignore
org.eclipse.jdt.core.incompleteClasspath=error
3 changes: 3 additions & 0 deletions .settings/org.eclipse.jdt.launching.prefs
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#Tue Dec 28 15:44:59 PST 2010
eclipse.preferences.version=1
org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=warning
104 changes: 104 additions & 0 deletions CHANGES.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
Copyright (c) 2010, Cormac Flanagan (University of California, Santa Cruz)
and Stephen Freund (Williams College)

All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:

* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.

* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.

* Neither the names of the University of California, Santa Cruz
and Williams College nor the names of its contributors may be
used to endorse or promote products derived from this software
without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


#########################################################################

June 11, 2015: Various small bug fixes and memory performance improvements.

Now requires Java 1.7.

Now coordinates clearing out internal caches when GC
is performed.

The -trackReflection is a first attempt at generating
events for reflective field/array accesses.

Now generates ClassAccessed events when a static final
variable is accesses. This is to track the ordering
between the initialization of a static final field
and reads of it. Without that event, spurious warnings
can happen.



Nov 19, 2014: Various bug fixes and memory performance improvements.
These include: more gracefully recovery from various
failures, a more robust fastpath process for array
accesses, and improved handling of shadow state for
volatiles and threads.

Aug 30, 2014: This is a large update:

Various bug fixes. This includes corner cases in FT_CAS,
the instrumentor, and the shadow state representation of
arrays (most notably in long-running programs with large
heap sizes --- see ArrayStateFactory.java).

Arrays are now tracked in fine-grained mode by default
rather than being untracked by default.

Performance: RoadRunner's shadow state could pin
down objects that otherwise could be collected. All Shadow
State objects (ShadowVolatile, ShadowLock, ArrayState, ...)
now refer back to real state via WeakReferences to avoid
such issues. Some caches for array states do not use
weak references to avoid a run-time performance hit, but
could perhaps be improved in some additional way in the
future.

Tools can now have more specialized fast path methods for
array and field accesses. See Tool.java.

July 8, 2014: Various small changes and bug fixes in instrumentation.

New experimental CAS-based updaters.

Updated to ASM version 5 and moved it into the rr package
to enable targets using ASM to be properly loaded.

Jan 9, 2012: Fixed typo in message reporting code for HB tool.

Jan 6, 2012: Committed change for -lines option. It now applies to
array ops, field ops, but not lock ops. It seems more
useful this way.

Jan 5, 2012: Committed change for -lines option. It now applies to
array ops, field ops, and lock acquire/release.


Oct 3, 2011: Committed and pushed small code edits from various places.
There were some conflicts that should have been resolved
correctly. If problems exist, please use the version from
June 20.
133 changes: 133 additions & 0 deletions INSTALL.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,133 @@
Copyright (c) 2010, Cormac Flanagan (University of California, Santa Cruz)
and Stephen Freund (Williams College)

All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:

* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.

* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.

* Neither the names of the University of California, Santa Cruz
and Williams College nor the names of its contributors may be
used to endorse or promote products derived from this software
without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


To Install:
-----------

1. You will need Ant, Java 1.7, and cpp to build RoadRunner.
The $JAVA_HOME environment variable must point to the proper
Java distribution. (Depending on the Java version, you may need
to add tools.jar from the JDK to your classpath in build.xml or
in Eclipse.)

2. Unzip the dist file, and cd into the top-level directory.

3. Build the source:

> cd RoadRunner; ant

To Run:
-------

1. cd RoadRunner

2. source msetup

Note: this sets up environment variables and configures
everything for Java 1.7.

3. Test it:


> javac test/Test.java
> rrrun test.Test

You should get no errors.

> rrrun -tool=TL:RS:LS test.Test

You should get many race errors on field Test.y.

4. Look at options:

> rrrun -help

You will at least want to look at the following:

-quiet
-help
-classpath={String}
-toolpath={String}
-tool={String}

-classes={StringMatcher}
-fields={StringMatcher}
-methods={StringMatcher}

-array={ArrayMode}
-field={FieldMode}

-nobarrier

5. Look at sample tools:

> rrrun -tools

Look at rr.tool.Tool abstract class and sample tools for
implementation info.


6. Running on benchmarks:

When performing comparisions to other analysis platforms, you will
need to pay particular attention to several options, including
-array and -field to ensure memory is instrumented as you intend.

In addition, RoadRunner includes specialized handling of various
barrier implementations to facilitate writing analyses that must
treat barriers specially. However, it assumes those barriers are
correct, which is not the case for some benchmarks, including
the barriers in JavaGrande. Thus, you will miss errors unless
you specify the "-nobarrier" flag to not treat barrier code
specially.


ECLIPSE SUPPORT:
-----------

After building as described above, you can import the RoadRunner directory
as an existing project.

Refresh, Clean, etc. should rebuild everything as
necessary. The "rrrun script" will pick up any modifications you made.

If adding new Tools, changing abbreviations, tools paths, changing the ClassLoader,
changing the agent, or doing anything else unusual, you should rebuilt
RoadRunner with the build.xml ant script to ensure all the auto-generated
files are in sync.

There is a sample launch script "scripts/RRMain-tools.launch" to print out all
the supported tools from inside Eclipse if you wish to work exclusively
in the Eclipse environment.
30 changes: 30 additions & 0 deletions LICENSE-ASM.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
/***
* ASM: a very small and fast Java bytecode manipulation framework
* Copyright (c) 2000-2011 INRIA, France Telecom
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of the copyright holders nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
* THE POSSIBILITY OF SUCH DAMAGE.
*/

17 changes: 17 additions & 0 deletions LICENSE-CUP.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
CUP Parser Generator Copyright Notice, License, and Disclaimer

Copyright 1996-1999 by Scott Hudson, Frank Flannery, C. Scott Ananian
Permission to use, copy, modify, and distribute this software and its documentation for any
purpose and without fee is hereby granted, provided that the above copyright notice appear
in all copies and that both the copyright notice and this permission notice and warranty
disclaimer appear in supporting documentation, and that the names of the authors or their
employers not be used in advertising or publicity pertaining to distribution of the software
without specific, written prior permission.

The authors and their employers disclaim all warranties with regard to this software,
including all implied warranties of merchantability and fitness. In no event shall the
authors or their employers be liable for any special, indirect or consequential damages
or any damages whatsoever resulting from loss of use, data or profits, whether in an
action of contract, negligence or other tortious action, arising out of or in connection
with the use or performance of this software.

Loading

0 comments on commit 45db1f7

Please sign in to comment.