[Info-vax] The Kotlin language, something for VMS as well?

Bill Gunshannon bill.gunshannon at gmail.com
Thu Jul 13 14:52:53 EDT 2017


On 7/13/2017 12:00 PM, Dirk Munk wrote:
> Bill Gunshannon wrote:
>> On 7/13/2017 8:38 AM, Dirk Munk wrote:
>>> Jan-Erik Soderholm wrote:
>>>> Den 2017-07-13 kl. 14:02, skrev Arne Vajhøj:
>>>>> On 7/13/2017 4:37 AM, Dirk Munk wrote:
>>>>>> Arne Vajhøj wrote:
>>>>>>> On 7/12/2017 4:13 PM, Brett Cameron wrote:
>>>>>>>> Just FYI, I had a bit of a play around with Kotlin a few weeks back
>>>>>>>> and pretty much all the JVM stuff seems to work okay on OpenVMS 
>>>>>>>> with
>>>>>>>> Java 8 (the interactive shell has a couple of minor issues, but
>>>>>>>> that’s about all I’ve hit so far)...
>>>>>>>
>>>>>>> Most JVM languges should be easy to get working:
>>>>>>>
>>>>>>> Kotlin
>>>>>>> Scala
>>>>>>> Groovy
>>>>>>> Jython (Python) [I am rather interested in that one]
>>>>>>> JRuby (Ruby)
>>>>>>> Clojure (Lisp derivative)
>>>>>>> JGnat (Ada)
>>>>>>> Rembulan (Lua)
>>>>>>> Rhino or Nashorn (JavaScript) [comes with Java out the box and 
>>>>>>> works]
>>>>>>> Renjin (R)
>>>>>>>
>>>>>
>>>>>> Thank you very much Arne, this is very interesting information. I 
>>>>>> wasn't aware of these developments.
>>>>>>
>>>>>> Let's take Jython as an example. If I'm going to use an 
>>>>>> application written in Python now, then it will come with all the 
>>>>>> clutter of a Python runtime system in its directories. Another 
>>>>>> application written in Python will have the same clutter, 
>>>>>> preferably with another (sub)version of Python.
>>>>>>
>>>>>> With Jython you would only have the application in .jar files in 
>>>>>> its directories, perhaps a kind of Jython library as well, and run 
>>>>>> the whole thing with the standard JVM that you already have 
>>>>>> installed. No more clutter.
>>>>>>
>>>>>> It also means you don't need Jython (Python!) versions for every 
>>>>>> OS, only for desktop operating systems. Those would be Windows, 
>>>>>> Linux and Mac OS.
>>>>>>
>>>>>> If I understand John Reagon's contribution correctly, the Python 
>>>>>> developers could also build a LLVM compiler kit, add some VMS 
>>>>>> specific code, and build a LLVM Python compiler on VMS. With that 
>>>>>> you can produce Python executables. Don't know if that would be 
>>>>>> useful, but that's not the point for this discussion.
>>>>>>
>>>>>> So my conclusion is that if you want to add a new language to VMS, 
>>>>>> makes sure it runs with the JVM, and/or produce a LLVM kit, adapt 
>>>>>> it somewhat for the VMS specifics, and build a LLVM compiler to 
>>>>>> produce executables for the new language. (The LLVM stuff is on 
>>>>>> x86-VMS of course!!)
>>>>>>
>>>>>> Am I correct?
>>>>>
>>>>> I don't think there is any silver bullet, but I do see some advantages
>>>>> of the JVM model.
>>>>>
>>>>> Native languages will typical be:
>>>>>
>>>>> language A
>>>>>     large runtime for A
>>>>>     database drivers etc. for A
>>>>> language B
>>>>>     large runtime for B
>>>>>     database drivers etc. for B
>>>>> language C
>>>>>     large runtime for C
>>>>>     database drivers etc. for C
>>>>>
>>>>> JVM languages will typical be:
>>>>>
>>>>> Java
>>>>>     huge Java runtime
>>>>>     database drivers etc. for Java
>>>>> language A
>>>>>     small runtime for A
>>>>> language B
>>>>>     small runtime for B
>>>>> language C
>>>>>     small runtime for C
>>>>>
>>>>> I don't know much about how LLVM works. But I thought it was
>>>>> more of a compiler backend meaning that it would make it much
>>>>> easier to produce a native language for a platform, but that
>>>>> it would not really change the deployment model. But I may
>>>>> be wrong.
>>>>>
>>>>> Arne
>>>>>
>>>>
>>>> I also thought that you need a language specific frontend to LLVM,
>>>> much as you need for GEM. Maybe LLVM can produce code runable
>>>> in the JVM, no idea...
>>>>
>>>
>>> Yes, of course you need a language specific frond-end. However the 
>>> source for this frond-end seems to be the same for every OS, with the 
>>> exception of a few OS specific parts. In other words, it is rather 
>>> simple to build a LLVM compiler for any OS, since every supported OS 
>>> has a LLVM package that will allow you to build such compilers. At 
>>> least that is my understanding.
>>>
>>> LLVM certainly is not meant to produce code for the JVM.
>>>
>>
>> No reason why it couldn't.  Bytecode for the JVM is no different than
>> the binary for any other architecture.  Someone just needs to create
>> that backend.
>>
>> bill
>>
> 
> I'm sure you could use the same idea to set up compilers that produce 
> code for the JVM, but I doubt if that could or should be done by 
> building a new back-end.

I thought the backend was the part of the compiler that generated
the code for a particular architecture? If not, just what do people
consider the backend?

bill




More information about the Info-vax mailing list