Hi,
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.
Thanks,
Peter
Hi,
Here I am trying to visualize a SVG figure generic enough to cover
many other SVG figures. Currently I use the SVG logo:
https://upload.wikimedia.org/wikipedia/commons/0/02/SVG_logo.svg which
contains SVG paths, rect, circles and polygons.
First I tried to parse with the Athens-SVG included in Pharo 6.1:
AthensSceneView new
scene: (AthensSVGConverter fromURL:
'https://upload.wikimedia.org/wikipedia/commons/0/02/SVG_logo.svg');
openInWindow
but fails with: "Error: cannot …
[View More]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.
RTSVGEntity withAllSubclasses
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
colors
| tree view |
view := RTView new.
tree := XMLDOMParser parseURL:
'https://upload.wikimedia.org/wikipedia/commons/0/02/SVG_logo.svg'.
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');
fillColor: color;
scale: 1) element model: (node attributeAt: 'title').
elem @ RTPopup.
view add: elem ].
view inspect
However adding support for circle, rect, polygon, etc. is becoming too
complicated this way :)
Is there some other recommended way how to approach this?
Cheers,
Hernán
[View Less]
In a clean Pharo 6.1 (Windows 8) I loaded Roassal2 with the following
spec in a baseline:
spec
project: 'Roassal2'
with: [
spec
className: #ConfigurationOfRoassal2;
versionString: #stable;
repository:
'http://www.smalltalkhub.com/mc/ObjectProfile/Roassal2' ].
But many Trachel tests fails because of "External module not found"
error (Screenshots attached).
May …
[View More]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?
Cheers,
Hernán
[View Less]
Hi,
We are happy to announce a new leap of GToolkit Documenter, the tool for manipulating live documents directly in the development environment:
https://github.com/feenkcom/gtoolkit-documenter
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 …
[View More]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
• tutorials
• interactive data notebook
Code documentation
----
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:
https://twitter.com/feenkcom/status/973899862482866176
You can see a live example of documentation by inspecting the following snippet:
GtDocumenter editorForText: BrToggleExamples comment.
Tutorials:
----
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:
https://twitter.com/feenkcom/status/999975333972541440
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:
https://twitter.com/feenkcom/status/1001152789874167808https://twitter.com/feenkcom/status/1001407762285375490
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.
For example:
https://twitter.com/feenkcom/status/996310432225820672https://twitter.com/feenkcom/status/1002851190475026432
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.
Enjoy,
The feenk team
--
www.tudorgirba.comwww.feenk.com
"If you can't say why something is relevant,
it probably isn't."
[View Less]
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 "…
[View More]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
office.
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
build path.
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
[View Less]
Hi Smalltalkers,
Just a kind reminder, deadline is in two weeks.
We are waiting for your submission!
Loic and Anne
CFP - IWST 2018 - International Workshop on Smalltalk Technologies
[Please accept our apologies if you receive multiple copies of this call]
[Please send to interested colleagues / mailing-lists]
************************************************************************************************************
CALL FOR PAPERS
IWST 2018 — International Workshop on Smalltalk …
[View More]Technologies
http://esug.org/wiki/pier/Conferences/2018/International-Workshop-IWST_18 <http://www.esug.org/wiki/pier/Conferences/2017/International-Workshop-IWST_…>
Cagliari, Italy; Between September 10th and 14th, 2018
************************************************************************************************************
-------------------
Goals and scopes
-------------------
The goals of the workshop is to create a forum around advances or experience in Smalltalk and to trigger discussions and exchanges of ideas. The topics of your paper can be on all aspect of Smalltalk, theoretical as well as practical. Participants are invited to submit research articles or industrial papers. This year we want to open two different tracks: one research track and one industrial track with less scientific constraints.
We expect papers of three kinds:
Short position papers describing emerging ideas
Long research papers with deeper description of experiments and of research results.
Industrial papers with presentation of real and innovative Smalltalk applications; this kind of paper should enlighten why Smalltalk is really appropriate for your application.
We will not enforce any length restriction.
--------------------
Important Dates
--------------------
Submission deadline: June 15th, 2018
Notification deadline: July 10th, 2018
Workshop : between September 10th and 14th, 2018
All accepted papers will be published in ACM DL (To be confirmed)
-------------------
Topics
-------------------
We welcome contributions on all aspects, theoretical as well as practical, of Smalltalk related topics such as:
-Aspect-oriented programming,
-Design patterns,
-Experience reports,
-Frameworks,
-Implementation, new dialects or languages implemented in Smalltalk,
-Interaction with other languages,
-Meta-programming and Meta-modeling,
-Tools
-------------------
Best Paper Award
-------------------
To encourage the submission of high-quality papers, the IWST organizing committee is very proud to announce a Best Paper Award for this edition of IWST.
We thank the Lam Research Corporation for its financial contribution which makes it possible for prizes for the three best papers: 1000 USD for first place, 600 USD for second place and 400 USD for third place.
The ranking will be decided by the program committee during the review process. The awards will be given during the ESUG conference social event.
The Best Paper Award will take place only with a minimum of six submissions. Notice also that to be illegible, a paper must be presented at the workshop by one of the author and that the presenting author must be registered at the ESUG conference.
-------------------
Publication
-------------------
Both submissions and final papers must be prepared using the ACM SIGPLAN 10 point format. Templates for Word and LaTeX are available at http://www.acm.org/sigs/sigplan/authorInformation.htm <http://www.acm.org/sigs/sigplan/authorInformation.htm>. This site also contains links to useful informations on how to write effective submissions.
-------------------
Submission
-------------------
All submissions must be sent via easychair: https://easychair.org/conferences/?conf=iwst18 <https://easychair.org/conferences/?conf=iwst18>
-------------------
Program chairs
-------------------
Anne Etien (Université de Lille, France)
Loic Lagadec (Ensta Bretagne, France)
[View Less]
Hi,
the old Famix implementation has some irregularly defined relations in
parts related to C/C++ meta-metamodels and we should not move them this way
to the compatibility metamodel defined in new Famix.
So I would like to ask, is anyone of you using C/C++ models in practice
now? If not, we do not need to bother with the keeping of the backward
compatibility for every price.
Thank you
-- Pavel
Hi,
We are happy to announce roslyn2famix, a C# importer. It is based on Roslyn, and was mainly developed by George Ganea. It is released under Apache 2.0, the same license as Roslyn:
https://github.com/feenkcom/roslyn2famix
The importer has a structure similar to the one of jdt2famix, including a Fame implementation in C#, and FAMIX code generated out of the Moose code. We also have a few CSharp specific entities that are already present in Moose-CSharp.
The importer takes as input a C# …
[View More]solution (.sln), and produces an MSE file that can be loaded in the latest Moose.
Cheers,
The feenk team
--
www.tudorgirba.comwww.feenk.com
"Be rather willing to give than demanding to get."
[View Less]