help-smalltalk
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Help-smalltalk] Advancing gst-convert for more automatic conversion


From: Holger Hans Peter Freyther
Subject: [Help-smalltalk] Advancing gst-convert for more automatic conversion
Date: Sat, 23 Feb 2013 10:02:19 +0100
User-agent: Mutt/1.5.21 (2010-09-15)

Good Morning Everyone,

I am using packages (PetitParser, SoapOpera) that I imported from Pharo,
I intend to use (Magritt2, Magritte3, MongoTalk, Voyage, Seaside3) in the
future and I have started to make my Osmocom (Logging, Core, Network, GSM,
SIP, MGCP) available to Pharo.


==> Pharo
* There are Makefiles[1][2] with re-write fules
* There is a compat_for_pharo.st with code for Pharo that doesn't exist
  but is needed.
* There is a changes_for_pharo.st[3] to override some methods. E.g. I
  introduced a >>#platformInit selector and have a pharo specific implementation
  (in that case because Delays across image restarts are broken).


<== Pharo
So far I took the latest version, converted it without rules and then worked
on the test failures until they passed. This has worked but makes updating
and tracking the upstream more difficult. I have started to look into another
way for PetitParser (the development appears mostly done).

* Take each revision of PetitParser (and PetitParser tests).
* Run gst-convert to convert the syntax from filein to gst and commit to
  pharo/upstream.
* Run gst-convert to convert ==>, >=> to to other selectors, omit the Text
  class, change the variable names used in the stream (maybe that is not
  possible right now) and check it in as pharo/upstream-converted.
* Merge pharo/upstream-converted into master.

The above assumes that the output of 'gst-convert' is 'stable' (e.g. no
re-ordering inside the output). The benefit of two branches is to be able
to track the original change and the re-write results.


What is missing:
* A way to easily download versions from a HTTP Monticello repository
* Re-write selector names and comments.
* PackageInfo so we can run Monticello in GST.


Repository:
Currently it is difficult to guess the version number and author name of
a monticello package. So we would need to use wget and then parse the html
and then find the package we are searching for.


Re-write:
For PetitParser I replace ==> with => but that is only in the calling code,
the ==> [] implementation is not affected by my re-writing. I think we could
either add loading of visitors (randmom Smalltalk code that is ran on the
AST) or make Convert a package so that I could have a subclass for applying
my own re-write rules.


PackageInfo:
For the ==> Pharo direction it would be nice if I could generate monticello
packages. But it would also be nice to have the 'patch'/'diff' feature of it
available. To add more things we could have a VFS for git and then we could
use MontiCello to generate a high-level diff for git revision A to revision B.

The only Monticello dependency we do not have is the PackageInfo monster. I
wonder if someone is interested in helping out with that?


holger





[1] http://cgit.osmocom.org/cgit/smalltalk/osmo-st-logging/tree/Makefile
[2] http://cgit.osmocom.org/cgit/smalltalk/osmo-st-core/tree/Makefile
[3] 
http://cgit.osmocom.org/cgit/smalltalk/osmo-st-core/tree/changes_for_pharo.st



reply via email to

[Prev in Thread] Current Thread [Next in Thread]