Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Archived » IMP » IMP non-java bits and build process
IMP non-java bits and build process [message #29394] Mon, 20 July 2009 05:54 Go to next message
Porter is currently offline Porter
Messages: 42
Registered: July 2009
Member
Background: Now that eclipse is available again for Solaris x86 I'm
interested in getting IMP working on this OS (specifically OpenSolaris).
Not only to use IMP on this platform but also because because some other
Eclipse projects (e.g. QVT declarative) are depending on IMP. If more
projects depend on IMP in future then Solaris and other less
well-supported platforms will miss out on them.

My questions are:

- Is there a summary of the build process for the whole IMP project
available somewhere? Java and native code bits?
- Which parts remain non-100% pure-java (e.g. LPG) and where can I find
details of their build process/requirements? How are they integrated into
eclipse plugins?
- Any opinions on the difficulty of porting the native code components to
another unix OS? Pretty much a routine process of configure make install
etc? Any unusual build requirements?
- If I could build the binary bits for Solaris X86 what other changes
would be needed in the plugins to allow it to be recognised as one of the
valid platforms for IMP?


Thanks!
Re: IMP non-java bits and build process [message #29469 is a reply to message #29394] Tue, 21 July 2009 01:32 Go to previous messageGo to next message
Ed Willink is currently offline Ed Willink
Messages: 4008
Registered: July 2009
Senior Member
Hi Porter

QVT Declarative depended solely on IMP Runtime, which is Operating
System independent. In order to avoid users needing to download from
CVS and apply patches for pending bugzillas, QVT Declarative temporarily
provides a patched version of IMP runtime as
org.eclipse.qvt.declarative.editor.imp.runtime. This has the plugin
version 0.0.10100 to avoid trouble for anyone who has both.

I think that the Operating System dependencies are solely concerned with
running the CC++ code LPG to support grammars. Since the generated
grammars are now in CVS, running LPG may not be a problem. Some users
have successfully run LPG using a Windows emulator.

Regards

Ed Willink



Porter Ricks wrote:
> Background: Now that eclipse is available again for Solaris x86 I'm
> interested in getting IMP working on this OS (specifically OpenSolaris).
> Not only to use IMP on this platform but also because because some other
> Eclipse projects (e.g. QVT declarative) are depending on IMP. If more
> projects depend on IMP in future then Solaris and other less
> well-supported platforms will miss out on them.
>
> My questions are:
>
> - Is there a summary of the build process for the whole IMP project
> available somewhere? Java and native code bits?
> - Which parts remain non-100% pure-java (e.g. LPG) and where can I find
> details of their build process/requirements? How are they integrated
> into eclipse plugins?
> - Any opinions on the difficulty of porting the native code components
> to another unix OS? Pretty much a routine process of configure make
> install etc? Any unusual build requirements?
> - If I could build the binary bits for Solaris X86 what other changes
> would be needed in the plugins to allow it to be recognised as one of
> the valid platforms for IMP?
>
>
> Thanks!
>
>
>
>
>
Re: IMP non-java bits and build process [message #29568 is a reply to message #29394] Thu, 23 July 2009 16:29 Go to previous message
Robert M. Fuhrer is currently offline Robert M. Fuhrer
Messages: 294
Registered: July 2009
Senior Member
Porter Ricks wrote:
> Background: Now that eclipse is available again for Solaris x86 I'm
> interested in getting IMP working on this OS (specifically OpenSolaris).
> Not only to use IMP on this platform but also because because some other
> Eclipse projects (e.g. QVT declarative) are depending on IMP. If more
> projects depend on IMP in future then Solaris and other less
> well-supported platforms will miss out on them.
>
> My questions are:
>
> - Is there a summary of the build process for the whole IMP project
> available somewhere? Java and native code bits?

We have an internal page that summarizes the entire build process, which
needs a bit of updating, given recent code restructuring. I'll get this
posted to the IMP website on eclipse.org ASAP.

> - Which parts remain non-100% pure-java (e.g. LPG) and where can I find
> details of their build process/requirements? How are they integrated
> into eclipse plugins?

The only non-Java code to which you're referring is not actually part of
IMP per se: the LPG parser generator itself, which is written in C++,
and is housed in the plugin lpg.generator. The runtime and the rest of
the meta-tooling is 100% pure Java. If you don't want to use LPG, it's
all 100% pure Java.

As Ed has pointed out, we've been checking in the generated lexer and
parser classes into the src repo for a while now, so you actually don't
need to run LPG to build IMP from its source.

> - Any opinions on the difficulty of porting the native code components
> to another unix OS? Pretty much a routine process of configure make
> install etc? Any unusual build requirements?

The LPG generator is written in very simple C++, and we've built it for
many different platforms, including Mac OS, Windows, Linux, AIX, and
mainframes. Any recent version of g++ should be able to build it. There
are Makefiles in the source distribution, but in reality it boils down
roughly to "g++ -o lpg *.cpp". See the LPG project page on SourceForge
for more info on getting the source.

> - If I could build the binary bits for Solaris X86 what other changes
> would be needed in the plugins to allow it to be recognised as one of
> the valid platforms for IMP?

If you wanted to enable the LPG IDE for a new platform, you'd need to:

- Create a new platform-specific plugin fragment for lpg.generator,
making sure to add a platform constraint clause to its manifest.

- Add the new fragment to the lpg.generator feature manifest.

You can follow the existing plugin fragments (e.g. lpg.generator.linux_x86)
as a template.

--
Cheers,
-- Bob

--------------------------------
Robert M. Fuhrer
Research Staff Member
Programming Technologies Dept.
IBM T.J. Watson Research Center

IDE Meta-tooling Platform Project Lead (http://www.eclipse.org/imp)
X10: Productive High-Performance Parallel Programming (http://x10.sf.net)
Re: IMP non-java bits and build process [message #576191 is a reply to message #29394] Tue, 21 July 2009 01:32 Go to previous message
Ed Willink is currently offline Ed Willink
Messages: 4008
Registered: July 2009
Senior Member
Hi Porter

QVT Declarative depended solely on IMP Runtime, which is Operating
System independent. In order to avoid users needing to download from
CVS and apply patches for pending bugzillas, QVT Declarative temporarily
provides a patched version of IMP runtime as
org.eclipse.qvt.declarative.editor.imp.runtime. This has the plugin
version 0.0.10100 to avoid trouble for anyone who has both.

I think that the Operating System dependencies are solely concerned with
running the CC++ code LPG to support grammars. Since the generated
grammars are now in CVS, running LPG may not be a problem. Some users
have successfully run LPG using a Windows emulator.

Regards

Ed Willink



Porter Ricks wrote:
> Background: Now that eclipse is available again for Solaris x86 I'm
> interested in getting IMP working on this OS (specifically OpenSolaris).
> Not only to use IMP on this platform but also because because some other
> Eclipse projects (e.g. QVT declarative) are depending on IMP. If more
> projects depend on IMP in future then Solaris and other less
> well-supported platforms will miss out on them.
>
> My questions are:
>
> - Is there a summary of the build process for the whole IMP project
> available somewhere? Java and native code bits?
> - Which parts remain non-100% pure-java (e.g. LPG) and where can I find
> details of their build process/requirements? How are they integrated
> into eclipse plugins?
> - Any opinions on the difficulty of porting the native code components
> to another unix OS? Pretty much a routine process of configure make
> install etc? Any unusual build requirements?
> - If I could build the binary bits for Solaris X86 what other changes
> would be needed in the plugins to allow it to be recognised as one of
> the valid platforms for IMP?
>
>
> Thanks!
>
>
>
>
>
Re: IMP non-java bits and build process [message #576263 is a reply to message #29394] Thu, 23 July 2009 16:29 Go to previous message
Robert M. Fuhrer is currently offline Robert M. Fuhrer
Messages: 294
Registered: July 2009
Senior Member
Porter Ricks wrote:
> Background: Now that eclipse is available again for Solaris x86 I'm
> interested in getting IMP working on this OS (specifically OpenSolaris).
> Not only to use IMP on this platform but also because because some other
> Eclipse projects (e.g. QVT declarative) are depending on IMP. If more
> projects depend on IMP in future then Solaris and other less
> well-supported platforms will miss out on them.
>
> My questions are:
>
> - Is there a summary of the build process for the whole IMP project
> available somewhere? Java and native code bits?

We have an internal page that summarizes the entire build process, which
needs a bit of updating, given recent code restructuring. I'll get this
posted to the IMP website on eclipse.org ASAP.

> - Which parts remain non-100% pure-java (e.g. LPG) and where can I find
> details of their build process/requirements? How are they integrated
> into eclipse plugins?

The only non-Java code to which you're referring is not actually part of
IMP per se: the LPG parser generator itself, which is written in C++,
and is housed in the plugin lpg.generator. The runtime and the rest of
the meta-tooling is 100% pure Java. If you don't want to use LPG, it's
all 100% pure Java.

As Ed has pointed out, we've been checking in the generated lexer and
parser classes into the src repo for a while now, so you actually don't
need to run LPG to build IMP from its source.

> - Any opinions on the difficulty of porting the native code components
> to another unix OS? Pretty much a routine process of configure make
> install etc? Any unusual build requirements?

The LPG generator is written in very simple C++, and we've built it for
many different platforms, including Mac OS, Windows, Linux, AIX, and
mainframes. Any recent version of g++ should be able to build it. There
are Makefiles in the source distribution, but in reality it boils down
roughly to "g++ -o lpg *.cpp". See the LPG project page on SourceForge
for more info on getting the source.

> - If I could build the binary bits for Solaris X86 what other changes
> would be needed in the plugins to allow it to be recognised as one of
> the valid platforms for IMP?

If you wanted to enable the LPG IDE for a new platform, you'd need to:

- Create a new platform-specific plugin fragment for lpg.generator,
making sure to add a platform constraint clause to its manifest.

- Add the new fragment to the lpg.generator feature manifest.

You can follow the existing plugin fragments (e.g. lpg.generator.linux_x86)
as a template.

--
Cheers,
-- Bob

--------------------------------
Robert M. Fuhrer
Research Staff Member
Programming Technologies Dept.
IBM T.J. Watson Research Center

IDE Meta-tooling Platform Project Lead (http://www.eclipse.org/imp)
X10: Productive High-Performance Parallel Programming (http://x10.sf.net)
Previous Topic:Incremental parsing
Next Topic:External references
Goto Forum:
  


Current Time: Tue Jul 29 07:03:08 EDT 2014

Powered by FUDForum. Page generated in 0.02150 seconds