Recovery update.

Hi All Y’All

Ok; So now of the two articles I thought I lost, two have been recovered. That leaves only one lost article (that’s the new new math 😉 That article announced the release of fOOrth version 0.6.9 and the gist of it is in the posting Update to fOOrth Version 0.6.9.

Further the user’s manual link now points to a current document. It would seem that, for the most part, the site is pretty much back to where it needs to be.

So we’re pretty much back to pre-disaster levels, which is not much to speak of. All the comments made previously are lost, but since they were all phishing attacks or spam to ramp up the web site with meaningless generic content, nothing has been lost there. I will continue moderating all messages and marking them as spam.

Best Regards

Peter Camilleri

Update: fOOrth 0.6.8 released.

Hi all;

Well, fOOrth 0.6.8 is released. No drum roll needed, this is a minor update. The only reason that a new version was dropped was due to changes in the mini_readline gem used in this code. This forced an update due to the fact that the module aliasing feature has been removed from that gem due to the fact that it just did not work as hoped.

Now, fOOrth had code to suppress module aliasing that had to go. Thus a new drop of code.

It’s not all for nothing though. The data formatting routine, created for fOOrth, were ported to the mysh project. While there, a lot of code cleanup and bug fixing happened. Now this version of fOOrth gets those improvements.

As for the huge list of other pending improvements, they will have to wait for version 0.6.9 or beyond.

Best Regards

Peter Camilleri

Work in Progress.

Hello All;

I know it’s been a long time since the last post, so a very quick update is in order.

One of the recent features added to fOOrth has been a series of methods to support the formatting of data as columns as well as bullets points. This is a useful feature. So useful in fact that I ported it to one of my other projects called mysh (source code here).

In porting the code, I ran into requirements for things it did not do. Specifically, I needed to have a bullet point whose description was neatly formatted as columns. I also noted that the code was in dire need of refactoring and cleanup. I also found bugs! A great deal of work later and mysh has a version of data formatting with superior features, fewer bugs, and cleaner code.

The only thing for it is to port all of these improvements back to fOOrth. I just have not had time to do that. It will be part of the next release.

In other exciting news, the mini_readline gem (source code here)  now has at least partial operability in jruby under Windows version 7, 32 bit. This awesome news means that for the first time, fOOrth unit and integration testing is now possible under jruby. The results of this testing should be interesting and I look forward to being able to publish performance data for the available platforms, as soon as a I get around to writing a performance testing framework.

I have not forgotten the existing list of new stuff needed. Here is a list of the work still in progress:

  • Should it be possible to define instance variables in a procedure that has no compile time link to any class or object. If so, then how? how on earth, how? (Issue #105)

These issues are added since that last discussion.

  • Improved error tracking to show the file, line, and position where an error was detected by the system. (Issue 112)
  • Pause long winded output at page breaks. (Issue 113)
  • Add the ability to forward (delegate) messages to another object. (Issue 114)

I’m not sure how much of all this new stuff will make it into the next version, but I will try for as much as possible.

Best Regards;

Peter Camilleri (aka Squidly Jones)

Update to fOOrth Version 0.6.9

Hi All;

Well, thanks to the wayback machine I was able to recover four posts. It seems two are lost, but that’s not SO bad. This article bridges the gap between version 0.6.7 and 0.6.9 and is based on the release notes in github.

Version 0.6.8

The main reason for this release is due to changes in the mini_readline gem. However:

  • The data formatting routines have back-ported all of the improvements and bug fixes from the porting to the mysh gem.
  • A fix to the testing of the Mutex class that would fail rarely. The test had the defect, not the Mutex.

Since most of these changes are internal, there is little to no change in the User’s Guide.

Version 0.6.9

Tying up loose ends left by the 0.6.8 release.

  • Updated the User’s Guide.
  • Corrected defects added to the code by the back-porting of column/bullet formatting code from the mysh project.

Best Regards;

Peter Camilleri

Announcing fOOrth version 0.6.7

I am pleased to announce the release of fOOrth version 0.6.7. This release continues to make progress toward the next major milestone version 0.7.0. Here is what is included this go around:

  • Added the ability to create method aliases using the alias:, .alias:, and .alias:: methods.
  • Added the ability to create stub methods using the stub:, .stub:, and .stub:: methods.
  • A fairly extensive round of code refactoring.

Here is the work still in progress:

  • Should it be possible to define instance variables in a procedure that has no compile time link to any class or object. If so, then how? how on earth, how? (Issue #105)

These issues are added since that last discussion.

  • Improved error tracking to show the file, line, and position where an error was detected by the system. (Issue 112)
  • Pause long winded output at page breaks. (Issue 113)
  • Add the ability to forward (delegate) messages to another object. (Issue 114)

And one target has been removed. When creating alias methods it was deemed undesirable (or at the very least, highly ill advised) to create alias methods with:

  • Different target, same routing, same name.

So the tally is two issues removed and three added. Clearly there will need to be a severe limit on the adding of new requirements or else the next major version will never come about.

If you have any thoughts or suggestions, please do not hesitate to discuss them here or on the issue data base on github.

Best regards;

Peter Camilleri (aka Squidly Jones)

Update: fOOrth version 0.6.6 released

Hi All;

This release of fOOrth is a quick bug patch. Other than the following description, these is no change to the user’s guide so the pdf file has bot been updated:

Bug patch update

  • Corrected a bug that prevented global and thread values or variables from being created in non-execute compiler modes. Integration tests added to plug this coverage hole.

The new code can be found on GitHub and the gem at RubyGems.

Best Regards

Peter Camilleri (aka Squidly Jones)

Update: fOOrth 0.6.5 released.

Hello Again!

This release of fOOrth continues to work its way through the backlog of work on the way to version 0.7.0 and the ultimate goal of version 1.0.0. Here is a brief summary of what’s new in this release:

Updated for V0.6.5

  • Added the ability to override the default method mapping.
  • Added report formatting to allow arrays and hashes to be displayed as bullet points and arrays as neat, efficient columns.
  • Added several deep introspection methods for objects, methods, and classes.
  • Bug Fix: Instance variables may now be created by exclusive methods.
  • Cleanup: The “force compile” flag was another carry over from FORTH that had no place in fOOrth. It has finally been removed.

The code may be found on GitHub and the gem on RubyGems. The user guide accessed from the menu bar has also been updated to the latest version.

The big sticking point, now under study, is the issue of defining instance variables in a procedure. This will likely require changes to the method mapping of instance variables, assuming this change is actually made.

In the mean time, best regards;

Peter Camilleri (aka Squidly Jones)

Update: fOOrth 0.6.4 released.

It has been a very long and trying summer. Between oppressive heat and drought, not a lot of progress has been made, but there is at least something to report. With fOOrth 0.6.4, there are a number of minor improvements and a modest number of bug fixes:

  • Fixed a bug with the string parser “peeking” around end-of-line.
  • Fixed a bug with creating instance values/variables in an exclusive method.
  • Filled in some gaps in the integration test suite for instance data.
  • Several updates to the user’s guide including a better description of the types of methods, their creation and usage.

Things are making progress toward version 0.7.0, but there are a number of thorny issues that need to be resolved first.

  • Should it be possible to define instance variables in a procedure that has no compile time link to any class or object. If so, then how? how on earth, how? (Issue #105)
  • It should be possible to override the default routing of fOOrth language created methods. Currently, only Ruby created methods can use special routing. The issue here is more a matter of not breaking the compiler as this is a rather delicate part of the code. (Issue 87)
  • It should be possible to create aliases of a method with:
    • Same target, same routing, new name. (Issue 62)
    • Different target, same routing, same name.
    • Same target, new routing, new automatically created name. (Issue 104)
  • The ability to create stub methods to block unwanted execution. (Issue 25)

These new features all need to be sorted out, tested and documented in the User’s Guide as a prerequisite for the next major version release.

Further off, I think that some sort of policy for loading resources is needed. Ideally, a highly simplified version of the Ruby gem system. The focus here: The need to keep this SIMPLE!

Till then, any comments are most welcomed:

Best Regards;

Peter Camilleri (aka Squidly Jones)

Site Under Repair

Hi All;

Well it seems that due to a foul up in my administering this web site, that a fair bit of content has been “lost”. As I check I see only two posts and a user’s manual for fOOrth version 0.6.1. The current version is 0.6.9 and the manual should reflect that fact.

I will be trying to see how much I can recover, but to be honest, most of it is lost.

At the least I will post a new user’s manual ASAP.

Best regards;

Peter Camilleri

Announcing fOOrth Version 0.6.0

Things continue to move forward here at the secret lair of the International fOOrth Consortium. Today this takes the form of the release of fOOrth 0.6.0.

So what’s new? In a word: Strings. The entire way strings are handled has received a full makeover. In a recent article, on the Teuthida Technologies web site, the mutation of strings was examined. To summarize, it was concluded that the best approach to strings and mutation was to support two types or classes of strings. The first, and default, would be safe and immutable. The second, selectable at the discretion of the programmer would be mutable, faster, but trickier to use.

At the time, fOOrth followed the Ruby model, that all strings were mutable. The above article was the impetus to raise a question: Does it have to be so? The answer, after a careful study, was a resounding NO! The fOOrth language could go its own way.

That is why fOOrth Version 0.6.0 introduces the StringBuffer class, which is a class of mutable string. The existing String class is now the class of immutable strings. All of this is documented in the new, updated User’s Guide page on this web site.

As always the updated code may be found on github and the executable code is in a gem.