Re: Running D in the Java VM

2013-11-24 Thread Paulo Pinto

Am 22.11.2013 17:15, schrieb John Colvin:

On Friday, 22 November 2013 at 13:36:08 UTC, Paulo Pinto wrote:

I don't have any issue with Java and do like the language, but it has
lost its place if you care about portable code across mobile platforms.


Ironic, much? :p


Sadly yes. There is hope with RoboVM, but that is community driven.

Oracle seems more interested into pushing HTML5 frontends with Java 
running on the server side.


Last year that made some PR announcements about Java support for iOS and 
Android. When what they actually had was an ADF web application!


--
Paulo



Re: Running D in the Java VM

2013-11-23 Thread Rémy Mouëza

I haven't tried it, but here is an idea to target the JVM:

- use ldc `-output-ll` option to generate LLVM IR.
- use the LLJVM backend to generate some Jasmin assembly code 
from the LLVM IR ( as described on 
https://github.com/davidar/lljvm)

- link with the LLJVM linker.

This may produce some java bytecode, but to have something 
working properly I suppose the D runtime should also be compiled 
along with Phobos.


This may be a faster way to get to the JVM than writing a source 
translator. However, this is not the best way to get Java 
compatability since it does not seems to be possible to access 
the Java library from the input D code.


On Friday, 15 November 2013 at 07:13:34 UTC, Jeremy DeHaan wrote:

Hey everyone!

I have been experimenting for the past couple of days with an 
idea I had, and since I recently made a little progress I 
thought I would share some of what I have been doing with you. 
What I have done, in a nutshell, is began the process for a 
language converter that takes D source files, converts them 
into Java source files, and then compiles them as Java class 
files so that they can be ran on Java's VM. It is extremely 
limited in what it can do right now, only being able to 
convert/compile a simple Hello World program, but I was proud 
of myself for getting even that far so I wanted to brag. :P


You may want to ask, Hey, man. D is a great language. Why 
would I ever want to convert it to Java? Normally, you 
wouldn't. Java blows. What I am envisioning for this project is 
something quite magical in my opinion. If we can take D code 
and have it compile into Java class files, we can then compile 
them into Android dex files. This would make D able to build 
and run on Android devices through its VM. Sure, people are 
working on getting D to compile to ARM binaries, but this could 
be another option as a Java alternative on Android.(eventually)


Unfortunately I do not know much about compilers, but even in 
the last couple of days I feel like I have learned a great deal 
about what kinds of stuff goes into them. Eventually I'd like 
to make a full blown compiler that takes D code and can go 
right to dex files, but that would be something that would 
happen way down the road. In order to get D working on Android 
sooner, I figured a language converter would be the easier 
route.


I can, and would love to go in to more detail about this, but 
it is getting late and this post is already quite long. Maybe I 
should start a blog about my D escapades? Anyways, I would love 
to hear feedback on this idea! Thanks for your time!




Re: Running D in the Java VM

2013-11-22 Thread Paulo Pinto

On Friday, 22 November 2013 at 07:48:34 UTC, eles wrote:

On Friday, 22 November 2013 at 05:30:00 UTC, Paulo Pinto wrote:

Am 22.11.2013 00:52, schrieb John J:

On 11/21/2013 05:02 PM, Paulo Pinto wrote:

Am 21.11.2013 21:25, schrieb inout:

On Thursday, 21 November 2013 at 07:35:01 UTC, Volcz wrote:

On Sunday, 17 November 2013 at 05:49:43 UTC, John J wrote:

On 11/15/2013 02:13 AM, Jeremy DeHaan wrote:
If it should survive as an alternative, Jave should have


Not to mention that Google leaves to the developers the effort 
of creating the JNI wrappers themselves, instead of providing 
a nice C++ API for them.


almost:

http://developer.android.com/reference/android/app/NativeActivity.html


That is a Java class full of native methods for calling into 
native code from Dalvik.


Now lets say you are doing a game, so NDK already provides the 
necessary C, C++, OpenGL libraries.


Do you want to use Renderscript for GPGPU code? Well if targeting 
Android versions lower than 4.4, you need to write the JNI 
bindings yourself.


Do you want to allow the players to share their games 
achievements via Google Play Game Services?


Then you need to write the JNI bindings yourself. But fear not, 
Google has made a video about it, 
http://www.youtube.com/watch?v=dxI5bReatJw. Lets see if part 2 
ever comes up.


If you need more than graphics, sound or sensors manipulation, 
then you need JNI.




--
Paulo






Re: Running D in the Java VM

2013-11-22 Thread Jacob Carlborg

On 2013-11-22 06:30, Paulo Pinto wrote:
 that Google leaves to the developers the effort of

creating the JNI wrappers themselves, instead of providing a nice C++
API for them.


I guess they want their developers to use Java. Otherwise they would 
have made C++ a first class citizens and not force C++ to go through Java.


--
/Jacob Carlborg


Re: Running D in the Java VM

2013-11-22 Thread Paulo Pinto

On Friday, 22 November 2013 at 12:45:19 UTC, Jacob Carlborg wrote:

On 2013-11-22 06:30, Paulo Pinto wrote:
 that Google leaves to the developers the effort of
creating the JNI wrappers themselves, instead of providing a 
nice C++

API for them.


I guess they want their developers to use Java. Otherwise they 
would have made C++ a first class citizens and not force C++ to 
go through Java.


Certainly, that is also one of the reasons why they have come up 
with Renderscript and are now moving to native compiled Java post 
KitKat.


I don't have any issue with Java and do like the language, but it 
has lost its place if you care about portable code across mobile 
platforms.


Hence why I am using C++, as it is the only common language 
across all SDKs thus requiring minimal setup to get going.



--
Paulo


Re: Running D in the Java VM

2013-11-22 Thread John Colvin

On Friday, 22 November 2013 at 13:36:08 UTC, Paulo Pinto wrote:
I don't have any issue with Java and do like the language, but 
it has lost its place if you care about portable code across 
mobile platforms.


Ironic, much? :p


Re: Running D in the Java VM

2013-11-15 Thread Paulo Pinto

On Friday, 15 November 2013 at 07:13:34 UTC, Jeremy DeHaan wrote:

Hey everyone!

I have been experimenting for the past couple of days with an 
idea I had, and since I recently made a little progress I 
thought I would share some of what I have been doing with you. 
What I have done, in a nutshell, is began the process for a 
language converter that takes D source files, converts them 
into Java source files, and then compiles them as Java class 
files so that they can be ran on Java's VM. It is extremely 
limited in what it can do right now, only being able to 
convert/compile a simple Hello World program, but I was proud 
of myself for getting even that far so I wanted to brag. :P


You may want to ask, Hey, man. D is a great language. Why 
would I ever want to convert it to Java? Normally, you 
wouldn't. Java blows. What I am envisioning for this project is 
something quite magical in my opinion. If we can take D code 
and have it compile into Java class files, we can then compile 
them into Android dex files. This would make D able to build 
and run on Android devices through its VM. Sure, people are 
working on getting D to compile to ARM binaries, but this could 
be another option as a Java alternative on Android.(eventually)


Unfortunately I do not know much about compilers, but even in 
the last couple of days I feel like I have learned a great deal 
about what kinds of stuff goes into them. Eventually I'd like 
to make a full blown compiler that takes D code and can go 
right to dex files, but that would be something that would 
happen way down the road. In order to get D working on Android 
sooner, I figured a language converter would be the easier 
route.


I can, and would love to go in to more detail about this, but 
it is getting late and this post is already quite long. Maybe I 
should start a blog about my D escapades? Anyways, I would love 
to hear feedback on this idea! Thanks for your time!


It is an impossible task, because many of the D semantics cannot 
be expressed in JVM/Dalvik bytecode.


--
Paulo


Re: Running D in the Java VM

2013-11-15 Thread Rory McGuire
Surely the main requirements would be gui and networking? Which would be
completely possible.
 On 15 Nov 2013 12:05, John Colvin john.loughran.col...@gmail.com wrote:

 On Friday, 15 November 2013 at 08:50:14 UTC, Paulo Pinto wrote:

 On Friday, 15 November 2013 at 07:13:34 UTC, Jeremy DeHaan wrote:

 Hey everyone!

 I have been experimenting for the past couple of days with an idea I
 had, and since I recently made a little progress I thought I would share
 some of what I have been doing with you. What I have done, in a nutshell,
 is began the process for a language converter that takes D source files,
 converts them into Java source files, and then compiles them as Java class
 files so that they can be ran on Java's VM. It is extremely limited in what
 it can do right now, only being able to convert/compile a simple Hello
 World program, but I was proud of myself for getting even that far so I
 wanted to brag. :P

 You may want to ask, Hey, man. D is a great language. Why would I ever
 want to convert it to Java? Normally, you wouldn't. Java blows. What I am
 envisioning for this project is something quite magical in my opinion. If
 we can take D code and have it compile into Java class files, we can then
 compile them into Android dex files. This would make D able to build and
 run on Android devices through its VM. Sure, people are working on getting
 D to compile to ARM binaries, but this could be another option as a Java
 alternative on Android.(eventually)

 Unfortunately I do not know much about compilers, but even in the last
 couple of days I feel like I have learned a great deal about what kinds of
 stuff goes into them. Eventually I'd like to make a full blown compiler
 that takes D code and can go right to dex files, but that would be
 something that would happen way down the road. In order to get D working on
 Android sooner, I figured a language converter would be the easier route.

 I can, and would love to go in to more detail about this, but it is
 getting late and this post is already quite long. Maybe I should start a
 blog about my D escapades? Anyways, I would love to hear feedback on this
 idea! Thanks for your time!


 It is an impossible task, because many of the D semantics cannot be
 expressed in JVM/Dalvik bytecode.

 --
 Paulo


 Like what? Barring low-level device access, they are both turing complete
 languages and given the necessary transformations a complete program in one
 can always be statically* translated to the one in the other. However,
 efficient java code would be a different matter.

 *very important. There are many code-level concepts in D that are not
 expressible in the JVM, but a static translation doesn't need to honor
 those: it simply needs to make a program that has the same observable
 effects for any given input. This is definitely possible, although quite
 possibly monstrously involved when done in detail.



Re: Running D in the Java VM

2013-11-15 Thread Russel Winder
On Fri, 2013-11-15 at 09:44 +0200, Rory McGuire wrote:
[…]
 Nice one, I have to use Java at work, it would be awesome if I didn't have
 to.
 Would be cool if you make it so that the outputs to java are just trasforms
 of the AST that way people could write other types of output such as C.

Just use Scala, Ceylon, Kotlin or statically compiled Groovy instead of
Java. Everyone I know who has ever tried it has never looked back.

Management can be handled easily since all the languages interwork well
with Java, so change over to a new language is incremental, it does not
require a revolution.

Java is dead, long live the JVM.

-- 
Russel.
=
Dr Russel Winder  t: +44 20 7585 2200   voip: sip:russel.win...@ekiga.net
41 Buckmaster Roadm: +44 7770 465 077   xmpp: rus...@winder.org.uk
London SW11 1EN, UK   w: www.russel.org.uk  skype: russel_winder



Running D in the Java VM

2013-11-14 Thread Jeremy DeHaan

Hey everyone!

I have been experimenting for the past couple of days with an 
idea I had, and since I recently made a little progress I thought 
I would share some of what I have been doing with you. What I 
have done, in a nutshell, is began the process for a language 
converter that takes D source files, converts them into Java 
source files, and then compiles them as Java class files so that 
they can be ran on Java's VM. It is extremely limited in what it 
can do right now, only being able to convert/compile a simple 
Hello World program, but I was proud of myself for getting even 
that far so I wanted to brag. :P


You may want to ask, Hey, man. D is a great language. Why would 
I ever want to convert it to Java? Normally, you wouldn't. Java 
blows. What I am envisioning for this project is something quite 
magical in my opinion. If we can take D code and have it compile 
into Java class files, we can then compile them into Android dex 
files. This would make D able to build and run on Android devices 
through its VM. Sure, people are working on getting D to compile 
to ARM binaries, but this could be another option as a Java 
alternative on Android.(eventually)


Unfortunately I do not know much about compilers, but even in the 
last couple of days I feel like I have learned a great deal about 
what kinds of stuff goes into them. Eventually I'd like to make a 
full blown compiler that takes D code and can go right to dex 
files, but that would be something that would happen way down the 
road. In order to get D working on Android sooner, I figured a 
language converter would be the easier route.


I can, and would love to go in to more detail about this, but it 
is getting late and this post is already quite long. Maybe I 
should start a blog about my D escapades? Anyways, I would love 
to hear feedback on this idea! Thanks for your time!


Re: Running D in the Java VM

2013-11-14 Thread Rory McGuire
On Fri, Nov 15, 2013 at 9:13 AM, Jeremy DeHaan dehaan.jerem...@gmail.comwrote:


 I can, and would love to go in to more detail about this, but it is
 getting late and this post is already quite long. Maybe I should start a
 blog about my D escapades? Anyways, I would love to hear feedback on this
 idea! Thanks for your time!


Nice one, I have to use Java at work, it would be awesome if I didn't have
to.
Would be cool if you make it so that the outputs to java are just trasforms
of the AST that way people could write other types of output such as C.


Re: Running D in the Java VM

2013-11-14 Thread Jeremy DeHaan

On Friday, 15 November 2013 at 07:30:07 UTC, Timur Gafarov wrote:


Maybe it would be better to compile D directly into JVM/Dalvik 
bytecode?


Oh, absolutely. Like I said though, I don't really know that much 
about compilers so I decided to go this route. Also, it's 
actually been a pretty fun project so far and I see no reason to 
do it a different way right now.