Commit Graph

59 Commits

Author SHA1 Message Date
Ben Liblit 2f44bbf518 Help Emacs recognize that these are (fragments of) makefiles 2017-07-14 21:46:46 -07:00
Ben Liblit 433cd78f65 Move logic from "cbuild.sh" into portable "Makefile.configuration"
In "com.ibm.wala.cast.test", the "cbuild.sh" script is gone entirely.
Instead, "pom.xml" directs Maven to run "make" directly.  We still
have a "Makefile.configuration" file in this project, but this file is
now independent of where WALA is being built and of where Java is
installed.

In "com.ibm.wala.cast", a small "cbuild.sh" remains, to do some
special processing involving Visual Studio variables under Windows.
When not building under Windows, "cbuild.sh" now simply runs "make".
It may well be possible to hoist the special Windows stuff up into
this subproject's "pom.xml", or to change that "pom.xml" to run
"cbuild.sh" only when on Windows, and to run "make" directly
otherwise.  I don't know "pom.xml" stuff very well, though.  We still
have a "Makefile.configuration" file in this project, but this file is
now independent of where WALA is being built and of where Java is
installed.

The changes I've made in both "Makefile.configuration" files use GNU
make extensions.  I assume that's safe because "Makefile.definitions"
already relies on GNU make.
2017-07-14 21:44:33 -07:00
Ben Liblit 0e6b00e29f Revert accidental, harmless, but unnecessary make config changes 2017-07-12 10:39:06 -07:00
Ben Liblit e316471d88 Fix nearly all Eclipse warnings about using raw types
Along the way, I also converted many "for (;;)" loops into modern
"for (:)" loops.  I didn't systematically look for all opportunities
to do this, though.  I merely made this change where I was already
converting raw Iterator uses into modern Iterator<...> uses.

Better use of generics also allowed many casts to become statically
redundant.  I have removed all such redundant casts.

Only three raw-types warnings remain after this batch of fixes.  All
three involve raw uses of CallGraphBuilder.  I've tried to fix these
too, but it quickly snowballs into a cascade of changes that may or
may not eventually reach a statically-type-save fixed point.  I may
give these last few problem areas another go in the future.  For now,
though, the hundreds of other fixes seem worth keeping even if there
are a few stragglers.

This commit may change some public APIs, but only by making weaker
type signatures stronger by replacing raw types with generic types.
For example, we may change something like "Set" into "Set<String>",
but we're not adding new arguments, changing any
underlying (post-generics-erasure) types, etc.
2017-07-12 10:39:06 -07:00
Julian Dolby 773fa68a3f made native test run on a linux vm 2017-06-29 09:07:29 +00:00
Julian Dolby f3a38f50d8 more linking 2017-06-28 17:56:04 -04:00
Julian Dolby 9789eb4216 remove import 2017-06-28 17:36:34 -04:00
Julian Dolby 6a6bf888e8 try some static linking 2017-06-28 17:30:55 -04:00
Julian Dolby c51321f4ba try to load libs on linux 2017-06-28 16:26:03 -04:00
Julian Dolby 5374ce3169 more linking 2017-06-28 15:38:38 -04:00
Julian Dolby d8f6bf2a26 more linking hacks 2017-06-28 15:24:22 -04:00
Julian Dolby 8c8f352325 link object file 2017-06-28 15:06:47 -04:00
Julian Dolby 3722190ece try extern "C" 2017-06-28 14:48:05 -04:00
Julian Dolby cf4b27a065 linking 2017-06-28 13:44:17 -04:00
Julian Dolby c979c9700e header needed on linux 2017-06-28 13:37:26 -04:00
Julian Dolby 5c242e8e10 more .. fussiness on linux
someone does not like -std=c++11
2017-06-28 13:04:51 -04:00
Julian Dolby 7c476eac3d native interface for WALA 2017-06-28 12:42:49 -04:00
Ben Liblit 72c754e874 Declare private methods static wherever possible
If a method is private, there's no risk that a subclass elsewhere
might be overriding it and depending on dynamic dispatch to choose the
right implementation.  So all of these private methods can safely be
declared static without risk of regression in either WALA code or
unseen third-party code.
2017-06-07 08:29:23 -07:00
Ben Liblit 7cbbeb1d81 Fix 92 deprecation warnings
All of these fixes involve replacing junit.framework.Assert with
org.junit.Assert for JUnit 4.x and later.
2017-03-17 21:18:26 -05:00
Ben Liblit 994a70500f Remove redundant generic type parameters where possible
Instead, rely on Java's ability to infer type parameters in many
contexts.  This removes 665 Eclipse warnings.

Note: a few of these changes are to files under "test" subdirectories.
Presumably those are files that serve as test inputs rather than being
part of WALA code proper.  As far as I can tell, these changes do not
break any WALA tests.  But if any of those tests were specifically
intended to exercise WALA on code with non-inferred generic type
parameters, then I really should be leaving those alone.
2017-03-11 21:20:51 -06:00
Julian Dolby d24519e974 cross-cutting changes to make more of WALA runnable with TeaVM. The biggest change is refactoring to AnalysisCache and friends; since TeaVM does not support SoftReference, I needed to add a layer of interfaces so that I can use a more simpleminded caching implementation for TeaVM. There are other changes to Module and friends to break connections with File and URL, which also cause TeaVM grief. I also organized imports in many places to remove unused types that caused trouble. 2017-02-02 20:33:27 -05:00
Julian Dolby c9b1006305 changes for allowing seq. and conc. CHAs 2017-01-12 16:34:54 -05:00
Julian Dolby dd3124479e allow control flow in induced cfgs, and various related fixes 2014-07-08 14:44:06 -04:00
Julian Dolby 080325b5f6 merge 2013-06-25 11:57:37 -04:00
Manu Sridharan 3b1889121b add missing copyright headers 2013-05-22 15:39:19 -07:00
dolby dfe06b8ff3 changes to Web source mapping to exploit rhino 1.7R3 source offsets 2012-05-08 13:17:01 -04:00
dolby-oss 99564d6e06 strengthen checking of argument specialization test
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4533 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-02-23 18:15:05 +00:00
dolby-oss 10012b9792 fix warning; make assertion failure more verbose
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4523 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-02-21 13:47:01 +00:00
msridhar1 a3826f23a8 refactoring: rename some Util classes
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4492 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-02-17 20:21:59 +00:00
msridhar1 d419096ddb Committing change the Eclipse plugin forgot.
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4419 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-01-06 21:52:40 +00:00
msridhar1 3e4e4836e2 allow for clearing error messages to free memory
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4225 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2011-07-22 15:58:41 +00:00
dolby-oss 4da02a9125 Changes to extend supported context sensitivity to CPA-style:
1) extend ContextSelector interface to allow it to specify parameters of interest
  2) extend filtering mechanism at call sites to allow CPA-style filtering when requested by contexts
  3) various related fixes and extensions:
    a) removed redundant code to handle dispatch for JavaScript, so now it shares the core mechanism
    b) tighten types for operators that take an array of args - now the array is T[] at the cost of a few array allocation methods
    c) a bit more support for empty int sets
    d) void function objects
    e) bug fixes for lexical scoping support, and adaptation to work with core dispatch mechanism
    f) example of CPA-style sensitivity to handle nastiness in a JavaScript for(.. in ...) loop
    

git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4150 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2011-04-27 13:58:56 +00:00
dolby-oss 67d26e74c5 allow IR translator to give warnings and errors via the loader
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4125 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2011-04-14 01:16:36 +00:00
dolby-oss 9006fce690 some bug fixes to CAst IR generation, especially in handling exceptions
cleanup of how JDT analysis engines work, to make using the JDT front end more modular
bug foxes to JavaScript handling, most notably fixing scoping of functions

git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4123 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2011-04-13 16:27:15 +00:00
dolby-oss 2f5a769df9 updates to processing of Web pages:
1) adopted the code from Rational for HTML handling
    i) extended it to integrate better source mapping into IR
    ii) integrated fixes from the old html processing to collect more info on forms
    iii) added some copyright comments
  2) updated version of jericho
  3) added support for nu.validator for html5
  4) added script to fetch html parser jars, and removed binary jar
  

git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4095 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2011-04-04 15:29:53 +00:00
msridhar1 857e456806 organize imports
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4081 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2011-04-03 04:08:05 +00:00
yinnon_haviv 38f8a44044 Fix prototype contamination bug (described in added test).
When someone writes: 
MyFunction.prototype.myMethod = ...
we want "myMethod" to be accessible only for objects of type "MyFunction".

- Change how generated ctors look like - now they have a private prototype object into which methods can be added
- Change the PropertyReadExpander to have a different handling when reading the "prototype" field, avoid performing a loop on the prototype chain, so that the points to set of fetched field will be accurate (and allow us to set only the fields of it)


git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@3959 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2010-10-02 19:30:03 +00:00
yinnon_haviv 1d4d158de3 Replace manual creating of URL (using, e.g., "file:" + f.getAbsolutePath() ) with progrematic one.
(File.toURI().toURL()). Good for cross platform (Mac vs. Windows)

git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@3953 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2010-09-28 16:22:08 +00:00
msridhar1 8025302fd0 update to JUnit 4
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@3743 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2009-07-27 22:48:04 +00:00
dolby-oss 7c5db2241f clean up printing a bit
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@3629 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2009-06-03 18:27:39 +00:00
sjfink 9939142eae switch from Assertions._assert to Java assertions
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@3555 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2009-04-30 13:16:52 +00:00
sjfink 829145e97b Nuke ClassHierarchyException from IClass.getSuperclass()
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@3539 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2009-04-28 19:52:34 +00:00
sjfink 957cb2b8ca deprecate Trace
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@3432 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2009-04-09 20:31:14 +00:00
dolby-oss 8d3c76715c misc. fixes motivated by JavaScript
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@3175 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2009-01-19 15:12:39 +00:00
dolby-oss 991bd6052f further work on lexical scoping
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@3137 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2008-12-16 14:57:18 +00:00
sjfink 1ab977fd1c organize imports
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@2144 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2007-12-10 05:35:23 +00:00
dolby-oss 446a6551fe make CAstTranslatorTest work with new Language scheme
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@2140 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2007-12-10 05:27:32 +00:00
dolby-oss 35c2b24881 a little more trace output
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@2132 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2007-12-10 04:27:53 +00:00
sjfink 0c6c55573e delete redundant method CGNode.iterateSites()
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@2061 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2007-11-20 15:50:10 +00:00
sjfink 254642d572 misc cleanups
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@2049 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2007-11-16 21:01:09 +00:00