View mode: basic / threaded / horizontal-split · Log in · Help
June 29, 2011
[pre-alpha] D to JavaScript source translator
Hi all,

Before I go any futher: even if you are interested in this it's pretty 
much useless in its current state. I hope to have it kind-of workable by 
the end of the week, no promises though.

So. As part of my continued work on Serenity ( 
https://github.com/mrmonday/serenity ), a little pre-alpha web framework 
I've been working on, I've begun work on a D to JavaScript source 
translator.

Rather than poisoning the world with more C++, I wrote some basic 
bindings to the dmd frontend in D, which means the whole thing can 
almost be entirely written in D.

Current state:
 * Can translate:
    - basic flow control
    - functions and their parameters
    - strings and integral types
 * Cannot translate:
    - Loops
    - Variables
    - Classes
    - Pretty much anything
 * No way to inject javascript
 * No support for javascript builtins
   + No validation for either of the above
 * No checking for name conflicts with js keywords
 * No windows support - there are some hacks to interface with more C++
   than D allows out of the box, they're GCC specific, meaning linux/osx
   /bsd only. Could work in mingw, with gdc, I haven't tried.
 * No optimizer - this will eventually depend on having the closure
   compiler installed
 * One-to-one translation, not semantically equivalent to D
   + Making it semantically equivalent would slow resulting code
     significantly
   + This will probably be resolved with a version() statement later on
   + This said, I will try and match as best I can without a slowdown
 * Missing pre-defined version identifiers
 * Some semantic error checking is done when creating object files
   in dmd, this checking is not done
 * A lot of it's rather hacky and needs cleaning up
 * I have no idea how it's licensed, I'll need to discuss this with
   Walter
 * Outputs to stdout currently, doesn't handle multiple files

You can find the source code at:

https://github.com/mrmonday/dmd

In the js branch. Again, it's not worth looking at yet, unless you're 
curious about the C++ bindings. Note that they don't bind the entirety 
of the dmd frontend, just what I've needed so far and a bit more.

There was something else I was going to mention, I forget what though.

-- 
Robert
http://octarineparrot.com/
June 29, 2011
Re: [pre-alpha] D to JavaScript source translator
On 29/06/2011 21:57, Robert Clipsham wrote:
> There was something else I was going to mention, I forget what though.

I remembered. The D source requires dmd pull request #131 to be merged 
if you want to compile it (which you don't).

-- 
Robert
http://octarineparrot.com/
Top | Discussion index | About this forum | D home