Labels: Type-Defect Priority-High Component-Glamour Milestone-4.3
New issue 492 by tudor.gi...(a)gmail.com: Glamour browsers do not release all
subscriptions to announcer objects
I noticed that in some complex updating between panels, using an external
announcer, some of the update subscriptions were not removed when the
browser is closed. I debugged a little and I founded that this
announcerObjects ifNotNil: [
announcerObjects do: [:each |
each unsubscribe: self ] ]
is bugged, because if announcerObjects are not previously computed (and in
some cases that's what happens), the subscription is not removed.
This implementation (just using the accessor instead the direct object),
solves the problem (but I don't know is it's a right fix, and it should be
a fix in other place)
self announcerObjects ifNotNil: [ :objects |
objects do: [:each |
each unsubscribe: self ] ]
Some people suggested trying moose for analysis of SAS programs, and I'm
trying to figure out where to start with the meta-modeling.
SAS is not object oriented, though parts of it could be imagined to be.
The main SAS code contains blocks of statements that begin with DATA or
PROC; each block could probably be thought of as a function--to be
precise, the application of a function.
If I want to make some new models, where do I start? FM3? FAMIX?
elsewhere? The 4.0 release announcement says FM3 and FAMIX3 are both
implemented in Fame, so maybe start with Fame? I've read some
documentation, but I can't tell.
My inspiration for the project is understanding how some SAS datasets
were produced. I have a system that creates numerous datasets, which
feed into later datasets, etc. This is split at least across a couple
of program files and it's really too complicated to keep in the brain.
If I get ambitious it would also be useful to trace where particular
variables came from, in the sense of both datasets and individual
The only thing resembling a SAS parser I've run into (except for SAS,
which is closed source) is a Perl module, and it looked relatively
primitive. I've been using PetitParser, and at the point I started
thinking about what it would parse results into.
Thanks for any pointers.
i did implement an SQL parser using Petit Parser. I toke the grammar specification from SQLite http://www.sqlite.org/lang.html . The grammar implemented is not complete, for now i did implement "just" the create table statement, it means that you should be able to parse at least a script for create the database.
The code is in squeaksource http://www.squeaksource.com/@09zbthA-fDDfyUNQ/_OIex3aA .
To download it you can evaluate this:
(Smalltalk at: #ConfigurationOfPetitSQLParser) perform: #loadDefault
in the repository there are several packages: the core contains the parser for the grammar.
In the package parser there is a parser that instantiate some draft objects representing relational elements.
In the next future i will start to implement also other statements.
If you start to use it and you have some problem please let me know.
Labels: Type-Defect Priority-Medium Component-ExternalTools
New issue 533 by tudor.gi...(a)gmail.com: inFusion should export the receiver
The receiver should point to a named entity.
Labels: Type-Enhancement Priority-Medium Component-MooseCore
New issue 541 by tudor.gi...(a)gmail.com: Create an initial Moose help :)
We should have a Moose help entry in ProfStef.
The idea is to pick some existing pieces of text from the webpage and the
Labels: Type-Enhancement Priority-Medium Component-Glamour Milestone-4.3
New issue 494 by tudor.gi...(a)gmail.com: Dynamic presentation should be a
The problem is that when in a presentation we ask for entity, we get the
value of the entity of the pane around the dynamic presentation, instead of
the transformed value.
Labels: Type-Enhancement Priority-Medium Component-Glamour
New issue 510 by tudor.gi...(a)gmail.com: Introduce Port>>transientValue:
We should be able to set the value of a port only temporarily. This would
be useful for triggering other transmissions. For example, to implement a
search like behavior we could use the code from below. The problem is that
if you press the search icon once, then change the selection manually, and
then press the button again, the selection will not change because the
#focusOne port did not change the value.
browser := GLMTabulator new.
browser act: [:b | (b pane port: #focusOne) value: 3 ] icon: MooseIcons
mooseSearch entitled: 'Search'.
browser column: #one; column: #two.
browser transmit to: #one; andShow: [ :a |
display: [:x | 1 to: x]].
browser transmit to: #two; from: #one; andShow: [ :a |
display: [:x | 1 to: x*2]].
browser transmit to: #one port: #selection; fromOutsidePort: #focusOne.
browser openOn: 3
Labels: Type-Defect Priority-Medium
New issue 540 by vuqui...(a)vub.ac.be: Glamour: removing dependency in
configuration - core group
In the configuration of Glamour, the core group was loading only Glamour
packages, and the extras group: mondrian and magritte presentations. This
allowed to load those presentations if needed.
Currently, the core group is also depending on Mondrian. The method
MOViewRenderer>>openWithStatusbar is causing this dependency in the package
Can this dependency be removed from the group core?