Some of you might have noticed some features on Repl.it might have not been working quite as expected over the last few days. To be more specific, we've had a few bugs with servers not waking up and packages not installing. We've been actively working to get these bugs fixed, but you might want to know what caused them.
Behind the scenes, we've been migrating Repl.it to use a brand new protocol when talking to your container. Our new protocol has all sorts of fun stuff like channels to do multiple things at the same time and collaboration as a first class primitive. We've been using the same protocol since the beginning of our containerized repls (about 4 years ago) and it has long since started to show its age. It was designed for a simpler time when Repl.it was just sending an
eval and get a
result. Pretty much every feature after that was hacked on top of this simple protocol. Very soon we'll start rolling out features previously not possible in our old protocol.
At this point, all the bugs (we know about) related to the new protocol have been ironed out. If you run into anything unexpected please post them over at https://repl.it/bugs/. Or, if you are on our discord, let us know in the #bugs channel (you can @turbio). Remember to include a link to your repl, that helps us out a lot.
Thanks. Now that dependencies are loaded lazily, i.e. when imported or referenced in user code, the boot time of REPLs is fast and bounded regardless of how many libraries are imported.