Hi,
smalltalkhubUser: ‘Moose’ project: ‘PetitParser’;
package: ‘PetitAnalyzer’;
package: ‘PetitIndent’;
package: ‘PetitIslands’;
smalltalkhubUser: ‘Moose’ project: ‘GToolkit’;
package: ‘GT-InspectorExtensions-Pillar’;
load
Hi,
Hi all,
With Santi we wanted to share a new release of TaskIt, a concurrency management library for Pharo. TaskIt development is done entirely in github, using iceberg. Works like a charm. Please find below attached the changes log with more information.
Cheers,
Guille & Santi
TaskIt
https://github.com/sbragagnolo/taskit
TaskIt is a library that ease Process usage in Pharo. It provides abstractions to execute and synchronize concurrent tasks, and several pre-built mechanisms that are useful for many application developers. This chapter explores starts by familiarizing the reader with TaskIt’s abstractions, guided by examples and code snippets. At the end, we discuss TaskIt extension points and possible customizations.
ChangesLog TaskIt v0.2
Task Runners
NewProcessTaskRunner
LocalProcessTaskRunner
Worker
WorkerPool
Futures with callbacks
Future combinators
Future synchronous access
Services
Travis CI https://travis-ci.org/sbragagnolo/taskit
Documentation https://github.com/sbragagnolo/taskit/blob/master/README.md
Enhanced class comments
TKTWorker processes are terminated in case the worker is collected. See Issues #8 and #5
Process Dashboard. – Adds TKTTaskItProcessProvider by default with the extension package – Hides job and task fields since there are not reachable any more.
Gour asked in the mailing-list how he can access the Pharo bugs tracker. He should log because we use a professional service nicely offered to us.
Now he asked the following question:
do you believe it makes sense for a noob to create account in case there are some low-hanging fruits to pick?
And here is the answer Ben did. I fully fully agree. I learned and I’m still learning a lot from reading bug fixes.
Definitely. And not necessarily that you *solve* an issues, but that I found a benefit from "goal directed learning". When I started using Pharo I learned a lot from: * trying to reproduce issues - which also benefits core developers if you can gather more complete symptom info * testing other people's solutions - putting halts in the changed code and simultaneously stepping through the original and solution code. Actually I was surprised at far into the depths of the system this led me sometimes and how accessible they were. Look for issue marked "Fixed - review needed" cheers -ben
Stef
60193
18980 QA v3.2.5
https://pharo.fogbugz.com/f/cases/18980
18903 CriticBrowser browser senders broken
https://pharo.fogbugz.com/f/cases/18903
18970 Add missing class comments for some RBToken classes
https://pharo.fogbugz.com/f/cases/18970
60192
18936 RBParser allows pragmas after method code
https://pharo.fogbugz.com/f/cases/18936
18829 Add a RefactoringFramework System HelpTopic
https://pharo.fogbugz.com/f/cases/18829
18955 DoubleLinkedList and its test should be in its own package
https://pharo.fogbugz.com/f/cases/18955
60191
18967 wrong title for “add trait” dialog
https://pharo.fogbugz.com/f/cases/18967
18954 ClassTest>>#testMethodsReferencingClass and testMethodsReferencingClasses should not use external packages
https://pharo.fogbugz.com/f/cases/18954
18975 copy sort –> sorted
https://pharo.fogbugz.com/f/cases/18975
18976 SmallDictionary>>#associationAt:ifPresent: is not implemented
https://pharo.fogbugz.com/f/cases/18976
60190
18972 Group browse scoped class sync
https://pharo.fogbugz.com/f/cases/18972
18964 support for <sampleInstance>
https://pharo.fogbugz.com/f/cases/18964
60189
18957 Class copy should not change the name of the instance variables
https://pharo.fogbugz.com/f/cases/18957
18434 Metacello-ProfSef classes sends wrong methods
https://pharo.fogbugz.com/f/cases/18434
18959 Create a class with a not existing trait does not suggest to create a new trait
https://pharo.fogbugz.com/f/cases/18959
18969 RBParser gets stuck in an endless loop if literal array contains an error
https://pharo.fogbugz.com/f/cases/18969
60188
18158 MessageSend should not care about obsolete classes
https://pharo.fogbugz.com/f/cases/18158
60187
18953 remove Regex dependency from SplitJoinTest>>#testSplitJoinBoundaryCases
https://pharo.fogbugz.com/f/cases/18953
18916 simplify asSlotCollection for bootstrap
https://pharo.fogbugz.com/f/cases/18916
18938 Remove RBClassInstVarNotInitializedRule, it is a bad rule
https://pharo.fogbugz.com/f/cases/18938
60186
18949 reduce direct references to OpalCompiler
https://pharo.fogbugz.com/f/cases/18949
18951 Add helper methods to get all assignment nodes of a slot
https://pharo.fogbugz.com/f/cases/18951
18952 adopt some extensions of AST-Core from Reflectivity
https://pharo.fogbugz.com/f/cases/18952
60185
18944 misspackaged Intege r>> readFrom: radix:
https://pharo.fogbugz.com/f/cases/18944
18945 do not require a Text in MockSourceEditor
https://pharo.fogbugz.com/f/cases/18945
18937 RBRefactoryTestDataApp and RBSmallintTestObject #fileBlocks sends undefined #asFilename
https://pharo.fogbugz.com/f/cases/18937
60184
18940 simplify deferFlushDuring:
https://pharo.fogbugz.com/f/cases/18940
18942 workaround: fix adding ivars to classes with class vars
https://pharo.fogbugz.com/f/cases/18942
18939 New critic for catching redundant periods after statements
https://pharo.fogbugz.com/f/cases/18939
60183
18917 simplify trait name validation for bootstrap
https://pharo.fogbugz.com/f/cases/18917
18941 ClassBuilderWarning should not override defaultAction
https://pharo.fogbugz.com/f/cases/18941
60182
18602 Dependency-Analyzer v1.19
https://pharo.fogbugz.com/f/cases/18602
18925 cleanup InMidstOfFileinNotification
https://pharo.fogbugz.com/f/cases/18925
60181
16789 RBUnaryAccessingMethodWithoutReturnRule refers to #nodes instead of #statements
https://pharo.fogbugz.com/f/cases/16789
18894 RBPatternParser should respect RBErrorNode when parsing pattern blocks II
https://pharo.fogbugz.com/f/cases/18894
18928 ambigous isArray for RBArrayNode
https://pharo.fogbugz.com/f/cases/18928
18914 Improve MethodClassifier classification based on selector parts
https://pharo.fogbugz.com/f/cases/18914
18888 Move Pharo bootstrap rule to Renraku model
https://pharo.fogbugz.com/f/cases/18888
60179
18910 MNU: OrderedCollection>>parent: when trying to rewrite a tree with RBParseTreeRewriter
https://pharo.fogbugz.com/f/cases/18910
18911 unify property API of CompiledMethod with all the others (Class, AST…)
https://pharo.fogbugz.com/f/cases/18911
18912 update comment Deprecation
https://pharo.fogbugz.com/f/cases/18912
60178
18907 Prevent LanguageEnvironment sublclasses to be in startup list
https://pharo.fogbugz.com/f/cases/18907
18906 SessionManager default should store the new instance when no default defined
https://pharo.fogbugz.com/f/cases/18906
18908 Prevent Symbol subclasses to be in startup list
https://pharo.fogbugz.com/f/cases/18908
60177
18909 Monkey broken because System-CommandLine-TextSupport unloaded in 60164
https://pharo.fogbugz.com/f/cases/18909
18866 Rename protocol window title is ambiguous
https://pharo.fogbugz.com/f/cases/18866
60176
18897 Monkey crashing with MessageNotUnderstood: VTermOutputDriver>>color256:
https://pharo.fogbugz.com/f/cases/18897
60175
18891 MethodFinderTest>>#testGreaterThanANumber is dependent on order
https://pharo.fogbugz.com/f/cases/18891
18889 CriticsBrowser “BlockCannotReturn”
https://pharo.fogbugz.com/f/cases/18889
18896 add support for ignored fields in structures
https://pharo.fogbugz.com/f/cases/18896
18898 Sista Encoder update for release.
https://pharo.fogbugz.com/f/cases/18898
60174
18890 Parser cant not parse faulty or unfinished blocks with return caret
https://pharo.fogbugz.com/f/cases/18890
18893 MCStWriterTest>>#expectedClassMethodDefinition will always fail on bootstrapped image
https://pharo.fogbugz.com/f/cases/18893
18892 simplify isBlockReturn: to use encoder
https://pharo.fogbugz.com/f/cases/18892
60173
18887 QA 3.2.4
https://pharo.fogbugz.com/f/cases/18887
60172
18878 MNU ReINvocationSequenceRule isArchitecturalRule
https://pharo.fogbugz.com/f/cases/18878
18886 parsing an unfinished block with invalid expressions in its body should not create only a single parse error node
https://pharo.fogbugz.com/f/cases/18886
18883 SystemReporter calls deprecated #name on MCWorkingCopy
https://pharo.fogbugz.com/f/cases/18883
60171
18875 RBRemoveClassRefactoring applicable despite showing a warning
https://pharo.fogbugz.com/f/cases/18875
18793 Add CTGrid
https://pharo.fogbugz.com/f/cases/18793
18876 Rename BinaryFileStream >> setAtEnd -> setToEnd
https://pharo.fogbugz.com/f/cases/18876
60170
18816 Failing test: ChangesBrowserTest.testInitializeWidgets
https://pharo.fogbugz.com/f/cases/18816
18846 <script:> and <script> pragmas do not always work
https://pharo.fogbugz.com/f/cases/18846
18782 Add DateAndTime class>>readFrom:defaultOffset:
https://pharo.fogbugz.com/f/cases/18782
18870 Delivery preparation hook for announcement
https://pharo.fogbugz.com/f/cases/18870
60169
18861 TaskbarMorph reports damage outside its own area
https://pharo.fogbugz.com/f/cases/18861
18868 Announcements subscription should supports exclusion like exceptions by minus
https://pharo.fogbugz.com/f/cases/18868
18867 MetaceloPackageSpec workingCopyNameFor call name which could lead to deprecation warning when current version is array
https://pharo.fogbugz.com/f/cases/18867
18865 can not open critics browser on a package from nautilus package pane menu
https://pharo.fogbugz.com/f/cases/18865
60168
18856 After Epicea integration: “an OmReference(Pharo_2elhj7i:199) not found in OmSessionStore”
https://pharo.fogbugz.com/f/cases/18856
17710 rename variable do not update class template
https://pharo.fogbugz.com/f/cases/17710
18855 reduce calls on #compiledMethod in RGMethodDefinition
https://pharo.fogbugz.com/f/cases/18855
18860 cleanup after running RGMethodDefintionTest
https://pharo.fogbugz.com/f/cases/18860
60167
18858 #testUndeclared fails: missing ivars in RadioButtonModel
https://pharo.fogbugz.com/f/cases/18858
18821 format code creates invalid pragma statement
https://pharo.fogbugz.com/f/cases/18821
18843 #digitLength is implemented in SmallInteger and in BigInteger but not in Integer
https://pharo.fogbugz.com/f/cases/18843
60166
18763 Update CriticBrowser to the latest Renraku changes
https://pharo.fogbugz.com/f/cases/18763
18781 Do it in File Browser text pane yields MNU: RubTextEditor>>doIt
https://pharo.fogbugz.com/f/cases/18781
18857 #hasSpecialSelector:ifTrueSetByte: can be removed
https://pharo.fogbugz.com/f/cases/18857
60164
18854 Unload System-CommandLine-TextSupport
https://pharo.fogbugz.com/f/cases/18854
60163
18831 Integrate new Epicea version
https://pharo.fogbugz.com/f/cases/18831
18768 Inlined method const could be implemented by metalinks
https://pharo.fogbugz.com/f/cases/18768
18835 Update RBParser-Nodes class comments
https://pharo.fogbugz.com/f/cases/18835
60162
18836 Second cleaning of Spec-Polywidgets and adding test
https://pharo.fogbugz.com/f/cases/18836
18845 Move MIMEHeaderValue from Mail to MIME package
https://pharo.fogbugz.com/f/cases/18845
18749 QA v3.2.1
https://pharo.fogbugz.com/f/cases/18749
60161
18749 QA v3.2.1
https://pharo.fogbugz.com/f/cases/18749
18845 Move MIMEHeaderValue from Mail to MIME package
https://pharo.fogbugz.com/f/cases/18845
60160
18840 Cleaning of Spec-example, adding their tests
https://pharo.fogbugz.com/f/cases/18840
18848 Traits do not show up when using sendersOfIt
https://pharo.fogbugz.com/f/cases/18848
18802 Versionner puts a MCLazyVersionInfo(package name) instead of the package name
https://pharo.fogbugz.com/f/cases/18802
60159
18844 Move String>>#join: to correct protocol
https://pharo.fogbugz.com/f/cases/18844
18838 ScrollSyncExample seems dont really work
https://pharo.fogbugz.com/f/cases/18838
18769 Add test for Spec-Core-Widgets
https://pharo.fogbugz.com/f/cases/18769
18841 Margin improvements
https://pharo.fogbugz.com/f/cases/18841
Hi,
PhyloclassTalk includes a Windows Installer written in Unicode NSIS.
It has two generators for this: A code generator written in Pharo to generate the NSIS script, and an image builder batch script which downloads image from ZeroConf, loads everything through Metacello, and launches NSIS to generate the executable file.
Hernan Morales
Hi all
I implemented the <examplar> to behave as suggested by Torsten in thread more than a year ago if I got it correctly and it is available in less than 5 min (I loved it). An examplar is JUST a class method returning an instance. For example :), here I just define a class method returning a grid object.
CTGrid class >> grid22
<examplar>
“self grid22”
| grid1 |
grid1 := self new: 2.
grid1 atRow: 1 atColumn: 1 put: 1.
grid1 atRow: 1 atColumn: 2 put: 3.
grid1 atRow: 2 atColumn: 1 put: 2.
grid1 atRow: 2 atColumn: 2 put: 4.
^ grid1
You can use this method as any class method in the past. NOTHING new!!
So in particular your test can use it to build a fixture (yes reuse). You can use this method in several test cases (yes reuse).
Now nautilus supports nicely <examplar> methods: you can execute them and get a cool GTInspector open on them. So this is similar to the method exampleSomething pattern from Nautilus point of view.
And now people can use exampleSomething to create/open/display… their lovely examples (that may not return instances) – no stress you have the example you always liked (me too). And we get examplar methods that must return an instance but can behave as example from Nautilus perspective. So a nice win/win:
Better documentation of classes, better code reuse, nice integration and dead simple implementation: One class, 3 methods, no more 🙂
If you want to try
https://pharo.fogbugz.com/f/cases/18964/support-examplar
If you want to try you can load the CTGrid packages.
ScriptLoader new unloadPackageNamed: ‘Collections-Grid’.
ScriptLoader new unloadPackageNamed: ‘Collections-Grid-Tests’.
“Because there were not good and will be removed from the image”
Gofer it
url: ‘http://smalltalkhub.com/mc/StephaneDucasse/Containers/main’;
configurationOf: ‘Grid’;
loadStable
Click on class side of CTGrid and press the triangle and yes you get an inspector on this instance.
Stef
I've also discovered 'Unicode project' thread on dev-list, but would like to get some pointer about the current (5.0 <= Pharo < 6) state of affairs in regard writing multi-language-capable and Unicode-aware apps in Pharo?
For the translation part of l10n, there's also a package providing gettext support if needed. locale support is limited to an API similar to *nix locales. "Unicode-aware" is a wide topic, as reflected by the plethora of functional bits and bobs defined by different parts of the standard. (With base image) Can you represent all Unicode string? Yes. Can you pass them to other systems in Unicode encodings? Yes. Is the text renderer (in image) capable of displaying Unicode code points? Yes, if glyph is included in fonts. (With Unicode project) Can you query Unicode properties of any codepoint? Yes Can you normalize strings in the different forms? Yes. Can you sort strings in Unicode collate order? Yes. (With both) Can you sort strings in CLDR-locale collate order? No. Can you do regexp as per the Unicode spec? No. Does the text renderer (in image) heed Unicode properties such as RTL and combining marks? No Depending on what you want to do, the base image capabilities may be considered sufficient for writing multi-language-capable apps, but for more advanced Unicode functionality, the groundworks is there, (ie, querying properties, normalization, the core collate algorithm) but many practical uses are as of yet unimplemented, the complete lack of CLDR support ranking high. Cheers, Henry The big eyesore in
Hi, I know a lot of people are interested in (public) datasets (to use as examples). The website https://numeracy.co contains a (small) number of interesting ones. Here is how to access them using NeoCSV. (NeoCSVReader on: 'https://numeracy.co/standard-library/us-population/states.csv' asUrl retrieveContents readStream) upToEnd. or ZnClient new url: 'https://numeracy.co/standard-library/us-population/states.csv'; contentReader: [ :entity | (NeoCSVReader on: entity readStream) upToEnd ]; get. Of course, they don't use UTF-8 and don't advertise it, so on some datasets you need to do something extra. (NeoCSVReader on: (ZnDefaultCharacterEncoder value: ZnCharacterEncoder latin1 during: [ 'https://numeracy.co/standard-library/us-population/cities.csv' asUrl retrieveContents ]) readStream) upToEnd. (Warning: this last example is quite large, 500K records). Sven