checking this in less out of the enormous demand for flag counting
scripts than because I wanted to lower the barrier to people writing
reusable bash scripts.
*** DO YOU WANT TO WRITE NICE BASH SCRIPTS? ***
*** Look at tools/flag-usages.sh ***
*** It's easy to understand and full of helpful comments! ***
I'm not making any claims here about having massive bash expertise,
but I know a lot of people resist learning any of it (I was once like
you) so I wanted to lower the barrier a little. Because as a mechanism
for the composition and modification of the world of existing tools,
nothing comes close to the shell. And I know many of us write way too
many one-offs which we delete in shame and horror shortly after their
immediate purpose is served.
No review. (I should say r-e-v-i-e-w by everyone but I'm sure
it would give me a nice pile of crucible errors.)
git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@25439 5e8d7ff9-d8ef-0310-90f0-a4852d11357a
which were battled out in more than one venue and then aptly summarized
by retronym in #3791. Thanks to Simon Ochsenreither for submitting
a patch; I wasn't able to use too much of it because the source
code for these types is generated, but effort is always
appreciated. Closes#3791, and I'm tired and I'd hate to blow
this one at this late date: review by rytz.
git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@24461 5e8d7ff9-d8ef-0310-90f0-a4852d11357a
genprod get any more creaky. This code generates the AnyVal
source files (but those are not included here.) No review.
git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@24066 5e8d7ff9-d8ef-0310-90f0-a4852d11357a
after each phase, so all the allocations are partitionable by phase in the
profiler. I also changed the name of -Yprofile-resident to -Yprofile-memory
and had it snapshot after the run instead of between them, so it
is usable for regular scalac usage as well.
Added tools/profile_scalac which can be used as a drop-in
replacement which handles some tedious setup. Review by dragos.
git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@23889 5e8d7ff9-d8ef-0310-90f0-a4852d11357a
into bash where it's at least somewhat less painful. Made
it more flexible for easy use in more places since we presently
have all kinds of revision figuring logic variations in other
build files (sbaz, installer, scala-documentation, scala-tool-support,
etc.) No review.
git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@23604 5e8d7ff9-d8ef-0310-90f0-a4852d11357a
Uses ssh, git and the remote home directory to push the current tree to a bare repo, then check it out remotely and run the full build and tests.
Usage: remotetest [--init] <user> <server> <bare-repo-path> <workspace-repo-path>
Modifying .ssh/authorized_keys on the <server> is recommended.
To be run with --init first time.
No review.
git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@23311 5e8d7ff9-d8ef-0310-90f0-a4852d11357a
Build process will now generate a scalacheck jar in the build/pack/lib directory. It generates it from the scalacheck source in the src/scalacheck dir. If the source there gets out of date, it is to be updated manually using the tools/updatescalacheck script.
Review by phaller.
git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@22868 5e8d7ff9-d8ef-0310-90f0-a4852d11357a
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