These are chat archives for ceylon/ceylon-ide-eclipse

9th
Mar 2016
Gavin King
@gavinking
Mar 09 2016 09:11
ceylon/ceylon-ide-eclipse#1719
@davidfestal
David Festal
@davidfestal
Mar 09 2016 09:21
Hi @gavinking , yes, I saw it already. I'll have a look.
Gavin King
@gavinking
Mar 09 2016 09:22
thanks
Gavin King
@gavinking
Mar 09 2016 10:49
for the IDE release 1.2.2, what branch will that be based off of?
David Festal
@davidfestal
Mar 09 2016 10:59
1.2.2-preparation
Gavin King
@gavinking
Mar 09 2016 10:59
alright, so fixes i’m making in master don’t go there automatically, right?
David Festal
@davidfestal
Mar 09 2016 10:59
will not contain the abstraction stuff added since 1.2.0
Gavin King
@gavinking
Mar 09 2016 10:59
and what completion implementation is that using?
David Festal
@davidfestal
Mar 09 2016 11:00
fixes in Ceylon code no
Gavin King
@gavinking
Mar 09 2016 11:00
the .ceylon code in ceylon-ide-common?
David Festal
@davidfestal
Mar 09 2016 11:00
no
Gavin King
@gavinking
Mar 09 2016 11:00
or the old .java code
ok
David Festal
@davidfestal
Mar 09 2016 11:00
old Java code
Bastien Jansen
@bjansen
Mar 09 2016 11:00
it's still the old java code?
David Festal
@davidfestal
Mar 09 2016 11:00
not fully
just switch to the 1.2.2-preparation branch
Bastien Jansen
@bjansen
Mar 09 2016 11:00
I thought we used the ceylon completion impl starting from 1.2.0
David Festal
@davidfestal
Mar 09 2016 11:01
or look at it under GitHub/Network
and you'll hae the detail
@bjansen a pary of it
a part of it
but what you have migrated since then has not been reintegrated
Bastien Jansen
@bjansen
Mar 09 2016 11:01
hm ok
1.3 will be based on the current master, I hope?
David Festal
@davidfestal
Mar 09 2016 11:02
since it would depend on other abstracted stuff that are not on the 1.2.2-preparation branch
@bjansen : I should yes
Bastien Jansen
@bjansen
Mar 09 2016 11:02
ok
David Festal
@davidfestal
Mar 09 2016 11:02
I would like 1.2.2 to be the last version with a non-master IDE
Bastien Jansen
@bjansen
Mar 09 2016 11:03
unless we have 1.2.3 soon ;)
David Festal
@davidfestal
Mar 09 2016 11:03
yes, but in this case the IDE release is mainly to provide an IDE compatible with the new distribution
Stéphane Épardaud
@FroMage
Mar 09 2016 11:04
you guys have been using the master IDE with Ceylon abstraction in there for months, no?
Bastien Jansen
@bjansen
Mar 09 2016 11:04
yep
Stéphane Épardaud
@FroMage
Mar 09 2016 11:04
I know I haven't
and it's working, right?
Bastien Jansen
@bjansen
Mar 09 2016 11:04
yes
David Festal
@davidfestal
Mar 09 2016 11:04
working globally yes
Stéphane Épardaud
@FroMage
Mar 09 2016 11:05
if yes then we should definitly switch to master for 1.2.3
David Festal
@davidfestal
Mar 09 2016 11:05
rather well, but not so robust
Bastien Jansen
@bjansen
Mar 09 2016 11:05
although I touched so many quick fixes recently that there might be a few things to fix
Stéphane Épardaud
@FroMage
Mar 09 2016 11:05
@davidfestal ah?
David Festal
@davidfestal
Mar 09 2016 11:05
@FroMage : I'm still currently doing the abstraction of incremental typechecking
we should switch after that I think
which is quite soon
but not exactly now ;-)
but sure, keep using the master IDE for some of you
it's very useful to find regressions coming from the abstraction
Stéphane Épardaud
@FroMage
Mar 09 2016 11:13
ok
my point is that we should stop maintaining the non-abstracted branch asap
Gavin King
@gavinking
Mar 09 2016 11:13
i agree with David
Stéphane Épardaud
@FroMage
Mar 09 2016 11:13
if the abstracted branch works
now, obviously you guys define what "asap" is, not me
since I haven't tested it
Gavin King
@gavinking
Mar 09 2016 11:14
it works but I still run into broken things
from time to time
Stéphane Épardaud
@FroMage
Mar 09 2016 11:14
doesn't sound like bad things, though
and switching to it would mean they get found/fixed a lot faster
Bastien Jansen
@bjansen
Mar 09 2016 11:18
things would be easier if jenkins built the IDEs, people could just add a repository in Eclipse and test Ceylon IDE master whenever they feel like it
Gavin King
@gavinking
Mar 09 2016 11:18
well, for example, today I can’t navigate to Java declarations
Stéphane Épardaud
@FroMage
Mar 09 2016 11:22
@gavinking man, I love your problems. yesterday I could not start any JVM
Gavin King
@gavinking
Mar 09 2016 11:27
haha
that’s your fault ‘cos linux
some of us aren’t masochists :)
Stéphane Épardaud
@FroMage
Mar 09 2016 11:31
hah, had the same thing happened in OSX, people'd comment things like "uh, computer (NOT A PC: IS A BIUUUUTIFUL MAC) isa borken. called store: said to buy new shiny mac because is outdated"
takes linux users to trace it down to a futex cpu/kernel bug
Roland Tepp
@luolong
Mar 09 2016 11:44

things would be easier if jenkins built the IDEs, people could just add a repository in Eclipse and test Ceylon IDE master whenever they feel like it

Word!

Bastien Jansen
@bjansen
Mar 09 2016 11:45
ceylon/ceylon#6087
you can +1 it ;)
Roland Tepp
@luolong
Mar 09 2016 11:46
we should have labels for ci ..
Gavin King
@gavinking
Mar 09 2016 12:09
yeah, ok, so I just wasted 20 mins trying to cherry-pick my fix for ceylon/ceylon-ide-eclipse#1718 back to the 1.2.0-fixes branch
and I have failed
b/c apparently it is impossible to compile that branch in the IDE
I give up
Bastien Jansen
@bjansen
Mar 09 2016 12:10
you mean 1.2.2-preparation?
Gavin King
@gavinking
Mar 09 2016 12:10
I don’t have that branch
Bastien Jansen
@bjansen
Mar 09 2016 12:11
well you should
1.2.0-fixes isn't used anymore, right @davidfestal ?
Gavin King
@gavinking
Mar 09 2016 12:11
oh i had not fetched it apparently
Gavin King
@gavinking
Mar 09 2016 12:20
I am getting lots of these
Errors occurred during the build.
Errors running builder 'Java Builder' on project 'com.redhat.ceylon.test.eclipse.plugin'.
java.lang.ArrayIndexOutOfBoundsException
David Festal
@davidfestal
Mar 09 2016 12:38
@gavinking sorry about that
just comment this fix to me
I'll cherry pick all the possible commits when releasing 1.2.2 anyway
so I'll do it at the same time
by the way, the branch for 1.2.2 release is 1.2.2-preparation
xxxx-preparation is for upcoming releases
and xxxx-fixes is to provide fixes for the last release
David Festal
@davidfestal
Mar 09 2016 12:45
by the way, @gavinking , I've been working on ceylon/ceylon-ide-eclipse#1719 this morning. I know where it comes from, but didn't finish fixing it for now
Gavin King
@gavinking
Mar 09 2016 12:49
ok
i managed to do the cherry-pick but it was a mess
David Festal
@davidfestal
Mar 09 2016 12:57
to which branch ?
yes, it took me quite some time each time I had to do a "cherry-pick session"
That's why I do them "in batch' to avoid always switching branches
Gavin King
@gavinking
Mar 09 2016 13:04
1.2.2-preparation
why do we have java classes lying around on master that are no longer used?
InvocationCOmpletionProposal, RefinementCOmpletionProposal, etc
David Festal
@davidfestal
Mar 09 2016 13:10
@bjansen should probably move them in the old-sources folder
we keep the code from which the abstraction was done for a while in this folder
that is not a source folder
in order to allow an easier ceylon-Java tracking in case of bug or regression
Bastien Jansen
@bjansen
Mar 09 2016 13:13
@gavinking it's still there because the eclipse impl is using its inner classes (ParameterContextInformation etc)
but most of the code is deprecated because it's not used anymore
it definitely needs a clean up
I moved a lot of quick assists when I abstracted them, but the completion part is still a bit messy
Bastien Jansen
@bjansen
Mar 09 2016 15:07
@davidfestal if I have 5 ceylon projects open in my workspace, this means that I'll have 5 instances of JDTType for boolean, right? They're not shared between projects?
David Festal
@davidfestal
Mar 09 2016 15:07
@bjansen : not now
but it's planned that once I work on sharing identical modules
Bastien Jansen
@bjansen
Mar 09 2016 15:08
I had to restart Eclipse again because it was stuck in GC, but this time I did a heap dump
David Festal
@davidfestal
Mar 09 2016 15:08
That will require much work, both in common ad eclipse though
Bastien Jansen
@bjansen
Mar 09 2016 15:08
I have a million instances of JDTTyp :(
2.5M ceylon.model.typechecker.model.Type
David Festal
@davidfestal
Mar 09 2016 15:09
yeah, did you use completion or "Open Declaration" ?
Bastien Jansen
@bjansen
Mar 09 2016 15:09
yep
David Festal
@davidfestal
Mar 09 2016 15:09
This loads the whole model of all projects
I mean Open Declaration loads the whole model of all the projects
and currently the model loader doesn't allow unloading a declaration
Bastien Jansen
@bjansen
Mar 09 2016 15:10
so there's basically nothing I can do to reduce the memory footprint atm?
David Festal
@davidfestal
Mar 09 2016 15:10
This is the reason of my next planned tasks after the build abstraction : make the model loader declarations unloadable
and use lucene indexes for the search
Bastien Jansen
@bjansen
Mar 09 2016 15:10
(I already have -XmX4G)
David Festal
@davidfestal
Mar 09 2016 15:10
to avoid scanning the whole model
another point is : it might be that some memory leaks were introduced by the last abstraction steps
I din't have any proofs of that
what after each refactoring in the build system, etc ...
it's a good thing to profile memory and track memory leaks
John Vasileff
@jvasileff
Mar 09 2016 19:19
I can’t run the Dart compiler within Eclipse built from master
Exception in thread "main" java.lang.LinkageError: loader constraint violation: when resolving method "com.redhat.ceylon.compiler.typechecker.tree.Tree$SequencedArgument.getToken()Lorg/antlr/runtime/Token;" the class loader (instance of ceylon/modules/jboss/runtime/CeylonModuleClassLoader) of the current class, com/vasileff/ceylon/dart/compiler/core/augmentNode_, and the class loader (instance of org/jboss/modules/ModuleClassLoader) for the method's defining class, com/redhat/ceylon/compiler/typechecker/tree/Node, have different Class objects for the type org/antlr/runtime/Token used in the signature
any ideas?
Bastien Jansen
@bjansen
Mar 09 2016 19:24
antlr appears twice in the classpath perhaps?
or different versions?
John Vasileff
@jvasileff
Mar 09 2016 19:26
I haven’t found different versions yet, although maybe ceylon classpath will help...
John Vasileff
@jvasileff
Mar 09 2016 19:34
ceylon run --verbose=cmr shows Looking for org.antlr.runtime-3.4(.car|.jar) twice, but its the same version each time.
and only one here:
$ for i in `ceylon classpath com.vasileff.ceylon.dart.compiler | sed -e 's/:/ /g'`; do unzip -l $i ; done | grep runtime.Token.class
     1142  07-19-11 09:36   org/antlr/runtime/Token.class
$
Bastien Jansen
@bjansen
Mar 09 2016 19:39
ah, perhaps both classloaders loaded the class separately, so they are " different Class objects"
David Festal
@davidfestal
Mar 09 2016 19:39
that might be
but then it's a bug
John Vasileff
@jvasileff
Mar 09 2016 19:40
I had no problems on 1.2.1
David Festal
@davidfestal
Mar 09 2016 19:41
the JBoss module descriptors changed
@FroMage completed them, and it might be that 2 distribution modules import it (without epxorting it)
but then there is a problem / bug in the distribution
could you try to identify the transitive dependency paths by using the Ceylon Module dependencies view in the IDE on your Dart compiler project ?
John Vasileff
@jvasileff
Mar 09 2016 19:43
Sure, I’ll try
John Vasileff
@jvasileff
Mar 09 2016 19:49
Ok, it's com.redhat.ceylon.typechecker/1.2.2 and com.redhat.ceylon.compiler.js/1.2.2
John Vasileff
@jvasileff
Mar 09 2016 19:55
antlr was indeed added to compiler/js/_version_/module.xml in ceylon/ceylon@14f8273
David Festal
@davidfestal
Mar 09 2016 19:55
in non-exported mode I assume ?
John Vasileff
@jvasileff
Mar 09 2016 19:56
export: <module name="org.antlr.runtime" slot="3.4" export="true”/>
David Festal
@davidfestal
Mar 09 2016 19:56
and how is the export in the typechecker module descriptor ?
John Vasileff
@jvasileff
Mar 09 2016 19:58
Same - exported. Unchanged in this commit
David Festal
@davidfestal
Mar 09 2016 19:59
and doesn't com.redhat.ceylon.compiler.jsalready import the typechecker module ?
it should not be necessary then
to import the antlr runtime explicitely
John Vasileff
@jvasileff
Mar 09 2016 20:00
yes, and exported. So the antlr seems redundant (although, should be valid, right?)
David Festal
@davidfestal
Mar 09 2016 20:00
and what do you import in your Dart compiler ?
John Vasileff
@jvasileff
Mar 09 2016 20:01
I import both. I also import ceylon.ast.redhat (and perhaps others) that I think import the typechecker.
David Festal
@davidfestal
Mar 09 2016 20:02
you should open an issue for @FroMage (and maybe comment the related commit line) to explain what is happening.
and add the 1.2.2 milestone
it might be a blocking issue for the 1.2.2 release
John Vasileff
@jvasileff
Mar 09 2016 20:03
don’t you think this is IDE specific though?
David Festal
@davidfestal
Mar 09 2016 20:03
This is something more general than the IDE
John Vasileff
@jvasileff
Mar 09 2016 20:03
ok
David Festal
@davidfestal
Mar 09 2016 20:03
does it run through the CLI ?
John Vasileff
@jvasileff
Mar 09 2016 20:03
yes
David Festal
@davidfestal
Mar 09 2016 20:03
wow, strange
since we use JBossModules to start
which CLI the last master ?
or 1.2.1 ?
John Vasileff
@jvasileff
Mar 09 2016 20:04
yes, very latest master all around
David Festal
@davidfestal
Mar 09 2016 20:04
so strange
because normally the IDE runs the programs the same way as the CLI
since it's an IDE thing, you can open the issue in the IDE repo
but please ask @FroMage if he has any clue about it, and mention the related commit...
John Vasileff
@jvasileff
Mar 09 2016 20:13
if I add import "org.antlr.runtime" "3.4”; to the Dart compiler’s module.ceylon, the CLI breaks too.
will submit new issue shortly
David Festal
@davidfestal
Mar 09 2016 20:14
OK, strange, but it seems that the root cause is the same in both the CLI and IDE
it just happens at a different step
David Festal
@davidfestal
Mar 09 2016 21:00
@gavinking : I din't see your ceylon/ceylon-ide-eclipse#1718 commit to the 1.2.2-preparation branch
did you push ?