September 01, 2002
Hi *,

I
'm interested in using D as a script language in an image processing
system. It is very important for this application that the scripts are
executed as fast as possible. To achieve this, the following needs
exist:

- the D compiler should be able to produce bytecode
- the final bytecode file should not contain "native" code (from the D
inline assembler)
- when objects are released (or the last object reference is removed),
the "virtual machine" should notified - to have the flexibility to
implement a GC-style system or directly using object destruction.

As you can see, I
'd like to use D in an embedded system and don't like the idea to use
garbage collection in a memory-limited device.

Is something like this already available? How am I able to create my own "bytecode" from D source?

Best regards,
Mark Junker
September 04, 2002
Alexander Lahmann wrote:

> Hi *,
>
> I
> 'm interested in using D as a script language in an image processing
> system. It is very important for this application that the scripts are
> executed as fast as possible. To achieve this, the following needs
> exist:
>
> - the D compiler should be able to produce bytecode

Current compilers don't do this, but you could write a backend for GCC to produce your bytecode.  (There is currently a project in the works to write a D frontend for GCC).

> - the final bytecode file should not contain "native" code (from the D
> inline assembler)

I don't know if any of the current frontends do this, but it seems simple enough to disable this feature...

> - when objects are released (or the last object reference is removed), the "virtual machine" should notified - to have the flexibility to implement a GC-style system or directly using object destruction.

>
> As you can see, I
> 'd like to use D in an embedded system and don't like the idea to use
> garbage collection in a memory-limited device.

Just turn off the garbage collector, and do your own (C-style) memory management.  Otherwise, you'll have to implement your own reference counting algorithm.  That's possible, but difficult (especially if you want to handle loops safely).

--
The Villagers are Online! villagersonline.com

.[ (the fox.(quick,brown)) jumped.over(the dog.lazy) ]
.[ (a version.of(English).(precise.more)) is(possible) ]
?[ you want.to(help(develop(it))) ]