Wednesday, November 9, 2011

USL 3.8.1

A kind anon alerted me to a few bugs and I have resolved the issues. The problem with 3.8.0 was that object instantiations would not inherit private members. Now they inherit everything for they are instances. Inheritance still works the same way as before. Another problem with the previous versions was parentheses encapsulated expressions. Just a white-space issue. Some examples.

Parentheses example:
list words
words = ( "Anonymous", "is", "still", "able", "to", "deliver." )
The other change is self-explanatory. If an object member is private, it would not be inherited by object instances. Now all members will be inherited as the instance is merely a copy of the original object. Inheritance still works the same.
object Parent
              method priv_m
                     say "I am a private method."
              method pub_m
                     say "I am a public method."

object Child = Parent

p = Parent
c = Child

p.priv_m       # Success
c.priv_m       # Failure
To download 3.8.1, you can visit any of the following links:

Sparc compliant binary will be available within the next couple of weeks.


  1. Is there a means whereby one may enumerate the members of an object? If I use, say, the env object the samples would suggest that I need to know all the components at time of writing. It'd be nicer to be able to output, for example, the names of the members and their values by iterating through an enumeration of the members.

    BTW, I'm impressed with USL. Keep up the good work.

  2. Thank you. I'm currently working on the new version. I will add a way to enumerate object members. Expect a new release in the next couple of days or so. Thank you for the suggestion.