Commit Graph

478 Commits

Author SHA1 Message Date
Mark Harrah cc06667f3e handle constant types 2011-02-14 18:59:54 -05:00
Mark Harrah a3a81dc26e fix issue in API comparison where ordering was required but not done 2011-02-14 18:58:20 -05:00
Mark Harrah 2a4f7ac564 compiler interface: 2.9 compatibility
nme.LOCALCHILD -> tpename.LOCAL_CHILD
handle NullaryMethodType
2011-02-08 20:30:15 -05:00
Mark Harrah 14990b5127 cache Eval results
still need to clean up stale class files
2011-02-02 19:38:41 -05:00
Mark Harrah 6b91ad59fd Eval-related improvements
- support import clauses
- error display: source name, line numbers for each expression
- for 'eval', 'get', 'set', and .sbt files, use default imports and import from Plugins, Builds
2011-01-26 19:49:54 -05:00
Mark Harrah 837bb80d40 cleanup and fixes 2011-01-24 18:08:43 -05:00
Mark Harrah 20a5e3b3c7 add option to show inferred type of an expression 2011-01-18 18:48:32 -05:00
Mark Harrah 0b3c2dada5 expression evaluator 2011-01-18 18:48:32 -05:00
Mark Harrah ccf0508ce6 cleanup, small fixes 2010-11-24 14:08:20 -05:00
Mark Harrah 4fd7611074 add jline jar to classpath for :power mode 2010-11-24 14:05:26 -05:00
Mark Harrah 04e16ee86c api extraction fixes
get members of nested modules by pulling from moduleClass
ignore classes ending with LOCALCHILD, which only appear with separate compilation
2010-11-09 20:49:23 -05:00
Mark Harrah 89c557d0b5 temporary workaround for dangling type parameter references 2010-11-09 20:45:26 -05:00
Mark Harrah f788437164 fill out Visit some more 2010-10-30 17:52:18 -04:00
Mark Harrah 403fa42fa2 Type cache in API extraction for smaller cache size and faster I/O
manually implement Modifiers, use byte-size bit field
2010-10-30 17:46:56 -04:00
Mark Harrah 1795ddadb3 Format wrapper for timing read/writes 2010-10-30 15:53:32 -04:00
Mark Harrah aa90051338 go back to using basic Java serialization for API persistence
Java serialization is a bit slower (by 0.15 s for reading scalaz core),
  but it is simpler and more lightweight than using sbinary
still use sbinary Formats for other Analysis data structures
2010-10-30 15:49:18 -04:00
Mark Harrah 9135a26fb3 buffer before gzip when writing analysis data
there were already buffered streams between the gzip streams
  and the file streams; however, the performance improved after
  putting a buffer on top of the gzip streams
2010-10-30 15:46:44 -04:00
Mark Harrah b601804046 only write resulting Analysis back if compilation was performed 2010-10-30 15:44:36 -04:00
Mark Harrah 730b613007 make serializable abstract Lazy template 2010-10-30 11:56:40 -04:00
Mark Harrah a76d75bca6 more flexible scalac logging
the custom scalac Reporter now delegates to an instance of
  an sbt interface called xsbti.Reporter
handling compilation logging is now mainly done on the sbt-side of the
  compiler interface
the xsbti.Reporter interface provides access to richer information
  about errors and warnings, including source file, line, and offset
xsbti.Reporter can be implemented by users to get access to
  detailed information without needing to parse the logging output
the CompileFailed exception that is thrown when compilation fails now
  includes an array of the problems, providing detailed
  error and warning information that can, for example, be consumed
  by doing a mapFailure on 'compile' and using 'Compile.allProblems'
2010-10-23 16:34:22 -04:00
Mark Harrah 5ed8f3c042 improving incremental compilation
support lazy arguments in data type generator
SafeLazy implementation that explicitly clears the reference to the thunk
in API representation, drop synthetic modifier and merge deferred into abstract
handle cyclic structures in API generation, display, comparison, persistence
gzip compile cache file
bump to 2.8.1.RC3, project definition cleanup
fix main method detection to check for the right name
properly view inherited definitions
exclude constructors of ancestors
2010-10-22 21:55:16 -04:00
Artyom Olshevskiy 3c5d8ab29b support -J options when forking (#124) 2010-10-21 09:12:00 -04:00
Mark Harrah a3f1b9c22f fix tests, discovery
updated compile tests for new minimal AnalysisCallback
moved discovery to discovery/ subproject and updated for new approach
fixed discovery to only find public methods when searching for annotated definitions
extracting inherited definitions unimplemented in api/, so some discovery tests fail
moved discovery classes from sbt.inc package to sbt.compile
2010-10-06 08:24:13 -04:00
Mark Harrah ce068d7fbc Java source support
generate API for Java sources from class files (currently, uses reflection)
hook into partial recompilation process
2010-09-27 18:57:00 -04:00
Mark Harrah 4164ad3529 fix detecting existence of default arguments 2010-09-27 18:48:12 -04:00
Mark Harrah 3c4e5c4f54 fix product tracking and handling of removed sources 2010-09-27 18:47:11 -04:00
Mark Harrah 540ab7e470 show detected API when debugging incremental 2010-09-27 18:41:34 -04:00
Mark Harrah 484c2ca3a5 discovery convenience method 2010-09-27 18:40:57 -04:00
Mark Harrah f3de1d728c fix printing sources 2010-09-23 10:29:25 -04:00
Mark Harrah 28f1eecbef changes to make latest preview easier 2010-09-23 09:21:39 -04:00
Mark Harrah ce9db82771 fixes to API extraction phase
reverse the mapping of vals/vars to
  private[this] fields and accessors
merge annotations from related members
don't handle bean getters/setters specially
  because they are indistinguishable from
  user-defined members as far as I can tell
2010-09-17 22:14:48 -04:00
Mark Harrah 0d5814e2b3 Rework external dependency tracking and multi-projects
Reduce AnalysisCallback interface:
  remove discovery
  simplify dependency notification methods
Use map of classpath entry to Analysis for locating
  source API for external dependencies
Handle classpath changes by locating class
  on classpath and either locating Analysis/Source
  as above or comparing Stamp.  This requires storing
  the class name of a binary dependency now.
Make this process aware of full classpath, including
  boot classpath
2010-09-17 21:59:43 -04:00
Mark Harrah 820a2b6851 remove discovery from Scala Analyzer phase 2010-09-17 21:38:03 -04:00
Mark Harrah ccf9714b4d fixes for API extraction phase
correct order of value parameters of a method
preserve source order of members
more information for unknown type error message
2010-09-17 21:30:47 -04:00
Mark Harrah 4db2c1df6a merge Pkg into Private
this better represents the original source
2010-09-17 21:29:29 -04:00
Mark Harrah 9bcd68d28c rework REPL support
allow bindings, which requires specifying the parent class loader
same code can be used for both 'console' and 'console-project' now
provide interface through main/Console
2010-09-04 08:18:06 -04:00
Mark Harrah 37594904f9 remove unused parameter and fix comment 2010-09-04 08:13:36 -04:00
Mark Harrah d3f02f7c80 control incremental compiler debugging with xsbt.inc.debug system property 2010-08-10 08:35:26 -04:00
Mark Harrah 767a1e47c1 adding more commands 2010-07-27 23:01:45 -04:00
Mark Harrah d7b66458f2 first shot at general command/definition model 2010-07-17 12:07:41 -04:00
Mark Harrah d0fa1eb461 * move Environment classes to util/env module
* move TrapExit, SelectMainClass to run module
* rearrange some compilation-related code
* Jetty-related code moved to web module
2010-07-14 19:24:50 -04:00
Mark Harrah 6f3c699435 - Stuart's improvements to triggered execution
- continue splitting original sbt module
 * separated process, testing modules
 * various IO, logging, classpath migration
 * split out javac interface
2010-07-05 12:53:37 -04:00
Mark Harrah 37185c0fb6 discovery, persistence, frontend, and various fixes to incremental 2010-07-02 06:57:03 -04:00
Mark Harrah 9ad9df42b6 first part of semantic, multi-stage incremental compilation 2010-06-27 09:18:35 -04:00
Mark Harrah f9a7a0a28e Set -> Seq for sources, classpaths 2010-06-27 09:16:53 -04:00
Mark Harrah b8c4c2b6da minor rearrangements of SameAPI 2010-06-21 21:23:42 -04:00
Mark Harrah 603d2be2e9 basic type parsing for testing/prototyping 2010-06-21 21:23:10 -04:00
Mark Harrah b2077ce60c more 2.8 updates, launcher compiles and runs with 2.8 2010-06-15 20:38:18 -04:00
Mark Harrah 5e4fe71560 fix typo 2010-06-07 10:51:02 -04:00
Mark Harrah 7be7cc34d5 fix a compile test 2010-05-13 18:32:49 -04:00
Mark Harrah 33e957a47c support warn fatal options in 2.8.0.RC2 2010-05-13 18:31:37 -04:00
Mark Harrah cc604b57a2 Sort input source files for consistency, addressing scalac's issues with source file ordering. 2010-05-10 18:50:59 -04:00
Mark Harrah 99edb01d8c improve error message when Scala instance is invalid 2010-05-05 08:34:34 -04:00
Mark Harrah 61fefc0f66 * move autoBootClasspath, compilerOnClasspath options into ClasspathOptions data structure and add 'extra' option
* put ScalaInstance.extraJars on classpath for ComponentCompiler
2010-05-05 08:30:03 -04:00
Mark Harrah a2f96255eb consoleOptions 2010-04-25 13:18:36 -04:00
Mark Harrah 5b833a6b72 * Seth's patch for running javac in the same jvm
* Fixed LoggerWriter, added test
 * Added it test
2010-04-05 18:47:06 -04:00
Mark Harrah 589904a6d0 support precompiled components 2010-04-01 20:19:29 -04:00
Mark Harrah 27922a3256 In component compiler, only consider files from jars with sources. This avoids including dependencies in generated jars. 2010-03-31 22:33:42 -04:00
Mark Harrah c05bf93830 fix annotations detection test 2010-03-28 21:29:03 -04:00
Mark Harrah b26ca870b1 annotation detection test 2010-03-28 20:20:17 -04:00
Mark Harrah 77567b6ad3 Support for tests written in Java and annotation-based test frameworks 2010-03-28 00:05:40 -04:00
Mark Harrah 948aeb3f97 eliminate import warning 2010-03-26 16:15:52 -04:00
Mark Harrah 27816f32f6 Jason's patch to work with latest changes to CompilerCommand 2010-03-26 07:55:02 -04:00
Mark Harrah a438d389e2 compatibility with 2.8 trunk 2010-03-23 08:30:53 -04:00
Mark Harrah 7edcc68a92 support cross-compiling/bootstrapping 2010-03-22 20:42:59 -04:00
Mark Harrah 54bc694081 * cleaned up build
* made Launcher usable outside of official jar
2010-03-19 19:29:57 -04:00
Mark Harrah e1e60fe859 preserve compiler interface classes across invocations 2010-03-13 13:25:08 -05:00
Mark Harrah 794d137051 Remove code no longer needed for running Scala code 2010-03-07 19:06:54 -05:00
Mark Harrah 9f524cbf83 convenience method on ScalaInstance to get both library and compiler jars 2010-02-14 20:23:56 -05:00
Mark Harrah e18f8101d7 Fix compiler interface tests for 2.8 2010-02-08 18:34:43 -05:00
Mark Harrah a33223a02c legal cleanup 2010-02-07 23:45:19 -05:00
Mark Harrah 743d4556ae Fix compiler interface to compile against 2.8 trunk 2010-02-05 18:58:52 -05:00
Mark Harrah 125e0adad8 Decrease compilation time of compiler interface by ~20% 2010-02-04 22:08:17 -05:00
Mark Harrah b6f017c508 Work with latest compiler changes. API is commented for stability in 0.7. 2010-02-04 21:04:22 -05:00
Mark Harrah a2758afd43 Fix main method detection involving Application 2010-01-30 21:40:25 -05:00
Mark Harrah 4a566eb581 fix project creation prompt and launcher cache 2010-01-27 18:22:42 -05:00
Mark Harrah e8eae7d7bb Look at names during flattenPhase.next to get proper class names 2010-01-26 09:10:42 -05:00
Mark Harrah 80780d9bec comments and reorganization in SameAPI/ShowAPI 2010-01-24 00:12:47 -05:00
Mark Harrah af4f41e052 API: fix annotation handling 2010-01-24 00:11:43 -05:00
Mark Harrah af288bb199 API: base types with applied type parameters
Compile task: fix detection of classpath changes
Aggressive compiler seems to work on scalaz now
2010-01-23 11:52:39 -05:00
Mark Harrah 5f9f3729d1 work on source api parts 2010-01-22 20:17:49 -05:00
Mark Harrah fa93a64cf9 Replace Ivy interface with the component from xsbt 2010-01-15 19:05:23 -05:00
Mark Harrah d97d693cc1 Fix issue with jline not being on compiler-interface compile-time classpath 2010-01-13 22:19:48 -05:00
Mark Harrah 1673a2a3e2 Remove use of reflection for compatibility in Analyzer 2010-01-09 18:22:58 -05:00
Mark Harrah 8f0371d21a Compare polymorphic types 2010-01-07 21:48:56 -05:00
Mark Harrah fb3cfd3b39 * Polymorphic type extraction
* Use simple names instead of full names where appropriate
 * Handle local classes, which have NoPrefix
2010-01-07 21:41:20 -05:00
Mark Harrah bf5dbadc53 Handle changes to Source serialization format by returning empty Source 2010-01-07 21:39:16 -05:00
Mark Harrah 6f6b795b39 * Basic API serialization
* Fixes to API extraction and equality checking
 * Reworked tracking
 * New compile infrastructure based on API changes
 * Example application for testing
2010-01-05 19:50:43 -05:00
Mark Harrah 833688cdd9 API equality testing. Still includes debugging statements. 2009-12-31 18:56:37 -05:00
Mark Harrah 8ebbb7b420 fix issue processing qualifiers in API phase 2009-12-31 18:55:35 -05:00
Mark Harrah b63b955dca Add Java class file version to compiler interface ID so that it is recompiled when moving between Java versions. 2009-12-29 22:14:56 -05:00
Mark Harrah bb0a3b3d2f Fix Scaladoc interface for 2.8.0.Beta1-RC4 and later. 2009-12-20 12:02:49 -05:00
Mark Harrah cbb0f1a0a8 Fix 2.8 external dependency tracking 2009-12-14 18:37:17 -05:00
Mark Harrah c951156d9f print API phase time only if it is enabled 2009-11-29 18:25:09 -05:00
Mark Harrah cd1cdf3c24 Scaladoc interface should be compatible with latest 2.8 updates 2009-11-29 18:13:47 -05:00
Mark Harrah a872ebc5e5 Annotations on definintions and implicit parameters in 2.7 2009-11-24 23:01:05 -05:00
Mark Harrah 7affb3526f Cache reflective lookups in the compiler interface 2009-11-24 08:56:23 -05:00
Mark Harrah bf7affd344 Starting documentation on API of sources files, updating notes a bit 2009-11-23 20:01:13 -05:00
Mark Harrah 38dbb1d23c Type member support, linearization instead of parents and add inherited members for structure 2009-11-22 22:54:17 -05:00
Mark Harrah 2977fd4131 Source API extractor 2009-11-21 15:53:04 -05:00
Mark Harrah 74202668c6 Datatype generating subproject, to be used to represent public API of sources 2009-11-21 15:52:44 -05:00
Mark Harrah 8e54e5ddde Fix class path fix. 2009-11-02 21:23:42 -05:00
Mark Harrah 871b9bbcc2 Compatible with latest 2.8 nightly 2009-11-01 21:21:59 -05:00
Mark Harrah 80e1a4f60f Add toString for ScalaInstance and verify that version does not contain spaces 2009-10-20 18:47:51 -04:00
Mark Harrah 94a0fb5916 Allow version property names to be specified 2009-10-19 23:18:13 -04:00
Mark Harrah fa73205ac3 Extra logging, update default sbt.boot.properties
Tests for standard library substitutes
2009-10-18 22:25:50 -04:00
Mark Harrah 4fda9f0690 Workaround for private access modifier for Global.computePhaseDescriptors in 2.8. 2009-10-15 18:06:57 -04:00
Mark Harrah 1d40e5e71d Synchronize caches 2009-10-10 22:01:03 -04:00
Mark Harrah e88214efbd Additions to help the sbt/xsbt combination 2009-10-09 19:12:14 -04:00
Mark Harrah 7bb72ecb8b Scaladoc, run, and console interfaces 2009-10-07 21:27:53 -04:00
Mark Harrah 651a84ebaf Fix 2.8 scaladoc interface 2009-10-05 22:43:11 -04:00
Mark Harrah 85346bd9d8 Fix compilation test, add scaladoc interface, remove structural types (#2265) 2009-10-03 09:39:16 -04:00
Mark Harrah 34fd967c66 General support for searching for the working directory to use for the launched application 2009-10-01 22:59:02 -04:00
Mark Harrah b2fdc07505 Turned sbt launcher into a general Scala application launcher as described in launch.specification 2009-09-27 14:39:26 -04:00
Mark Harrah 72ce84933d Fixed tests 2009-09-06 16:05:31 -04:00
Mark Harrah 39546077ee Some comments and better organization of compile-related code. 2009-09-05 15:01:04 -04:00
Mark Harrah 8bfb2802fb Filling in logging and making cross-compile work. 2009-09-05 12:19:34 -04:00
Mark Harrah e388ffd3a6 Remove hard-coded scala version in compile test. 2009-09-04 09:22:48 -04:00
Mark Harrah 12c5f5a0d5 Mostly working cross-compile task.
Analyzer plugin is now a proper internal phase to get around bootstrapping issues.
Correctly handle source tags.
2009-09-03 23:40:47 -04:00
Mark Harrah edca6620e4 factor out context for compile test 2009-08-31 10:46:22 -04:00
Mark Harrah 6e414e96c5 Compile task with dependency tracking. Checkpoint: compiles successfully. 2009-08-30 11:10:37 -04:00
Mark Harrah 573994dd4e tuple caches, stamped caches, Path API, another type of change detection, and copying/archiving based on (source,target) tuples 2009-08-29 10:19:00 -04:00
Mark Harrah 50d350abd0 Compilation with analysis independent of Scala version of sbt.
Basic test for this.
2009-08-23 22:21:15 -04:00
Mark Harrah 108807a773 Tests and fixes for component manager and cache interface. 2009-08-20 00:02:06 -04:00
Mark Harrah a70ddd8e32 Tests and fixes for analysis plugin and the task scheduler. 2009-08-18 23:25:34 -04:00
Mark Harrah ec7074a340 More plugin tests 2009-08-18 10:25:43 -04:00
Mark Harrah 67e13ad887 Setup interface project for testing 2009-08-18 00:51:08 -04:00
Mark Harrah 5644b936fe Setting up compiler support and several related additions to util/io
* Added the top-level interface project for communicating across scala versions within a jvm.
 * Added plugin project containing analysis compiler plugin
 * Added component compiler to build xsbt components against required version of Scala on the fly
 * Added interface to compiler that runs in the same version of Scala
 * Added frontend that compiles against a given version of Scala with or without analysis.
2009-08-17 10:51:43 -04:00