What's left for 1.0?
Pragma
ericanderton at yahoo.removeme.com
Thu Nov 16 13:40:27 PST 2006
Craig Black wrote:
> So it's possible for DDL to work in Linux. Are there plans for implementing
> this in the near future? If so how long would you expect it to take?
It's in the roadmap, although the milestones are really out of date.
It could be a very long time - weeks going into months - at the current
level of manpower we have right now. Lars and I are working on it when
we have time, but honestly, just grokking the spec (correctly) is going
to eat up most of that. Having implemented OMF correctly (I'm pretty
sure it's stable, it just needs some refactoring and TLC), I don't think
ELF will take anywhere near as long.
The upside is that the DDL core library is pretty much done. So the
worst of it is loading and interpreting an ELF's data correctly.
> Also, it seems that Walter will eventually implement some kind of run-time
> reflection. How do you think native reflection would influence DDL? It
> seems to me that it would make it easier to do what you are doing.
Honestly, I don't think Walter is going to go towards runtime
introspection and reflection when he's so close to getting full
introspection working great at compile-time. There are also problems
with the sheer overhead of symbolic information. I think we're fare
more likely to see this as a third-party thing, like a preprocessor that
emits extra D code to cover where Typeinfo is lacking.
But if D did have such a system in place, the only flaw would be that
the .exe's compiled-in reflection system would likely be unaware of the
dynamically loaded parts. DDL would have to provide a facade that makes
access to the in-situ (.exe part) and dynamic reflection hooks, seamless. :)
However, I am working on a fairly comprehensive runtime-reflection
solution as a part of D. Since DDL's already playing with symbolic
information, it's not a huge deal to serve it up in a way that's
searchable and iterable. The only drawback is that it's limited to what
gets exposed as symbols, so anything that's compiled into an offset or
constant (struct/class fields, enums, etc) is lost. IMO functions,
methods, modules and classes are adequate for most uses, so I'm going
ahead with it.
As to what would make it easier to do this, well I don't think
reflection is the big stumbling block here. In order, the major hurdles
have been:
1) Lack of experience (this is my first linker and module file loader)
2) Bad specifications (Just OMF. ELF has been a godsend by comparison)
3) Lack of working examples (there's Binutils and then there's DDL)
4) Loading & Linking problems are *very* hard to debug.
That said, being able to extract anything useful from linked modules has
been largely the work of Don and Tomasz. Actually, it's the one thing
that folks using the lib have found easiest to improve.
[another long-winded, rambling post by:]
--
- EricAnderton at yahoo
More information about the Digitalmars-d
mailing list