Monthly Archives: March 2015

Quality Assistant

Dear Pharo users,

As you already know I am working on providing better code quality support in Pharo. You can use Code Critics in Pharo to detect bad practices and potential bugs. But launching the Critics Browser and running it on your code every now and then requires additional effort which demotivates many people in doing it.

I want to present you a compact tool called Quality Assistant
https://github.com/Uko/QualityAssistant#quality-assistant-𝑏𝑒𝑡𝑎-

It runs SmallLint rules on the code that you save and provides you with a critic feedback directly in the place where you code: the Nautilus Browser.

Quality Assistant is available for Pharo 4 from the Configuration browser. Please read about how to set it up here: https://github.com/Uko/QualityAssistant#set-up

I plan to introduce more features in the future and your feedback is much appreciated.

Cheers!
Uko

Changing the wheels on the car at 100km/h

Ben Coman refactored a core part of Delay and Delay are really central to a system like Pharo. His testimony highlights how we can be close to the system heart and improve it.

“One of the things that drew me to do the Delay refactoring, is simply that I could. That is, I was amazed that I could dig so deep so easily, see a path to improvement and effect change at a fundamental level. Excepting complexities with the Continuous Integration due to “changing the wheels on the car at 100km/h” (and one slip), it seems to have gone reasonably smoothly.  That sense of mastery is seductive.”

Pharo 40 beta is out

Try it to help us to deliver a great Pharo 40 release.

http://pharo.org/news/pharo4-beta

#before and #after links!

Hi,

After loading this:
Simple after and before MetaLinks are taken into account, with just one check in #visitNode of the ASTTranslator that is
false when no links are there. (which means this slice should not impact anything)
For now this is for very simple MetaLinks: no parameters, no condition, no reification, no #instead/around,
no meta-level modelling.
Here is a trivial example:
1) get a AST node from our example method:
sendNode := (ReflectivityExamples>>#exampleMethod) ast body statements first value.
2) then we define a link that is just #halt:
link := MetaLink new
metaObject: Halt;
 selector: #now.
3) we set it:
sendNode link: link.
4) when we now execute the method, we get a halt:
ReflectivityExamples new exampleMethod
5) to get rid of it, uninstall the link:
link uninstall.
If you look at the byte code, you see that it compiles the link to the code:
25 <20> pushConstant: Halt
26 <D1> send: now
Marcus

Using Google service discovery API’s with Pharo Smalltalk

Richard Prinz released a library to script Google services.

He wrote a tutorial on how to use it at: http://www.min.at/prinz/?x=entry:entry150318-104537

Stef

Help releasing Pharo 40

Hello,

As every year: We can only fix what we know.

And this means that no, just because *you* think that X and Y obviously needs to be fixed, 
it will only be fixed if 
	a) there is an issue on the issue tracker
	b) someone fixes it.

We need help.
	Marcus

ExtendedNumberParser secured

Hi

I did not want to lose the work of Nicolas Cellier around alternate number parsers so I went
back in Pharo 30 and packaged them as a separate package (may be it was already done but I could not find it).

All the tests are green in Pharo 40. So I hope that everything is ok 🙂

MCHttpRepository
location: ‘http://www.smalltalkhub.com/mc/PharoExtras/ExtendedNumberParser/main&#8217;
user: ”
password: ”

I did a configuration and published the code in the meta repository for Pharo 40.

Thanks Nicolas Cellier for the original code.

Stef

I believe that we should pay attention that doing is difficult and we should not lose good assets

Viva: a minimal framework for animation

Hi

Viva is a small framework to define animation developed by igor Stasenko.
It is used by Roassal2 for its animation.
Now Viva is published in its own repository

MCHttpRepository
location: ‘http://www.smalltalkhub.com/mc/RMoD/Viva/main&#8217;
user: ”
password: ”

and published in the configuration repository for Pharo 40.

Stef

MongoTalk getting ready for Pharo 4.0

Hi,

cleaned up MongoTalk a little bit:

- added a new baseline 1.7 with separate test packages for "BSON" and "Core", so tests are now separately loadable
- more comments and more/better categorizations
- printOn: in database and collections to print the name
- MongoQueries is now "Mongo-Queries" and "Mongo-Tests-Queries" (hence the name of the first to be in 
  alignment with other packages)
- make Config aware/loadable for upcoming Pharo 4
- the Config now is working and saved with Versionner
- the Config also includes groups (Core, Tests and default)
- it is now available in MetaRepoForPharo40 so it is in the config browser of Pharo4
- all 55 tests are green in latest Pharo 4.0 #40534 

Just cleanups, no behavior changes

Bye
T.


mongotalk

Pharo continuous improvements

40553
15070 failing test ClassHierarchyTest
https://pharo.fogbugz.com/f/cases/15070

15060 testSlotScopeParallelism is failing
https://pharo.fogbugz.com/f/cases/15060

15118 remove #gtInspectorSymbolicBytecodeIn: from CompiledMethod
https://pharo.fogbugz.com/f/cases/15118

40552
15116 last reflectivity related code for pharo4: MetaContext
https://pharo.fogbugz.com/f/cases/15116

40551
15113 The MorphTreeMorph header is too dark in the default theme
https://pharo.fogbugz.com/f/cases/15113

15109 newerPackagesAvailableIcon can be done with an overlay
https://pharo.fogbugz.com/f/cases/15109

40550
15112 add ClassVariableTest and a fix: copy over value when changing a Class Var definition
https://pharo.fogbugz.com/f/cases/15112

15111 defer: comments
https://pharo.fogbugz.com/f/cases/15111

15107 Failing test testBehaviorRespectsPolymorphismWithTraitBehavior
https://pharo.fogbugz.com/f/cases/15107

40549
15106 Test, typo fix (and tiny cleanup) for Slots
https://pharo.fogbugz.com/f/cases/15106

15108 prevent a potential error in PlatformResolver
https://pharo.fogbugz.com/f/cases/15108

40548
14353 Delay refactoring (part 2) – change from milliseconds to microseconds
https://pharo.fogbugz.com/f/cases/14353

40547
14545 Replace users by traitUsers in senders
https://pharo.fogbugz.com/f/cases/14545

15066 InputWidget and DateModel should use #label: instead of deprecated #text:
https://pharo.fogbugz.com/f/cases/15066

15078 SearchableTree>>initializeWidgets use LabelModel>>text: which is deprecated
https://pharo.fogbugz.com/f/cases/15078

15096 when choosing a directory default should be current
https://pharo.fogbugz.com/f/cases/15096

40546
15014 Kommitter default size and layout not appropriate
https://pharo.fogbugz.com/f/cases/15014

12330 Rendering artifacts with scaled ImageMorph
https://pharo.fogbugz.com/f/cases/12330

15080 ProgressBar completion should resize when widget is resized
https://pharo.fogbugz.com/f/cases/15080

15009 allow to set title in RemotesManager
https://pharo.fogbugz.com/f/cases/15009

40545
15049 Move endianess methods from collections to graphics package
https://pharo.fogbugz.com/f/cases/15049

15051 Remove Spec extension methods from String
https://pharo.fogbugz.com/f/cases/15051

15059 Cleaning up System-Support
https://pharo.fogbugz.com/f/cases/15059

15052 Remove dependency String -> LanguageConverter
https://pharo.fogbugz.com/f/cases/15052

15103 return unchanged argument in asMutator if argument is a mutator
https://pharo.fogbugz.com/f/cases/15103

40544
ConfigurationOfRubri

40543
15091 Improve backwards compatibility for AST-Core Nodes
https://pharo.fogbugz.com/f/cases/15091

15094 Fix link invalidation + hook generation on MetaLink
https://pharo.fogbugz.com/f/cases/15094

40542
15081 nil in RecentTools
https://pharo.fogbugz.com/f/cases/15081

15101 Replace senders of String>>#subStrings: in Monticello
https://pharo.fogbugz.com/f/cases/15101

15100 Replace senders of String>>#subStrings: in Traits
https://pharo.fogbugz.com/f/cases/15100

15099 Replace senders of String>>#subStrings: in CollectionTests
https://pharo.fogbugz.com/f/cases/15099

15095 add #removeSlot: to ClassDescription
https://pharo.fogbugz.com/f/cases/15095

40541
15089 Replace senders of String>>#subStrings: in Tool-Base
https://pharo.fogbugz.com/f/cases/15089

15092 Replace senders of String>>#subStrings: in Nautilus
https://pharo.fogbugz.com/f/cases/15092

15088 Replace senders of String>>#subStrings: in ConfigurationCommandLineHandler-Core
https://pharo.fogbugz.com/f/cases/15088

15087 Replace senders of String>>#subStrings: in Slot
https://pharo.fogbugz.com/f/cases/15087

40539
15074 Monticello Browser does not highlight packages with newer versions
https://pharo.fogbugz.com/f/cases/15074

15075 Better icon for help book
https://pharo.fogbugz.com/f/cases/15075

15012 MCWorkingCopy>>currentVersionInfo may raises DNU
https://pharo.fogbugz.com/f/cases/15012

40538
15054 Move Finalization Classes in Collections Weak to System-Finalization
https://pharo.fogbugz.com/f/cases/15054

15073 Merge ClassInstaller>>updateInstancesFrom:to: and TClassDescription>>updateInstances:from:
https://pharo.fogbugz.com/f/cases/15073

15056 Moving dependency Slot -> Reflectivity
https://pharo.fogbugz.com/f/cases/15056

40537
15050 Move Text conversion methods to Text Converter package
https://pharo.fogbugz.com/f/cases/15050

15069 endless recursion in DockingBarMorph add:icon:subMenu:
https://pharo.fogbugz.com/f/cases/15069

15053 Moved dependency Dictionary -> Slot to slot package
https://pharo.fogbugz.com/f/cases/15053

40536
15065 Versionner should use #label: instead of deprecated #text:
https://pharo.fogbugz.com/f/cases/15065

15063 Replace senders of String>>#subStrings in SUnit-Tests
https://pharo.fogbugz.com/f/cases/15063

15062 remove writeToGlobal:
https://pharo.fogbugz.com/f/cases/15062

40535
15042 Add TCPSocketEchoTest test/example
https://pharo.fogbugz.com/f/cases/15042

40534
15010 Slots: Example Association Slot
https://pharo.fogbugz.com/f/cases/15010

40533
15039 Move Reflectivity related methods and classes to Reflectivity
https://pharo.fogbugz.com/f/cases/15039

15037 When loading Slots classes initials are asked
https://pharo.fogbugz.com/f/cases/15037

40532
15041 Deprecated ShadowLabelMorph
https://pharo.fogbugz.com/f/cases/15041

15036 LabelModel>>initialize contains undeclared reference to textHolder
https://pharo.fogbugz.com/f/cases/15036

15032 ScriptLoader does not need to log the change description
https://pharo.fogbugz.com/f/cases/15032

15047 AthensSurface removeCacheAt: DNU
https://pharo.fogbugz.com/f/cases/15047

15046 addInstVarNamed: fix for adding multiple vars
https://pharo.fogbugz.com/f/cases/15046

40530
15040 Remove Vistary Theme
https://pharo.fogbugz.com/f/cases/15040

15038 Typo: Rename AbtractCache to AbstractCache
https://pharo.fogbugz.com/f/cases/15038

15029 remove empty package Polymorph-Geometry
https://pharo.fogbugz.com/f/cases/15029

13042 GSoC flags in Morph still necessary?
https://pharo.fogbugz.com/f/cases/13042

40529
15009 allow to set title in RemotesManager
https://pharo.fogbugz.com/f/cases/15009

12970 16 steps to get through #halt
https://pharo.fogbugz.com/f/cases/12970

40528
15028 MorphTreeChangeRequest>>change: does not need the respondTo:
https://pharo.fogbugz.com/f/cases/15028

15016 clean Spec: ValueHolder exposition
https://pharo.fogbugz.com/f/cases/15016

40527
14956 Properties on Behaviour: “self properties” creates empty dict for keys
https://pharo.fogbugz.com/f/cases/14956

15035 allSlotsEverywhere
https://pharo.fogbugz.com/f/cases/15035

15031 #cleanUpForProduction does not need to reset MCVersionInfo instances
https://pharo.fogbugz.com/f/cases/15031

40525
14997 Lazy MCVersionInfo to reduce MC memory use
https://pharo.fogbugz.com/f/cases/14997

15021 LinkedList>>#collect:thenSelect: is slow
https://pharo.fogbugz.com/f/cases/15021

15022 ZdcSecureSocketStream trouble reading response with no content-length and connection close
https://pharo.fogbugz.com/f/cases/15022

15008 Regression: ZnClient HTTPS request through HTTP proxy failing
https://pharo.fogbugz.com/f/cases/15008

40523
15025 privateRenameMethodFor: calls #token
https://pharo.fogbugz.com/f/cases/15025

15027 Flesh out MetaLink
https://pharo.fogbugz.com/f/cases/15027

15017 remove OCUnknownSelectorWarning
https://pharo.fogbugz.com/f/cases/15017

40522
15019 Compiler AST transformation Plugins
https://pharo.fogbugz.com/f/cases/15019

15026 Link installation infrastructure for the AST
https://pharo.fogbugz.com/f/cases/15026

40521
14420 What to do with Polymorph-Geometry
https://pharo.fogbugz.com/f/cases/14420

14950 Spec help added to the Help Browser
https://pharo.fogbugz.com/f/cases/14950

15013 enable recompile on run:with:in:
https://pharo.fogbugz.com/f/cases/15013

15015 GradientFillStyle color selection broken
https://pharo.fogbugz.com/f/cases/15015

40520
14993 Integrate GTools
https://pharo.fogbugz.com/f/cases/14993

40518
15006 RBPatternVariableNode>>initializePatternVariables(name is shadowed)
https://pharo.fogbugz.com/f/cases/15006

15001 Update Zinc-Resource-Meta-FileSystem
https://pharo.fogbugz.com/f/cases/15001

10741 Can not upload slice dependency already in repo
https://pharo.fogbugz.com/f/cases/10741

40517
11992 Remove tokens from the AST-Core-Node classes
https://pharo.fogbugz.com/f/cases/11992

40516
14990 MonitorDelay>>#signalLock:afterMSecs:inMonitor:queue: should return MonitorDelay object
https://pharo.fogbugz.com/f/cases/14990

15003 Bytecode Gen for Property Slot + small fixes reflectivity
https://pharo.fogbugz.com/f/cases/15003

15004 Add ProcessLocalSlot
https://pharo.fogbugz.com/f/cases/15004

40514
14999 Twin: add base for Reflectivity
https://pharo.fogbugz.com/f/cases/14999

14033 Failing test: AJx64AssemblerTests>#testStringOps64Mnemonics
https://pharo.fogbugz.com/f/cases/14033

14998 Add WeakSlot
https://pharo.fogbugz.com/f/cases/14998

40513
14870 Update Zn Februari 2015
https://pharo.fogbugz.com/f/cases/14870