How to reproduce:
- Start a new project.
- Create a custom block using the zip block (found in some of the primitive definitions or in dev mode). Here is my example:
- Save your project (to the cloud/your computer).
- Reopen the project.
- Make a minor change (e.g. add a random block to the scripting area).
- Save the project again.
- Reopen your latest version. Try running your block.
- Look inside:
- As you can see, the zip block and everything in it has been replaced by an "Undefined!" block. I looked at the XML code, and it switches from considering the zip block a primitive to a custom block when the error is introduced.
- To fix the problem, simply restore to the version you had before it got messed up - and then import the list comprehension library. Then you can even uncheck "in palette" for the zip block if you want - but most importantly you can save your project without any trouble.
I came across this problem when trying to hyperize a library of blocks I had made. I added a block after doing this (in my next session), and then whatever I did - any changes I made after that point - could not be saved without losing many of my block definitions. I did not realize this, and proceeded to make some progress, only to have my new version be useless. Thankfully, I was able to discover the problem (using a tool to compare the xml files) and solve it reasonably easily. But I still had to redo the work I had lost (which was, thankfully, not very much). So, please fix this problem ASAP (before anyone else gets messed up by it). Thanks!