For Programmers: Free Programming Magazines  


Home > Archive > Dylan > October 2005 > A question about the compilers









You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

 

Author A question about the compilers
llothar

2005-10-15, 7:55 am

Hello,

I'm a person who looks for a compiler that generates native code and
has good support for modern programming styles.

The first questions to decide if Dylan is a useable language for my
project are


1) Does any Dylan Compiler has support for Multithreading

2) How efficient is the garbage collector (does handling of 20-30
million objects with a total size of 300 MB sounds reasonable - it is
possible with the popular Boehm-Weisser GC, when using typehints). Is
it incremental/generational

3) Is the Compiler able to create shared libraries, aka DLL's.

4) Does it run on MacOSX (Intel+PPC), WinXP, Linux and BSD's (Open+Net
on Intel)

5) Does the the compiler work incrementally and is able to compile a
1.000.000 LOC program is a resonable time, when not much in the
interfaces is changed.

6) Does a debugger exist.

7) Is there any way i can get a stracktrace if a dylan program crashs
on the customer side where no debugger is installed.


I think that there are multiple implementations, i only looked a very
little bit at Gwydion Dylan, so don't restrict this to "one compiler"
even if my wordings sound so.

Peter S. Housel

2005-10-16, 3:57 am

"llothar" <llothar@web.de> writes:

> Hello,
>
> I'm a person who looks for a compiler that generates native code and
> has good support for modern programming styles.


(Note that Gwydion Dylan produces native code by way of C, which is
then compiled using gcc or some other C compiler.)

>
> The first questions to decide if Dylan is a useable language for my
> project are
>
> 1) Does any Dylan Compiler has support for Multithreading


Gwydion Dylan is currently single-threaded.

The Open Dylan compiler supports multi-threading on both x86-Win32 and
x86-Linux.

> 2) How efficient is the garbage collector (does handling of 20-30
> million objects with a total size of 300 MB sounds reasonable - it is
> possible with the popular Boehm-Weisser GC, when using typehints). Is
> it incremental/generational


Gwydion Dylan uses the Boehm-Weiser conservative garbage collector,
which works in incremental or non-incremental modes. Gwydion does not
make use of the type hints facility.

Open Dylan uses the Memory Pool System from Ravenbrook. MPS is
generational and incremental.

> 3) Is the Compiler able to create shared libraries, aka DLL's.


Gwydion Dylan can be used to create shared libraries, though using
them in non-Dylan programs can be slightly tricky.

Open Dylan always compiles non-executable libraries as DLLs/shared
libraries. On Linux these libraries can not currently be used with
non-Dylan programs, though I suspect we could fix that without too
much trouble if someone needs to do it.

> 4) Does it run on MacOSX (Intel+PPC), WinXP, Linux and BSD's (Open+Net
> on Intel)


Gwydion Dylan runs on Mac OS X PPC, and will run on Mac OS Intel as
soon as someone ports the Boehm-Weiser garbage collector. It runs on
Windows XP under Cygwin (a native MSVC port would be possible if
someone were interested in maintaining it.) Linux, FreeBSD, and
NetBSD ports are currently maintained.

Open Dylan runs on x86-Win32 and x86-Linux. (We also use it on
FreeBSD using the Linux ABI support.)

> 5) Does the the compiler work incrementally and is able to compile a
> 1.000.000 LOC program is a resonable time, when not much in the
> interfaces is changed.


Gwydion Dylan is not particularly incremental. The Open Dylan
compiler is a bit more so.

> 6) Does a debugger exist.


Gwydion Dylan users generally rely on gdb. Source location information
allows backtraces to refer back to Dylan source code, but that is
about the extent of the debugger support. (It is usually enough.)

The Open Dylan IDE includes full support for debugging on Win32. We
are working on extending this to Linux.

> 7) Is there any way i can get a stracktrace if a dylan program crashs
> on the customer side where no debugger is installed.


Open Dylan on Win32 includes batch-debug.exe, which can dump a
detailed Dylan-oriented stack trace when an abort occurs in the
program it is controlling.

-Peter-
brogoff

2005-10-17, 6:57 pm

On Sat, 15 Oct 2005, Peter S. Housel wrote:
> "llothar" <llothar@web.de> writes:
>
>
> Gwydion Dylan is currently single-threaded.


Does that qualifier suggest that some multithreading ability is on a
Gwydion implementor's short list of enhancements?

> The Open Dylan compiler supports multi-threading on both x86-Win32 and
> x86-Linux.


Is there support for any other architecture in the works?

>
> Gwydion Dylan uses the Boehm-Weiser conservative garbage collector,
> which works in incremental or non-incremental modes. Gwydion does not
> make use of the type hints facility.


I read that Mercury (who's implementation generates C and also uses the
Boehm Weiser collector) implementors made a version with an accurate GC
which ran 25% faster on a number of tests. Do you know if any Gwydion
implementors have considered plugging in other collectors?

Gwydion availability sure has improved, if there were an interpreter for
full Dylan that would be wonderful.

-- Brian

Peter S. Housel

2005-10-18, 6:58 pm

brogoff <brogoff@speakeasy.net> writes:
> On Sat, 15 Oct 2005, Peter S. Housel wrote:
>
> Does that qualifier suggest that some multithreading ability is on a
> Gwydion implementor's short list of enhancements?


Not at the moment. Someone was working on the problem a year ago, but
hasn't touched it lately.

>
> Is there support for any other architecture in the works?


In the Open Dylan sources there is a native PPC backend. It doesn't
properly handle thread-local variables, and nobody has actually tried
running it since it was open-sourced, but it's there. There is also a
C backend that's more or less in the same situation.

>
>
> I read that Mercury (who's implementation generates C and also uses the
> Boehm Weiser collector) implementors made a version with an accurate GC
> which ran 25% faster on a number of tests. Do you know if any Gwydion
> implementors have considered plugging in other collectors?


Adding support for using the Boehm type hints facility would not be
difficult. I'm not aware that anyone else has actively thought about
trying to use another collector.

> Gwydion availability sure has improved, if there were an interpreter for
> full Dylan that would be wonderful.


The beginnings of an interpreter for the d2c intermediate code can be
found in the d2c sources. It was not designed for performacne,
though, and it doesn't integrate with the runtime library. These are
solvable problems, though.

-Peter-
Sponsored Links







Also available: Server administration forum archive | Web Design forum archive | Software forum archive | Hardware reviews archive

Copyright 2008 codecomments.com