Reinvent The Wheel

Round is nice, but we can do better!

Lua4Delphi – Broken the Interface

| 5 Comments

I realize that not everyone is on Google+ (where I have been posting regular updates on Lua4Delphi), so you might not be aware that I have had to break the Interface on Lua4Delphi in order to make it support Lua 5.2 (something which has been requested so many times I couldn’t ignore it).

The idea was to release L4D on Feb 1st, but I had to make a judgement call! It would be very bad to release it on Feb 1st, have people implementing it, only to find that the very first update requires them to start over due to the breaking of the Interface. I decided, therefore, to hold the release slightly until the Interface change was implemented… thus avoiding what would have been an annoying issue for many!

Delighted to say that the change is now complete, and so I am just assembling the installer and public SVN repo for a release! Keep in mind that updates are going to be daily (there’s a lot to be added in a short space of time), so using the SVN is essential. Also keep in mind this is a concurrent release, as the first portion of the LKSL (LaKraven Studios Standard Library) is utilized by Lua4Delphi.

Should point out I’ve dedicated a week in two 72 hour days to get this change done, so it’s not nice to get a rude message from a certain person in Ann Arbor, Michigan (you know who you are) just because the release has been held up very slightly. Do you want it to work or do you just want it now? You’d be complaining even more if I’d released it two days ago, you spent two days implementing it, only to have to redo it again tomorrow! If you’re wondering why the release hasn’t occured on the intended date, why not just ask instead of insulting me? I understand the frustration, believe me I do… but it’s not nice to make hateful statements to someone you ought to know is working quite literally around the clock to release someting which is mostly free for everyone to use as they wish!

I do apologize for the slight delay (I wish I could’ve released this many months ago, personally), but it is worth it… and at least now it won’t be necessary to break the Interface again in the future (because the changes I’ve made allow for fast integration of future versions of Lua on the same codebase)

A change of significance is that TLuaStatic etc. now have the version number as well: TLua51Static, TLua52Static (you get the idea). The encapsulated Lua C API has been dropped a level on the class structure to [Lua4DelphiInstance].Lua.API where the Lua object sits atop the C API to provide Lua4Delphi-specific methods (which behave identically between Lua versions).

Interfaces have been added so you can invoke version-specific API calls by safely assigning .API to ILua51* or ILua52* (where * represents a portion of the API such as “Lib” or “Aux”). Remember that it is not likely to be necessary for you to need to communicate with Lua’s API directly, as Lua4Delphi abstracts the most important parts as part of its central function.

At precisely Midnight (Sunday 5th) GMT, I will be holding an open Webinar showing how to start implementing Lua4Delphi, and answering any questions you may have… I’ll even let you all pelt me with tomatos for the delay, if that helps vent your frustration over it!

The webinar URL (no registration required) will be posted on here about 30 minutes before the event begins. I’ll also post it on my Twitter and Google+ accounts (for those who follow me on those networks). All are welcome, even the person from Ann Arbor, Michigan (you know who you are).

Again, sincerest apologies about this delay! It’s essential that the interface be solid at the point of release (imagine if Embarcadero changed property/method names or even structures in a procedural update! All the misery it would cause!).

Author: Simon J Stuart

Automation and Productivity Systems Specialist, Author of various Components, Libraries and Tools for Embarcadero Delphi, Embarcadero Technology Partner, Founder and CEO of LaKraven Studios Ltd, Father of 2 (+ 2 dogs), Credited Technical Editor, Published Technical Author, Seeker of peace!

5 Comments

  1. Simon, for those of us who don’t rely on whatever local time/date conventions are, what is exactly “Midnight (Sunday 5th) GMT”.
    Do you mean 0000 UTC on Sunday Feb 5th (that is 4pm on Saturday here in California)?

    • Yes, that’s exactly what I mean :) It’s hard to put a standard value on date/time that everyone can easily translate to their local timezone!

      • First of all, congratulation for finishing Lua4Delpi! And maybe the beter is to use internet time instead of: “Do you mean 0000 UTC on Sunday Feb 5th (that is 4pm on Saturday here in California)” :-)

  2. Will you be recording the webinar? Since I am currently in your time zone and not in my “normal” UTC-5 you are getting into my bedtime…yawn…if you aren’t going to, I just need to know, as I’d like to see the webinar and don’t have to be TOO alert on Monday morning.
    But if you are, I may just choose to stream it later.
    Or take a nap on Sunday. Geez, old age sucks.

    • Doug… it’s midnight tonight! I can understand how saying “Midnight Sunday” might be confusing, but “Midnight Sunday” = “Saturday Night” ;)

      I shall attempt to record the webinar (finger’s crossed)

Leave a Reply

Required fields are marked *.

*


*