[squeak-dev] Roassal3...What is optimal, port Athens? Athens-Cairo? or build out the Roassal3-Squeak RsBalloonFOO heirarchy

Tom Beckmann tomjonabc at gmail.com
Sun Oct 25 13:39:23 UTC 2020


Hi timothy,

my personal opinion is that, for Squeak, it would be more interesting to
get a working implementation in Balloon going, rather than porting Athens.
Having Athens-Cairo would bring higher quality graphics (as of right now),
but it's also a rather large dependency that may introduce portability
issues, while we know for sure that Balloon "just works". Staying with
Balloon could also make running the Roassal port in some of the Squeak
derivatives such as SqueakJS, GraalSqueak or RSqueak simpler than depending
on FFI.

Note, however, that I have not dug deep into Athens' code, so I may be
over- or underestimating the complexity it would introduce. I do know that
the Balloon backend for Athens (porting which would also be an option) was
very incomplete when I last looked at it.

Best,
Tom

On Sun, Oct 25, 2020 at 2:24 PM gettimothy via Squeak-dev <
squeak-dev at lists.squeakfoundation.org> wrote:

> Hi Tom (and others),
>
> From an earlier email, you remarked that you where able to get an example
> up and running quickly by ignoring Athens (?) and rolling your own.
>
> Is this approach "optimal" ?
>
>
> Here is an example of things we cannot do until dependencies are
> resolved...heck, at the bottom of this email* is the entire Roassal install
> "log" that I saved when I installed the package:
>
>
> You must resolve these dependencies before you will be able to load these
> definitions:
>   AthensCairoPathBuilder>>arcDegreeStart:sweep:centerX:y:radius:
>   AthensCairoPathBuilder>>arcRadianStart:sweep:centerX:y:radius:
>   AthensCairoPathBuilder>>ellipticalArc3:xrot:large:sweep:to:
>   AthensCairoPathBuilder>>ellipticalArc:xrot:large:sweep:to:
>   AthensCairoPathBuilder>>ellipticalArc:xrot:large:sweep:to:relative:
>
> I can either port the AthensCairoPathBuilder or I can move the
> functionality to your BalloonPathBuilder.
>
>
> Since I know nothing about either, it will be equally painful to implement
> either, so the question becomes, which path yeilds the best results going
> forward?
>
>
> Consider too, that "grok FFI" is on my skillset todo-list and Athens-Cairo
> looks like it would put a checkmark on that todo-list item.
>
> I do not know enough to make an informed decision (I intuitively prefer to
> get the base right, but as we discovered with the pharo kernel bytes
> fiasco, that is not always possible)
>
> Your thoughts?
>
> cheers,
>
> tty.
>
>
>
> *Install log follows:
>
> This package depends on the following classes:
>   AthensCairoPathBuilder
> You must resolve these dependencies before you will be able to load these
> definitions:
>   AthensCairoPathBuilder>>arcDegreeStart:sweep:centerX:y:radius:
>   AthensCairoPathBuilder>>arcRadianStart:sweep:centerX:y:radius:
>   AthensCairoPathBuilder>>ellipticalArc3:xrot:large:sweep:to:
>   AthensCairoPathBuilder>>ellipticalArc:xrot:large:sweep:to:
>   AthensCairoPathBuilder>>ellipticalArc:xrot:large:sweep:to:relative:
>
> This package depends on the following classes:
>   PackageManifest
> You must resolve these dependencies before you will be able to load these
> definitions:
>   ManifestGeometryTests
>   ManifestGeometryTests class>>ruleRBStringConcatenationRuleV1FalsePositive
>
>
> This package depends on the following classes:
>   GradientPaint
> You must resolve these dependencies before you will be able to load these
> definitions:
>   GradientPaint>>interpolateTo:at:
>
>
> This package depends on the following classes:
>   AthensCairoPathBuilder
>   AthensCairoSurface
>   RPackage
> You must resolve these dependencies before you will be able to load these
> definitions:
>   AthensCairoPathBuilder>>arcAround:radius:startAngle:endAngle:
>   AthensCairoPathBuilder>>arcAround:radius:startAngle:endAngle:cw:
>   AthensCairoPathBuilder>>arcCos:
>   AthensCairoPathBuilder>>ellipticalArc2:xrot:large:sweep:to:
>   AthensCairoSurface>>hasBeenFreed
>   RPackage>>dependentPackages
> This package depends on the following classes:
>   PharoDarkTheme
>   ClyBrowserToolMorph
>   UITheme
> You must resolve these dependencies before you will be able to load these
> definitions:
>   PharoDarkTheme>>classBoxBackgroundColor
>   RSUMLCalypso
>   RSUMLCalypso>>activationPriority
>   RSUMLCalypso>>applyTheme:
>   RSUMLCalypso>>build
>   RSUMLCalypso>>classes
>   RSUMLCalypso>>defaultIconName
>   RSUMLCalypso>>limitedClasses:
>   RSUMLCalypso>>tabOrder
>   RSUMLClassCalypso
>   RSUMLClassCalypso class>>classUmlTapActivation
>   RSUMLClassCalypso>>classes
>   RSUMLClassCalypso>>defaultTitle
>   RSUMLClassCalypso>>isSimilarTo:
>   RSUMLClassCalypso>>setUpModelFromContext
>   RSUMLClassCalypso>>targetClass
>   RSUMLPackageCalypso
>   RSUMLPackageCalypso class>>classUmlTapActivation
>   RSUMLPackageCalypso>>classes
>   RSUMLPackageCalypso>>defaultIconName
>   RSUMLPackageCalypso>>defaultTitle
>   RSUMLPackageCalypso>>isSimilarTo:
>   RSUMLPackageCalypso>>packages
>   RSUMLPackageCalypso>>setUpModelFromContext
>   UITheme>>classBoxBackgroundColor
>   UITheme>>methodsLimitUML
>
>
> This package depends on the following classes:
>   GLMMorphicWidgetRenderer
>   GLMPresentation
>   GLMMorphicRenderer
> You must resolve these dependencies before you will be able to load these
> definitions:
>   GLMMorphicRenderer>>renderRoassal3Presentation:
>   GLMMorphicRoassal3Renderer
>   GLMMorphicRoassal3Renderer>>render:
>   GLMPresentation>>roassal3
>   GLMRoassal3Presentation
>   GLMRoassal3Presentation>>canvas
>   GLMRoassal3Presentation>>initialize
>   GLMRoassal3Presentation>>initializeCanvas:
>   GLMRoassal3Presentation>>renderGlamorouslyOn:
>   GLMRoassal3Presentation>>setUpInteractions
>
>
> This package depends on the following classes:
>   RPackage
> You must resolve these dependencies before you will be able to load these
> definitions:
>   RPackage>>dependentPackagesWithOccurences
>   RPackage>>numberOfDependenciesToward:
>
> This package depends on the following classes:
>   ParametrizedTestCase
> You must resolve these dependencies before you will be able to load these
> definitions:
>   RSPAnimationTest
>   RSPAnimationTest class>>testParameters
>   RSPAnimationTest>>animationClass
>   RSPAnimationTest>>animationClass:
>   RSPAnimationTest>>setUp
>   RSPAnimationTest>>testBasic
>   RSPAnimationTest>>testBasicInCanvas
>   RSPAnimationTest>>testDelay
>
> This package depends on the following classes:
>   ParametrizedTestCase
> You must resolve these dependencies before you will be able to load these
> definitions:
>   RSPBoundingTest
>   RSPBoundingTest class>>testParameters
>   RSPBoundingTest>>setUp
>   RSPBoundingTest>>shapeClass
>   RSPBoundingTest>>shapeClass:
>   RSPBoundingTest>>testDraw
>   RSPBoundingTest>>testDrawBorder
>   RSPBoundingTest>>testPosition
>   RSPLinesTest
>   RSPLinesTest class>>testParameters
>   RSPLinesTest>>setUp
>   RSPLinesTest>>shapeClass
>   RSPLinesTest>>shapeClass:
>   RSPLinesTest>>testDraw
>   RSPLinesTest>>testDrawMarkers
>
> This package depends on the following classes:
>   AthensLineSegment
>   AthensCubicSegment
>   AthensCloseSegment
>   AthensPathSegment
> You must resolve these dependencies before you will be able to load these
> definitions:
>   AthensCloseSegment>>visitWith:
>   AthensCubicSegment>>durationFor:
>   AthensCubicSegment>>pointsWithStart:duration:
>   AthensCubicSegment>>visitWith:
>   AthensLineSegment>>durationFor:
>   AthensLineSegment>>pointsWithStart:duration:
>   AthensPathSegment>>durationFor:
>   AthensPathSegment>>pointsWithStart:
>   AthensPathSegment>>pointsWithStart:duration:
>
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20201025/366f2fed/attachment.html>


More information about the Squeak-dev mailing list