{"push_id":568091674,"size":8,"distinct_size":8,"ref":"refs/heads/master","head":"2a79d299cae3bf70ef253afdc4a3d0e14f27c06c","before":"e2c17b8a40b8d0d16954af6c73eb38410b504b2b","commits":[{"sha":"fb0b0501aea8cd77e134064daa4aa098134dbd97","author":{"email":"a17fed27eaa842282862ff7c1b9c8395a26ac320@fikesfarm.com","name":"Mike Fikes"},"message":"Split out stack frames into :stacktrace\n* For now, eliminate the unused conditional flag indicating when to\n  normalize and normalize unconditionally.\n* Eliminate raw JSC stacktrace representation for now in favor of\n  having :stacktrace be only the vector of frames","distinct":true,"url":"https://api.github.com/repos/swannodette/ambly/commits/fb0b0501aea8cd77e134064daa4aa098134dbd97"},{"sha":"f88192365700b5fc710db007b73d486ceba7b863","author":{"email":"a17fed27eaa842282862ff7c1b9c8395a26ac320@fikesfarm.com","name":"Mike Fikes"},"message":"Minor cleanup of stacktrace processing names and docstring","distinct":true,"url":"https://api.github.com/repos/swannodette/ambly/commits/f88192365700b5fc710db007b73d486ceba7b863"},{"sha":"d02eb32c120bcf662e1e4262d92932987d6b04a8","author":{"email":"a17fed27eaa842282862ff7c1b9c8395a26ac320@fikesfarm.com","name":"Mike Fikes"},"message":"Asynchronously handle print events.\nThe previous implementation would allow print events to become buffered\nup in the TCP channel until an evaluation was done, at which time\nthey would all be drained (and printed in the REPL), followed by the\nresult of the evaluation being printed.\n\nThis differs, from, say, the Node.js REPL which inherits the stdout\nof the Node.js process, thus having prints occur when they are done.\n\nThis buffering could pose a problem if the JSC engine had timers that\ninvolved a continuous stream of print events that were not being\ndealt with.\n\nThis commit dedicates a thread in the REPL to reading messages off the\ninput stream. If a print message arrives, it is handled promptly.\nOn the other hand, if an evaluation response arrives, it is transferred\nto the (blocking) -evaluate call via a promise.\n\nUnfortunately, this adds a bit of complexity in the passing of promises\nvia an atom in the REPL state, and it really adds a lot of complexity\nin ensuring that shutdown occurs properly (it has to handle cases so\nthat the deref of the promise doesn't block forever for a response\nthat may never arrive). Perhaps one way this complexity could be\naddressed would be put pull in core.async as a dependency and set up a\nclean CSP approach, but the new implementation in this commit gets by\nwithout being overly difficult to understand.","distinct":true,"url":"https://api.github.com/repos/swannodette/ambly/commits/d02eb32c120bcf662e1e4262d92932987d6b04a8"},{"sha":"f53314ec60006e8e54c6b407f80e481955a7c3f3","author":{"email":"a17fed27eaa842282862ff7c1b9c8395a26ac320@fikesfarm.com","name":"Mike Fikes"},"message":"Properly set up and tear down both streams\nIn particular, tear down output stream if input stream EOF occurs.","distinct":true,"url":"https://api.github.com/repos/swannodette/ambly/commits/f53314ec60006e8e54c6b407f80e481955a7c3f3"},{"sha":"72933124a8aa5fd6f336bbdb73da73262488d4db","author":{"email":"a17fed27eaa842282862ff7c1b9c8395a26ac320@fikesfarm.com","name":"Mike Fikes"},"message":"Only send print messages when REPL is connected.\nThis avoids having lots of print messages queue up.","distinct":true,"url":"https://api.github.com/repos/swannodette/ambly/commits/72933124a8aa5fd6f336bbdb73da73262488d4db"},{"sha":"f3c5599cebd12c20beafd7dfeb9561df19358f2a","author":{"email":"a17fed27eaa842282862ff7c1b9c8395a26ac320@fikesfarm.com","name":"Mike Fikes"},"message":"If REPL disconnects discard output message queue.","distinct":true,"url":"https://api.github.com/repos/swannodette/ambly/commits/f3c5599cebd12c20beafd7dfeb9561df19358f2a"},{"sha":"37dbadc6d8583fc7e47046a7274e4ffafe204631","author":{"email":"a17fed27eaa842282862ff7c1b9c8395a26ac320@fikesfarm.com","name":"Mike Fikes"},"message":"No need to employ @synchronized.\n* All calls evidently occur on the same thread.\n* Add thread confinement assertions at entry points.","distinct":true,"url":"https://api.github.com/repos/swannodette/ambly/commits/37dbadc6d8583fc7e47046a7274e4ffafe204631"},{"sha":"2a79d299cae3bf70ef253afdc4a3d0e14f27c06c","author":{"email":"a17fed27eaa842282862ff7c1b9c8395a26ac320@fikesfarm.com","name":"Mike Fikes"},"message":"Documentation and whitespace cleanup","distinct":true,"url":"https://api.github.com/repos/swannodette/ambly/commits/2a79d299cae3bf70ef253afdc4a3d0e14f27c06c"}]}