1) scmp: will need a bit more fleshing out to be super useful, but
here is what you can do right now:
// This means run the given command line first with the options
// given to p1 and then without, and show the diff in output.
% tools/scmp --p1 '-no-specialization -nowarn' scalac -Ydebug src/library/scala/Function1.scala
Upcoming features will involve seeing diffs of such things as the
pickled signatures of generated files and the javap disassembly.
2) tokens: tokenizes all the scala files found under any given paths
and prints one token per line.
Example: the five most frequently used tokens under scala/util.
% tools/tokens src/library/scala/util |sort | uniq -c | sort -r | head -5
598 ')'
598 '('
347 ;
294 '='
278 ,
Good to see those parens are balanced.
Example: number of appearances of an identifier called x:
% tools/tokens src/library/scala/util | grep ^x$ | wc
137
Way to go, x. Review by community.
git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@21644 5e8d7ff9-d8ef-0310-90f0-a4852d11357a
reveal the classpaths it is using. No longer will partest
actively sabotage your efforts to pass -Dpartest.debug=true
by inserting "-Dpartest.debug=" after yours! And etc. Review
by haller (if so inclined.)
git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@20912 5e8d7ff9-d8ef-0310-90f0-a4852d11357a
amounts to a yak shaving expedition to enable this, which now works:
tools/diffPickled scala.Either
and since stability is presently broken you will see the following.
(When it's not broken you will see nothing.)
541,544c541,544
< 538,4090: EXTref 3: 539(Left) 2
< 539,4095: TYPEname 4: Left
< 540,4101: EXTref 3: 541(Right) 2
< 541,4106: TYPEname 5: Right
---
> 538,4090: EXTref 3: 539(Right) 2
> 539,4095: TYPEname 5: Right
> 540,4102: EXTref 3: 541(Left) 2
> 541,4107: TYPEname 4: Left
git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@20888 5e8d7ff9-d8ef-0310-90f0-a4852d11357a
which we must have no test cases at all. In the short term
there will probably be a few more minor disruptions since with
classpaths constructed a half dozen different ways, achieving
consistency requires flushing out the undocumented accidents
upon which any given island might depend. Review by community.
git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@20866 5e8d7ff9-d8ef-0310-90f0-a4852d11357a
at https://lampsvn.epfl.ch/trac/scala/wiki/Classpath modulo some
minor details which remain to be investigated. It is not entirely
integrated, and should not involve any behavioral changes. The
patch also contains a number of small improvements targetting
widely duplicated code.
PathResolver offers a main method. If run with no arguments it will
output a pile of information about classpath relevant environment vars
and properties. If given arguments, it will output the classpath
info that any scala runner script would use if given the same args.
There is a wrapper in the tools directory. Example:
tools/pathResolver -extdirs /foo -sourcepath /bar | egrep "sourcePath|scalaExtDirs"
scalaExtDirs = /foo
sourcePath = /bar
There is also a (probably temporary) command line option -Ylog-classpath
which will print out the settings.classpath value anytime it changes.
Review by community.
git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@20831 5e8d7ff9-d8ef-0310-90f0-a4852d11357a