summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #2885 from som-snytt/issue/7791-script-linenumsJason Zaugg2013-09-087-14/+73
|\ | | | | SI-7791 Line number table reflects underlying file
| * SI-7791 Line number table reflects underlying fileSom Snytt2013-09-057-14/+73
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since positions ultimately know their ultimate positions in their ultimate source, use that line number, ultimately, when emitting line number table entries. It is possible, but possibly not useful, to emit both the actual (ultimate) line number and the nominal one. The `int`-valued line number of the `StackTraceElement` is "derived" from the attribute. In global, wrapping a `BatchSourceFile` as a `ScriptSource` happens in `compileSources` to facilitate testing. A `ScriptTest` facility is provided to facilitate testing the script facility. It is rather facile.
* | Merge pull request #2865 from folone/trampolinesGrzegorz Kossakowski2013-09-072-9/+67
|\ \ | | | | | | Alter TailRec to have map and flatMap
| * | Stackless implementation of TailRec in constant memory.Runar Bjarnason2013-08-241-24/+34
| | |
| * | Alter TailRec to have map and flatMapGeorge Leontiev2013-08-242-7/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As described in the "Stackless Scala with Free Monads" paper scala> import scala.util.control.TailCalls._ import scala.util.control.TailCalls._ scala> :paste // Entering paste mode (ctrl-D to finish) def isEven(xs: List[Int]): TailRec[Boolean] = if (xs.isEmpty) done(true) else tailcall(isOdd(xs.tail)) def isOdd(xs: List[Int]): TailRec[Boolean] = if (xs.isEmpty) done(false) else tailcall(isEven(xs.tail)) // Exiting paste mode, now interpreting. isEven: (xs: List[Int])util.control.TailCalls.TailRec[Boolean] isOdd: (xs: List[Int])util.control.TailCalls.TailRec[Boolean] scala> isEven((1 to 100000).toList).result res0: Boolean = true scala> def fib(n: Int): TailRec[Int] = | if (n < 2) done(n) else for { | x <- tailcall(fib(n - 1)) | y <- tailcall(fib(n - 2)) | } yield (x + y) fib: (n: Int)util.control.TailCalls.TailRec[Int] scala> fib(40).result res1: Int = 102334155
* | | Merge pull request #2900 from nermin/masterGrzegorz Kossakowski2013-09-074-4/+4
|\ \ \ | | | | | | | | Correcting scaladoc for all classes defining withDefaultValue method.
| * | | Correcting scaladoc for all classes defining withDefaultValue method.nermin2013-08-304-4/+4
| | | | | | | | | | | | | | | | The description of the single parameter seems to be a copy and paste mistake from withDefault method.
* | | | Merge pull request #2917 from som-snytt/issue/7805-repl-iGrzegorz Kossakowski2013-09-076-9/+82
|\ \ \ \ | | | | | | | | | | SI-7805 REPL -i startup
| * | | | SI-7805 REPL -i startupSom Snytt2013-09-066-9/+82
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Tested with a ReplTest that loads an include script. ReplTests can choose to be `Welcoming` and keep a normalized welcome message in their check transcript. One recent SessionTest is updated to use the normalizing API.
* | | | | Merge pull request #2912 from retronym/ticket/7643Grzegorz Kossakowski2013-09-077-10/+21
|\ \ \ \ \ | | | | | | | | | | | | SI-7643 Enable newPatternMatching in interactive.
| * | | | | SI-7643 Enable newPatternMatching in interactive.Jason Zaugg2013-09-067-10/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Without it, the enclosed test fails with: ArrayBuffer(Problem(RangePosition(partial-fun/src/PartialFun.scala, 62, 62, 77),type mismatch; found : Int => Int required: PartialFunction[Int,Int],2)) And with that, we can remove this option altogether.
* | | | | | Merge pull request #2855 from adriaanm/modularize-xml-parsersv2.11.0-M5Grzegorz Kossakowski2013-09-06249-14161/+176
|\ \ \ \ \ \ | |_|/ / / / |/| | | | | Modularize: xml & parser-combinators
| * | | | | Fix dbuild meta info: remove scaladoc projectJosh Suereth2013-09-062-37/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | That is, scaladoc is still in the scala-compiler artifact. Let dbuild know so that it won't freak out. ps: dbuild-meta.json should be kept in synch with src/build/dbuild-meta-json-gen.scala until we can automate that in the build
| * | | | | Include xml and parsers in dist, tool classpath.Adriaan Moors2013-08-291-59/+82
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This brings the external modules (xml, parsers) back to the classpaths of build/(quick|pack)/bin/scala*. Include the OSGIfied jars for external modules in dist. (TODO: OSGI-fy externally) Download javadoc/sources from maven and include in dist.
| * | | | | Don't use sonatype to resolve jars relevant to a release.Adriaan Moors2013-08-281-7/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To eliminate any delay between deploying partest to sonatype and using it for development, we resolve it through sonatype. Not acceptable for jars that ship as part of the release, such as scaladoc (we'd see a jar others might not see).
| * | | | | Remove scala-xml and scala-parser-combinatorsAdriaan Moors2013-08-27118-10870/+82
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These modules move to their own repositories: - https://github.com/scala/scala-xml (v1.0-RC3) - https://github.com/scala/scala-parser-combinators (v1.0-RC1) The modularization depends on the new partest, as the old one's classpath handling did not support a modularized scala. The compiler pom now depends on the artifacts published separately, with versions specified in versions.properties. NOTES: - The osgi tests resolve the xml and parsers jars and osgi-fy them, as they are no longer built locally. TODO: Can we move the osgification to the module builds? - Disabled local repositories: don't want to accidentally include unpublished artifacts in releases etc.
| * | | | | Prepare removal of scala-xml, scala-parser-combinatorsAdriaan Moors2013-08-27131-3221/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Every test deleted here has found its way to the respective repositories of scala-xml and scala-parser-combinators, where they will continue to be tested with partest. The modified tests became independent of these modules, as they should've been from the start.
* | | | | | Merge pull request #2914 from gkossakowski/merge-2.10.xGrzegorz Kossakowski2013-09-0616-5/+396
|\ \ \ \ \ \ | | | | | | | | | | | | | | Merge 2.10.x into master
| * \ \ \ \ \ Merge remote-tracking branch 'scala/2.10.x' into merge-2.10.xGrzegorz Kossakowski2013-09-0516-5/+396
| |\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: bincompat-backward.whitelist.conf bincompat-forward.whitelist.conf src/reflect/scala/reflect/internal/SymbolTable.scala src/reflect/scala/reflect/internal/util/WeakHashSet.scala src/reflect/scala/reflect/runtime/JavaMirrors.scala
| | * \ \ \ \ \ Merge pull request #2888 from xeno-by/topic/typed-annotatedJason Zaugg2013-09-044-1/+22
| | |\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | typedAnnotated no longer emits nulls
| | | * | | | | | typedAnnotated no longer emits nullsEugene Burmako2013-08-294-1/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adds a null-check in original synthesis for the result of typedAnnotated. Previously it was possible for the aforementioned result to look like TypeTree(<tpe>) setOriginal Annotated(..., null). Not anymore.
| | * | | | | | | Merge pull request #2901 from gkossakowski/backport-uniques-memory-fixGrzegorz Kossakowski2013-09-046-54/+1446
| | |\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | Backport #2605 to 2.10.x: SI-7149 Use a WeakHashSet for type uniqueness
| | | * | | | | | | Modify perRunCaches to not leak WeakReferencesJames Iry2013-09-031-10/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | perRunCaches was using a HashMap of WeakReferences which meant it would accumulate WeakReferences over time. This commit uses a WeakHashSet instead so that the references are cleaned up.
| | | * | | | | | | SI-7149 Use a WeakHashSet for type uniquenessGrzegorz Kossakowski2013-09-033-2/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently type uniqueness is done via a HashSet[Type], but that means the Types live through an entire compile session, even ones that are used once. The result is a huge amount of unnecessarily retained memory. This commit uses a WeakHashSet instead so that Types and their WeakReferences are cleaned up when no longer in use.
| | | * | | | | | | SI-7150 Replace scala.reflect.internal.WeakHashSetGrzegorz Kossakowski2013-09-034-42/+1393
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replaces scala.reflect.internal.WeakHashSet with a version that * extends the mutable.Set trait * doesn't leak WeakReferences * is unit tested
| | * | | | | | | | Merge pull request #2876 from retronym/ticket/7782Jason Zaugg2013-09-043-1/+58
| | |\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | SI-7782 Derive type skolems at the ground level
| | | * | | | | | | | SI-7782 Derive type skolems at the ground levelJason Zaugg2013-08-273-1/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rather than at the current value of `skolemizationLevel`, which could be influenced by an in-flight existential subtype computation. This method is called in `PolyTypeCompleter`, which could be constructed by the lazy type completer of the enclosing class. So currently it is closing over a mutable variable; hence the Heisenbug. This issue was exposed by the changes in b74c33eb860, which was introduced in Scala 2.10.1.
| | * | | | | | | | | Merge pull request #2899 from som-snytt/issue/4760-parserJason Zaugg2013-09-042-1/+35
| | |\ \ \ \ \ \ \ \ \ | | | |_|/ / / / / / / | | |/| | | | | | | | SI-4760 Parser handles block-ending import
| | | * | | | | | | | SI-4760 Parser handles block-ending importSom Snytt2013-08-302-1/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Don't molest the RBRACE. Updated with additional parse tests suggested by @retronym. "What are you lazy?" Yes, I must be lazy. Can't ScalaCheck or Par-Test generate these tests automatically? That seems like a reasonable expectation.
| | * | | | | | | | | Merge pull request #2891 from som-snytt/issue/7790-no-scriptengineJason Zaugg2013-08-301-0/+2
| | |\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | SI-7790 No ScriptEngine in 2.10 build
| | | * | | | | | | | | [nomaster] SI-7790 No ScriptEngine in 2.10 buildSom Snytt2013-08-291-0/+2
| | | | |_|/ / / / / / | | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The service entry was inadvertendly added in `e3b5e0ba40447970d621cfeed5cc1770df69884f`, "Sanity for build.xml: exscriptus&positus delendus est," which is ant latin for: "Reduced copy/pasting to the best of my antabilities." With that degree of hubris, it was inevitable that the commit introduced a copy/paste bug. What is the Attic Greek for copy/paste? I'm pretty sure that in fifth century Athens they would just pound one inscription to rubble using a bigger inscription. They had slaves for that kind of work. You never hear about Socrates tweaking the build script. That's the reason he never wrote anything down.
| | * | | | | | | | | Merge pull request #2897 from retronym/backport/gitignoreJason Zaugg2013-08-303-35/+48
| | |\ \ \ \ \ \ \ \ \ | | | |_|/ / / / / / / | | |/| | | | | | | | [backport] Commit .gitignore directly
| | | * | | | | | | | Commit .gitignore directlyJason Zaugg2013-08-303-35/+48
| | |/ / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rather than relying on the cloner to copy the provided gitignore.SAMPLE files. This finishes the job started in c48509598, mostly by reverting that commit and moving the two existing SAMPLE files to the final destinations. Use `.git/info/exclude` to augment the list of patterns with entries specific to your workflow. (cherry picked from commit b51cb581270da7021b2ea122dc059847101d56a7) ============================================== Paring back the scope of our shared .gitignore Importantly, limit the exclusion of build.properties to the file in the root directory, paving the way for the return of an SBT build. - Unignores .bak, .jar, and ~ - limit ignorance of qbin to the root directory .log files, generated by partest, are still ignored. To see ignored files in your workspace, try: git ls-files --others --ignored --exclude-standard -- test | grep log git status --ignored -- test (cherry picked from commit f0bbd2ca32acb40be37dc382c1f95081deca3f22)
| | * | | | | | | | Merge pull request #2868 from retronym/ticket/7775Jason Zaugg2013-08-292-2/+23
| | |\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | SI-7775 Harden against the shifting sands of System.getProperties
| | | * | | | | | | | SI-7775 Harden against the shifting sands of System.getPropertiesJason Zaugg2013-08-262-2/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If another thread writes a new system property (which can happen in pretty innocuous code such as `new Date`!), the compiler startup could fail with a `ConcurrentModificationException` as it iterated all bindings in the properties map in search of a boot classpath property for esoteric JVMs. This commit uses `Properties#getStringProperties` to get a snapshot of the keys that isn't backed by the live map, and iterates these instead. That method will also limit us to bindings with String values, which is all that we expect.
| | * | | | | | | | | Merge pull request #2871 from retronym/ticket/7779Jason Zaugg2013-08-295-0/+98
| | |\ \ \ \ \ \ \ \ \ | | | |_|/ / / / / / / | | |/| | | | | | | | SI-7779 Account for class name compactification in reflection
| | | * | | | | | | | SI-7779 Account for class name compactification in reflectionJason Zaugg2013-08-235-0/+98
| | | |/ / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We have to assume that the classes we are reflecting on were compiled with the default value for -Xmax-classfile-name (255). With this assumption, we can apply the same name compactification as done in the regular compiler. The REPL is particularly prone to generating long class names with the '$iw' prefixes, so this is an important fix for runtime reflection. Also adds support for getting the runtime class of `O.type` if `O` is a module.
* | | | | | | | | | Merge pull request #2881 from adriaanm/license-cleanupGrzegorz Kossakowski2013-09-051-32/+24
|\ \ \ \ \ \ \ \ \ \ | |/ / / / / / / / / |/| | | | | | | | | Change Scala license to unmodified 3-clause BSD.
| * | | | | | | | | Change Scala license to unmodified 3-clause BSD.Adriaan Moors2013-09-031-32/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | No longer using the slightly reworded 3-clause BSD license. This does not change the meaning of the license, just aligns it with the standard wording.
* | | | | | | | | | Merge pull request #2877 from som-snytt/issue/repl-stack-truncGrzegorz Kossakowski2013-09-047-15/+285
|\ \ \ \ \ \ \ \ \ \ | |_|_|_|_|_|/ / / / |/| | | | | | | | | SI-7781 REPL stack trunc shows cause
| * | | | | | | | | SI-7781 Comments to SessionTestSom Snytt2013-09-021-5/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also, it would be nice if code and expected results were calculated lazily. That would allow tests with infinite code but which terminate on various conditions.
| * | | | | | | | | SI-7781 Improve test and add commentSom Snytt2013-09-022-5/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The test should normalize the elided message, not strip it. (Thanks qerub; I was frustrated with kitteh's turnaround that night, hence unwilling to improve once it passed.)
| * | | | | | | | | Target junit.clean to clean junit artifactsSom Snytt2013-09-021-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | And all.clean will also junit.clean.
| * | | | | | | | | SI-7781 REPL stack trunc shows causeSom Snytt2013-09-025-9/+256
|/ / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The handy stack trace truncation in REPL doesn't show cause like a regular trace. This commit fixes that and also adds the usual indicator for truncation, viz, "... 33 more". The example from the ticket produces: ``` scala> rewrapperer java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: Point of failure at .rewrapper(<console>:9) at .rewrapperer(<console>:10) ... 32 elided Caused by: java.lang.RuntimeException: java.lang.RuntimeException: Point of failure at .wrapper(<console>:8) ... 34 more Caused by: java.lang.RuntimeException: Point of failure at .sample(<console>:7) ... 35 more ``` Suppressed exceptions on Java 7 are handled reflectively. ``` java.lang.RuntimeException: My problem at scala.tools.nsc.util.StackTraceTest.repressed(StackTraceTest.scala:56) ... 27 elided Suppressed: java.lang.RuntimeException: Point of failure at scala.tools.nsc.util.StackTraceTest.sample(StackTraceTest.scala:29) at scala.tools.nsc.util.StackTraceTest.repressed(StackTraceTest.scala:54) ... 27 more ```
* | | | | | | | | Merge pull request #2864 from retronym/ticket/6240-namesJason Zaugg2013-09-023-43/+71
|\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | SI-6240 Synchronizes Names
| * | | | | | | | | Lock down methods in NamesJason Zaugg2013-08-311-11/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Marking some methods as final. Once known to be overriden in scala-ide are instead marked with @deprecatedOveriding. This is to signal the new means of synchronization to subclasses.
| * | | | | | | | | SI-6240 Synchronizes NamesJason Zaugg2013-08-223-33/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously we didn't have all possible name creation facilities covered with locks, so some of them silently misbehaved and caused much grief: http://groups.google.com/group/scala-internals/browse_thread/thread/ec1d3e2c4bcb000a. This patch gets all the name factories under control. Rather than relying on subclasses to override mutating methods and add synchronization, they should instead override `synchronizeNames` to return true and leave the placement of the locks up to `reflect.internal.Names`. These locks are placed around sections that mutate `typeHashtable` and `termHashtable`. This is done in the reflection universe, and in the interactive compiler. The latter change will obviate an incomplete attempt do to the same in `ScalaPresentationCompiler` in the scala-ide project.
* | | | | | | | | | Merge pull request #2880 from huitseeker/update-artifactoryGrzegorz Kossakowski2013-08-302-3/+3
|\ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | update typesafe.artifactory-online.com to private-repo.typesafe.com
| * | | | | | | | | | update typesafe.artifactory-online.com to private-repoFrançois Garillot2013-08-272-3/+3
| | | | | | | | | | |
* | | | | | | | | | | Merge pull request #2861 from densh/topic/deprecate-early-type-defsGrzegorz Kossakowski2013-08-309-8/+18
|\ \ \ \ \ \ \ \ \ \ \ | |_|_|_|_|_|_|_|/ / / |/| | | | | | | | | | Deprecate early type defs