Change in FAME
by Diego Lont
Hi all,
I wanted to update FAME so it is a bit more memory efficient: it now has a null multi value link that allows for an "empty" multi value link, that uses a lot less memory. And since this is about 80% of the links, I thought this was a good idea.
Now I run into a test, that doesn't work anymore (actually 3 test). But when debugging the test I cannot find the error, it always returns the expected value. Changing the order of the tests helps (why I do not know). So if someone can take a look. The test cases are
testFamixMethodTypeDeclarationsWithoutSelfLoops
testFamixMethodOutgoingTypeDeclarations
testFamixClassOutgoingTypeDeclarations
Cheers,
Diego
9 years, 9 months
Re: Change in FAME
by Stephan Eggermont
The changes were made in
Moose-Tests-SmalltalkImporter-KGB-DiegoLont.27
Fame-Core-DiegoLont.17
Famix-Core-DiegoLont.225
- fix issue 975 remove:ifAbsent:
- Add a FMNullMultivalueLink and use that when there are no values
yet. FMMultivalueLink allocates an OrderedCollection (with default
space for 10 items) as values. In the models we have, about 85%
of the multivaluelinks are empty. In WhiteStar, we save about 10MB.
- replace initiializations with FMMultivalueLink through FMNullMultivalueLink
in Famix-Core
- reordered tests. We would like some comments on that.
Stephan
9 years, 9 months
Build failed in Jenkins: moose-latest-dev-4.8 #981
by admin@moosetechnology.org
See <https://ci.inria.fr/moose/job/moose-latest-dev-4.8/981/>
------------------------------------------
[URLTrigger] A change within the response URL invocation (log)
Building remotely on moose-ubuntu1204-dualproc-i386 in workspace <https://ci.inria.fr/moose/job/moose-latest-dev-4.8/ws/>
Deleting project workspace... done
[moose-latest-dev-4.8] $ /bin/sh -xe /tmp/hudson2124008237164093013.sh
+ wget --quiet -O - http://get.pharo.org/20+vmLatest
+ bash
Downloading the latest 20 Image:
http://files.pharo.org/image/20/latest.zip
Pharo.image
Downloading the latest pharoVM:
http://files.pharo.org/vm/pharo/linux/latest.zip
pharo-vm/pharo
Downloading PharoV10.sources:
http://files.pharo.org/sources//PharoV10.sources.zip
Downloading PharoV20.sources:
http://files.pharo.org/sources//PharoV20.sources.zip
Creating starter scripts pharo and pharo-ui
+ ./pharo Pharo.image save moose-latest-dev-4.8
+ REPO=http://www.smalltalkhub.com/mc/Moose/Moose/main
+ ./pharo moose-latest-dev-4.8.image config http://www.smalltalkhub.com/mc/Moose/Moose/main ConfigurationOfMoose --install=development
[31m[33m
===============================================================================
Notice: Installing ConfigurationOfMoose development
===============================================================================
[0m[0m+ ./pharo moose-latest-dev-4.8.image mooseimagesetup --signature=https://ci.inria.fr/moose/job/moose-latest-dev-4.8/981/
+ ./pharo moose-latest-dev-4.8.image moosetest --junit-xml-output
[31m[33m
===============================================================================
Notice: Running tests in 136 Packages
===============================================================================
[0m[0m[31m==== Startup Error: Error: no such inst var
[0mFM3PackageDescription(Object)>>error:
FM3PackageDescription(Object)>>instVarNamed:put: in Block: [self error: 'no such inst var']
ProtoObject class(ClassDescription)>>instVarIndexFor:ifAbsent:
Object class(ClassDescription)>>instVarIndexFor:ifAbsent:
FM3Element class(ClassDescription)>>instVarIndexFor:ifAbsent:
FM3PackageDescription class(ClassDescription)>>instVarIndexFor:ifAbsent:
FM3PackageDescription(Object)>>instVarNamed:put:
FMNullMultivalueLink>>noMoreNull
FMNullMultivalueLink>>unsafeAdd:
FMMultivalueLink class>>on:update:from:to:
FM3PropertyDescription>>package:
MoosePragmaProcessor(FMPragmaProcessor)>>resolveObjectReferences in Block: [:prop :value | prop...
IdentityDictionary(Dictionary)>>keysAndValuesDo: in Block: [:assoc | aBlock value: assoc key value: assoc val...etc...
IdentityDictionary(Dictionary)>>associationsDo: in Block: [:each | each...
Array(SequenceableCollection)>>do:
IdentityDictionary(Dictionary)>>associationsDo:
IdentityDictionary(Dictionary)>>keysAndValuesDo:
MoosePragmaProcessor(FMPragmaProcessor)>>resolveObjectReferences
MoosePragmaProcessor(FMPragmaProcessor)>>run
MooseModel class>>metaBuilder:withProcessor:
MooseModel class>>metaBuilder:
MooseModel class>>metaTower
MooseModel class>>meta
MooseModel class>>importFrom:
MooseModel>>importFromMSEStream:
MooseSampleData>>readMSEString:
MooseSampleData>>initialize
MooseSampleData class(Behavior)>>new
MooseSampleData class(TestResource class)>>new
MooseSampleData class(TestResource class)>>makeAvailable
[0m[31mGot startup errors:
[0m[31m Error: no such inst var
[0mBuild step 'Execute shell' marked build as failure
Archiving artifacts
Recording test results
9 years, 9 months
Re: Some FAMIX questions
by Stephan Eggermont
Ok, so easiest to reclaim some space seems to be FMMultivalueLink.
Lots of empty ones (>80%), and values is an OrderedCollection
of size 10.
Stephan
9 years, 9 months
Jenkins update!
by Yuriy Tymchuk
Hi guys.
Yesterday in the evening I've updated Moose Jenkins to version 1.529. Also I've updated all plugins and installed 2 new ones: Disc usage and Dashboard.
Until now everything is working fine, if you'll notice some issues please let me know.
Cheers!
Uko
9 years, 9 months
Build failed in Jenkins: moose-latest-dev-4.8 #979
by admin@moosetechnology.org
See <https://ci.inria.fr/moose/job/moose-latest-dev-4.8/979/>
------------------------------------------
Started by timer
Started by upstream project "fame" build number 166
originally caused by:
Started by timer
Started by upstream project "gtoolkit" build number 281
originally caused by:
Started by timer
Building remotely on moose-slave in workspace <https://ci.inria.fr/moose/job/moose-latest-dev-4.8/ws/>
Deleting project workspace... done
[moose-latest-dev-4.8] $ /bin/sh -xe /tmp/hudson2228097957542478613.sh
+ bash
+ wget --quiet -O - http://get.pharo.org/20+vmLatest
Downloading the latest 20 Image:
http://files.pharo.org/image/20/latest.zip
Pharo.image
Downloading the latest pharoVM:
http://files.pharo.org/vm/pharo/linux/latest.zip
pharo-vm/pharo
Downloading PharoV10.sources:
http://files.pharo.org/sources//PharoV10.sources.zip
Downloading PharoV20.sources:
http://files.pharo.org/sources//PharoV20.sources.zip
Creating starter scripts pharo and pharo-ui
+ ./pharo Pharo.image save moose-latest-dev-4.8
+ REPO=http://www.smalltalkhub.com/mc/Moose/Moose/main
+ ./pharo moose-latest-dev-4.8.image config http://www.smalltalkhub.com/mc/Moose/Moose/main ConfigurationOfMoose --install=development
[31m[33m
===============================================================================
Notice: Installing ConfigurationOfMoose development
===============================================================================
[0m[0m+ ./pharo moose-latest-dev-4.8.image mooseimagesetup --signature=https://ci.inria.fr/moose/job/moose-latest-dev-4.8/979/
+ ./pharo moose-latest-dev-4.8.image moosetest --junit-xml-output
[31m[33m
===============================================================================
Notice: Running tests in 136 Packages
===============================================================================
[0m[0m[31mError: index out of range
[0mTabSelectorMorph(Object)>>error:
TabSelectorMorph(Morph)>>privateAddAllMorphs:atIndex:
TabSelectorMorph(Morph)>>addAllMorphs:
TabSelectorMorph>>updateTabs
TabSelectorMorph>>extent:
TabSelectorMorph(Morph)>>bounds:
TabSelectorMorph(Morph)>>layoutInBounds:
TableLayout>>layoutLeftToRight:in:
TableLayout>>layout:in:
PanelMorph(Morph)>>doLayoutIn:
PanelMorph(Morph)>>fullBounds in Block: [self doLayoutIn: self layoutBounds]
BlockClosure>>on:do:
PanelMorph(Morph)>>fullBounds
LazyTabGroupMorph(Morph)>>submorphBounds in Block: [:m | | subBox | m visible...
Array(SequenceableCollection)>>do:
LazyTabGroupMorph(Morph)>>submorphBounds
LazyTabGroupMorph(Morph)>>privateFullBounds
LazyTabGroupMorph(Morph)>>doLayoutIn:
LazyTabGroupMorph(Morph)>>fullBounds in Block: [self doLayoutIn: self layoutBounds]
BlockClosure>>on:do:
LazyTabGroupMorph(Morph)>>fullBounds
LazyTabGroupMorph(Morph)>>layoutProportionallyIn:
ProportionalLayout>>layout:in: in Block: [:m | m layoutProportionallyIn: newBounds]
Array(SequenceableCollection)>>do:
PanelMorph(Morph)>>submorphsDo:
ProportionalLayout>>layout:in:
PanelMorph(Morph)>>doLayoutIn:
PanelMorph(Morph)>>fullBounds in Block: [self doLayoutIn: self layoutBounds]
BlockClosure>>on:do:
PanelMorph(Morph)>>fullBounds
[0mBuild step 'Execute shell' marked build as failure
Archiving artifacts
Recording test results
ERROR: Failed to archive test reports
hudson.util.IOException2: remote file operation failed: <https://ci.inria.fr/moose/job/moose-latest-dev-4.8/ws/> at hudson.remoting.Channel@55ae3b4d:moose-slave
at hudson.FilePath.act(FilePath.java:905)
at hudson.FilePath.act(FilePath.java:882)
at hudson.tasks.junit.JUnitParser.parse(JUnitParser.java:87)
at hudson.tasks.junit.JUnitResultArchiver.parse(JUnitResultArchiver.java:121)
at hudson.tasks.junit.JUnitResultArchiver.perform(JUnitResultArchiver.java:133)
at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:804)
at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:776)
at hudson.model.Build$BuildExecution.post2(Build.java:183)
at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:726)
at hudson.model.Run.execute(Run.java:1628)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:247)
Caused by: hudson.util.IOException2: Failed to read <https://ci.inria.fr/moose/job/moose-latest-dev-4.8/ws/Glamour-Tests-Morph...>
at hudson.tasks.junit.TestResult.parse(TestResult.java:291)
at hudson.tasks.junit.TestResult.parsePossiblyEmpty(TestResult.java:230)
at hudson.tasks.junit.TestResult.parse(TestResult.java:165)
at hudson.tasks.junit.TestResult.parse(TestResult.java:148)
at hudson.tasks.junit.TestResult.<init>(TestResult.java:124)
at hudson.tasks.junit.JUnitParser$ParseResultCallable.invoke(JUnitParser.java:117)
at hudson.tasks.junit.JUnitParser$ParseResultCallable.invoke(JUnitParser.java:90)
at hudson.FilePath$FileCallableWrapper.call(FilePath.java:2417)
at hudson.remoting.UserRequest.perform(UserRequest.java:118)
at hudson.remoting.UserRequest.perform(UserRequest.java:48)
at hudson.remoting.Request$2.run(Request.java:326)
at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:679)
Caused by: org.dom4j.DocumentException: Error on line 99 of document file://<https://ci.inria.fr/moose/job/moose-latest-dev-4.8/ws/Glamour-Tests-Morph...> : XML document structures must start and end within the same entity. Nested exception: XML document structures must start and end within the same entity.
at org.dom4j.io.SAXReader.read(SAXReader.java:482)
at org.dom4j.io.SAXReader.read(SAXReader.java:264)
at hudson.tasks.junit.SuiteResult.parse(SuiteResult.java:130)
at hudson.tasks.junit.TestResult.parse(TestResult.java:274)
... 16 more
Caused by: org.xml.sax.SAXParseException; systemId: file://<https://ci.inria.fr/moose/job/moose-latest-dev-4.8/ws/Glamour-Tests-Morph...;> lineNumber: 99; columnNumber: 1; XML document structures must start and end within the same entity.
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:198)
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:177)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:391)
at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1404)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.endEntity(XMLDocumentFragmentScannerImpl.java:882)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.endEntity(XMLDocumentScannerImpl.java:582)
at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.endEntity(XMLEntityManager.java:1370)
at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.load(XMLEntityScanner.java:1740)
at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.skipChar(XMLEntityScanner.java:1393)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2769)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:625)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:116)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:488)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:819)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:748)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1208)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:525)
at org.dom4j.io.SAXReader.read(SAXReader.java:465)
... 19 more
9 years, 9 months
Re: Some FAMIX questions
by Stephan Eggermont
Currently, quite a lot of space seem to be taken up by not-filled instvars.
In my Delphi based Whitestar model, 406085 out of 664371
are either nil or empty sets. In a JHotDraw model from inFusion
it is 724408 out of 1351527
Stephan
FAMeasurements>measure
varSize := mClass instSize.
instSize := mClass allInstances size.
nrNil := 0.
nrEmpty := 0.
mClass allInstancesDo: [ :instance |
1 to: varSize do: [:varIndex | |value|
value := instance instVarAt: varIndex.
value ifNil: [ nrNil := nrNil+1 ].
value isCollection ifTrue: [
value ifEmpty: [ nrEmpty := nrEmpty+1 ] ] ] ]
MeasureFAMIX>initializeMeasurements
FAMIXEntity withAllSubclassesDo: [ :each |
self measurements add: (FAMeasurements new
mClass: each;
yourself). ]
MeasureFAMIX>run
self initializeMeasurements.
measurements do: [ :each | each measure]
MeasureFAMIX>sum
nrOfVars := 0.
nrEmpty := 0.
measurements do: [ :measurement |
nrOfVars := nrOfVars + (measurement varSize * measurement instSize).
nrEmpty := nrEmpty + measurement nrEmpty + measurement nrNil].
In Famix-SelfMeasurements on smalltalkhub
9 years, 9 months