www.digitalmars.com         C & C++   DMDScript  

D - Announce: Stonewheel 0.0.1

reply Burton Radons <loth users.sourceforge.net> writes:
I've released my first version of Stonewheel, a dynamic linking system 
for D.  It allows DLL-like activities to be run in an executable-like 
environment, meaning everyone uses the same copy of Phobos and can have 
much more complex interactions than DLL provides.  Normally 
modularization ends at linking; Stonewheel extends it into runtime, not 
only for plugins but to allow the entire program to be constructed in 
packages with no more difficulty than using them.  I also intend to use 
it to dynamically compile Quake III-style shaders.

There's even an expression evaluator that builds a program around the 
expression, loads it, and then calls the function.  If Windows didn't 
get in the way and it would just be me and DMD it would be very fast, 
but unfortunately it isn't, but it is cute.

There's a module for taking apart a function signature and remangling 
it, and you can find the nearest symbol to a given pointer very easily. 
  I've used this to reproduce a class definition from its vtable, apart 
from the fields.  This component (in types.d) is entirely separate from 
Stonewheel and could be useful in other things.

Using the library is not entirely recommended right now as I haven't 
used it in any actual projects.  I'm about to embark on a play 3D engine 
and I'll use it in there and get everything up to snuff and make some 
tutorials and clean up things.  It's an alpha version fer shure.

The files are:

http://amateur-scrolls.sourceforge.net/old/stonewheel/stonewheel-0.0.1.zip
http://amateur-scrolls.sourceforge.net/old/stonewheel/stonewheel.html
Jun 20 2002
next sibling parent "anderson" <anderson firestar.com.au> writes:
Cool, I've always liked using plug in programming.
Jun 20 2002
prev sibling next sibling parent reply "Matthew Wilson" <matthew thedjournal.com> writes:
Burton

Can you guess what I'm going to ask ...


"Burton Radons" <loth users.sourceforge.net> wrote in message
news:3D11E9DF.7090503 users.sourceforge.net...
 I've released my first version of Stonewheel, a dynamic linking system
 for D.  It allows DLL-like activities to be run in an executable-like
 environment, meaning everyone uses the same copy of Phobos and can have
 much more complex interactions than DLL provides.  Normally
 modularization ends at linking; Stonewheel extends it into runtime, not
 only for plugins but to allow the entire program to be constructed in
 packages with no more difficulty than using them.  I also intend to use
 it to dynamically compile Quake III-style shaders.

 There's even an expression evaluator that builds a program around the
 expression, loads it, and then calls the function.  If Windows didn't
 get in the way and it would just be me and DMD it would be very fast,
 but unfortunately it isn't, but it is cute.

 There's a module for taking apart a function signature and remangling
 it, and you can find the nearest symbol to a given pointer very easily.
   I've used this to reproduce a class definition from its vtable, apart
 from the fields.  This component (in types.d) is entirely separate from
 Stonewheel and could be useful in other things.

 Using the library is not entirely recommended right now as I haven't
 used it in any actual projects.  I'm about to embark on a play 3D engine
 and I'll use it in there and get everything up to snuff and make some
 tutorials and clean up things.  It's an alpha version fer shure.

 The files are:

 http://amateur-scrolls.sourceforge.net/old/stonewheel/stonewheel-0.0.1.zip
 http://amateur-scrolls.sourceforge.net/old/stonewheel/stonewheel.html
Jun 20 2002
next sibling parent "Matthew Wilson" <matthew thedjournal.com> writes:
Maybe when it's a bit more mature. Nevertheless, I'm sure it would make
fascinating reading

"Matthew Wilson" <matthew thedjournal.com> wrote in message
news:aetneu$22p$2 digitaldaemon.com...
 Burton

 Can you guess what I'm going to ask ...


 "Burton Radons" <loth users.sourceforge.net> wrote in message
 news:3D11E9DF.7090503 users.sourceforge.net...
 I've released my first version of Stonewheel, a dynamic linking system
 for D.  It allows DLL-like activities to be run in an executable-like
 environment, meaning everyone uses the same copy of Phobos and can have
 much more complex interactions than DLL provides.  Normally
 modularization ends at linking; Stonewheel extends it into runtime, not
 only for plugins but to allow the entire program to be constructed in
 packages with no more difficulty than using them.  I also intend to use
 it to dynamically compile Quake III-style shaders.

 There's even an expression evaluator that builds a program around the
 expression, loads it, and then calls the function.  If Windows didn't
 get in the way and it would just be me and DMD it would be very fast,
 but unfortunately it isn't, but it is cute.

 There's a module for taking apart a function signature and remangling
 it, and you can find the nearest symbol to a given pointer very easily.
   I've used this to reproduce a class definition from its vtable, apart
 from the fields.  This component (in types.d) is entirely separate from
 Stonewheel and could be useful in other things.

 Using the library is not entirely recommended right now as I haven't
 used it in any actual projects.  I'm about to embark on a play 3D engine
 and I'll use it in there and get everything up to snuff and make some
 tutorials and clean up things.  It's an alpha version fer shure.

 The files are:
http://amateur-scrolls.sourceforge.net/old/stonewheel/stonewheel-0.0.1.zip
 http://amateur-scrolls.sourceforge.net/old/stonewheel/stonewheel.html
Jun 20 2002
prev sibling parent reply Burton Radons <loth users.sourceforge.net> writes:
Matthew Wilson wrote:
 Can you guess what I'm going to ask ...
No.
Jun 20 2002
parent reply "anderson" <anderson firestar.com.au> writes:
You had to ask! Matthew Wilson has been ragging on about complier pluggins
(with language style enforcement) all week.

(No offence Matthew)

By the way Matthew have you put together anything more concrete? Like how
you'd like the script/program code to look?

"Burton Radons" <loth users.sourceforge.net> wrote in message
news:3D12C82F.4010902 users.sourceforge.net...
 Matthew Wilson wrote:
 Can you guess what I'm going to ask ...
No.
Jun 21 2002
parent "Matthew Wilson" <dmd synesis.com.au> writes:
Wrong!

I was going to try and strong-arm Burton into writing this up as an article.
I genuinely believe it would be a fascinating piece.

Of course, once we understand it intimately, I may than start banging on
about building in support for pedanticism up the wazoo!

"anderson" <anderson firestar.com.au> wrote in message
news:aeul9g$12jf$1 digitaldaemon.com...
 You had to ask! Matthew Wilson has been ragging on about complier pluggins
 (with language style enforcement) all week.

 (No offence Matthew)

 By the way Matthew have you put together anything more concrete? Like how
 you'd like the script/program code to look?

 "Burton Radons" <loth users.sourceforge.net> wrote in message
 news:3D12C82F.4010902 users.sourceforge.net...
 Matthew Wilson wrote:
 Can you guess what I'm going to ask ...
No.
Jun 22 2002
prev sibling next sibling parent Burton Radons <loth users.sourceforge.net> writes:
I've put up 0.0.2, which is a general menagerie of bug fixes, corrected 
linking, and many, many more exports from the executable.  It's 
sufficiently developed that the test 3D engine has a stable development 
environment (and it's fantastic).  What remains is DLL support and 
exporting the GC and threading properly.  Only one copy of Phobos is 
used by modules, but the partial copy in the executable has to be 
selectively exported when there's a dependency on there being only one 
instance of a variable.  This is part of why it's recommended that the 
executable code take no longer than thirty lines to get the job done - 
the 3d engine's main takes exactly half that.

So this is a transitional release - 0.0.3 should be a stable one and 
should follow soon, hopefully tommorrow.  I'll also put up the nascent 
3D engine to show how it can be done.

http://amateur-scrolls.sourceforge.net/old/stonewheel
Jun 22 2002
prev sibling parent reply Burton Radons <loth users.sourceforge.net> writes:
Okay, I've release Stonewheel 0.0.3.  This includes support for DLLs and 
ensures that the GC is being worked with properly.  I've also put up the 
nascent 3d engine/development system.  More the latter than the former - 
the "demo" is no more than a test (it doesn't even have resource 
management, much less textures or surfaces), but it shows how Stonewheel 
can be used to create it.

The only tweak I may be making to the dev system is to change how it 
does the package directories; imports have to be fully qualified stuff 
like "import package.video.video;".  I tried making it "import video;" 
but DMC bugs got in the way.

It can be found at:

http://amateur-scrolls.sourceforge.net/old/stonewheel/

stonewheel-0.0.3.zip is the current Stonewheel version
suffer-0.0.1.zip is the current 3d engine version
Jun 25 2002
parent Burton Radons <loth users.sourceforge.net> writes:
I discovered a serious bug wherein functions taking more than 1024 bytes 
were not being loaded properly, resulting in mysterious crashes.  I've 
updated the zip file for 0.0.3 with the fix.  All apologies.
Jun 26 2002