REBOL 3.0

Protecting the system object

Carl Sassenrath, CTO
REBOL Technologies
13-Aug-2009 5:06 GMT

Article #0232
Main page || Index || Prior Article [0231] || Next Article [0233] || Post Comments || Send feedback

Ok, in A77 you may happen to see this line on boot...

system object protected

What does it mean? Well, try this:

>> system/version: 1.2.3
** Script error: protected variable - cannot modify: version

and:

>> append system 'test
** Script error: protected value or series - cannot modify
** Where: append
** Near: append system 'test

So, there is a mild level of protection now on the system object, but there's more work to do here.

The system object is fairly complex, and the protect function is still just a bit like using a pea shooter to hunt elk. A lot more power is required if we're going to have dinner.

To view the current protector function:

source protect-system-object

If you dust off your editor and fiddle around with this code, you'll begin to see some of the issues. Various sub-series are not being protected properly (e.g. you can clear system/catalog/datatypes). In addition, several subsystems are updating the system object in ways that prevent their sub-objects from being protected (e.g. system/schemes.)

Well, not to worry. We'll chisel away on this until we get it how we want it. I'm sure BrianH has some ideas brewing already...

Post Comments

REBOL 3.0
Updated 16-Oct-2017 - Edit - Copyright REBOL Technologies - REBOL.net