- API future-proofed to allow for changes without breaking backwards compatibility
- Temporary files now live in system-wide tmp dir (
/tmp
) - broccoli-sane-watcher pulled into core, now used by default
var helpers = require('broccoli-kitchen-sink-helpers') | |
var RSVP = require('rsvp') | |
module.exports = PollWatcher | |
RSVP.EventTarget.mixin(PollWatcher.prototype) | |
function PollWatcher(options) { | |
this.options = options || {} | |
if (this.options.interval == null) this.options.interval = 100 | |
this.treeHash = null |
diff --git a/velocity.js b/velocity.js | |
index c8b59e7..71ed48b 100644 | |
--- a/velocity.js | |
+++ b/velocity.js | |
@@ -3365,7 +3365,7 @@ return function (global, window, document, undefined) { | |
if (timestamp) { | |
/* We ignore RAF's high resolution timestamp since it can be significantly offset when the browser is | |
under high stress; we opt for choppiness over allowing the browser to drop huge chunks of frames. */ | |
- var timeCurrent = (new Date).getTime(); | |
+ var timeCurrent = window.VELOCITY_TIME_FUNCTION(timestamp); |
$ cd ~/.nvm && for commit in `git rev-list --first-parent --reverse v0.26.1..master`; do git checkout --quiet $commit && echo -n "$commit " && bash -c 'time . ~/.nvm/nvm.sh' 2>&1 | grep real; done | |
f34fef96d8ab3d7e6fba3574d122177de1140a88 real 0m0.062s | |
0181821b51609fe20ef72f8bf45523fe317be81a real 0m0.064s | |
0d898b0aa478cf86ea7afb6a733e8d2ff6ae75dd real 0m0.066s | |
0ef20199dcf6d4a21226a66cb8eccf23c6e16c7a real 0m0.064s | |
d4caf9fb670435a184a40242e6c215021187b46a real 0m0.065s | |
1e2a7a8de447c9b872fbf4cbe6c959cfc8d02a55 real 0m0.066s | |
c92effc6dabe8fc85252909e24ee49cbea89f3e7 real 0m0.068s | |
c9215a127feae213e9b09ca660f27801b0c52611 real 0m0.063s | |
014a44e15408ddcd6dc8c2ed9f781b2bfbd084d0 real 0m0.064s |
Let a, b ∈ G, and let b be a right inverse of a, i.e. a*b = e. | |
Then we can show that b is also a left inverse of a: | |
b*a | |
=b*a*((b*a)*(b*a)^-1) | |
=((b*a)*(b*a))*(b*a)^-1 (by associativity) | |
=(b*(a*b)*a))*(b*a)^-1 (by associativity) | |
=(b*a)*(b*a)^-1 (by assumption) | |
=e |
$ identify -verbose gamma-test-2.png | |
Image: gamma-test-2.png | |
Format: PNG (Portable Network Graphics) | |
Class: DirectClass | |
Geometry: 990x768+0+0 | |
Resolution: 28.35x28.35 | |
Print size: 34.9206x27.0899 | |
Units: PixelsPerCentimeter | |
Type: TrueColorAlpha | |
Endianess: Undefined |
Re https://github.com/wycats/javascript-private-state
-
Re "Friend" access: From a theoretical point of view, it seems . But the strawman friend syntax introduces a lot of extra syntax.
I wonder if we might use the same syntax for friends and non-friends, to keep things simpler. Along the lines of this:
Given an in-memory fs tree representation, we'll have functions to do the following:
- read a directory on disk into a virtual fs tree
- write a virtual fs tree to a directory on disk
- also, apply an incremental update to an existing directory given an old and new fs tree
- compute a diff between two virtual fs trees
When chaining an in-memory plugin to an on-disk plugin, or vice versa, a future Broccoli builder will automatically call these functions to translate back and forth.
Also, we'll add an in-memory mode to broccoli-plugin. When broccoli-plugin is used by an old Broccoli builder that doesn't support in-memory plugins, it will call these functions as well so that the builder sees files on disk.
// (I'm advocating for option -1, until we figure out the right solution, | |
// which is probably somewhere in the solution space of options 1/1a/2.) | |
// option -1: change nothing | |
// option 0: no inheritance, current proposal - breaks `class B extends A { }`, | |
// not really future-proof | |
// option 1: inheritance + just this incantation - ugliness for common case |
class Router { | |
static build(stuff) { | |
// Compute compute | |
// var constructorArg = 123 | |
return new Router(constructorArg) | |
} | |
new Router(constructorArg) | |
route(location) { |