EZDSL for Delphi XE

Just a quick one: I’ve updated EZDSL to support Delphi XE. Seeing as I only have Delphi XE installed these days, this is the only compiler I can now certify as working with EZDSL. I guess the earlier ones will still work just fine, but I no longer have the time or the will to check.

Old carphoto © 2007 Carlos Goulão | more info (via: Wylio)There is one change that I missed from last time: there’s a PChar in EZDSLBSE.PAS that should be changed to PAnsiChar, although you’ll have to IFDEF it because Delphi 1 doesn’t have such a type. Does anyone still use Delphi 1, I ponder?

Also, here’s a big fat warning. Delphi XE2 is on the horizon with 64-bit support. Once I get my hands on the released version I will go back to EZDSL and make it work with 64-bit. At that time I can guarantee that I will have no desire at all to try for backwards compatibility. None whatsoever. I will create an EZDSL 4, and it will only support Delphi XE2. All that crappy string stuff I have in there will go, disappear. All Unicode, all the time. All that BASM, gone. Most of that nasty pointer arithmetic, bye bye. Be forewarned.

Problem is I don’t program in Delphi any more, my interests have moved on to C# and latterly JavaScript. Finding time for this is harder than it was before. But, hey, looking at my notes EZDSL is a week over 16 years old.

You can download EZDSL 3.04 here.

Loading similar posts...   Loading links to posts on similar topics...

14 Responses

 avatar
#1 Will Watts said...
03-Jul-11 12:13 AM

Link duff?

W

julian m bucknall avatar
#2 julian m bucknall said...
03-Jul-11 7:08 AM

Will: Weird. Bizarre. Could've sworn it was a copy/paste. Anyway, all fixed now. Thanks for the heads-up.

Cheers, Julian

 avatar
#3 Richard B. Winston said...
05-Jul-11 5:53 AM

I've run into problems unless I do the following.

In EZDSLHSH.PAS, place the line

{$OVERFLOWCHECKS OFF}

before the HashBKDR function and

{$OVERFLOWCHECKS ON}

afer the end of the HashBKDR function.

julian m bucknall avatar
#4 julian m bucknall said...
05-Jul-11 7:35 AM

Richard: You're right, it does require overflow checking to be turned off. Thanks for the bug report.

(Actually, thinking about it, that's probably the reason I didn't include it in the book's source code.)

Cheers, Julian

 avatar
#5 Mike said...
06-Jul-11 7:54 AM

Julian, I tried EZDSL304 with XE and it worked (my app did not crash in EZDSLbtr.pas as before, to be precise)! Thanks a lot. Can I send you $50 as a token of appreciation?

If I had to rewrite completely my app and move away from Delphi, what programming tool would you recommend (C#, JavaScript, something else)?

  • Mike
julian m bucknall avatar
#6 julian m bucknall said...
06-Jul-11 9:12 AM

Mike: Thanks for the offer, but I'm sure there are lots more deserving causes out there than me :).

Also, I'd have to say your question is rather broad. Rewriting an application is not for the fainthearted. You always start out with great intentions and strong desires to use the latest whatever tech out there, and you always seem to sink into some quagmire of unfinished code. Or maybe I'm being pessimistic.

Take EZDSL for example: its code is firmly stuck in the mid-90s when it seemed like a good idea (at least to me) to mix pointers to stuff and objects, and BASM and Pascal. I look at it now and it fairly creeps me out. It needs a rewrite (at least I think so), but I know if I start I'll get bogged down in minutiae.

So, I'd say, if you have a new project then now's the time to check out other languages and frameworks to see if they'd suit. Me, I'm in web development land for my personal stuff at the moment, so I'm enjoying ASP.NET and JavaScript. Maybe that's it: do it with the tech you enjoy using.

Cheers, Julian

 avatar
#7 Mike said...
09-Jul-11 5:20 PM

Julian, great input. Many thanks for EZDSL.

  • Mike
 avatar
#8 Frank said...
20-Jul-11 9:39 AM

Hi Julian - I have Delphi 1 installed and use it on a daily basis. My intention is to learn Pascal and OO programming (I'm moving from a lot of years of BASIC and VB programming). I bought this copy in 1995 and never had a chance to use it -- until now. So, yes, some people still use Delphi 1. FM

 avatar
#9 Warren Postma said...
20-Dec-11 2:39 PM

I've had EZ-DSL in my Delphi Bag O Tricks since Delphi 1.0, and had privately updated it to keep it ticking, in Delphi XE etc. Nice to see you're going to make it work in 64 bit XE2. I'll help test it when you've got a build. If you set it up on a public site like sourceforge, or bitbucket, I think it would be a wonderful open source project. I like the dictionary type in EZ-DSL much better than I like the generics Dictionary that is built into modern Delphi, for example.

Warren

 avatar
#10 Primož said...
06-Jan-12 2:11 AM

Any progress on the 64-bit front? I have just run into a problem compiling one of our shell extensions for 64-bit because it uses some unit which uses some data structure which uses some unit etc ... until we come to the EZDSL.

 avatar
#11 Ven said...
01-Sep-14 7:17 PM

Hi Julian,

Im using ezdsl for quite some time, it greatly works. thanks a lot for that .

Right now im upgrading to xe6, is there any chance that you will be updating your components?

regards

ven

 avatar
#12 Sridharan S said...
05-May-15 6:45 PM

Compiled under Lazarus. Mainly commented out certain lines and added one one small function. How to make that public? Can I submit the code?

julian m bucknall avatar
#13 julian m bucknall said...
06-May-15 8:11 AM

@Sridharan: I've had an item on my todo list for a little while to upload EZDSL (at least the last known stable version) to GitHub. Give me a week and I'll have some spare time to do that.

Cheers, Julian

julian m bucknall avatar
#14 julian m bucknall said...
13-Jun-15 3:49 PM

To all who land up on this page: I've now uploaded EZDSL to GitHub. You can find it here.

Leave a response

Note: some MarkDown is allowed, but HTML is not. Expand to show what's available.

  •  Emphasize with italics: surround word with underscores _emphasis_
  •  Emphasize strongly: surround word with double-asterisks **strong**
  •  Link: surround text with square brackets, url with parentheses [text](url)
  •  Inline code: surround text with backticks `IEnumerable`
  •  Unordered list: start each line with an asterisk, space * an item
  •  Ordered list: start each line with a digit, period, space 1. an item
  •  Insert code block: start each line with four spaces
  •  Insert blockquote: start each line with right-angle-bracket, space > Now is the time...
Preview of response