Previously we were hashing the Unicode string, not the bytes.
This also removes a race condition. Now there is only one use of
watchSet.addFile which does not go through
watch.readAndWatchFile (adding package.js hashes to multiple watch sets
at once), and that use does correctly hash the bytes.
Because it is currently unused and was the only direct use of the 'estraverse'
module, it seems better to minimize the number of dependencies shipped with
Meteor. Admittedly, estraverse is still a dependency of escope, but if we
upgrade escope to a version that has a more specific version requirement for
estraverse that conflicts with our Npm.depends, we'll be shipping two copies for
no reason.
This way, when the dev bundle version changes the Node version they will get
reinstalled. (You still need to bump BUILT_BY to get the modules into
unipackages too.)
Catch stderr before 'exit' signal
Try to give a good error message on outdated glibc/libstdc++.
Simplify error reporting to two lines.
Print only last 20 lines of stderr.
Slightly better error message.
This mostly affects Meteor core development (since for now, unipackage.load is
only used inside the meteor tools itself and only to load core packages, which
should be properly compiled in any Meteor release).
Package.register_extension API.
It didn't even actually work for producing JavaScript files (eg a
coffeescript-like package): see #1410. Package maintainers should have upgraded
to the more powerful 0.6.5 API by now anyway.
mongo-livedata uses galaxy package, which has a connection to galaxy that
doesn't get closed, which leads to commands hanging. We should probably have a
way to close galaxy's connection, but for now removing mongo-livedata at least
stops commands from hanging.
Allow dots in package names.
Change the internal representation of "package specs" inside Slice to be a
{package,slice} object instead of a "spec" string.
library.getSlices now can take EITHER a "spec" string or a {package,slice}
object.
Linker-created slice files also separate the slice name with a colon (so eg, you
get URLs like "/packages/livedata:tests.js" when running package tests). (Maybe
this should use a subdirectory instead?)