Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [jdt-dev] JDT and javac

Hi All,

I think there are good points already mentioned in the thread regarding merging or not to merge. I think it is always good to keep both the options ECJ and Javac. Maybe Eclipse IDE can keep using ECJ. At the same time, what if we can try out the Javac based implementation as an experiment on the JDTLS Incubator and use it as an experimental feature in JDT.LS. I would really like to help out in such an experiment by taking it as my daily driver.

For both project to succeed and we in JDT community thinks it is beneficial to have support for both compilers, We could also try to merge parts which will abstract out Javac and ECJ, which I assume a must for the Javac experiment to succeed without degrading current functionality while javac is been integrated. 

I know some parts of the JDT are more tightly coupled into ECJ constructs like the different Parsers and Engines. If there are hard to abstract, maybe JDTLS can implement those on top of Javac if the JDTLS community finds Javac more appealing. Time will tell whether both projects will diverge or merge. Again helping out to fix many bugs in the areas of CompletionParsers and Engine, I think if we could just reuse something the Java Team provides to do the heavy lifting on language changes might make the Java Developer user experience much better. The netbeansls project support all java features as and when those are added and released in JDK. I assume that it is because netbeans depends on the java parsers which are available in the JDK.

Best regards,
Gayan.


On Thu, Mar 28, 2024 at 4:51 AM Manoj Nalledathu Palat via jdt-dev <jdt-dev@xxxxxxxxxxx> wrote:

Dear All,

I would like to state that the Eclipse JDT Team at IBM remains committed to ECJ. We are also planning to add more committers over the course of the year to ECJ/JDT. 

 

I welcome whole-heartedly RedHat’s initiative of giving option to the end-user on the choice of tools much similar to VSCode and hopefully that would help Eclipse in increased adoption. Thanks to Mickael Istria for the perfect articulation of the new initiative.

 

And I completely agree with Srikanth on the part about merging the code back – It should stay as a separate plug-in for the reasons he mentioned. We understand that, as he mentioned, enabling APIs may certainly be needed and may warrant some changes in ECJ, but in the best interests of the ECJ project, I believe like most of us involved in ECJ development that  it should be minimal with of course a commitment from the authors to maintain these in ECJ for a few years.

 

Regards,

Manoj N Palat

Eclipse JDT, IBM.

 

PS: There were some hallway discussions and informal chats on whether the Eclipse JDT Team at IBM is  planning to continue to contribute to  ECJ. hence the clarification. YES.

 

 

From: jdt-dev <jdt-dev-bounces@xxxxxxxxxxx> on behalf of Sankaran, Srikanth via jdt-dev <jdt-dev@xxxxxxxxxxx>
Date: Tuesday, 26 March 2024 at 4:20
PM
To: Eclipse JDT general developers list. <jdt-dev@xxxxxxxxxxx>
Cc: Sankaran, Srikanth <srikanth.sankaran@xxxxxxxxxxxxx>
Subject: [EXTERNAL] Re: [jdt-dev] JDT and javac

Hello Mickael, This is a very lucid articulation of why whatever is being attempted is being attempted. This should serve to dispel confusion/anxiety about future that may have otherwise taken root. Thanks! Your rationales are valid and sound.

Hello Mickael,

 

This is a very lucid articulation of why whatever is being attempted is being attempted. This should serve to dispel confusion/anxiety about future that may have otherwise taken root. Thanks!

 

Your rationales are valid and sound. I must say, I am mildly disappointed to read you are “betting on javac long term” – with the implied exclusion of any bets on ECJ by my reading - but that is your prerogative 😊

 

Funding/resource situation being what it is I can’t find fault. I was working for Oracle on javac for 8 years before my return to JDT and believe me, we can’t compete on resources – not even remotely!

 

I am inclined to take your assertion at face value and can believe that this initiative “serves JDT in general, without harming ECJ. At the moment, that's a win-win and safe situation.”

 

Overall, the only thing that alarms me about this is the talk of merge back to upstream – my preference is that the product should be completed, enjoy adoption and should be seen to be thriving and seen to be maintained well before merge back. Until then, I prefer that it should stay as a separate plugin, in a separate repository whatever. Enabling APIs may certainly be added as needed to JDT/Core.

 

If this is stipulated, personally I will be relieved.  Otherwise, both from a source code pov and a product pov this double headed beast nature makes me uncomfortable.

 

Surely such a plugin level isolation is possible I would imagine and is being actively considered.

 

I work part time and am already drowned in compiler work as I am, so I am personally unable to contribute, but I am happy to cheer for this.

 

Speaking for myself.

 

Thanks

Srikanth

 

 

From: jdt-dev <jdt-dev-bounces@xxxxxxxxxxx> On Behalf Of Mickael Istria via jdt-dev
Sent: Monday, March 25, 2024 8:42 PM
To: Eclipse JDT general developers list. <jdt-dev@xxxxxxxxxxx>
Cc: Mickael Istria <mistria@xxxxxxxxxx>
Subject: Re: [jdt-dev] JDT and javac

 

CAUTION: This email was sent from outside of Advantest.

 

Hi Alexander,

 

Note that the ongoing development to use Javac instead of ECJ in JDT is not excluding ECJ at all. ECJ is and will remain default backend, and Javac is and will remain an opt-in (until there is enough maturity and consensus to change that, but it's not something to happen soon enough to worry IMO). What we do want is to provide integrators a choice of which strategy to use to build DOM & Model, either ECJ or Javac (because our team bets on Javac on longer-term). Both ECJ and Javac-based code can (and do and will) easily live together in the same codebase, there is no benefit and thus no plan to remove ECJ classes nor to break them in anyway. So as long as integrators don't explicitly require to use Javac backend, then they stick on ECJ, and it doesn't change anything to them and things would still work. AspectJ and others will still work as long as ECJ is maintained, even if we are introducing an alternative Javac backend.

The concerns you express are more about future ECJ maintenance, but the work we're doing doesn't really change much to the statuquo. It's actually not removing any active contributor to ECJ development, but it's currently adding contributors to higher-level (DOM, bindings, model...), as they are heavily considered and slightly consolidated thanks to this JDT-over-Javac development. So overall, the work we're doing here serves JDT in general, without harming ECJ.

At the moment, that's a win-win and safe situation.

 

Cheers,.

_______________________________________________
jdt-dev mailing list
jdt-dev@xxxxxxxxxxx
To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/jdt-dev

Back to the top