Category Archives: Unsorted

Enhancements for coming release

60427
18207 Breakpoints still held after a method/class with breakpoints is removed
https://pharo.fogbugz.com/f/cases/18207

19669 FastTable jumps to the selected element when its resized
https://pharo.fogbugz.com/f/cases/19669

19775 Bootstrapped image does not contain class comment of the Context class
https://pharo.fogbugz.com/f/cases/19775

60426
19788 sometimes external structures does not initialise properly OFFSET fields before use
https://pharo.fogbugz.com/f/cases/19788

19221 Rub Find And Replace can not search for “?”
https://pharo.fogbugz.com/f/cases/19221

19789 CI tests often fail on Windows
https://pharo.fogbugz.com/f/cases/19789

60425
19717 FileSystem workingDirectory wrong after image moved to a new folder
https://pharo.fogbugz.com/f/cases/19717

18578 MetacelloValidationError(MetacelloValidationIssue) printOn: rasies Warning #name
https://pharo.fogbugz.com/f/cases/18578

60424
19787 Athens crashes the VM
https://pharo.fogbugz.com/f/cases/19787
60423
19780 Announcer has bad class comment which reference dead link
https://pharo.fogbugz.com/f/cases/19780

17728 Integrate Travis Griggs TAG-SortFunctions
https://pharo.fogbugz.com/f/cases/17728

60422
19785 Athens crashes the VM
https://pharo.fogbugz.com/f/cases/19785
60421
19779 BaselineOfMorphic compiles own version of SystemSettingsPersistence class>>#updateSettingNodes
https://pharo.fogbugz.com/f/cases/19779

19784 code loss when cancelling during save
https://pharo.fogbugz.com/f/cases/19784

19776 BaselineOfMorphic and BaselineOfUI both specify Polymorph-TaskbarIcons
https://pharo.fogbugz.com/f/cases/19776
60420
19777 BaselineOfUI compiles own version of RubScrolledTextMorph>>#font:
https://pharo.fogbugz.com/f/cases/19777

19772 BaselineOfIDE compiles own version of EpLostChangesDetector>>#startUp:
https://pharo.fogbugz.com/f/cases/19772

18784 FileList selected directory entry is not cleared after selecting a new directory
https://pharo.fogbugz.com/f/cases/18784

18871 DNU after showing about box of QA annotation question mark icon
https://pharo.fogbugz.com/f/cases/18871

19774 BaselineOfUI is compiling own version of Pragma>>#methodSelector
https://pharo.fogbugz.com/f/cases/19774
60419
19781 callback with return of void* leads to an invalid return
https://pharo.fogbugz.com/f/cases/19781

19783 prepare SDL2 for 64bits
https://pharo.fogbugz.com/f/cases/19783

19782 prepare Athens for 64bits
https://pharo.fogbugz.com/f/cases/19782

60418
19778 NaturalLanguageTranslator contains a class variable AllKnownPhrases in bootstrapped image
https://pharo.fogbugz.com/f/cases/19778

19773 BaselineOfMorphic compiles own version of Character>>#characterSet
https://pharo.fogbugz.com/f/cases/19773

19667 After removing of a package by Nautilus the empty extension protocols are still there
https://pharo.fogbugz.com/f/cases/19667

18252 debugit on “self” causes endless loop
https://pharo.fogbugz.com/f/cases/18252
60417
19770 FFIExternalStructurePlatformTests>>#testStructureHasCorrectOffsets32bits is failing on the bootstrapped image
https://pharo.fogbugz.com/f/cases/19770

19761 Debugger wrong temp var value after multiple step through block
https://pharo.fogbugz.com/f/cases/19761
60416
19732 Reenable Catalog loading in Spotter and fix confusing/hidden setting for it
https://pharo.fogbugz.com/f/cases/19732

19769 BaselineOfIDE needs update
https://pharo.fogbugz.com/f/cases/19769

19771 remove debugging “Alive” report during the bootstrap initialization
https://pharo.fogbugz.com/f/cases/19771
60415
19763 TabManagerMorph do not respect multipleContents mode when tabs are built in background
https://pharo.fogbugz.com/f/cases/19763

19762 Optimize small Dictionary and Set creation
https://pharo.fogbugz.com/f/cases/19762

19459 add #empty instance creation method
https://pharo.fogbugz.com/f/cases/19459

19502 Starting Pharo creates a .ston file in appdata directory
https://pharo.fogbugz.com/f/cases/19502
60414
19759 after UFFI update, SDL2 has unbound global class ExternalForm
https://pharo.fogbugz.com/f/cases/19759

19760 MorphTreeNodeMorph>>canExpand should accept the nil value of complexContents
https://pharo.fogbugz.com/f/cases/19760

19742 Some system baselines needs update
https://pharo.fogbugz.com/f/cases/19742

19402 NNavNavigateTest should be in separate package
https://pharo.fogbugz.com/f/cases/19402
60413
19733 update UFFI to allow 64bits structures
https://pharo.fogbugz.com/f/cases/19733

60412
19756 Usage of #name in NautilusRefactoring
https://pharo.fogbugz.com/f/cases/19756

19752 Object>>#name deprecation in SpecDebugger>>#session:
https://pharo.fogbugz.com/f/cases/19752

19758 prevent surface GC when using it to draw a form
https://pharo.fogbugz.com/f/cases/19758

19739 MCFtpRepository for Komitter
https://pharo.fogbugz.com/f/cases/19739
60411
19747 ClassRename refactoring is not working anymore
https://pharo.fogbugz.com/f/cases/19747

19750 catalog does not create meta repository for Pharo 50
https://pharo.fogbugz.com/f/cases/19750

19751 Rename Copy to Clipboard to Copy Stack to Clipboard
https://pharo.fogbugz.com/f/cases/19751
60410
19749 FFICallbackTests needs to be skipped for now
https://pharo.fogbugz.com/f/cases/19749

60409
19748 new VMs allow enabling of WriteBarrierTests
https://pharo.fogbugz.com/f/cases/19748

60407
19736 Catalog should use Metacello API instead of Gofer for Configuration installation
https://pharo.fogbugz.com/f/cases/19736

19446 Extract Method is broken
https://pharo.fogbugz.com/f/cases/19446
60406
19731 secondary selection color should be not modified
https://pharo.fogbugz.com/f/cases/19731

19538 When replacing a slot in class by WeakSlot, it fails to migrate existing instances
https://pharo.fogbugz.com/f/cases/19538

19603 composition mapping should be initialized on bootstrapped image
https://pharo.fogbugz.com/f/cases/19603
60405
19730 RubPrimarySelectionMorph>>#selectionColor does not respect theme style
https://pharo.fogbugz.com/f/cases/19730

19735 Desktop color issue in the bootstrapped image
https://pharo.fogbugz.com/f/cases/19735

19658 Red in Dark Theme is plain bad
https://pharo.fogbugz.com/f/cases/19658

19734 Sublimish theme menu text selection should be not black
https://pharo.fogbugz.com/f/cases/19734
60404
18915 Kernel depends on Reflectivity
https://pharo.fogbugz.com/f/cases/18915

19654 Tooltips with description of the over and through debugger buttons actions
https://pharo.fogbugz.com/f/cases/19654

19724 Inspecting socket can produce PrimitiveFailed
https://pharo.fogbugz.com/f/cases/19724

60403
Moose
This actually is a merge for GT… with:

The version moves the inspector to FastTable. More precisely it moves the Raw presentation and the presentations for collections to FastTable. For that it adds a tree datasource that has columns. More details here: http://forum.world.st/inspector-performance-improvement-td4933944.html

There are still two issues that need to be fixed after integrating this version:
– sorting in the Raw presentation does not preserve expanded elements
– editing should be done using SHIFT+double click (in place) or using a popup window for larger expressions.
This fixes:
– case 19645 Enabling search triggers error in the FastTable renderer for Glamour
– case 19560 The Glamour renderer for FastTable should offer a DataSource that combines a table and a tree presentation
– case 19648 Collection>>gtInspectorItemsIn: should use FastTable

Also fixes:
– case 17578 GTInspector recognizes a mouse click only after moving the mouse
– case 19423 Collection*gtInspectorItemsIn: defines the same helpMessage twice
– case 17644 Header rows in the Inspector can be “dragged”
– case 19676 We miss closeAllInspectors in Smalltalk tools inspector to close all inspectors, like we do for debuggers
– case 19712 GTInspector should not sort variables by name

60402
19728 Integrate Sublimish theme
https://pharo.fogbugz.com/f/cases/19728

18460 FileLists “more…” menu item in preview panes context menu does not work
https://pharo.fogbugz.com/f/cases/18460

60401
19488 STONWriterTests>>#testDictionaryWithComplexKeys is order dependent
https://pharo.fogbugz.com/f/cases/19488

18584 DNU on showing menu in PointerExplorer
https://pharo.fogbugz.com/f/cases/18584

18459 FileList calls unimplemented method allRegisteredServices
https://pharo.fogbugz.com/f/cases/18459

18724 DNU EyeTreeInspector workspace pane context menu
https://pharo.fogbugz.com/f/cases/18724
60400
19723 Nuke SequenceableCollection>>#checkedAt:
https://pharo.fogbugz.com/f/cases/19723

19722 Move setMultipleSelection to FTTableMorph
https://pharo.fogbugz.com/f/cases/19722

60399
19721 fix #name send in Slot tests
https://pharo.fogbugz.com/f/cases/19721

60398
15303 rename MethodContextTest to ContextTest
https://pharo.fogbugz.com/f/cases/15303

MaterialDesignLite for Seaside

Hello everyone,

Today I released the version v1.1.0 of MaterialDesignLite for Seaside.
(https://github.com/DuneSt/MaterialDesignLite)

Since this is a minor version it shouldn’t break anything existing, but
nobody can avoid bugs. If you encounter a regression, feel free to open
an issue and I’ll try to commit a hotfix soon.

Thanks to Philippe Back, Paul Debruicker, Sabine Mana, Tobias Pape,
Guillaume Larcheveque and Yann Lesage for the contributions and the
feedback. Also thanks to everyone using this project.

You can now find an image with the project on pharo-contribution’s
Jenkins and on PharoLauncher.
(https://ci.inria.fr/pharo-contribution/job/MaterialDesignLite) You can
find more detail on the README.md to start with the project.

One of the future goal would be to add Functional tests with Parasol.

Here is the changelog. You can find a more readable version at:
https://github.com/DuneSt/MaterialDesignLite/blob/v1.1.0/CHANGELOG.md

#
[v1.1.0](https://github.com/DuneSt/MaterialDesignLite/compare/v1.0.2…v1.1.0)
(2017-03-22)

## Bug Fixes

* **SelectWidget: Do not upgrade the dom at all node insertion**
([59c2534](https://github.com/DuneSt/MaterialDesignLite/commit/59c2534))
* **MDLDialog>>openButtonId: missing .close eventListener**
([262e6f3](https://github.com/DuneSt/MaterialDesignLite/commit/262e6f3))
* **Chips: Use #ensureId rather than overriding #id & #id:**
([40fcca5](https://github.com/DuneSt/MaterialDesignLite/commit/40fcca5))
* **SortableTable: Visible page might end up out of bounds**
([b1833e8](https://github.com/DuneSt/MaterialDesignLite/commit/b1833e8))
* **NestedList: Tooltips are unusable**
([5ef2a08](https://github.com/DuneSt/MaterialDesignLite/commit/5ef2a08))

## Features

* **Anchors as buttons** This add the possibility to have links with the
style of buttons to not break semantic
([ba3f0f7](https://github.com/DuneSt/MaterialDesignLite/commit/ba3f0f7))
* **Sliders: New features** This add a label with MD style, possibility
to add an icon, possibility to add an output, show the bounds and a demo
([b203a1f](https://github.com/DuneSt/MaterialDesignLite/commit/b203a1f))
* **Dialog: Multiple opening buttons for a dialog**
([209d49a](https://github.com/DuneSt/MaterialDesignLite/commit/209d49a))
* **SelectWidget: Allow to customize the field**
([ace3e31](https://github.com/DuneSt/MaterialDesignLite/commit/ace3e31))
* **SelectWidget: Add tooltips on entries**
([14466d2](https://github.com/DuneSt/MaterialDesignLite/commit/14466d2))
* **SortableTable: Allow to have no pagination**
([aaa6c19](https://github.com/DuneSt/MaterialDesignLite/commit/aaa6c19))
* **SortableTable: Allow to personalize the style**
([69284d7](https://github.com/DuneSt/MaterialDesignLite/commit/69284d7))
* **NestedList: Add way to customize style + add some default styles**
([5f5088c](https://github.com/DuneSt/MaterialDesignLite/commit/5f5088c))
* **NestedList: Ajax actions on clic**
([feaba43](https://github.com/DuneSt/MaterialDesignLite/commit/feaba43))
* **NestedList: possibility to customize an entry**
([9421917](https://github.com/DuneSt/MaterialDesignLite/commit/9421917))
* **NestedList: Possibility to have an icon to the right of the list**
([27fa1fa](https://github.com/DuneSt/MaterialDesignLite/commit/27fa1fa))
* **NestedList: Add a filter**
([9ecffad](https://github.com/DuneSt/MaterialDesignLite/commit/9ecffad))
* **NestedList: Dynamically load children**
([5ef2a08](https://github.com/DuneSt/MaterialDesignLite/commit/5ef2a08))
* **NestedList: Search and loading should add a spinner while
executing**
([5ef2a08](https://github.com/DuneSt/MaterialDesignLite/commit/5ef2a08))
* **Tooltip: API should let choose the position of the tooltip**
([de33e68](https://github.com/DuneSt/MaterialDesignLite/commit/de33e68))

## Cleaning

* **Dialogs** Clean javascript
([262e6f3]https://github.com/DuneSt/MaterialDesignLite/commit/262e6f3))
* **NestedList** Extract the javascript into a file and use dataset
instead of ids
([21c0535](https://github.com/DuneSt/MaterialDesignLite/commit/21c0535))
* **Extract Material Colors in another project** New repositories to get
only the MDLColors:
[https://github.com/DuneSt/MaterialColors](https://github.com/DuneSt/MaterialColors)
([2efac41](https://github.com/DuneSt/MaterialDesignLite/commit/2efac41))
* **Improve Chips loading scripts**
([b366ddd](https://github.com/DuneSt/MaterialDesignLite/commit/b366ddd))

## Infrastructure

* **Travis and Appveyor CI**
([1afa628](https://github.com/DuneSt/MaterialDesignLite/commit/1afa628))

## Compatibility

### Squeak

* **`MDColor` has a lowercase class variable**
([888fb39](https://github.com/DuneSt/MaterialDesignLite/commit/888fb39))

### Gemstone

* **Use string in baseline and remove #asString**
([868f71b](https://github.com/DuneSt/MaterialDesignLite/commit/868f71b))


Cyril Ferlicot

http://www.synectique.eu

2 rue Jacques Prévert 01,
59650 Villeneuve d’ascq France

News from Lowcode

Hi,

With the experimental Lowcode backend for the UFFI, it is possible to call functions with almost arbitrary calling conventions. For some of the special assembly instructions that are required by this project, I could add the following extra instruction:
– storeIntoSpecialRegister: {CR0, CR1, CR2, CR3, CR4, CR5, GDT, LDT, IDT)
– loadFromSpecialRegister:
– loadFromIOPortU?Int{8,16,32}:
– storeIntoIOPortU?Int{8,16,32}:

As for the interruptions, there are far trickier because they can be triggered in any time. They probably would require some special trampoline for storing/restoring the VM state, something similar to the callbacks.

Currently I am finishing a refactoring of the Lowcode register allocator, so the Lowcode VM is out of service for this week 🙂 .
For GPU compilation, I implemented a SSA based intermediate representation very similar to the one used by LLVM. As a experiment, I did a very basic machine code generator which can produce relocatable ELF32 and ELF64 object files, which can be linked with any C library or program. With this I managed to implement a basic ahead of time compiled Smalltalk runtime.

Before starting that backend, I took a look on AsmJit and the VirtualCPU and I did not like the dependencies and some details about the stack. However, now I do not like the low level backend so I started refactoring into a separate package, but I still think that I should take yet another look to AsmJit and the VirtualCPU, so I am wondering where is actually located the latest version of these two projects.

Best regards,
Ronie

QCMagritte

QCMagritte can be found on smalltalk hub ( http://smalltalkhub.com/#!/~DiegoLont/QCMagritte/ ) and pharo CI ( https://ci.inria.fr/pharo-contribution/job/QCMagritte/ ).

So download a fresh pharo image, open it and perform the following:

Gofer new url: ‘http://smalltalkhub.com/mc/DiegoLont/QCMagritte/main’; package: ‘ConfigurationOfQCMagritte’; load.
((Smalltalk at: #ConfigurationOfQCMagritte) project version: #’development’) load: #( ‘All’ ).
(Smalltalk at: #ZnZincServerAdaptor) startOn: 8080

Doing this should give you a working QC Magritte tutorial hosted on your own pc. You can also download a pre build image from the pharo ci server.

When you have an running image with QCMagritte: start a browser on http://localhost:8080/ and the tutorial should pop up.

New consortium agreement

Multiple companies asked for it and we made it. We are happy to announce that now the Pharo consortium offers a platinium level

    http://consortium.pharo.org/web/Membership

In a nutshell

  • 10 days per Year of Support or of Specific development or Consulting;
  • a dedicated space on PHARO Consortium Website allowing the member to broadcast its news which will be published by the Inria PHARO Team prominently on the frontpage of the website.
  • Possibility to ask and pay an internship supervised by RMOD team.
  • Four individual Pharo Association memberships.

The pharo consortium.

PharoNOS for Pharo40

Hi,
I successfully ported SqueakNOS to Pharo, and want to share it with you!
It works with Pharo 4.0 image, networking included, ping works!

http://smalltalkhub.com/#!/~JanStruz/PharoNOS/

What is different:
– I use my own CMake build file, with “out-of-tree” build support, instead of “build.xyz” directories inside source tree + some template scripts to build any VM type, but it is not complete…
– I use MUSL instead of GlibC, cross-compiling GlibC statically on 64bit for 32bit seems impossible, but anyway I use 32bit environment to build it
– It works with pre-opensmalltalk-vm migration directory structure, so the “sync” with latest trunk remains #TODO, or maybe start a new branch again from the latest upstream commit should work too
– freetype is included, but will not load any fonts, since the filesystem driver is image-side… so you will need to make new fonts embedded, if you want them
– known issues: image snapshot and fileout are not working, current date+time hacked to make fat32 timestamps work
– revision needed: timer (heartbeat) vs. GC vs. interrupts enable/disable
– there are even some hacks to image-side methods

PharoNOS platform directory sources: [pharonos branch]
SRC: https://gitlab.com/johnnyzz/pharonos

VM sources: [dev branch]
SRC: https://gitlab.com/johnnyzz/pharo-vm
– added platform directory, build scripts and CMake templates
– added VMMaker configs

Build Environment (32bit) – Docker image repository, with CI:
https://gitlab.com/johnnyzz/dev-build

PharoNOS CI (uses previous Docker image):
CI: https://gitlab.com/johnnyzz/pharo-nos-build

How to run it:
You can download fresh disk image from CI and then run:
(sudo) kvm -hda build/NOS.img -enable-kvm -cpu kvm32 -vga qxl -m 256 -netdev tap,id=user.3,ifname=tap2,vhost=on -net nic,model=rtl8139,netdev=user.3 -global isa-fdc.driveA= -serial stdio

One more thing:
Statically linked Pharo Spur32 (headless) VM, with only one dependency – Linux kernel:
CI: https://gitlab.com/johnnyzz/pharo-build-static
Size: 2,4MB (too big?, but Freetype included too!)

enjoy

Jan

 

[ANN] threaded heartbeat VMs added to zeroconf

Hello,

Following recent talks, I added threaded heartbeats VMs to zeroconf.
Is weird because is not anymore “zero” conf: you need to configure the machine to accept this VM… but well, this is like that 😛

The links to use are this:

http://get.pharo.org/vmT60
http://get.pharo.org/vmTLatest60
http://get.pharo.org/alpha+vmT
http://get.pharo.org/alpha+vmTLatest
http://get.pharo.org/60+vmTLatest

(they are listed at http://get.pharo.org, as usual)

cheers,
Esteban

Fog – Ethereum driver for Pharo

Hi all. Im happy to announce a pre release of the Fog ethereum driver that we develop in the space of an Inria project.

It still not complete but is already usable for some experiments and simple projects.
You can downloadit from

Dependencies

RHash

 sudo apt-get install rhash

Solidity

 npm install solc

Download code

Iceberg / Baseline

Metacello
    new
    baseline: 'Fog';
    repository:  'github://sbragagnolo/Fog:v0.1.1.1/src';
    load.

By hand

You may want to use this version for having access to some scripts and contracts samples.

git checkout git@github.com:sbragagnolo/Fog.git
git checkout v0.1.1.1
Metacello
    new
    baseline: 'Fog';
    repository: 'filetree:///path/to/git-repository/Fog/src';;
    load.
It’s based on the standar API for javascript (https://github.com/ethereum/wiki/wiki/JavaScript-API) .
It provides interaction with remote contracts, it do as well provides a way for navigating the architecture objects: blocks, transactions, accounts and contracts.
I hope you find it useful.
Feel free to fill the github issue tracker with anything you find :).
I will come to you with some new exciting news about ethereum soon 🙂
Santiago.

[Consortium ] 6/12 March 2017

Hello!

This is my weekly ChangeLog, from 6 March 2017 to 12 March 2017.
You can see it in a better format by going here: http://log.smallworks.eu/web/search?from=6/3/2017&to=12/3/2017

ChangeLog
=========

10 March 2017:
————–

* === libgit2(ssh) and linux
An update on the libgit2 (and consequently iceberg) problem on linux: SSH will not work on ITIMER VM (which is the zeroconf default, at least for now).

Here the reason:

ITIMER sends an signal to the VM thread using +pthread_kill(tickerThread, TICKER_SIGNAL)+ and that aborts system calls, which are used by +libssh2+, producing a ‘wait for packet’ to fail answering a timeout ( even if that timeout does not happens for real).

Here is an interesting comment from +sqUnixITimerTickerHeartbeat.c+ :

—-
/* While we use SA_RESTART to ensure system calls are restarted, this is
* not universally effective. In particular, connect calls can abort if
* a system call is made in the signal handler, i.e. the pthread_kill in
* prodHighPriorityThread. So we avoid this if possible by not prodding
* the high-priority thread unless there are high-priority tickees as
* indicated by numAsyncTickees > 0.
*/
—-

… and sadly, as +OSSubprocess+, +libssh2+ calls falls under the category of “not universally effective”(they are connect calls… once disconnected, you cannot connect again ‘as is’).

So, the only workaround possible (at least for now), is to use the threaded version of VM… I improved the error message it throws when this fails, now looks like this:


You need to add a conf file to /etc/security/limits.d, executing this:

sudo cat >/etc/security/limits.d/%s.conf <<END\n”, VMNAME);
* hard rtprio 2
* soft rtprio 2
END

You need to log out and log back in for the limits to take effect.
For more information read https://github.com/OpenSmalltalk/opensmalltalk-vm/releases/tag/r3732#linux
—-

which at least shows what’s happens and how you can easily fix it.

Now, I think this is a *sad solution*. Needing to touch system configuration in order to run a VM does not feels “professional”. I would like to have some time to find a fix.

 

 

Esteban

Tuning the Pharo GC

Clément Béra wrote a really blog post of GC tuning for Pharo. A must read!

https://clementbera.wordpress.com/2017/03/12/tuning-the-pharo-garbage-collector/

Stef