Re: Writing Externals in Pascal?

2010-07-08 Thread Richmond

On 07/08/2010 10:06 PM, Peter Alcibiades wrote:

You see, Richmond, what you needed was regular expressions.
   


What I need is a da*n good holiday!
___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: Writing Externals in Pascal?

2010-07-08 Thread Peter Alcibiades

You see, Richmond, what you needed was regular expressions.
-- 
View this message in context: 
http://runtime-revolution.278305.n4.nabble.com/Writing-Externals-in-Pascal-tp2278157p2282719.html
Sent from the Revolution - User mailing list archive at Nabble.com.
___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: Writing Externals in Pascal?

2010-07-08 Thread Peter W A Wood
Mark

I suspect that writing a dynamic link library for use with Rebol is likely to 
be easier than writing an external for Revolution. The Rebol language is 
evaluated not compiled.

I found writing a dynamic link library with FPC quite straightforward though I 
encountered two problems which I have been able to overcome.

The first could hinder developing complicated externals for Revolution. FPC 
does not support error handling in dynamic link libraries, so no try/finally 
etc.. I believe this is due to the difficulty of coming up with a 
cross-platform implementation. This limitation can probably be overcome through 
conservative and defensive coding in most cases. In my case, I perform 
additional validations in the Rebol module that calls the dynamic link library.

The second is that there is a conflict between the Mac OS X Snow Leopard linker 
and FPC. There is a work around but the resulting dynamic link library is not 
fully stable. I believe this is something to do with initialisation and 
termination routines. The workaround is to compile the dynamic link library 
under Mac OS X Leopard.

The dynamic link library is very simple but runs successfully on Windows, 
Ubuntu and Mac OS X.

Regards

Peter



On 8 Jul 2010, at 00:26, Mark Wieder wrote:

> Peter-
> 
> Monday, July 5, 2010, 4:59:11 PM, you wrote:
> 
>> Free Pascal. At the moment, I am testing calling a dynamic load
>> library written in Free Pascal from Rebol (a language written in C)
>> using C calling conventions.
> 
> Keep us posted on your progress - that's a promising start.
> 
> -- 
> -Mark Wieder
> mwie...@ahsoftware.net
> 
> ___
> use-revolution mailing list
> use-revolution@lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription 
> preferences:
> http://lists.runrev.com/mailman/listinfo/use-revolution

___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: Writing Externals in Pascal?

2010-07-07 Thread Richmond

On 07/07/2010 08:56 PM, Bob Sneidar wrote:

Whoa! Pascal still lives?? Maybe I am not so old after all.

Bob


   

Sorry to dash your illusions; I studied PASCAL 5 in 1985;

Thee and Me are alive, and so is PASCAL; neither Thee, not
Me, nor PASCAL are as young as we were in 1985.

Hey; anybody remember MINIFORTRAN?



I remember when I was visiting Mum and Dad at New Year
seeing my PASCAL final project lurking in the attic; maybe
I should get it out and 'give it a whirl'. Mind you typing the
whole thing into the machine will be a real labour of love.

What I do remember is:

1. It was a program for making a concordance of a text.
   [This was conceived because I was sent 'over' from the
Philosophy department to the Maths dept. for computer
programming. The lecturers all made loud and public
fun of the "wierdo in the kilt from the Philosophy dept"
and said that ONLY mathematicians could program;
and that PASCAL, being a serious, hairy-chested sort
of computer language, could only deal with crunching
numbers - hence my determination to crunch text].

2. A long-suffering 'slave' in the computer building
(full of enormous tape drives that went "whirr, whirr")
typed in an English translation of Leibniz's 'Monadologie'.

3. The program crashed the University computer (hurrah,
hurrah - let's hear it for Mathewson).

I will probably be able to run it on a Pentium II I have,
running FreeDOS with the GEM GUI (lovely job) and
some sort of cheapo PASCAL - in all likelihood the 32 MB
RAM is more than the University of Durham had in 1985.

4. An incredibly seedy man who was my computer
supervisor almost tied himself in knots having to admit
   that my program was the best of the 100 students in the year.
   Extra fun was had because I asked the head of Philosophy to
   accompany me to the meeting so that I could make a formal
   complaint about departmental bullying towards me because
   I was an Arts student.

About once every 5 years I go back to Durham to visit . . .
. . . the pubs where I did most of my studying; and everytime
I pass the building that housed the VAX (I wonder what is in
there now?) I blow it a kiss - Wow I wish my life now was
as much fun as when I was an undergraduate
___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: Writing Externals in Pascal?

2010-07-07 Thread Neal Campbell
The 2010 version of Delphi is a killer development environment and the 2011
version will have cross-compile for OS X. You can tell its what I do a lot
of work in!

Neal Campbell
Abroham Neal Software
www.abrohamnealsoftware.com
(540) 645 5394 NEW PHONE NUMBER





On Wed, Jul 7, 2010 at 1:56 PM, Bob Sneidar  wrote:

> Whoa! Pascal still lives?? Maybe I am not so old after all.
>
> Bob
>
>
> On Jul 7, 2010, at 9:26 AM, Mark Wieder wrote:
>
> > Peter-
> >
> > Monday, July 5, 2010, 4:59:11 PM, you wrote:
> >
> >> Free Pascal. At the moment, I am testing calling a dynamic load
> >> library written in Free Pascal from Rebol (a language written in C)
> >> using C calling conventions.
> >
> > Keep us posted on your progress - that's a promising start.
> >
> > --
> > -Mark Wieder
> > mwie...@ahsoftware.net
> >
> > ___
> > use-revolution mailing list
> > use-revolution@lists.runrev.com
> > Please visit this url to subscribe, unsubscribe and manage your
> subscription preferences:
> > http://lists.runrev.com/mailman/listinfo/use-revolution
>
> ___
> use-revolution mailing list
> use-revolution@lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your
> subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-revolution
>
___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: Writing Externals in Pascal?

2010-07-07 Thread Bob Sneidar
Whoa! Pascal still lives?? Maybe I am not so old after all. 

Bob


On Jul 7, 2010, at 9:26 AM, Mark Wieder wrote:

> Peter-
> 
> Monday, July 5, 2010, 4:59:11 PM, you wrote:
> 
>> Free Pascal. At the moment, I am testing calling a dynamic load
>> library written in Free Pascal from Rebol (a language written in C)
>> using C calling conventions.
> 
> Keep us posted on your progress - that's a promising start.
> 
> -- 
> -Mark Wieder
> mwie...@ahsoftware.net
> 
> ___
> use-revolution mailing list
> use-revolution@lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription 
> preferences:
> http://lists.runrev.com/mailman/listinfo/use-revolution

___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: Writing Externals in Pascal?

2010-07-07 Thread Mark Wieder
Peter-

Monday, July 5, 2010, 4:59:11 PM, you wrote:

> Free Pascal. At the moment, I am testing calling a dynamic load
> library written in Free Pascal from Rebol (a language written in C)
> using C calling conventions.

Keep us posted on your progress - that's a promising start.

-- 
-Mark Wieder
 mwie...@ahsoftware.net

___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: Writing Externals in Pascal?

2010-07-06 Thread RunRevPlanet

Peter,

Thanks for your tips from using Free Pascal with Rebol. You have 
confirmed what I though from the Free Pascal Compiler (FPC) 
documentation, that it should be able to make libraries that are 
indistinguishable from those made from a C compiler.


Now it is more a question of time, as I am busy with some other (paying) 
projects written in Revolution, and so the FPC Externals SDK really is 
just a side project to do in those spare(?!) moments.

--
Scott McDonald

RunRevPlanet.com
"Components, Stacks, Tools and Resources for Runtime Revolution"
www.runrevplanet.com
___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: Writing Externals in Pascal?

2010-07-05 Thread Peter W A Wood
Hi Scott

I am also be interested in being able to develop externals in Free Pascal. At 
the moment, I am testing calling a dynamic load library written in Free Pascal 
from Rebol (a language written in C) using C calling conventions.

> It is impossible to get the level
> of granularity of compiler options with Borland's compilers
> (C++ Builder, Delphi) to get the combination of:
> 1. no leading underscore

You get to name the function in FPC. Here is an extract from my dll:

{$ifndef Darwin}
exports  
  version name 'version';
{$else}
exports
  version name '_version';
{$endif}

> 2. mixed case exported symbols

I tested with a mixed case function name:

exports
  accountingformat name '_accountingFormat',
  version name '_version';


> 3. C-style parameter passing (first to last)
> 4- C-style stack frames (calling program cleans up
> the stack)

FPC includes a modifier for the cdecl calling convention (which I believe 
answers 3 & 4). Here is an example:

procedure version(var answer: shortstring);cdecl;
begin
  answer := CurrentVersion;
end;

Regards

Peter Wood

___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: Writing Externals in Pascal?

2010-07-05 Thread RunRevPlanet
Thanks for the extra tips. At this stage I have only done a quick read 
of the documentation of the Free Pascal Compiler, but from what I have 
read it appears more flexible than the Borland compilers in terms of the 
 libraries it can produce.


But I won't really know what it is capable of until I do some experiments.

The comments and interest are encouraging though.
--
Scott McDonald

RunRevPlanet.com
"Components, Stacks, Tools and Resources for Runtime Revolution"
www.runrevplanet.com

___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: Writing Externals in Pascal?

2010-07-05 Thread Mark Wieder
Andre-

Monday, July 5, 2010, 8:35:01 AM, you wrote:

> Argh! I remember that bug in 2005...

> just commented and voted on it again.

> argh!

I wouldn't bother wasting votes on this. I finally pulled my votes
away and put them to better use on other bug reports. It's

A) filed as an enhancement, so it'll get *no* attention from the team
B) assigned to an engineer no longer with the company

-- 
-Mark Wieder
 mwie...@ahsoftware.net

___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: Writing Externals in Pascal?

2010-07-05 Thread Alejandro Tejada

Hi Scott,

Hopefully, you could find help among the Free Pascal
developers and programmers to workaround the
problems that Mark Wieder reported in 2004:
--
http://quality.runrev.com/qacenter/show_bug.cgi?id=1526

Presently only external libraries in Microsoft-compatible
binary form will work with the engine. This is due to the
necessity of recognizing a signature of the exported
Xtable and Xname items. It is impossible to get the level
of granularity of compiler options with Borland's compilers
(C++ Builder, Delphi) to get the combination of:

1. no leading underscore
2. mixed case exported symbols
3. C-style parameter passing (first to last)
4- C-style stack frames (calling program cleans up
the stack)

The way around this would be to accept alternate entry
points of _Xtable and _Xname if the first check of Xtable
and Xname failed. This would open up the development
of external libraries to existing BCCB and Delphi programmers
and allow the simple modification of libraries that currently
exist for other environments. To me this seems like a simple
change to the engine with large paybacks in terms of
opening things up for third-parties to develop add-ons.

Al


-- 
View this message in context: 
http://runtime-revolution.278305.n4.nabble.com/Writing-Externals-in-Pascal-tp2278157p2278631.html
Sent from the Revolution - User mailing list archive at Nabble.com.
___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: Writing Externals in Pascal?

2010-07-05 Thread Andre Garzia
Argh! I remember that bug in 2005...

just commented and voted on it again.

argh!

On Mon, Jul 5, 2010 at 12:28 PM, Mark Wieder  wrote:

> Scott-
>
> Things may have changed with Delphi, but I fear you may run into the
> problem I had back in 2004 when I attempted this. See bug #1526. The
> issue was the inability to coax Borland compilers into the proper
> combination of compiler options to export symbols that the runrev
> engine would recognize as valid.
>
> --
> -Mark Wieder
>  mwie...@ahsoftware.net
>
> ___
> use-revolution mailing list
> use-revolution@lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your
> subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-revolution
>



-- 
http://www.andregarzia.com All We Do Is Code.
___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: Writing Externals in Pascal?

2010-07-05 Thread Mark Wieder
Scott-

Things may have changed with Delphi, but I fear you may run into the
problem I had back in 2004 when I attempted this. See bug #1526. The
issue was the inability to coax Borland compilers into the proper
combination of compiler options to export symbols that the runrev
engine would recognize as valid.

-- 
-Mark Wieder
 mwie...@ahsoftware.net

___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: Writing Externals in Pascal?

2010-07-05 Thread -= JB =-

Thanks for the info.  I hope the problems can be resolved.

-=>JB<=-


On Jul 5, 2010, at 6:05 AM, RunRevPlanet wrote:


Alistair,

Thank you for the offer. Nice to hear from another Delphi familiar.  
If I start the project I will certainly let you know, if I need  
assistance.



-=>JB<=-,

Free Pascal is a cross platform Pascal compiler that does standard  
Object Pascal plus more. It is also largely compatible with the  
Turbo Pascal 7 and Delphi 7 extensions to the Pascal language that  
have been part of the Borland (Embarcadero these days) line of  
compilers.


While Lararus is a IDE that is built on top of Free Pascal,  
initially to "clone" the Delphi IDE, but which is now going in it's  
own direction.


Most significantly, both these tools are cross-platform and can  
produce binaries for Mac and Windows (as well as many other  
platforms).



Andre,

I did a search here before launching this idea and found your  
previous messages about it. The linker issues may still exist, but  
Free Pascal has come quite a way since then, and I am hoping that  
the issues from before may now be resolvable.


  ooOOOoo

Before coming to Revolution, Pascal/Delphi was my language of  
choice (which it still is for some types of projects) and so if I  
could write Externals with it for Revolution that would be a nice  
productivity boost.

--
Scott McDonald

RunRevPlanet.com
"Components, Stacks, Tools and Resources for Runtime Revolution"
www.runrevplanet.com

___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your  
subscription preferences:

http://lists.runrev.com/mailman/listinfo/use-revolution



___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: Writing Externals in Pascal?

2010-07-05 Thread RunRevPlanet

Alistair,

Thank you for the offer. Nice to hear from another Delphi familiar. If I 
start the project I will certainly let you know, if I need assistance.



-=>JB<=-,

Free Pascal is a cross platform Pascal compiler that does standard 
Object Pascal plus more. It is also largely compatible with the Turbo 
Pascal 7 and Delphi 7 extensions to the Pascal language that have been 
part of the Borland (Embarcadero these days) line of compilers.


While Lararus is a IDE that is built on top of Free Pascal, initially to 
"clone" the Delphi IDE, but which is now going in it's own direction.


Most significantly, both these tools are cross-platform and can produce 
binaries for Mac and Windows (as well as many other platforms).



Andre,

I did a search here before launching this idea and found your previous 
messages about it. The linker issues may still exist, but Free Pascal 
has come quite a way since then, and I am hoping that the issues from 
before may now be resolvable.


  ooOOOoo

Before coming to Revolution, Pascal/Delphi was my language of choice 
(which it still is for some types of projects) and so if I could write 
Externals with it for Revolution that would be a nice productivity boost.

--
Scott McDonald

RunRevPlanet.com
"Components, Stacks, Tools and Resources for Runtime Revolution"
www.runrevplanet.com

___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: Writing Externals in Pascal?

2010-07-05 Thread Andre Garzia
Scott,

Been there as well. I remember many many many years ago talking about this
exact topic with members of the community and with if I recall, there were
some troubles in the way FPC generated the libraries, some linker stuff
which might not be a problem these days.

It would be a wonderful feature if Rev had a comprehensive FFI so that we
could use other languages besides C/C++ to extend it.

Cheers
andre
PS: Stay tunned for some stuff I am about to release about interoperation.

On Mon, Jul 5, 2010 at 5:49 AM, RunRevPlanet <
runrevpla...@smpcs.server101.com> wrote:

> Hi All,
>
> Trying to gauge the potential interest in a Revolution Externals SDK that
> could allow you to develop externals in Lazarus/Free Pascal. Instead of
> requiring some form of C/C++ wrapper, which is the only language that is
> currently supported by the official Externals SDK.
>
> To be able to write externals purely in a Pascal/Delphi dialect would be
> useful to me, but I do not know for certain if it can be done with Free
> Pascal -- there may be linking or name mangling issues which prevent it from
> working.
>
> * So before trying, I am just wondering what level of interest there would
> be in such a resource?
>
> If it's just me who still uses Pascal, then I probably won't even bother
> thinking further about it. But if there is interest, who knows...
>
> Note, I have little free time for such a project, so even if there is
> significant interest, I make no promises about whether it will happen, or
> when.
> --
> Scott McDonald
>
> RunRevPlanet.com
> "Components, Stacks, Tools and Resources for Runtime Revolution"
> www.runrevplanet.com
>
>
> ___
> use-revolution mailing list
> use-revolution@lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your
> subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-revolution
>



-- 
http://www.andregarzia.com All We Do Is Code.
___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: Writing Externals in Pascal?

2010-07-05 Thread -= JB =-

I would be interested in programming externals in Pascal but I am
not familiar with the pascal you mentioned so I can't comment on
the choice of pascal.

-=>JB<=-


On Jul 5, 2010, at 1:49 AM, RunRevPlanet wrote:


Hi All,

Trying to gauge the potential interest in a Revolution Externals  
SDK that could allow you to develop externals in Lazarus/Free  
Pascal. Instead of requiring some form of C/C++ wrapper, which is  
the only language that is currently supported by the official  
Externals SDK.


To be able to write externals purely in a Pascal/Delphi dialect  
would be useful to me, but I do not know for certain if it can be  
done with Free Pascal -- there may be linking or name mangling  
issues which prevent it from working.


* So before trying, I am just wondering what level of interest  
there would be in such a resource?


If it's just me who still uses Pascal, then I probably won't even  
bother thinking further about it. But if there is interest, who  
knows...


Note, I have little free time for such a project, so even if there  
is significant interest, I make no promises about whether it will  
happen, or when.

--
Scott McDonald

RunRevPlanet.com
"Components, Stacks, Tools and Resources for Runtime Revolution"
www.runrevplanet.com

___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your  
subscription preferences:

http://lists.runrev.com/mailman/listinfo/use-revolution



___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: Writing Externals in Pascal?

2010-07-05 Thread planix

Hi Scott,

I would be interested. I used to program in Delphi a fair bit- though I am
purely an amateur.

I would certainly rather write externals in pascal than C. Like you I don't
have a lot of time, and I doubt I have the expertise, but I would be
interested in helping where I can.

cheers

Alistair
-- 
View this message in context: 
http://runtime-revolution.278305.n4.nabble.com/Writing-Externals-in-Pascal-tp2278157p2278201.html
Sent from the Revolution - User mailing list archive at Nabble.com.
___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Writing Externals in Pascal?

2010-07-05 Thread RunRevPlanet

Hi All,

Trying to gauge the potential interest in a Revolution Externals SDK 
that could allow you to develop externals in Lazarus/Free Pascal. 
Instead of requiring some form of C/C++ wrapper, which is the only 
language that is currently supported by the official Externals SDK.


To be able to write externals purely in a Pascal/Delphi dialect would be 
useful to me, but I do not know for certain if it can be done with Free 
Pascal -- there may be linking or name mangling issues which prevent it 
from working.


* So before trying, I am just wondering what level of interest there 
would be in such a resource?


If it's just me who still uses Pascal, then I probably won't even bother 
thinking further about it. But if there is interest, who knows...


Note, I have little free time for such a project, so even if there is 
significant interest, I make no promises about whether it will happen, 
or when.

--
Scott McDonald

RunRevPlanet.com
"Components, Stacks, Tools and Resources for Runtime Revolution"
www.runrevplanet.com

___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution