I've prepared the final edition of TBoS(3rd edition). I revised over 50% of the first edition to make the second, but for the second I'm only changing about 10% - indicative that this book may have (probably has) reached the end-state. Note I don't want to keep revising this, but I do want the book to as good as I canmake it.
I mention it here because fuzzywozzy's question re concurrency is answered in this text. Here are the changes.
* the errata have been fixed
* the chapter on model checking has been replaced by a chapter on abstract and semi-abstract datatypes. In particular I show how to implement an ML-style
(algebraic datatypes) type discipline on top of Shen. I thought this would be more interesting.
* the final chapter has been substantially changed, improved and and brought forward into the text. I spend this chapter explaining how to control the proof process in type checking and tracing errors; hence the use of (spy +) is explained early (following Aditya's suggestion)
* there is a new appendix C on concurrency. In it I propose a very portable and (IMO) elegant concurrency model based on a 2 instruction extension of KL.
* there is a new appendix on native calls; based on the understanding reached last month about standardising native calls.
I may do a couple of videos on the new stuff.
Mark