Monthly Archives: June 2016

New Consortium Member

The Pharo Consortium is very happy to announce that FINWorks 
has joined the Consortium as a Bronze Member.

FINWorks: http://finworks.biz 

	FINWorks provides software solutions and automation in the financial sector. 
	Our main area of focus is investment administration, especially back office 
	solutions for LISP (Linked Investment Service Provider or Fund Supermarkets), 
	Benefit Administrators, Unit Trust Companies, Asset Managers, Independent 
	Financial Advisors (IFA)  and other financial service providers

Pharo Consortium: http://consortium.pharo.org

	The goal of the Pharo Consortium is to allow companies and institutions to
	support the ongoing development and future of Pharo.
	Individuals can support Pharo via the Pharo Association:

		- http://association.pharo.org
		- https://salt.bountysource.com/teams/pharo	

Windows previewer / switcher

Hello,

This mail to announce you that I am working on a windows previewer / switcher for
Pharo [1].

It is still in early stage of development but it is usable.

To install it:

Metacello new
    repository: 'github://JulienDelplanque/WindowsPreviewer/repository';
    baseline: 'WindowsPreviewer';
    load

See the README for details on activation/shortcuts.

Please, if you have some ideas or critics let me know!

Also, a better name than “Windows Previewer” would be cool but I have
no other idea :-)…

Regards,

Julien

Links:
[1]: https://github.com/juliendelplanque/WindowsPreviewer

Functional callbacks on all Cog platforms

Hi All,

just wanted to report that as of Alien-eem.35 and https://github.com/OpenSmalltalk/vm/commit/da3fafdec9444754af104e0ed9f613f6eb1888d9 we now have functional callbacks on all x86 platforms, ARM32 platforms and x86_64 platforms.

There’s a simple example Alien class>>exampleCqsort that shows how to use the system and tests the implementation using the C library’s sort quick sort implementation that takes a function pointer as an argument to use for comparing pairs of elements.  This is mapped onto a Smalltalk block by Alien’s callback implementation.  The example sorts 100 random double-precision floats using qsort and a callback into Smalltalk.
Eliot

New version of Interactive Fiction Framework

New version of Interactive Fiction Framework
(https://github.com/ericvm/smallworlds)

I think it is mature enough to be used, but of course there might be some
rough edges.

Contributors, users and testers would be very welcome!

Eric

Continuous improvements: the agile way

60097
18520 EyeTreeInspector is broken
https://pharo.fogbugz.com/f/cases/18520

18527 #halt should not be in the badSelectors rule
https://pharo.fogbugz.com/f/cases/18527

18525 fix for IconStyler
https://pharo.fogbugz.com/f/cases/18525
60096
18524 Add Icon Styler for haltOnce and haltOnCount:
https://pharo.fogbugz.com/f/cases/18524

60095
18496 duplicate shortcut usage for window close and tab close
https://pharo.fogbugz.com/f/cases/18496

18514 ConfigurationOfEpicea not in sync with Pharo
https://pharo.fogbugz.com/f/cases/18514

18511 DNU MorphicDiffAdapter keyStroke:fromMorph:
https://pharo.fogbugz.com/f/cases/18511
60094
18517 ConfigurationOfVersionner needs update to be in sync with Pharo
https://pharo.fogbugz.com/f/cases/18517

18522 Add icon styler for “self halt”
https://pharo.fogbugz.com/f/cases/18522

18518 ConfigurationOfCatalog needs update to be in sync with Pharo
https://pharo.fogbugz.com/f/cases/18518

18513 NEC fails to guess the type of non-class bindings
https://pharo.fogbugz.com/f/cases/18513

18521 Add manifest for Random-Core
https://pharo.fogbugz.com/f/cases/18521

60093
18512 cleanup related to deprecations
https://pharo.fogbugz.com/f/cases/18512

60092
18509 per send-site #haltOnCount:
https://pharo.fogbugz.com/f/cases/18509

60091
18507 add #deprecated:transformWith: (automatic rewrites of deprecated sends)
https://pharo.fogbugz.com/f/cases/18507
60090
18477 QualityAssistant v3.0.5
https://pharo.fogbugz.com/f/cases/18477

60089
15849 Remove NewList
https://pharo.fogbugz.com/f/cases/15849

18282 Scrollbar doesnt move when scrollValue is set in TextModel
https://pharo.fogbugz.com/f/cases/18282

60088
18501 icons -> icons iconNamed: (part 2)
https://pharo.fogbugz.com/f/cases/18501

60087
18497 EncoderForSistaV1: last integration to be usable.
https://pharo.fogbugz.com/f/cases/18497

60086
18484 instance variable refactoring without instance variables
https://pharo.fogbugz.com/f/cases/18484

18489 remove more old deprecated methods
https://pharo.fogbugz.com/f/cases/18489

18488 remove “recover lost changes…”
https://pharo.fogbugz.com/f/cases/18488

18486 remove some methods deprecated in Pharo 5
https://pharo.fogbugz.com/f/cases/18486
60085
18492 safer access to charset
https://pharo.fogbugz.com/f/cases/18492

15085 non-english character input
https://pharo.fogbugz.com/f/cases/15085

18485 TabsExample broken (icon access)
https://pharo.fogbugz.com/f/cases/18485

18490 Configuration of TxText needs update stable version
https://pharo.fogbugz.com/f/cases/18490
60084
18470 EncoderForSistaV1 update
https://pharo.fogbugz.com/f/cases/18470

60083
18480 remove MCMockRPackage
https://pharo.fogbugz.com/f/cases/18480

18479 Process termination trick for Semaphore critical method should be refactored to be reusable for other lock objects
https://pharo.fogbugz.com/f/cases/18479

60082
18481 Better #haltOnce: per haltOnce state, auto-enable
https://pharo.fogbugz.com/f/cases/18481

18332 ClassRefs menu items should be moved at the same level than analyze
https://pharo.fogbugz.com/f/cases/18332

18478 “Instance variables defined in all subclasses” rule not clear
https://pharo.fogbugz.com/f/cases/18478
60081
18448 Rubric: “Do not use #ifNotNilDo:ifNil:, #ifNil:ifNotNilDo:, #ifNotNilDo:”
https://pharo.fogbugz.com/f/cases/18448

18468 Use readOnlyQueue when reading source files
https://pharo.fogbugz.com/f/cases/18468
60080
18474 move var to class refactoring broken II
https://pharo.fogbugz.com/f/cases/18474

18476 update Versionner to 2.13.15
https://pharo.fogbugz.com/f/cases/18476

18072 TxModel >>#applyAttribute:to: sends unimplemented message
https://pharo.fogbugz.com/f/cases/18072

60079
18473 move var to class refactoring broken
https://pharo.fogbugz.com/f/cases/18473

18475 Do not announce method creation if the class is anonymous
https://pharo.fogbugz.com/f/cases/18475

Updated Pharo Launcher

Hi,

I just updated Pharo Launcher. A new version 0.2.11 is available.
Here are the change log:
  • move Pharo Launcher to the latest stable pharo image: pharo 5.0. It implies That Pharo Launcher is now shipped with Spur VM.
  • allow an easy download of the new beta image: pharo 6.0
  • the Launcher now comes with 2 VMs:
    • Spur VM (pharo 5.0 and Pharo 6.0)
    • Non-Spur VM (to be able to run old images)
  • the Launcher is now shipped with a default template that is the current default Pharo image. It can be found in local templates.
  • there is a new OS bundle for linux: we now ship more files with the launcher and it was needed to have a bundle.
  • update of the default name propose when you create an image from a template: the default name will be the project name.
If you want to give it a try, executables are there:
Christophe.

Automatic Deprecation Refactoring

Hi,


I have dusted off and improved the automatic refactoring of deprecations.

- when the refactoring engine is not present, it falls back to a standard deprecation
- It does not introduce any dependencies (can just be in the Kernel, the only cost is one method of 10 lines).
- It sets the author so it does not require initials
- It refactors *only* the sending (offending, deprecated) send site. So a second selector that is identical (which might be a different method and not deprecated) will not be affected.

The way to use it is this:

ifNotNilDo: aBlock
    self
        deprecated: 'Please use #ifNotNil: instead'
        transformWith: '`@receiver ifNotNilDo: `@statements' -> '`@receiver ifNotNil: `@statements'.
    ^ aBlock ifNotNil: aBlock


As we try to provide already Lint rules for deprecations (or at least should have..) the amount of additional work is not much.

This is the full implementation:

deprecated: anExplanationString transformWith: aRule
    | rewriteRule method context node |
    context := thisContext sender sender.
    (Smalltalk globals hasClassNamed: #RBParseTreeRewriter) 
        ifFalse: [ ^self deprecated: anExplanationString ].
    method := context method.
    node := context sourceNodeExecuted.
    rewriteRule := (Smalltalk globals classNamed: #RBParseTreeRewriter) new replace: aRule key with: aRule value.
    (rewriteRule executeTree: node)
        ifFalse: [ ^ self ].
    node replaceWith: rewriteRule tree. 
    Author 
        useAuthor: 'AutoDeprecationRefactoring'
        during: [method methodClass compile: method ast formattedCode classified: method protocol]

https://pharo.fogbugz.com/f/cases/18507/

This is *with intention* the absolute “simplest thing that can possibly work”. There is no interactive tool to preview refactoring in interactive
mode, or some way to opt in or out. 

The power of things like this comes from actually using them, not from being perfect...

	Marcus

Nicer haltOnce

Hi,

Yesterday we improved #haltOnce to be more like a “once” BreakPoint:

	-> state per *each* haltOnce send
		(this means you can put two in one method and they are independent)
	-> when putting a haltOnce, it is enabled by default
	-> The global menu entry just resets all haltOnce to be active again.

Interesting is how trivial this was to implement… in class Halt 
once
    | node |
    node := thisContext sender sender sourceNodeExecuted.
    (node hasProperty: #haltOnce) ifTrue: [^self]. 
    node propertyAt: #haltOnce put: true.
    ^ self signal.


This means, we get the AST node of the “haltOnce” message send. Then we put an annotation there.
To reset all (enable all), the global many just does:

	#haltOnce senders do: #recompile.

Done.

This will be in 60082.

	Marcus

Continuous enhancements

60078
18413 disable code completion in comment pane
https://pharo.fogbugz.com/f/cases/18413

18457 Allow # to be part of the string when searching senders and implementors
https://pharo.fogbugz.com/f/cases/18457
60076
18464 Update ConfigurationOfRubric to 2.20.2
https://pharo.fogbugz.com/f/cases/18464

60077
18466 Make Rubric packages internal
https://pharo.fogbugz.com/f/cases/18466

18465 EncoderForV3 does not have its specification in its comment
https://pharo.fogbugz.com/f/cases/18465

18467 Make CodeImporter interal
https://pharo.fogbugz.com/f/cases/18467

60075
18462 FileReference>>newTempFilePrefix:suffix:
https://pharo.fogbugz.com/f/cases/18462

18458 fall back debug menu in FileLists preview pane context menu
https://pharo.fogbugz.com/f/cases/18458

18456 Add readOnlyQueue to SourceFilesArray
https://pharo.fogbugz.com/f/cases/18456

60074
18424 Remove Dependency AST -> FFI and unload AST-FFI-Pharo50Compatibility
https://pharo.fogbugz.com/f/cases/18424

18367 Symbol>>#asIcon
https://pharo.fogbugz.com/f/cases/18367

18186 Morphic event mechanism should be removed from the kernel
https://pharo.fogbugz.com/f/cases/18186

18454 drawing menus: respect order of upper/lowercase keys
https://pharo.fogbugz.com/f/cases/18454

60073
18461 ConfigurationOfEpicea needs update
https://pharo.fogbugz.com/f/cases/18461
60072
18451 Do not use #ifNotNilDo:ifNil:, #ifNil:ifNotNilDo:, #ifNotNilDo:
https://pharo.fogbugz.com/f/cases/18451

18443 update Versionner configuration to 2.13.14
https://pharo.fogbugz.com/f/cases/18443

18433 Simplify DangerousClassNotifier logic
https://pharo.fogbugz.com/f/cases/18433

60071
18440 ConfgurationOfGTDebugger needs update
https://pharo.fogbugz.com/f/cases/18440

18355 Change refactoring label from Rename temporary to Rename temporary/parameter
https://pharo.fogbugz.com/f/cases/18355
60070
18442 ConfigurationOfGToolkitCore needs update
https://pharo.fogbugz.com/f/cases/18442

18441 ConfigurationOfGTPlaygroundCore needs update
https://pharo.fogbugz.com/f/cases/18441

18439 Remove QA git leftovers
https://pharo.fogbugz.com/f/cases/18439

60069
18428 Add SelectEntity to Spec
https://pharo.fogbugz.com/f/cases/18428

18421 Fix Zinc-HTTP extensions capitalization
https://pharo.fogbugz.com/f/cases/18421

18438 confusing error for variable refactoring
https://pharo.fogbugz.com/f/cases/18438

60068
18436 update ConfigurationOfGTInspectorCore to latest version
https://pharo.fogbugz.com/f/cases/18436

18437 update ConfigurationOfCatalog to latest version
https://pharo.fogbugz.com/f/cases/18437

18377 ConfigurationOfGTEventRecorder is not in sync with the current package versions
https://pharo.fogbugz.com/f/cases/18377

60067
18403 ConfigurationOfGTInspectorCore needs update versions of dependencies
https://pharo.fogbugz.com/f/cases/18403

18423 Fix Glamour-Tests-Core extensions capitalization
https://pharo.fogbugz.com/f/cases/18423

18402 ConfigurationOfGTSpotter needs update versions of dependencies
https://pharo.fogbugz.com/f/cases/18402

60066
18420 Fix Metacello-Core extensions capitalization
https://pharo.fogbugz.com/f/cases/18420

18417 Fix Reflectivity extensions capitalization
https://pharo.fogbugz.com/f/cases/18417

18422 CompiledMethod depends on old BytecodeEncoder classes
https://pharo.fogbugz.com/f/cases/18422

18380 ConfigurationOfTxText is not in sync with the current Pharo package versions
https://pharo.fogbugz.com/f/cases/18380

60065
18415 Fix Regex-Core extensions capitalization
https://pharo.fogbugz.com/f/cases/18415

18404 ConfigurationOfUnifiedFFI not in sync with current Pharo package versions
https://pharo.fogbugz.com/f/cases/18404

18401 The ConfigurationOfRubric is not in sync
https://pharo.fogbugz.com/f/cases/18401

60064
18427 System-CommandLineHandler should be abstract and not extend particular command line handlers
https://pharo.fogbugz.com/f/cases/18427

18394 change some more keymapping definitions in PharoShortcuts
https://pharo.fogbugz.com/f/cases/18394

18412 QAViewedDiff(Object)>>doesNotUnderstand: #critic:
https://pharo.fogbugz.com/f/cases/18412
60063
18410 Remove KMMockMorph
https://pharo.fogbugz.com/f/cases/18410

18398 LanguageEnvironment class>>#localeID: can cause endless loop
https://pharo.fogbugz.com/f/cases/18398

18406 Add EphemeronTests
https://pharo.fogbugz.com/f/cases/18406

18400 Add Pharo 6 to #metacelloPlatformAttributes (but keep Pharo 5 for now)
https://pharo.fogbugz.com/f/cases/18400
60062
18375 remove package ConfigurationOfNautilusGroupAutoBuilder
https://pharo.fogbugz.com/f/cases/18375

60061
18368 Move Rubric Shout support into standalone package
https://pharo.fogbugz.com/f/cases/18368

18358 Integrate Ephemeron Registry
https://pharo.fogbugz.com/f/cases/18358

18382 STON should not extent RunArray and Text
https://pharo.fogbugz.com/f/cases/18382
60060
18361 Update UFFI version to 0.20.2
https://pharo.fogbugz.com/f/cases/18361

60059
18376 Do not allow assignments to global vars
https://pharo.fogbugz.com/f/cases/18376

18381 ConfigurationOfCatalog is not in sync with current Pharo package versions
https://pharo.fogbugz.com/f/cases/18381

18377 ConfigurationOfGTEventRecorder is not in sync with the current package versions
https://pharo.fogbugz.com/f/cases/18377

18396 Glamour-FastTable extends projects that are loaded after it
https://pharo.fogbugz.com/f/cases/18396
60057
18385 CatalogBrowser is required for NautilusGroupAutoBuilder
https://pharo.fogbugz.com/f/cases/18385

18362 Critics-> critiques renaming
https://pharo.fogbugz.com/f/cases/18362

18380 ConfigurationOfTxText is not in sync with the current Pharo package versions
https://pharo.fogbugz.com/f/cases/18380
60056
18378 ConfigurationOfVersionner has wrong stable version
https://pharo.fogbugz.com/f/cases/18378

18261 move StartupPreferencesLoader examples to the class comment
https://pharo.fogbugz.com/f/cases/18261

18381 ConfigurationOfCatalog is not in sync with current Pharo package versions
https://pharo.fogbugz.com/f/cases/18381

18373 Epiceas lost changes detector is too slow
https://pharo.fogbugz.com/f/cases/18373

60055
18265 remove Deprecated50 package
https://pharo.fogbugz.com/f/cases/18265

60054
18343 Radiobuttons sometimes appear like Checkbox
https://pharo.fogbugz.com/f/cases/18343

18342 SliderModel label isnt display correctly
https://pharo.fogbugz.com/f/cases/18342

18372 Inheritable PS variables registration logic is broken by stupid bug
https://pharo.fogbugz.com/f/cases/18372

18371 Remove menu entry for RecentMessageList (replaced by Epicea)
https://pharo.fogbugz.com/f/cases/18371

60053
17990 Spur ephemerons must be integrated
https://pharo.fogbugz.com/f/cases/17990
60052
18370 GlamourCore 4.15
https://pharo.fogbugz.com/f/cases/18370

PassBy[ME] lib for Pharo

Hi,

I made a library for an online 2 factor authentication service called 
PassBy[ME] <http://passbyme.net>  . 

This a service that provides PKI based 2nd factor authentication (using
smartphones) among other things like message sending and electronic
signatures.

The library lets you start new authentication sessions and send messages to
the user's phone.

For more info:

http://smalltalkhub.com/#!/~zeroflag/PBMAuthenticator

Attila