From: Timon Christl Date: 2003-07-09T02:24:39+09:00 Subject: Re: How to create Shell Links on Windows? Hal E. Fulton wrote: > I can't answer your question -- my eventual goal is > to know less about Windows, not more -- but your Me too. That's why I'm using ruby. Porting ruby scripts will be much easier than porting entire Delphi/C/C++ programs, and I will have to do that one day for my personal collection of homemade tools. > mention of Delphi caught my eye. I haven't really > touched Delphi in years, but I was always impressed > by it. > > I assume you know about the Ruby/Delphi bridge that > someone has made? I think it's called Apollo... I can't > quite remember the author, but it's in the RAA. > > When I tested it out, I was very impressed with it. And > offhand I'd say it's possible that if Delphi exposes > some bit of functionality, then Apollo might very likely > expose that same bit to Ruby. Yes I know about Apollo, but getting it to work with my trusty old Delphi 3 could mean a bit of work, plus the code looked rather messy. I've also tried to make my own binding (and even managed to define ruby-callable classes and methods in Delphi, and call them), but I gave it up later. Instead I wrote my own small OO language, which has the same object model as ruby, but without the nifty stuff (modules, blocks, mixins, continuations etc are all missing, but classes, meta-classs, singleton methods are present) and of course with a much smaller class library. It was roughly the same amount of work as creating a complete binding to ruby, and much more fun (at least if you know how to write compilers, which I do). The problem is, I want to replace a small Delphi-written tool that is only meant to be used on my home PC by a even smaller ruby script. It would be a cleverly written one-liner if I use some of the usual unix tools (ls, tail, sort and ln), but starting up a complete cygwin shell takes a lot longer on my system than starting up a delphi executable (or rubyw.exe). -- (defun f(p x)(If(Eq x nil)nil(If(p(Car x))(Cons(Car x)(f p(Cdr x)))(f p (Cdr x)))))(defun q(x)(Q nil x))(defun Q(a x)(If(Eq x nil)a(Q(Cons(Car x)(Q a(f(Lt(Car x))(Cdr x))))(f(Gt(Car x))(Cdr x)))))