In old FAMIX, the FAMIXAnnotationInstance defines two containers:
The annotatedEntity is used for belongsTo, but I would like to know
was defined as container too. Does it has some reason?
is there a Java AST parser in Pharo?
I imagine that jdt2famix must have something inside, but as far as I
understand, it just extracts some information from the source code and
throws the AST away.
Here I am trying to visualize a SVG figure generic enough to cover
many other SVG figures. Currently I use the SVG logo:
contains SVG paths, rect, circles and polygons.
First I tried to parse with the Athens-SVG included in Pharo 6.1:
scene: (AthensSVGConverter fromURL:
but fails with: "Error: cannot resolve url: http://www.w3.org/Graphics/SVG/"
So I quickly switched to Roassal SVG.
The SVG examples does not cover for example specified colors but they
are replaced with Color random.
Also using this expression it seems there is no support for "circle" type.
collect: [ : s | s hasSubclasses not ifTrue: [ s new type ] ]
as: Set) reject: #isNil
with that in mind I tried to parse the SVG logo with the following
terrible script which only support paths but can read named or hex
| tree view |
view := RTView new.
tree := XMLDOMParser parseURL:
view := RTView new.
(tree allElementsSelect: [ :e | e isElementNamed: #path ])
elementsDo: [ : node |
| elem color colorAtt |
color := (node includesAttribute: 'fill')
ifTrue: [ Color fromHexString: (((colorAtt := node
attributeAt: 'fill') beginsWith: '#') ifTrue: [ colorAtt allButFirst ]
ifFalse: [ colorAtt ]) ]
ifFalse: [ Color random ].
elem := (RTSVGPath new
path: (node attributeAt: 'd');
scale: 1) element model: (node attributeAt: 'title').
elem @ RTPopup.
view add: elem ].
However adding support for circle, rect, polygon, etc. is becoming too
complicated this way :)
Is there some other recommended way how to approach this?
In a clean Pharo 6.1 (Windows 8) I loaded Roassal2 with the following
spec in a baseline:
But many Trachel tests fails because of "External module not found"
error (Screenshots attached).
May be Roassal2 is broken on Windows?
I tried loading Roassal2 from the Catalog browser and the same 137 tests fails.
Any idea what could be missing?
We are happy to announce a new leap of GToolkit Documenter, the tool for manipulating live documents directly in the development environment:
Documenter is part of the second generation GToolkit project, it is based on Bloc and works with the latest Pillar. It is mainly developed by Juraj Kubelka.
Attached you can see a preview of how documents look like:
At its core it offers a live editor for manipulating Pillar documents. The interaction happens seamlessly directly in the text editor, and it can be combined with different types of previews to serve several classes of use cases:
• code documentation
• interactive data notebook
Documenter complements the GToolkit Examples engine to redefine code documentation. When practicing example-driven development, examples get written as part of the typical development. Once examples exist, they can be quickly put together in a document to form documentation. For example, the linked picture shows the comment of a class containing a visual explanation:
You can see a live example of documentation by inspecting the following snippet:
GtDocumenter editorForText: BrToggleExamples comment.
Documenter offers a new experience of writing tutorials for Pharo by enabling the creation and embedding of Epicea change sessions directly in the document. For example, take a look at the following animation:
The document shows a method on top, and a change preview at the bottom showing both the code and the associated diff to the state from the image. Applying the change updates both the change view (no more diff), and method preview. This speeds up significantly the process of going through a tutorial. Furthermore, given that now the document shows the diff to the current image, the reader can safely explore alternative scenario and come back to the tutorial at any time without losing the overview.
The size of the preview can also be adjusted live:
You can see a live tutorial by inspecting:
IceRepository repositoriesLocation / 'feenkcom'/ 'gtoolkit-examples' / 'doc' / 'tutorial' / 'examples-tutorial.pillar’.
Interactive data notebook:
A Documenter document can also be used as an interactive notebook. Internally it essentially acts as a playground:
• it supports defining variables in code snippets, and
• the execution of code shows an embedded inspector.
An example, can be seen by inspecting:
IceRepository repositoriesLocation / 'feenkcom'/ 'gtoolkit' / 'doc' / 'gtoolkit' / 'gtoolkit.pillar'.
As always, please do let us know what you think.
The feenk team
"If you can't say why something is relevant,
it probably isn't."
I'm totally new to Moose (and effectively new to Smalltalk) and need a
pointer or two on analyzing an old application that was developed in Visual
C++ 2006. I have the complete sources, including the Visual Studio project
files, resource files, etc.
I've already got Pharo and Moose installed on my Windows system and have
been able to get the Moose playground to run, but that's about it. So far I
don't know how to get Moose to do anything else.
My initial goal is just to get this source code "loaded" into Moose.
I've seen references to VerveineC-Cpp and Famix-C but no explanation of how
to use either one.
I haven't had an opportunity yet to try VerveineC-Cpp on Windows 10 at my
On my personal Mac (i.e. not on the office system where I actually need to
do this work) I installed Eclipse Oxygen and tried to follow the very
limited directions to install VerveineC-Cpp, but Eclipse complains about the
Maybe Eclipse Mars is needed instead of Jupiter? It also looks like I might
need to use the old, deprecated Java V1.7 for MacOS, instead of a current
version of Java? (Hopefully I won't need an older version of MacOS. I'm
running Sierra V10.12 with all updates as of this writing.)
Maybe that would all be more straightforward somehow on Windows?
(I also have Linux at work, if that would be any easier.)
As for Famix-C, I see that it appears to be "built in" to the Moose
environment that I installed at work and at home. But I don't know how to
make it do anything.
I greatly appreciate any hints or suggestions. I'm very eager to begin using
Moose and to (re)learn Smalltalk, especially in the Pharo environment which
looks really fascinating.
(Trivia: Back in the early 1990's or thereabouts, while taking a graduate
course in operating system design, I learned enough Smalltalk to get me
started on writing an emulator for the simple machine specification the
professor gave us. But a single academic quarter, roughly three months, just
wasn't enough time to both learn a totally new, object oriented programming
paradigm /and/ use it to complete such a program, while also holding down a
full time job and leading a regular life. :-) But I did write a good paper
explaining my ideas and how far I'd actually been able to carry them. The
professor was understanding, liked my concept, and I managed to get a B+
grade for the course.)
Sent from: http://forum.world.st/Moose-f1310756.html