On Wed, 25 Jun 2003 10:18:17 +0100 Alastair Reid <[EMAIL PROTECTED]> wrote:
> > | It is sad that the usage of libraries containing polymorphic code > > | [...] > > | seems to imply runtime overheads, by preventing specialisation. > > > I agree that it is sad. The only way around it is to ship libraries > > with *all* their source code (perhaps hidden in the interface file). > > That could be done, but it'd be Real Work > > One way of tackling it would be to change ghc so that compilation doesn't > produce .o files containing machine code but, rather, files containing a > concise encoding of STG code. One possible concise encoding would be as > bytecodes. (With just a little care over their design, you can easily > uncompile bytecodes to recover the original code so we're not losing any > information.) Something similar was proposed by the gcc folk at their recent conference. The idea is that when you gcc -O4 your .c files, you get .o files containing an intermediate typed SSA form. Upon linking the program, gcc invokes a 'smart linker' which runs another pass on the whole program. This allows for all kinds of cross-module inlining, specialisation etc. http://www.linux.org.uk/~ajh/gcc/gccsummit-2003-proceedings.pdf pg 121, Architecture for a Next-Generation GCC Duncan _______________________________________________ Glasgow-haskell-users mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/glasgow-haskell-users