www.digitalmars.com         C & C++   DMDScript  

D - Announce: D Linux Port

reply Burton Radons <loth users.sourceforge.net> writes:
I've put up my Linux port as it stands at the uber-minimalistic page:

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

It's deficient in many, many ways, but most importantly in a lack of 
delegates, no real exception support, no threading, very dodgy support 
of static, and a horrible code generator.  I'm not going to be making it 
significantly more advanced as I just implemented it to act as a 
bootstrap for the compiler translated into D.
Aug 06 2002
next sibling parent reply Burton Radons <loth users.sourceforge.net> writes:
Burton Radons wrote:

 I've put up my Linux port as it stands at the uber-minimalistic page:
 
 http://amateur-scrolls.sourceforge.net/old/dli/
 
 It's deficient in many, many ways, but most importantly in a lack of 
 delegates, no real exception support, no threading, very dodgy support 
 of static, and a horrible code generator.  I'm not going to be making it 
 significantly more advanced as I just implemented it to act as a 
 bootstrap for the compiler translated into D.
v0.0.3: Static support is fixed, associative arrays are in, various bug fixes and extensions, and a much more complete TypeInfo. Actual introspection is not likely to find its way in until after the second-stage translation (where the compiler written in D can compile itself).
Aug 07 2002
parent Burton Radons <loth users.sourceforge.net> writes:
Burton Radons wrote:

 Burton Radons wrote:
 
 I've put up my Linux port as it stands at the uber-minimalistic page:

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

 It's deficient in many, many ways, but most importantly in a lack of 
 delegates, no real exception support, no threading, very dodgy support 
 of static, and a horrible code generator.  I'm not going to be making 
 it significantly more advanced as I just implemented it to act as a 
 bootstrap for the compiler translated into D.
v0.0.3: Static support is fixed, associative arrays are in, various bug fixes and extensions, and a much more complete TypeInfo. Actual introspection is not likely to find its way in until after the second-stage translation (where the compiler written in D can compile itself).
I put the wrong filename in the HTML file; that's fixed now.
Aug 07 2002
prev sibling next sibling parent "Walter" <walter digitalmars.com> writes:
Wow! Great work!

"Burton Radons" <loth users.sourceforge.net> wrote in message
news:3D4F75DA.8040008 users.sourceforge.net...
 I've put up my Linux port as it stands at the uber-minimalistic page:

 http://amateur-scrolls.sourceforge.net/old/dli/
Aug 07 2002
prev sibling next sibling parent reply andy <acoliver apache.org> writes:
Burton Radons wrote:
 I've put up my Linux port as it stands at the uber-minimalistic page:
 
 http://amateur-scrolls.sourceforge.net/old/dli/
 
 It's deficient in many, many ways, but most importantly in a lack of 
 delegates, no real exception support, no threading, very dodgy support 
 of static, and a horrible code generator.  I'm not going to be making it 
 significantly more advanced as I just implemented it to act as a 
 bootstrap for the compiler translated into D.
 
What compiler do I need to compile it? It doesn't work with GCC 2.96 (that much is for sure).
Aug 11 2002
parent reply Burton Radons <loth users.sourceforge.net> writes:
andy wrote:

 Burton Radons wrote:
 
 I've put up my Linux port as it stands at the uber-minimalistic page:

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

 It's deficient in many, many ways, but most importantly in a lack of 
 delegates, no real exception support, no threading, very dodgy support 
 of static, and a horrible code generator.  I'm not going to be making 
 it significantly more advanced as I just implemented it to act as a 
 bootstrap for the compiler translated into D.
What compiler do I need to compile it? It doesn't work with GCC 2.96 (that much is for sure).
What's the problem? It's very much vanilla C++ - I can only think that I use typeinfo a couple times for failure diagnostics. I use GCC 3.0.2. If it is RTTI, I can excise that for the next release.
Aug 11 2002
parent reply andy <acoliver apache.org> writes:
Output from GCC 3.1.1:

[andy localhost dli-0.0.3]$ make
gcc impcnvgen.cc -o impcnvgen
./impcnvgen
gcc idgen.cc -o idgen
./idgen
makedepend --  -- access.cc attrib.cc backend.cc bit.cc cast.cc class.cc 
constfo
ld.cc dchar.cc debcond.cc dt.cc declaration.cc dsymbol.cc dump.cc el.cc 
enum.cc
expression.cc func.cc html.cc id.cc identifier.cc impcnvtab.cc import.cc 
init.cc
  inline.cc irstate.cc lexer.cc link.cc machine.cc machine-i386.cc 
mangle.cc mars
.cc mem.cc module.cc mtype.cc optimize.cc parse.cc root.cc scope.cc 
statement.cc
  stringtable.cc struct.cc tocsym.cc todt.cc type.cc version.cc 
-I/usr/local/incl
ude -DMAKEDEPEND
"dump.cc":104:  defined __cplusplus ? __GNUC_PREREQ (2, 6) : 
__GNUC_PREREQ (2, 4
)
                                                     ^--- expecting :
echo "for remaking the dependencies" > .depend
g++ -Werror -g   -c -o access.o access.cc
g++ -Werror -g   -c -o attrib.o attrib.cc
g++ -Werror -g   -c -o backend.o backend.cc
g++ -Werror -g   -c -o bit.o bit.cc
g++ -Werror -g   -c -o cast.o cast.cc
g++ -Werror -g   -c -o class.o class.cc
g++ -Werror -g   -c -o constfold.o constfold.cc
g++ -Werror -g   -c -o dchar.o dchar.cc
g++ -Werror -g   -c -o debcond.o debcond.cc
g++ -Werror -g   -c -o dt.o dt.cc
g++ -Werror -g   -c -o declaration.o declaration.cc
declaration.cc:11:20: typeinfo: No such file or directory
declaration.cc: In member function `virtual void
    VarDeclaration::semantic(Scope*)':
declaration.cc:258: must #include <typeinfo> before using typeid
make: *** [declaration.o] Error 1
[andy localhost dli-0.0.3]$

OUTPUT from GCC 2.96 and 3.0.2:

c++ access.o attrib.o backend.o bit.o cast.o class.o constfold.o dchar.o 
debcond
.o dt.o declaration.o dsymbol.o dump.o el.o enum.o expression.o func.o 
html.o id
.o identifier.o impcnvtab.o import.o init.o inline.o irstate.o lexer.o 
link.o ma
chine.o machine-i386.o mangle.o mars.o mem.o module.o mtype.o optimize.o 
parse.o
  root.o scope.o statement.o stringtable.o struct.o tocsym.o todt.o 
type.o versio
n.o -o dli -lstdc++ -lgc
/usr/bin/ld: cannot find -lgc
collect2: ld returned 1 exit status
make: *** [dli] Error 1

Then I removed the -lgc (using 3.0.2) and it worked...  go figure.

-Andy



Burton Radons wrote:
 andy wrote:
 
 Burton Radons wrote:

 I've put up my Linux port as it stands at the uber-minimalistic page:

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

 It's deficient in many, many ways, but most importantly in a lack of 
 delegates, no real exception support, no threading, very dodgy 
 support of static, and a horrible code generator.  I'm not going to 
 be making it significantly more advanced as I just implemented it to 
 act as a bootstrap for the compiler translated into D.
What compiler do I need to compile it? It doesn't work with GCC 2.96 (that much is for sure).
What's the problem? It's very much vanilla C++ - I can only think that I use typeinfo a couple times for failure diagnostics. I use GCC 3.0.2. If it is RTTI, I can excise that for the next release.
Aug 11 2002
parent reply Burton Radons <loth users.sourceforge.net> writes:
andy wrote:

 "dump.cc":104:  defined __cplusplus ? __GNUC_PREREQ (2, 6) : 
 __GNUC_PREREQ (2, 4
 )
                                                     ^--- expecting :
Oh yah, forgot about this. This is a problem with makedepend - it doesn't handle the trinary expression in preprocessor statements. I hacked this by sudoing into root and editing /usr/include/assert.h to get around it (obviously the block is always going to be expanded). A better solution needs to be implemented, but I forgot all about the problem.
 declaration.cc:11:20: typeinfo: No such file or directory
 declaration.cc: In member function `virtual void
    VarDeclaration::semantic(Scope*)':
 declaration.cc:258: must #include <typeinfo> before using typeid
 make: *** [declaration.o] Error 1
 [andy localhost dli-0.0.3]$
You must have an installation problem - it knows that it should handle "#include <typeinfo>" but doesn't. But I've removed this dependency in my next release.
 OUTPUT from GCC 2.96 and 3.0.2:
 
 c++ access.o attrib.o backend.o bit.o cast.o class.o constfold.o dchar.o 
 debcond
 .o dt.o declaration.o dsymbol.o dump.o el.o enum.o expression.o func.o 
 html.o id
 .o identifier.o impcnvtab.o import.o init.o inline.o irstate.o lexer.o 
 link.o ma
 chine.o machine-i386.o mangle.o mars.o mem.o module.o mtype.o optimize.o 
 parse.o
  root.o scope.o statement.o stringtable.o struct.o tocsym.o todt.o 
 type.o versio
 n.o -o dli -lstdc++ -lgc
 /usr/bin/ld: cannot find -lgc
Oops! I don't use the library. I've put up a new version (0.0.5) that removes the dependency on typeid, this bug here, and includes the .depend timestamp so that makedepend shouldn't be invoked normally. You can grab it at: http://amateur-scrolls.sourceforge.net/old/dli/dli-0.0.5.tar.gz Hopefully this will solve your problems.
Aug 11 2002
parent andy <acoliver apache.org> writes:
I don't think the 3.1.1 issue was an install error.  I installed it the 
same way I installed 3.0.2 which worked (once I removed the -lgc).  I 
think its a "this doesn't work under 3.1.1" issue.  No matter 3.0.x is 
good enough for me.

This time 3.0.2 worked out of the box (without me hacking).

The (red hat stock compiler) 2.96 didn't work, but dunno why.

What are your plans for this and the D port?  I'm starting to like your
approach better.  Will it be open?


-Andy




Burton Radons wrote:
 andy wrote:
 
 "dump.cc":104:  defined __cplusplus ? __GNUC_PREREQ (2, 6) : 
 __GNUC_PREREQ (2, 4
 )
                                                     ^--- expecting :
Oh yah, forgot about this. This is a problem with makedepend - it doesn't handle the trinary expression in preprocessor statements. I hacked this by sudoing into root and editing /usr/include/assert.h to get around it (obviously the block is always going to be expanded). A better solution needs to be implemented, but I forgot all about the problem.
 declaration.cc:11:20: typeinfo: No such file or directory
 declaration.cc: In member function `virtual void
    VarDeclaration::semantic(Scope*)':
 declaration.cc:258: must #include <typeinfo> before using typeid
 make: *** [declaration.o] Error 1
 [andy localhost dli-0.0.3]$
You must have an installation problem - it knows that it should handle "#include <typeinfo>" but doesn't. But I've removed this dependency in my next release.
 OUTPUT from GCC 2.96 and 3.0.2:

 c++ access.o attrib.o backend.o bit.o cast.o class.o constfold.o 
 dchar.o debcond
 .o dt.o declaration.o dsymbol.o dump.o el.o enum.o expression.o func.o 
 html.o id
 .o identifier.o impcnvtab.o import.o init.o inline.o irstate.o lexer.o 
 link.o ma
 chine.o machine-i386.o mangle.o mars.o mem.o module.o mtype.o 
 optimize.o parse.o
  root.o scope.o statement.o stringtable.o struct.o tocsym.o todt.o 
 type.o versio
 n.o -o dli -lstdc++ -lgc
 /usr/bin/ld: cannot find -lgc
Oops! I don't use the library. I've put up a new version (0.0.5) that removes the dependency on typeid, this bug here, and includes the .depend timestamp so that makedepend shouldn't be invoked normally. You can grab it at: http://amateur-scrolls.sourceforge.net/old/dli/dli-0.0.5.tar.gz Hopefully this will solve your problems.
Aug 11 2002
prev sibling next sibling parent Burton Radons <loth users.sourceforge.net> writes:
v0.0.4: Introspection is far along enough that serialising is in; it's 
implemented in the module "pickle".  Also comes with the standard 
cavalcade of code generation fixes, more support, etcetera.  Also, the 
code generator has been streamlined significantly.
Aug 11 2002
prev sibling next sibling parent Burton Radons <loth users.sourceforge.net> writes:
v0.0.6: cent/ucent, complex/imaginary, and delegate support has been 
added.  This makes the supported types list complete, although I need to 
go through the code generator and fill out the multitudinous type holes 
that exist in every operation.

http://amateur-scrolls.sourceforge.net/old/dli/dli-0.0.6.tar.gz
Aug 12 2002
prev sibling next sibling parent reply Burton Radons <loth users.sourceforge.net> writes:
v0.0.7: Windows is now supported using MSVC and NASM.  More work on it 
needs to be done, but that temporary exposure nearly killed me.  Blech. 
  Anyway, it compiles and runs the test program.
Aug 14 2002
parent andy <acoliver apache.org> writes:
Burton Radons wrote:
 v0.0.7: Windows is now supported using MSVC and NASM.  More work on it 
 needs to be done, but that temporary exposure nearly killed me.  Blech. 
  Anyway, it compiles and runs the test program.
 
LOL! :-)
Aug 14 2002
prev sibling next sibling parent reply Burton Radons <loth users.sourceforge.net> writes:
v0.0.8: Nothing.  Except that all the unittests in Phobos are compiled 
and checked, which required large changes to code generation.  The 
floating point is redone to get around the stack depth problem, and I 
added something but I can't remember what.  Hm.  The math2 precision is 
currently lower because there's no support for asm statements.

Oh, and an extension made its way in awhile back.  Casting from a char[] 
to a wchar[] and vice-versa results in a full conversion with a copy of 
the array.  Characters above 255 are dropped in the latter conversion. 
Since these conversions are nonsensical without this, I don't see any 
solid reason to not do it.
Aug 15 2002
next sibling parent reply Pavel Minayev <evilone omen.ru> writes:
On Thu, 15 Aug 2002 00:26:05 -0700 Burton Radons <loth users.sourceforge.net> 
wrote:

 v0.0.8: Nothing.  Except that all the unittests in Phobos are compiled 
 and checked, which required large changes to code generation.  The 
 floating point is redone to get around the stack depth problem, and I 
 added something but I can't remember what.  Hm.  The math2 precision is 
 currently lower because there's no support for asm statements.
I don't think that math2 is a standard Phobos module (yet?). So you shouldn't really care much about it.
 Oh, and an extension made its way in awhile back.  Casting from a char[] 
 to a wchar[] and vice-versa results in a full conversion with a copy of 
 the array.  Characters above 255 are dropped in the latter conversion. 
 Since these conversions are nonsensical without this, I don't see any 
 solid reason to not do it.
And DMD doesn't do that?
Aug 15 2002
parent "Walter" <walter digitalmars.com> writes:
"Pavel Minayev" <evilone omen.ru> wrote in message
news:CFN374836427656134 news.digitalmars.com...
 Oh, and an extension made its way in awhile back.  Casting from a char[]
 to a wchar[] and vice-versa results in a full conversion with a copy of
 the array.  Characters above 255 are dropped in the latter conversion.
 Since these conversions are nonsensical without this, I don't see any
 solid reason to not do it.
And DMD doesn't do that?
DMD won't convert a wchar string to char if there are any characters above 255 in it.
Aug 15 2002
prev sibling parent "Walter" <walter digitalmars.com> writes:
"Burton Radons" <loth users.sourceforge.net> wrote in message
news:3D5B578D.1040700 users.sourceforge.net...
 v0.0.8: Nothing.  Except that all the unittests in Phobos are compiled
 and checked, which required large changes to code generation.
Contracts work great!
Aug 15 2002
prev sibling next sibling parent reply Burton Radons <loth users.sourceforge.net> writes:
http://www.opend.org/dli/arc/dli-0.0.9.tar.gz

v0.0.9: Explicit varargs, using:

    char [] fmt (char [] format, generic [] args...)
    {
        return fmt ("%", format, args...);
    }

    char [] fmt (char startcode, char [] format, generic [] args...);

To define such functions.  This also shows an expansion; putting "..." 
after the last argument of a function call expands that generic list.

Type-safe varargs wouldn't be helpful without a printf, would it?  You 
can use "print" for where you'd use printf and fmt, as above, to format 
a string.  Using "%s" will work on all objects, and will be turned into 
%d for ints, %g for reals, handle strings, and a toFormat call on 
objects.  The method is given the full format specifier, which includes 
the code (s, d, e, f, etc.), so you can handle other types specifically.

The other main code is "%r", which is similar to Python; it's for 
printing out the value in the same manner in which it could be input. 
So printing out the string "foo\nbar" results in "foo\nbar", with the 
backslash and the quotations.  Handy for debug messages.

Complex and imaginary aren't handled, as aren't short, ushort, byte, and 
ubyte.  I'll revisit the code later.

Otherwise, there are a couple things that I can't remember.  (4.5).isnan 
now works, as does isinfinite and isnormal.  Handy!  I don't know where 
the rest of the 30 compressed kb came from.
Aug 21 2002
parent reply Burton Radons <loth users.sourceforge.net> writes:
Ack.  Fixed an important bug in code generation and updated the archive. 
  Precision is much improved, and it won't randomly decide you really 
want your numbers in hendecamal instead of boring old decimal.

To make it not seem a complete bugfix, I added stuff that shoulda been 
there in the first place.  You can print out arrays:

    int [] x = [1, 2, 3, 4, 5];

    fmt ("%s", x);

This results in the string "[1, 2, 3, 4, 5]".  I've put in support for 
the other basic types.  You can change the argument position using, for 
example, "%4$d %d"; now this argument will use the fourth argument 
passed (indexing from one), then the fifth.  I also forgot to handle 
class objects; that's been fixed.
Aug 21 2002
parent reply Pavel Minayev <evilone omen.ru> writes:
On Wed, 21 Aug 2002 16:23:54 -0700 Burton Radons <loth users.sourceforge.net> 
wrote:

 Ack.  Fixed an important bug in code generation and updated the archive. 
   Precision is much improved, and it won't randomly decide you really 
 want your numbers in hendecamal instead of boring old decimal.
 
 To make it not seem a complete bugfix, I added stuff that shoulda been 
 there in the first place.  You can print out arrays:
 
     int [] x = [1, 2, 3, 4, 5];
 
     fmt ("%s", x);
 
 This results in the string "[1, 2, 3, 4, 5]".  I've put in support for 
Walter, I really hope this will be added to the official D specification!
Aug 21 2002
next sibling parent reply Jonathan Andrew <jon ece.arizona.edu> writes:
Pavel Minayev wrote:
 On Wed, 21 Aug 2002 16:23:54 -0700 Burton Radons <loth users.sourceforge.net> 
 wrote:
 
 
Ack.  Fixed an important bug in code generation and updated the archive. 
  Precision is much improved, and it won't randomly decide you really 
want your numbers in hendecamal instead of boring old decimal.

To make it not seem a complete bugfix, I added stuff that shoulda been 
there in the first place.  You can print out arrays:

    int [] x = [1, 2, 3, 4, 5];

    fmt ("%s", x);

This results in the string "[1, 2, 3, 4, 5]".  I've put in support for 
Walter, I really hope this will be added to the official D specification!
There isn't a tostring method for arrays already?
Aug 22 2002
parent Pavel Minayev <evilone omen.ru> writes:
On Thu, 22 Aug 2002 00:01:11 -0700 Jonathan Andrew <jon ece.arizona.edu> wrote:

 There isn't a tostring method for arrays already?
Couldn't find it in the docs.
Aug 22 2002
prev sibling parent reply Burton Radons <loth users.sourceforge.net> writes:
Pavel Minayev wrote:

 On Wed, 21 Aug 2002 16:23:54 -0700 Burton Radons <loth users.sourceforge.net> 
 wrote:
 
 
Ack.  Fixed an important bug in code generation and updated the archive. 
  Precision is much improved, and it won't randomly decide you really 
want your numbers in hendecamal instead of boring old decimal.

To make it not seem a complete bugfix, I added stuff that shoulda been 
there in the first place.  You can print out arrays:

    int [] x = [1, 2, 3, 4, 5];

    fmt ("%s", x);

This results in the string "[1, 2, 3, 4, 5]".  I've put in support for 
Walter, I really hope this will be added to the official D specification!
The generic-list varargs took just a couple dozen lines of code to support. Printing lists, of course, takes full introspection, not the variety Walter does (which is just referring to one of a set of classes in Phobos), and that's been about a thousand lines so far. But straightforward to write, and always based on actual functionality. It's been great to have generic-list varargs around, and it obsoletes some bloody ugly functions in Phobos. Plus, being able to %s anything fits better in templating. I'm mixing this in with a new version announcement: http://www.opend.org/dli/arc/dli-0.1.0.tar.gz v0.1.0: Cleaning day! Got rid of the spectre of backend past. Also put in proportional overallocation of lists; bugs are bound to be bountiful, and it could detect far more situations where ownership is passed. Added bignum as an integral type. I needed it for cent/ucent anyway, and a compiler can do a bloody lot for them. Also got rid of the print method of object, as it was interfering with the print function, which I think is more useful, and just five bytes longer. Added println. Recursion in formatting is now handled, thread unsafe-wise. If a recursion is attempted, "..." is substituted. One trick that'll get lost in the shuffle is that fmt can take an extra parameter; you can change the start code. By default it is "%", but you can specify whatever you want, which is handy for situations like AT&T machine code where "%" is very common: fmt (" ", " s", 45); Another thing that isn't really mentioned anywhere is that fmt doesn't handle formatting. This is passed off to the TypeInfo. If it's a class reference, it's handed to the toFormat method, which is passed the full format specifier that contains all the flags and whatnot. So not only can your class do spiff formatting, but you can invent new formatting codes; just handle them in that method. If this new code is passed to another type, it'll just treat it like %s.
Aug 22 2002
next sibling parent reply Pavel Minayev <evilone omen.ru> writes:
On Thu, 22 Aug 2002 17:58:51 -0700 Burton Radons <loth users.sourceforge.net> 
wrote:

 The generic-list varargs took just a couple dozen lines of code to 
 support.  Printing lists, of course, takes full introspection, not the 
 variety Walter does (which is just referring to one of a set of classes 
 in Phobos), and that's been about a thousand lines so far.  But 
 straightforward to write, and always based on actual functionality.
I wonder if your printing code could be included into "official" Phobos... what license do you distribute your compiler under?
Aug 22 2002
parent Burton Radons <loth users.sourceforge.net> writes:
Pavel Minayev wrote:

 On Thu, 22 Aug 2002 17:58:51 -0700 Burton Radons <loth users.sourceforge.net> 
 wrote:
 
 
The generic-list varargs took just a couple dozen lines of code to 
support.  Printing lists, of course, takes full introspection, not the 
variety Walter does (which is just referring to one of a set of classes 
in Phobos), and that's been about a thousand lines so far.  But 
straightforward to write, and always based on actual functionality.
I wonder if your printing code could be included into "official" Phobos... what license do you distribute your compiler under?
Artistic would likely be least confusing.
Aug 24 2002
prev sibling parent andy <acoliver apache.org> writes:
It would be good if a command line option could be added early on -noX 
or something for no Experimental, the thought being that when compiled 
as such the code should work in both the DMD and dli compiler.

-Andy

Burton Radons wrote:
 Pavel Minayev wrote:
 
 On Wed, 21 Aug 2002 16:23:54 -0700 Burton Radons 
 <loth users.sourceforge.net> wrote:


 Ack.  Fixed an important bug in code generation and updated the 
 archive.  Precision is much improved, and it won't randomly decide 
 you really want your numbers in hendecamal instead of boring old 
 decimal.

 To make it not seem a complete bugfix, I added stuff that shoulda 
 been there in the first place.  You can print out arrays:

    int [] x = [1, 2, 3, 4, 5];

    fmt ("%s", x);

 This results in the string "[1, 2, 3, 4, 5]".  I've put in support for 
Walter, I really hope this will be added to the official D specification!
The generic-list varargs took just a couple dozen lines of code to support. Printing lists, of course, takes full introspection, not the variety Walter does (which is just referring to one of a set of classes in Phobos), and that's been about a thousand lines so far. But straightforward to write, and always based on actual functionality. It's been great to have generic-list varargs around, and it obsoletes some bloody ugly functions in Phobos. Plus, being able to %s anything fits better in templating. I'm mixing this in with a new version announcement: http://www.opend.org/dli/arc/dli-0.1.0.tar.gz v0.1.0: Cleaning day! Got rid of the spectre of backend past. Also put in proportional overallocation of lists; bugs are bound to be bountiful, and it could detect far more situations where ownership is passed. Added bignum as an integral type. I needed it for cent/ucent anyway, and a compiler can do a bloody lot for them. Also got rid of the print method of object, as it was interfering with the print function, which I think is more useful, and just five bytes longer. Added println. Recursion in formatting is now handled, thread unsafe-wise. If a recursion is attempted, "..." is substituted. One trick that'll get lost in the shuffle is that fmt can take an extra parameter; you can change the start code. By default it is "%", but you can specify whatever you want, which is handy for situations like AT&T machine code where "%" is very common: fmt (" ", " s", 45); Another thing that isn't really mentioned anywhere is that fmt doesn't handle formatting. This is passed off to the TypeInfo. If it's a class reference, it's handed to the toFormat method, which is passed the full format specifier that contains all the flags and whatnot. So not only can your class do spiff formatting, but you can invent new formatting codes; just handle them in that method. If this new code is passed to another type, it'll just treat it like %s.
Aug 26 2002
prev sibling next sibling parent Burton Radons <loth users.sourceforge.net> writes:
http://www.opend.org/dli/arc/dli-0.1.1.tar.gz

v0.1.1: I said that I put in bignum in 0.1.0; that was a filthy lie. 
But it's in now, and actually has a small test suite.  I'll be adding 
test suites for the other types.

Multithreading is also in.  Synchronized doesn't yet work and it will 
throw up on practically every method call.  I didn't want to address 
exceptions and a fuller GC until this was in.
Aug 27 2002
prev sibling parent reply Burton Radons <loth users.sourceforge.net> writes:
Version 0.1.2:

http://www.opend.org/dli/DLinux.html
http://www.opend.org/dli/arc/dli-0.1.2.tar.gz

Mostly bug fixes for Russ, but properties are now in.  The full bug fix 
list:

- Having a test condition on a void type now gives a proper error.

- Command-line arguments are properly handled.

- Manually flush the stream before core-dumping.

- TypeStruct.tsize wasn't implemented, also .equals.

- DLI object files are now compiled with their full path name to give 
proper debug errors.

- Linker mode is now in.  "-o output" explicitly gives an output file; 
otherwise the first module name is used.  If you output a shared 
library, it automatically adds "-shared".  "-llibrary" also works, and 
"-nophobos" skips including the Phobos library if it's not searched 
properly.  It cleans up object files too.

- Doesn't generate assembly files by default any more.  You can generate 
them with "-S"; note that this doesn't halt running like in GCC.

- "a in b" for arrays.
Nov 01 2002
parent Russ Lewis <spamhole-2001-07-16 deming-os.org> writes:
Burton Radons wrote:

 Version 0.1.2:

 http://www.opend.org/dli/DLinux.html
 http://www.opend.org/dli/arc/dli-0.1.2.tar.gz

 Mostly bug fixes for Russ, but properties are now in.  The full bug fix
 list:
Nice to be known for something :) -- The Villagers are Online! http://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))) ]
Nov 02 2002