Someone noted that my last post sounded like I would not fix bugs. I will go back and fix bugs in the virtual machine and extension code if_ someone finds them, but I am quite confident there are none. I know that sounds overconfident, but I have done plenty of testing to weed out the problems. Because Copper is a simple language, there are not many ways to trip up the virtual machine. Ironically, it does mean odd code is acceptable. You could even feed this_ entire blog post into the VM and it would all be legal code. Go ahead and try it.
As of one week, support for Copper has completely ended. Some time ago, I declared an end to the updates some time ago, but now I won’t be updating this blog anymore (unless I hand over the blog to someone else). But before you think that’s a bad thing…
It’s an exciting day for Copper. Three new built-in functions have been added to give the user even more power:
Each of these enhances the power of the type system in Copper by enabling greater abstraction in data flow.
Good news! CupricBridge and Curri are now online! CupricBridge is a wrapper for the Irrlicht engine GUI system, but it also provides a serialization interface implementation that will work with scene objects. Curri is a project containing the boilerplate code for creating applications with Copper, CupricBridge, and Irrlicht engine.
Lately, I’ve been integrating Copper into projects and everything is working seamlessly. Copper has finally matured to being robust enough for full scale applications, not just tinker projects.
A number of little updates have been applied to the Copper interpreter and documentation this week including better type identification and string-related methods.
New changes this week in Copper fill in some of the gaps that show up when trying to use Copper for real-world projects. The first of these is the indication of the support of multiple interfaces, which solves the dilemma of distinguishing between polymorphic objects turned into Copper objects. The second is the addition of a system function that enables the sharing of user-created function bodies.
In other notes, the string_map extension received a bug fix for not correctly returning when “exit” was called in the middle of the callback function it was given.