[Pharo-dev] Esteban's ChangeLog week of 18 March 2019

2019-03-25 Thread estebanlm
Hello!

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

ChangeLog
=

21 March 2019:
--

*I worked (despite being sick ;) ) on fixing how some announcements are 
handled in +WindowPresenter+

The problem was: +WidgetBuilt+ and +WindowBuilt+ announcers were called 
after call an open command.

This is usuallu not a problem but: 

* What happens if you run a modal dialog? No announce will be sent until 
modal is over.
* What happens if I want to modify the presenter 'after' is built but 
'before' is shown?

So, I moved this announcements to right after the window is built, and I 
added a new vocabulary 
+#whenOpenedDo:+ to match the older +#whenClosedDo:+

(btw... I think I will need an event to validate window closing... but 
that's another 2c)


19 March 2019:
--

*Fixing UFFI architecture problems

* 
* 
* 



I spent some time fixing some problems detected in UFFI.

What happeneds is that when the inclusion of different architectures, some 
older asumptions were not 
valid anymore: 

1) +long ~= void*+

This means passing +0+ as a +NULL+ is no longer valid! And that, of course, 
crashes some libraries, specially on windows.

To fix this:

* now passing nil will be mapped to +ExternalAddress null+ instead +0+. 
Somehow, I do not like to use the nil as NULL, and because of that: 
* I introduced the "constant" value +NULL+. Yes, now you can put +NULL+ in 
your call invocations and they will be translated to a NULL in the callout.

2) Not all constant values are equivallent. 

In UFFI, you can do something like this: 


self ffiCall: #(void aFunction(42))


means passing a constant value instead an argument. This is very useful in 
some contexts... But 
we cannot longer assume this value is same size as required. We need to 
make explicit the type!

So, I modified the parser and now you can have calls like this: 


self ffiCall: #(void aFunction( (ulong) 42 ))


Making the thing usable again :)

*BEWARE:* This will only work for "numeric" types. You cannot cast anything 
as in C!


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 11 March 2019

2019-03-18 Thread estebanlm
Hello!

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

ChangeLog
=

14 March 2019:
--

*I've been working on context menus for Spec 2. 

This seems like an easy task... until you see how broken it was in the 
previous version. In fact, 
in older Spec menus were inexistent. Or better: the abstraction for menus 
were inexistent, and 
instead it was just a simple exposition (at Spec level) of the Morphic menu 
infrastructure (which itself 
is not very friendly).

So... I needed to reimplement everything. 

... and a way to test it :(

Now, I want to consider the Menu interface more in detail, since today is 
not very clear. 
Look how a Menu Bar needs to be made: 


MenuBarPresenter new 
addGroup: [ :group |
group 
addItem: [ :item | item name: 'Something 1'; action: [ 
"doSomething"] ];
addMenu: [ :item | item name: 'Something 2'; action: [ 
"doSomething"] ] ];
yourself


which doesn't seems to be the best approach. 

(Anyway, I'm not changing that just now... but I'm reflecting on it, 
certainly)


13 March 2019:
--

*I made a pause of my Spec 2 current work to make a fix that was pending 
since some time now and 
it was needed to easy the migration of some projects (and its usage in 
windows): 

This [PR](https://github.com/pharo-vcs/iceberg/pull/1213) will fix [tonel 
issue 74](https://github.com/pharo-vcs/tonel/issues/74)


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 4 March 2019

2019-03-11 Thread estebanlm
Hello!

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

ChangeLog
=

6 March 2019:
-

*I spent last two days trying approaches to make the introduction of 
+Application+ concept less intrusive.

Thing is, since several applications can be alive at the same time (in 
general at least two: Pharo and the 
application the user is developing, but there can be more), when you create 
a window, is mandatory to know
the application it belongs to. 

And this is a problem.

Why? Well, because there are two ways to do it: 

It can be: 


MyWindowClass newApplication: myApplication.


or:


myApplication new: MyWindowClass.


And well... both approaches require that you are in possesion of an 
application when you create a window.
In an application of certain complexity (not to talk about Pharo complexity 
itself), this can be a 
problem (hello, singletons!).

I explored the approach of having one active application at a time... but 
what happens when you are 
running application A and you need to pop a debugger? How to choose the 
right application? 

After some consideration, I came to the conclusion that is not possible, 
and that decision needs to be 
binded to the development itself.

So, how to solve this? Is a matter of each application.

* It is possible for some applications to pass the application between 
components. One can arwe UI decisions need to be taken at UI level, and is fine 
to have the application available at that level.
* Is possible to have *for your application* a "runningApplication"... a 
class variable in your SpecApplication override. This is a singleton, yes, but 
sometimes you need it... Maybe Pharo will go this way.


4 March 2019:
-

*Today I completed the first step on the introduction of +Application+ for 
Spec2.

As we have told, an application is the entry point of any Spec Application. 
It will handle the creation and 
flow of windows and the resources used by it (long term goal: no more 
UIManager, UITheme, ThemeIcons and 
other singletons that pollute the system). 

Anyway, for now I just managed to introduce a generic application and 
refactored the +ComposablePresenter+,
extracting the window functionality from them and moving it to a default 
+Application+. It sounds simple, 
but it was a big change. 

A diagram of how this has changed: 


Before:

ComposablePresenter -> WindowPresenter
\
  ComposablePresenter*



Now: 

Application -> WindowPresenter -> ComposablePresenter -> 
ComposablePresenter*


This way of handling windows allows a tight control of what is open and in 
what order, and a way to 
handle resources other tghan a singleton in the system.


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 25 February 2019

2019-03-03 Thread estebanlm
Hello!

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

ChangeLog
=

1 March 2019:
-

*I have been working on introducing the concept of +Application+ to Spec2. 
An application is the entry point of... well, any application you will do 
with Spec2. It will contain 
information needed to make the application works in different contexts: 
1) a theme
2) shared resources
3) the backend to use (Morphic)
4) access to standard dialogs, etc. (what now is found in UIManager).

It is hard because it implies a lot of other refactors: 

* open/close of windows needs to pass through an application (to keep 
navigation working)
* An application needs to be present on each window opened. 
* Windows needs to be the root of a presenter (and not just a holded 
variable in a ComposablePresenter)
* Initialization of windows now is made by calling a method: 
#initializeWindow:, this was already added, but now we need to generalise it. 
* ...

Anyway, this is a lot of work and is taking more than desirable :(


26 February 2019:
-

*Spec 2 day: 

1) fix a bug in GridLayout: calculous of column width when columns is not 
homogeneous was bad because 
some morphs (labels, strings) needs to fit to contents (and it was not 
doing it).

2) Starting to introduce the concept of "Application": A window is not a 
good enough abstraction, we need 
to use also the concept of application (several windows interacting, 
sharing resources, theme, etc.).


25 February 2019:
-

*Today I made some advances in Spec2: 

1) I worked on the transmissions mini-framework. The ability to make easy 
transmissions 
between components in Glamour was always something I liked it. So I did not 
want to lose 
it in the transition from Glamour to Spec2. 

I implemented a small layer on Spec presenters to be able to define input 
ports and output
ports. That way you can define transmissions "glamour style", with full 
power of Spec behind. 

Someting like this is now possible: 


packages := self newList displayBlock: #name. 
classes := self newList displayBlock: #name. 
self transmit from: packages; to: classes; transform: #definedClasses.


2) Also, I added some functionality to allow to add arbitrary presenters to 
the new layouts.

This is useful when doing forms, for example: you do not want to 
instantiate all the time a 
LabelPresenter to add a label. That way, you can now define things like 
this: 


SpecGridLayout new
columnHomogeneous: false; 
add: 'Name' at: 1@1;
add: #nameTextInput at: 2@1;
add: 'Host' at: 1@2;
add: #hostTextInput at: 2@2;
add: 'Port' at: 1@3;
add: #portNumberInput   at: 2@3;
yourself


This will probably deserve a re-work later, but is already a lot better :)

3) I implementer a new type of presenter: +ActionBarPresenter+. This is 
similar to a toolbar,
but its purpose is to add some actions (something like the small button pad 
you see in macOS and 
others). Since they do not serve same purpose, usability is not always the 
same and then they need
to be separated.


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 18 February 2019

2019-02-24 Thread estebanlm
Hello!

This is my weekly ChangeLog, from 18 February 2019 to 24 February 2019.
You can see it in a better format by going here: 
http://log.smallworks.eu/web/search?from=18/2/2019=24/2/2019

ChangeLog
=

19 February 2019:
-

*Small-fix-a-day: [critiques icons are not managed 
correctly](https://github.com/pharo-project/pharo/pull/2655) 


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 11 February 2019

2019-02-17 Thread estebanlm
Hello!

This is my weekly ChangeLog, from 11 February 2019 to 17 February 2019.
You can see it in a better format by going here: 
http://log.smallworks.eu/web/search?from=11/2/2019=17/2/2019

ChangeLog
=

14 February 2019:
-

*Small fix-a-day: 
[https://github.com/pharo-project/pharo/pull/2530](https://github.com/pharo-project/pharo/pull/2530)
 (fix some tonel tests failing)


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 4 February 2019

2019-02-10 Thread estebanlm
Hello!

This is my weekly ChangeLog, from 4 February 2019 to 10 February 2019.
You can see it in a better format by going here: 
http://log.smallworks.eu/web/search?from=4/2/2019=10/2/2019

ChangeLog
=

9 February 2019:


*=== On layouts
As you know, I've been working  on layouts for Spec 2. The basic 
layouts I want to have available next week(s) are four: 

* +SpecBoxLayout+ : A simple way to place components horizontally or 
vertically 
* +SpecPanedLayout+ : Same as box layout, but with a resizable splitter 
(and it will allow just two... if you want more you will need to compose).
* +SpecGridLayout+ : To place components in a grid (x,y coordinates and 
spans)
* +SpecXYLayout+ : This could be renamed as +SpecAbsoluteLayout+ and it's 
name says all, it will allow absolute location of components (obviously, in 
relation with its parent).

For a second phase there will be a couple more +SpecFlowLayout+ and a 
kasowari layout (without name yet :P).

The ones on first phase are the most important ones. In particular, we have 
detected that with 
first three (Box, Paned, Grid) we can reproduce everything we have 
currently in Pharo. The second phase 
will add possibilities for the future.

Anyway, I have "kind-of-working" the first three, but I have problems when 
applying layouts here and there, because
morphic time to time wants to behave differently than asked.

One of the problems is that for this layouts, to make them behave correctly 
(and without a lot of work from users), 
I will need to add the concept of "minimum, preferred and maximum" extent. 
Reason why I'm playing with a small
implementation of styling... which most probably will go away once I find 
the best way to handle this constraints.

So, this week I have nothing finished, just a pointer to my current work: 
[https://github.com/estebanlm/Spec/tree/dev-2.0](https://github.com/estebanlm/Spec/tree/dev-2.0)


7 February 2019:


*Small fix-a-day: 
[https://github.com/pharo-project/pharo/pull/2452](https://github.com/pharo-project/pharo/pull/2452)


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 28 January 2019

2019-02-03 Thread estebanlm
Hello!

This is my weekly ChangeLog, from 28 January 2019 to 3 February 2019.
You can see it in a better format by going here: 
http://log.smallworks.eu/web/search?from=28/1/2019=3/2/2019

ChangeLog
=

30 January 2019:


*Still more work for the [PR](https://github.com/pharo-spec/Spec/pull/208) 
I submited yesterday. 

It is now ready to merge!


29 January 2019:


*I made a [PR](https://github.com/pharo-spec/Spec/pull/208) that adds two 
new elements to Spec 2:

1) SpecPanedLayout is a new layout that complements SpecBoxLayout:

A paned layout is like a Box Layout (it places childen in vertical or 
horizontal fashion), but it will add a splitter in between, that user can drag 
to resize the panel.
In exchange, a paned layout can have just two children.

2) NotebookPresenter is a new implementation of a tab manager. Needed 
because old one was not lazy, bad layouted 
and too attached to Morphic (while we attempt to be more backend agnostic).

All of this is still WIP (there are missing functionality still), but what 
is there is working fine :)

*I merged this 
[PR](https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/362) from Pavel to 
improve keyboard handling on Windows VMs.

*Now that Pharo 7.0 is out, I started work on the Pharo 8.0 roadmap (that I 
need to 
send to the list, btw). 

Since some weeks I've been working on Spec2 (because we will need it sooner 
than 
expected and I wanted to make some progress on its general design and 
needs). In Spec2, 
some things will be enhanced, some others replaced and some other more 
added from 
scratch. 

I wanted to know mor more or less were we stand to do the job. 

Some work I've made (along with Cyril): 

1) Layouts will be revamped. Right now there is just one layout which is 
overpowerful but hard 
to use and too attached to morphic (and our goal is to be able to replace 
the Morphic backend 
with a Bloc backend). We decided to go for a different approach: instead 
one layout that does
all, having different layouts to fulfil different needs: 
- +SpecBoxLayout+ (rigid panes)
- +SpecPanedLayout+ (non rigid panes)
- +SpecGridLayout+ (form kind layout)
- +SpecFlowLayout+ (flowing components)
- +SpecXYLayout+ (rigid coordinates)
- And of course there will be need of a kasowary based layout. 
- ... ?

I already implemented +SpecBoxLayout+, +SpecPanesLayout+ and a preliminary 
version od +SpecGridLayout+ :). 

2) Interpreter will be removed. Just the old layout makes it necessary 
today, and it adds a 
complexity we do not need.

3) We will add a +TablePresenter+ (a good one) and a +TreeTablePresenter+ 
(again, a good one). 
Old versions that try to fullfil same function will be deprecated. There is 
already a functional 
preliminary version of them :) 

4) We will add components for Numbers, Dates, etc. 
(+NumberInputFieldPresenter+ is already implemented)

5) We will revisit all other components. 

As a roadmap, is pretty ambicious but is looking good so far :)


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 21 January 2019

2019-01-27 Thread estebanlm
Hello!

This is my weekly ChangeLog, from 21 January 2019 to 27 January 2019.
You can see it in a better format by going here: 
http://log.smallworks.eu/web/search?from=21/1/2019=27/1/2019

ChangeLog
=

25 January 2019:


*Sent a [simple PR](https://github.com/pharo-project/pharo/pull/2327) to 
fix a simple but annoying problem :)

It just uses the icons assigned to inspector and playground (calypso needs 
to be fixed too, and for that 
there is [also a PR](https://github.com/pharo-ide/Calypso/pull/434))


23 January 2019:


*Not much to say. 

Last two weeks I didn't do anything but releasing Pharo 7.0 :)

I hope this stream gets smoother from now on.


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 14 January 2019

2019-01-20 Thread estebanlm
Hello!

This is my weekly ChangeLog, from 14 January 2019 to 20 January 2019.
You can see it in a better format by going here: 
http://log.smallworks.eu/web/search?from=14/1/2019=20/1/2019

ChangeLog
=

14 January 2019:


*I just promoted a new VM as stable for Pharo 7.0. 

It is "201901051900-7a3c6b6" which is not the latest-latest (which is from 
10/01), but it seems very likely to be stable enough :) 


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 7 January 2019

2019-01-13 Thread estebanlm
Hello!

This is my weekly ChangeLog, from 7 January 2019 to 13 January 2019.
You can see it in a better format by going here: 
http://log.smallworks.eu/web/search?from=7/1/2019=13/1/2019

ChangeLog
=

11 January 2019:


*Finally fixed bootstrap issues related to Pharo8.0 development. 

Now we are ready to go :)

Issues fixed: 

* 
[https://github.com/pharo-project/pharo/pull/2214](https://github.com/pharo-project/pharo/pull/2214)
* 
[https://github.com/pharo-project/pharo/issues/2212](https://github.com/pharo-project/pharo/issues/2212)
* 
[https://github.com/pharo-project/pharo/issues/2129](https://github.com/pharo-project/pharo/issues/2129)
* 
[https://github.com/pharo-project/pharo/issues/2211](https://github.com/pharo-project/pharo/issues/2211)
* 
[https://github.com/pharo-project/pharo/issues/2130](https://github.com/pharo-project/pharo/issues/2130)


9 January 2019:
---

*I've been working on release Pharo7.0 as soon as possible. 

For that, Pharo8.0 development needs to be in place and there were some 
errors on the bootstrap. I'm working on those: 

* [2129](https://github.com/pharo-project/pharo/issues/2129)
* [2130](https://github.com/pharo-project/pharo/issues/2130)

Both are kind of related, since it depends on how to take correctly the 
working branch. 

Anyway... not finished, but almost :)


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 24 December 2018

2018-12-30 Thread estebanlm
Hello!

This is my weekly ChangeLog, from 24 December 2018 to 30 December 2018.
You can see it in a better format by going here: 
http://log.smallworks.eu/web/search?from=24/12/2018=30/12/2018

ChangeLog
=

27 December 2018:
-

*Opened Pharo8.0 development

* branch was already opened by Stef :)
* opened issue tracker
* updated documents to point to it
* sent mails to list

TODO: Update videos (we needed new ones anyway)


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 3 December 2018

2018-12-09 Thread estebanlm
Hello!

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

ChangeLog
=

6 December 2018:


*I made a small [PR](https://github.com/pharo-ide/Calypso/pull/375) on 
Calypso to better expose the 
contextual spotter that helps to find available Calypso commands. 


5 December 2018:


*Ok, finally I finished next stop on automation of releases, which made us 
to change the default 
development branch (to "Pharo7.0" for the moment). This will allow us to 
keep different active 
"development" branches.

One thing I would like to achieve eventually is to keep:

* A current development version (it will be Pharo8.0 soon).
* A maintained stable version (Pharo7.0 and potential Pharo7.1, etc.).
* A Long term support (LTS) version that will continue incorporating critic 
systems.

So well, this are the steps to arrive there :)


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 19 November 2018

2018-11-25 Thread estebanlm
Hello!

This is my weekly ChangeLog, from 19 November 2018 to 25 November 2018.
You can see it in a better format by going here: 
http://log.smallworks.eu/web/search?from=19/11/2018=25/11/2018

ChangeLog
=

22 November 2018:
-

*I made a change in the VM to modify [freetype version to 
2.9.1](https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/307). 

We have the suspicion that some bugs we are finding in our use of freetype 
fonts may be already fixed on newer versions of 
freetype library (we were using 2.6.5). And well, if that is not the case, 
at least we will be up-to-date :)


19 November 2018:
-

*I made a [PR](https://github.com/pharo-project/pharo/pull/2002) to improve 
the logic in callbacks. They were 
not returning in case of error, and that was leading to a system crash 
almost inevitably.


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 12 November 2018

2018-11-18 Thread estebanlm
Hello!

This is my weekly ChangeLog, from 12 November 2018 to 18 November 2018.
You can see it in a better format by going here: 
http://log.smallworks.eu/web/search?from=12/11/2018=18/11/2018

ChangeLog
=

16 November 2018:
-

*I made a [pull request](https://github.com/pharo-project/pharo/pull/1998) 
to update Calypso 
to [version 
0.13.0](https://github.com/pharo-ide/Calypso/releases/tag/v0.13.0)


14 November 2018:
-

*I needed to revisit [case: 22659](https://pharo.fogbugz.com/f/cases/22659) 
(and it took last two days to fix it properly :P)

But well, now we should be having correct file names for all versions.


13 November 2018:
-

*I fixed [case: 22659](https://pharo.fogbugz.com/f/cases/22659), with this 
[pull request](https://github.com/pharo-project/pharo/pull/1975).

Problem was that tagging system was correctly naming version inside the 
image, but it was not doing anything with 
file names (then the filenames were hardcoded to Pharo7.0-alpha).


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 5 November 2018

2018-11-11 Thread estebanlm
Hello!

This is my weekly ChangeLog, from 5 November 2018 to 11 November 2018.
You can see it in a better format by going here: 
http://log.smallworks.eu/web/search?from=5/11/2018=11/11/2018

ChangeLog
=

5 November 2018:


*I just 
[announced](http://forum.world.st/ANN-Pharo-v7-0-0-rc1-released-td5088221.html) 
Pharo v7.0.0-rc1.

Now the real work begins... :P

*I worked on [case: 22628](https://pharo.fogbugz.com/f/cases/22628): merge 
latest FFI-Kernel changes.

Thing is, now there is some overlapping between FFI-Kernel and UnifiedFFI, 
because they changed 
it in some things we already solved in UFFI, but well... we will have to 
see this in the future :)

*I made a small PR to add a fix that Eliot contributed to it: 
[https://github.com/pharo-vcs/tonel/pull/60](https://github.com/pharo-vcs/tonel/pull/60)
 .

Is an error that happens when a snapshot contains *only* method extensions.


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 29 October 2018

2018-11-04 Thread estebanlm
Hello!

This is my weekly ChangeLog, from 29 October 2018 to 4 November 2018.
You can see it in a better format by going here: 
http://log.smallworks.eu/web/search?from=29/10/2018=4/11/2018

ChangeLog
=

29 October 2018:


*I made a PR to update [Calypso in Pharo 7 to version 
0.12.0](https://github.com/pharo-project/pharo/pull/1943). 

While this should be very easy, in case of Calypso it is a but harder 
because of its dependency graph, that looks a bit like this : 

 Calypso
ClassAnnotation
Commander
ClassAnnotation
SystemCommands
Commander
ClassAnnotationAnyway, in the medium term, I want to 
create a tool to do "chained-releases", which is not so easy 
because we need to modify baselines and do commits, pushs and tags. 

But it will be possible to do :)


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 22 October 2018

2018-10-29 Thread estebanlm
Hello!

This is my weekly ChangeLog, from 22 October 2018 to 28 October 2018.
You can see it in a better format by going here: 
http://log.smallworks.eu/web/search?from=22/10/2018=28/10/2018

ChangeLog
=

22 October 2018:


*I (finally) finnished couple of PRs for Calypso!

* [Issue 304](https://github.com/pharo-ide/Calypso/pull/346) 
* [Issue 335](https://github.com/pharo-ide/Calypso/pull/348) 

This two are the content of my work of last week. It was complicated to 
understand the model behind calypso and that took more time than preview. 

A bit of an explanation: 

1. First one eliminates the extension that takes +Traits+ as if they would 
be superclasses of somekind. 
While I understand what Denis tried to do here, the premise he took is 
wrong: traits are not a 
multiple inheritance mechanism (even if they can be used to simulate it), 
traits are a *composition* strategy (and there is a trait composition 
arithmetic that is somekind complex that needs to be 
taken into account).
As a result, the price of simulating a multiple-inheritance scenario where 
there is not was complexifying
the model at levels way higher than desired. Also it was not working 
properly and patching it to make it 
work was resulting on re-writing all the trait arithmetic at UI level. 

So the right approach here is just to remove. 

And to be clear: I'm not oposed to the existence of a plugin that hides 
methods comming from traits 
(even if I think is incorrect because once a trait is applied, those 
methods actually 'belong' to the 
class). But in case you want something like this, it can be implemented in 
a much simpler way by not 
mixing what a superclass and a trait is.

2. Second PR also eliminates something :) 
This time I eliminate the inclusion of metaclasses in the extension list 
while displaying a package. 
Again, I understand what Denis tried to do: to easy the view of which 
classes are extended in the class 
side and the ones that are extended in instance side. 
Problem with thid is that it was breaking completely the cognitive model 
the system browser offers, 
which is already complex enough to add also an exceptional behaviour. 
Anyway, this list now works as before: if there are extensions classes are 
shown and to see the class side extensions you need to click in class side 
option.


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 8 October 2018

2018-10-15 Thread estebanlm
Hello!

This is my weekly ChangeLog, from 8 October 2018 to 14 October 2018.
You can see it in a better format by going here: 
http://log.smallworks.eu/web/search?from=8/10/2018=14/10/2018

ChangeLog
=

10 October 2018:


*I finish an [extension to the GitHub 
plugin](https://github.com/pharo-vcs/iceberg/issues/1008) 
to allow users to create branchs from a GitHub issue (same as it works now 
with pharo fogbugz 
plugin).

This will be used for Pharo 8, but it can also be used by other iceberg 
users in any project :)


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 1 October 2018

2018-10-08 Thread estebanlm
Hello!

This is my weekly ChangeLog, from 1 October 2018 to 7 October 2018.
You can see it in a better format by going here: 
http://log.smallworks.eu/web/search?from=1/10/2018=7/10/2018

ChangeLog
=

5 October 2018:
---

*I made a couple of backports to Pharo 6.1

* [case: 22517](https://pharo.fogbugz.com/f/cases/22517) : Update ProfStef 
and fix spelling mistakes
* [case: 22535](https://pharo.fogbugz.com/f/cases/22535) : Backport Tonel 
v1.0.9 to Pharo 6.1

*I finished a "simple" [PR for 
Calypso](https://github.com/pharo-ide/Calypso/pull/330): It was 
about better exposing the usage of certain command when using the +cmd+/+ 
Calypso-Spotter help. 

Now, this was not obvious because this correspons to a command nobody is 
using it yet, but it will
become important as we enhance discoverability of it :)


2 October 2018:
---

*Well... I spent the full day debugging on smalltalkCI to send a [new 
fix](https://github.com/hpi-swa/smalltalkCI/pull/399) 
to allow the load of projects with packages already installed in the image. 

This is very useful for us, developing Pharo and their components. 

* Spec
* Calypso
* Iceberg
* Zinc
* etc.

And maybe it will be useful for others in the future.


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 24 September 2018

2018-10-01 Thread estebanlm
Hello!

This is my weekly ChangeLog, from 24 September 2018 to 30 September 2018.
You can see it in a better format by going here: 
http://log.smallworks.eu/web/search?from=24/9/2018=30/9/2018

ChangeLog
=

28 September 2018:
--

*I submited a [PR for 
smalltalkCI](https://github.com/hpi-swa/smalltalkCI/pull/398) to handle 
onConflict/onUpgrade metacello options. 

This will allow us to test projects that are already loaded into the image 
(like Calypso, 
for example)


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 17 September 2018

2018-09-24 Thread estebanlm
Hello!

This is my weekly ChangeLog, from 17 September 2018 to 23 September 2018.
You can see it in a better format by going here: 
http://log.smallworks.eu/web/search?from=17/9/2018=23/9/2018

ChangeLog
=

19 September 2018:
--

*I migrated all [pharo-ide](https://github.com/pharo-ide) projects to tonel 
format. 

Harder than it seems, it took me a good bunch of hours. But now is working. 

This will enhance work/fixes on Calypso.


18 September 2018:
--

*I just [fixed the CI for 
Calypso](https://github.com/pharo-ide/Calypso/issues/319) (it was failing for 
Pharo 7.0 because of problems when updating).

Now I can start fixing real issues of it :)


17 September 2018:
--

*I backported/promoted a new stable vm for Pharo 6.1. 
This is the one that has been tested for Pharo 7.0alpha already for some 
time, so things should be fine.

Current stable VM is from 2018-07-04 (yeah, eventually we will have a 
decent semver numbering, 
but for now this will have to be enough :P)


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 3 September 2018

2018-09-10 Thread estebanlm
Hello!

This is my weekly ChangeLog, from 3 September 2018 to 9 September 2018.
You can see it in a better format by going here: 
http://log.smallworks.eu/web/search?from=3/9/2018=9/9/2018

ChangeLog
=

4 September 2018:
-

*While I'm back from my holidays, this week will be slow and full of admin 
work. 
Nothing very relevant to inform :)

Also, I'm preparing my presentation for ESUG :)


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 6 August 2018

2018-08-13 Thread estebanlm
Hello!

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

ChangeLog
=

7 August 2018:
--

*I've been working on a new ODBC driver for Pharo, made on UFFI and Garage. 

Sadly, I cannot take the existing older ODBC driver as base because it was 
depending too much 
on old FFI structure. Also, it didn't have any test or example so it was 
hard to take as 
inspiration (too many differences to tacle).

Anyway, the new ODBC driver will come soon(tm), in the mean time I needed 
to fix some issues on 
UnifiedFFI: 

* [case: 22287](https://pharo.fogbugz.com/f/cases/22287)
* [case: 22300](https://pharo.fogbugz.com/f/cases/22300)

This fixes some missing/incorrect parts on UFFI: first one adds a special 
handling for +size_t+ 
types (needed because they behave differently in different 
platforms/architectures). And the second 
fixes a problem when returning +enum+ values.


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 23 July 2018

2018-07-30 Thread estebanlm
Hello!

This is my weekly ChangeLog, from 23 July 2018 to 29 July 2018.
You can see it in a better format by going here: 
http://log.smallworks.eu/web/search?from=23/7/2018=29/7/2018

ChangeLog
=

27 July 2018:
-

*I found a problem that was making win64 bit version to crash: size_t 
implementation on UFFI was not resolving properly there (since it was mapped to 
a long, which is not correct on win64 architecture).

To fix it, I changed FFISizeT type to work as FFILong, with different "real 
types" depending on architecture. 

Now, there is a problem to solve because structures using this type (like 
+LGitStringArray+) need to be regenerated, which may generate some 
difficulties... will see.


23 July 2018:
-

*So well. Spent the full day debugging libgit2 without symbol information :(

There is some problem with adding paths to an index and I still cannot 
figure out what's the problem.

I'll continue trying tomorrow.


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 16 July 2018

2018-07-23 Thread estebanlm
Hello!

This is my weekly ChangeLog, from 16 July 2018 to 22 July 2018.
You can see it in a better format by going here: 
http://log.smallworks.eu/web/search?from=16/7/2018=22/7/2018

ChangeLog
=

19 July 2018:
-

*Back from holidays :)

I'm slowly resuming work... right now I'm still dealing with the Win64 VM 
(no news right now).


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 25 June 2018

2018-07-02 Thread estebanlm
Hello!

This is my weekly ChangeLog, from 25 June 2018 to 1 July 2018.
You can see it in a better format by going here: 
http://log.smallworks.eu/web/search?from=25/6/2018=1/7/2018

ChangeLog
=

27 June 2018:
-

*I made a [small PR](https://github.com/pharo-project/pharo/pull/1590) to 
ensure pharo will load correct freetype 
library when using windows 64bit platform.

*I finally was able to build a windows 64bit VM with all dependencies: 
[https://ci.appveyor.com/project/OpenSmalltalk/vm/build/job/5q50v90myxu4bxxi](https://ci.appveyor.com/project/OpenSmalltalk/vm/build/job/5q50v90myxu4bxxi)

This is an important milestone in our Path to have Pharo running in 64bit 
in all platforms, but sadly this is not finish. While 
most of the 64bit things I tested are working properly, the cairo plugin 
(hence Athens) is still not.

So I need to spend some more time here, looking at the possible problems :(


25 June 2018:
-

*I spent some time digging on some issues of Pharo catalog. 

At the end, it was not very problematic, but at least I took the oportunity 
to add the repository for Pharo 7.0 :)


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 18 June 2018

2018-06-25 Thread estebanlm
Hello!

This is my weekly ChangeLog, from 18 June 2018 to 24 June 2018.
You can see it in a better format by going here: 
http://log.smallworks.eu/web/search?from=18/6/2018=24/6/2018

ChangeLog
=

21 June 2018:
-

*I made a port of [OmniBase](https://github.com/estebanlm/OmniBase) for 
Pharo 6+ .

While this is a discussed DB, some peple likes it so is good to have it 
available.


20 June 2018:
-

*I'm working on getting Pharo and the PharoVM to work properly on win 64bit.

While there is still work to do, I already get a compilation that works for 
most cases (including iceberg).

Which is sad about this is I needed to split the build into parts and 
prepare the VM with dependencies upload to a repository.

This works, and simplifies a lot the building process.

Next days I will continue the remaining dependency: cairo.


19 June 2018:
-

*again, I spent last two days on makign [this 
PR](https://github.com/pharo-project/pharo/pull/1546) to pass.

The PR is about "[case: 22146](https://pharo.fogbugz.com/f/cases/22146) - 
update metacello to allow alternate filetree formats", and is important to 
allow baselines to use tonel format without changing all their baselines 
and without needing to create a 
special notation for tonel formats. 

This way, all baselines referred as "github://", etc. will be correctly 
interpreted as tonel or cypress format 
automatically. 
 


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 11 June 2018

2018-06-18 Thread estebanlm
Hello!

This is my weekly ChangeLog, from 11 June 2018 to 17 June 2018.
You can see it in a better format by going here: 
http://log.smallworks.eu/web/search?from=11/6/2018=17/6/2018

ChangeLog
=

15 June 2018:
-

*I fixed a recurring error on pharo site that was preventing 
[http://pharo.org/news](http://pharo.org/news) to be seen.


14 June 2018:
-

*Finally I got green on my metacello work. 

Before it vanishes, I made a [PR to update 
Pharo7](https://github.com/pharo-project/pharo/pull/1546) :)

It was a lot of work, to make all parts passes tests, sometimes working 
"bliindly"... but well, now is there.

I really hope at least we can go to metadataless format someday soon.


13 June 2018:
-

*So, yet another SDL2 integration problem, yet another PR: 
[https://github.com/pharo-project/pharo/pull/1531](https://github.com/pharo-project/pharo/pull/1531)

This time, problem was that SDL2 assumes you are going to do a game, by 
default, hence it disables 
the screensaver of your computer (the one that turns off your monitor or 
allow a screensaver to run 
when you are afk some time). 

To fix this, I needed to add capability to set HINTS when starting SDL2, 
and set a HINT to prevent this disabling.


12 June 2018:
-

*I'm still preparing a new metacello version to be integrated on Pharo 7. 
To allow it I pushed back changes from P7 into the metacello stream (mostly 
clean up made by @torsten)

[Here is the PR](https://github.com/Metacello/metacello/pull/492) (still on 
works)


11 June 2018:
-

*I released [tonel 
1.0.7](https://github.com/pharo-vcs/tonel/releases/tag/v1.0.7) which adds 
support for stateful traits.


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 4 June 2018

2018-06-11 Thread estebanlm
Hello!

This is my weekly ChangeLog, from 4 June 2018 to 10 June 2018.
You can see it in a better format by going here: 
http://log.smallworks.eu/web/search?from=4/6/2018=10/6/2018

ChangeLog
=

8 June 2018:


*Well... I spent last two days making work this PR: 
[https://github.com/Metacello/metacello/pull/490](https://github.com/Metacello/metacello/pull/490)

The title of this is "allow filetree alternate formats". What that means? 
By this PR, the +filetree://+ selector
becomes a "generic" selector, capable of decide which kind of file format 
we are using. This formats are for now 
cypress (what you usually know as "filetree") and tonel, but we could add 
others in the future.

I'm waiting for integration to also submit a PR to update P7.


5 June 2018:


*In Pharo, we are replacing usages of #asIcon with #iconNamed: so I 
prepared iceberg to this.

You can check the PR here: 
[https://github.com/pharo-vcs/iceberg/pull/834](https://github.com/pharo-vcs/iceberg/pull/834)

*Ok, last week I announced [Tonel](https://github.com/pharo-vcs/tonel) was 
now capable of write Stateful Traits. 

Yes, that was true... but it was working just for writing, not for reading. 
Reading needed a bit more work, 
which you can now found in this commit: 
[https://github.com/pharo-vcs/tonel/commit/166fd130e93d814e69c9d938429c8908398d3d79](https://github.com/pharo-vcs/tonel/commit/166fd130e93d814e69c9d938429c8908398d3d79)

*To make Tonel read properly stateful traits, there was a missing method on 
Monticello (yep, there). 

So I added [case: 22065](https://pharo.fogbugz.com/f/cases/22065) and there 
is a PR to solve it: 
[https://github.com/pharo-project/pharo/pull/1485](https://github.com/pharo-project/pharo/pull/1485).

*Found a bug on OSWindow-SDL2 and fixed it. You can check it at [case: 
22063](https://pharo.fogbugz.com/f/cases/22063) and PR 
[https://github.com/pharo-project/pharo/pull/1483](https://github.com/pharo-project/pharo/pull/1483)


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 28 May 2018

2018-06-04 Thread estebanlm
Hello!

This is my weekly ChangeLog, from 28 May 2018 to 3 June 2018.
You can see it in a better format by going here: 
http://log.smallworks.eu/web/search?from=28/5/2018=3/6/2018

ChangeLog
=

1 June 2018:


*I just added support for stateful traits in 
[tonel](>https://github.com/pharo-vcs/tonel/commit/7147d7b21ef614b958aaed1f4844c86da537d049)
 

It was pretty simple :)


30 May 2018:


*I spent sometime on the UI of Iceberg. 

This time I improved the version history browser (you know, the browser 
that appears on Calypso, whenever you 
have a repository connected to your sources). In fact, I changed the old 
implementation (based on Glamour) to 
our own implementation. 

This allow us to share some functionality from history browser (like the 
ability to checkout from a version), 
and I also added the ability of install a particular version.

this is the PR 
[https://github.com/pharo-vcs/iceberg/pull/829](https://github.com/pharo-vcs/iceberg/pull/829)

*I backported stable P7 VM to P6.1.
This should fix some problems... and create some new, as always :)


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 21 May 2018

2018-05-28 Thread estebanlm
Hello!

This is my weekly ChangeLog, from 21 May 2018 to 27 May 2018.
You can see it in a better format by going here: 
http://log.smallworks.eu/web/search?from=21/5/2018=27/5/2018

ChangeLog
=

23 May 2018:


*I fixed an annoying issue when using +OSWindowWorldMorph+, [case: 
21957](https://pharo.fogbugz.com/f/cases/21957).

The problem was this: when using an altearnative world (like the one 
provided by OSWindow), 
+DisplayScreen class>>actualScreenSize+ is answering a random value. Even 
worst when you use it with 
Ronie's headless VM.

Right now, this is invisible for 99.99% of users, but in the future it will 
be a good thing to have it working. 


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 14 May 2018

2018-05-21 Thread estebanlm
Hello!

This is my weekly ChangeLog, from 14 May 2018 to 20 May 2018.
You can see it in a better format by going here: 
http://log.smallworks.eu/web/search?from=14/5/2018=20/5/2018

ChangeLog
=

18 May 2018:


*The strategy of "just copying" dependencies when they are available has 
some limitations: we need to copy also dependencies 
we may not want. 

I will review these copied libraries (for now: cairo, libssh2 and libgit2) 
to minimize them. This means I need to review 
versions and maybe compile them myself and put them in the repository. 

Still, is not the best approach possible, but is the way I'm finding to 
move on for now... we'll see how it goes.


17 May 2018:


*I've been working on the Windows 64bit PharoVM compilation. 

I needed to hack a lot and take decisions I'm not proud of them, but 
well... after one week work (and six months 
trying), now I have a 64bit VM with all dependencies compiled.

*But!*... I cannot call it a victory. Dependencies are still not working 
properly (libgit2 and cairo, at least). 
So now the painful debug phase restarts.


16 May 2018:


*I found an important leak when using OSWindow and SDL2, so I spent some 
time fixing it (or at least, trying to fix it). 

I made two PRs that should fix the problem: 
[https://github.com/pharo-project/pharo/pull/1368](https://github.com/pharo-project/pharo/pull/1368)
 and 
[https://github.com/pharo-project/pharo/pull/1369](https://github.com/pharo-project/pharo/pull/1369)


15 May 2018:


*Spent the day resuming work on win64 VM for Pharo. 

I decided stop trying to fight the dependency building hell and start over 
with a different approach: we will build 
the vm using the available libraries in cygwin64 (when possible) and we 
will use a separate project to build dependecies
when we need something cygwin does not provides. 

While this approach is far from being perfect, it will allow us to move on.

Anyway... I spent most of the day getting my cygwin environment to work, 
but I managed to advance a bit anyway.


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 7 May 2018

2018-05-14 Thread estebanlm
Hello!

This is my weekly ChangeLog, from 7 May 2018 to 13 May 2018.
You can see it in a better format by going here: 
http://log.smallworks.eu/web/search?from=7/5/2018=13/5/2018

ChangeLog
=

9 May 2018:
---

*I promoted a new stable vm (3rd or 4th attempt, I do not remember).

Let's hope this time it works :)


7 May 2018:
---

*I spent the full that (along with many days before today) fixing the build 
of libgit2 for the VM in linux 32bit. 
This was broken since a lot of time and it was making impossible to release 
a new stable version.

I made to OSVM, and the result is what seems to be a valid build (linux 
32bit shows a healthy libgit2).

I will wait a couple of days to test but that means we can release a new 
stable VM, perhaps wednesday.


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 30 April 2018

2018-05-07 Thread estebanlm
Hello!

This is my weekly ChangeLog, from 30 April 2018 to 6 May 2018.
You can see it in a better format by going here: 
http://log.smallworks.eu/web/search?from=30/4/2018=6/5/2018

ChangeLog
=

3 May 2018:
---

*I took some time to polish a long time waiting PR: 
[https://github.com/pharo-project/pharo/pull/1202](https://github.com/pharo-project/pharo/pull/1202),
 which finally 
closed [case: 20878](https://pharo.fogbugz.com/f/cases/20878)... and 
incidentally cleaned up some dependencies with old Compiler we no longer need. 

Not bad :)

*I spent last 5 working days working on a change on metacello that I 
thought it was going to be just a morning. 
Considering murphy's law of estimations, I'm still 5 days early ;)

... but I'm not done (even if PR is working, you can see it 
[here](https://github.com/Metacello/metacello/pull/490)), 
I'm waiting for some feedback from Dale (there are some problems on 
gemstone side and I need help for it).

Anyway. this PR basically makes tonel format available even when declaring 
+filetree://+ repositories (+filetree://+
now is just a declaration of "smalltalk format", not binded to +cypress+ as 
before). 

This should provide backward compatibility on baselines (who can still be 
declared with +github://+ etc. protocol) and 
makes tonel format available up to Pharo 3.0 versions (since it does not 
depends on iceberg presence anymore).


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 16 April 2018

2018-04-23 Thread estebanlm
Hello!

This is my weekly ChangeLog, from 16 April 2018 to 22 April 2018.
You can see it in a better format by going here: 
http://log.smallworks.eu/web/search?from=16/4/2018=22/4/2018

ChangeLog
=

16 April 2018:
--

*I finally updated Alien package into Pharo according to Torsten package 
modifications.

This was [case: 20878](https://pharo.fogbugz.com/f/cases/20878)

And PR can be seen here: 
[https://github.com/pharo-project/pharo/pull/1202](https://github.com/pharo-project/pharo/pull/1202)


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 9 April 2018

2018-04-16 Thread estebanlm
Hello!

This is my weekly ChangeLog, from 9 April 2018 to 15 April 2018.
You can see it in a better format by going here: 
http://log.smallworks.eu/web/search?from=9/4/2018=15/4/2018

ChangeLog
=

13 April 2018:
--

*I just promoted new VMs as stable.

This are the builds corresponding to: 

20180416 (07c6dc3) 

this passed the build tests so 'it should' be ok :)


12 April 2018:
--

*on iceberg, closed 
[https://github.com/pharo-vcs/iceberg/issues/628](https://github.com/pharo-vcs/iceberg/issues/628)
 to fix a compatibility error.


11 April 2018:
--

*Ok, while waiting for the Pharo CI to comeback to life (so I can release 
Iceberg 0.7), I managed 
to fix a small issue it was annoying me since a lot of time: 
[https://github.com/estebanlm/opensmalltalk-vm/issues/4](https://github.com/estebanlm/opensmalltalk-vm/issues/4)
 . 

This is because I still want to produce real headlesss VMs so I need to 
slowly move things in that direction.

Anyway... since this was an image-side problem more than a VM problem, I 
have a [case: 21688](https://pharo.fogbugz.com/f/cases/21688) in Pharo issue 
tracker and 
a [PR](https://github.com/pharo-project/pharo/pull/1191)


9 April 2018:
-

*I just finished iceberg [issue 
594](https://github.com/pharo-vcs/iceberg/issues/594) : new Iceberg 0.7 (to be 
released) to load also on Pharo 6.1.


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 2 April 2018

2018-04-09 Thread estebanlm
Hello!

This is my weekly ChangeLog, from 2 April 2018 to 8 April 2018.
You can see it in a better format by going here: 
http://log.smallworks.eu/web/search?from=2/4/2018=8/4/2018

ChangeLog
=

5 April 2018:
-

*I closed [issue 593](https://github.com/pharo-vcs/iceberg/issues/593), 
revert a change is not refreshing changes list.

*closed [issue 599](https://github.com/pharo-vcs/iceberg/issues/599), add 
fetch to remote entry in repository view.

*fixed [case: 21676](https://pharo.fogbugz.com/f/cases/21676) (this is 
needed when using tabs).

... and made a backport for Pharo 6.1 [case: 
21679](https://pharo.fogbugz.com/f/cases/21679) .

*VM and CI : I made a pass to disable old projects still running in the 
Pharo Jenkins [http://ci.pharo.org](http://ci.pharo.org) .

I don't know why they were still running, but that's wrong and they were 
consuming resources we need :)

*I finished [issue 596](https://github.com/pharo-vcs/iceberg/issues/596) : 
Convert metacello plugin.

*I created a github project to follow the work I'm doing with the new 
Iceberg UI (callled "Tip" :P).

You can see it here: 
[https://github.com/pharo-vcs/iceberg/projects/2](https://github.com/pharo-vcs/iceberg/projects/2)
 

I'm polishing (with the help of Guille and Pablo) the last details before 
"going public" in a test release. 

*I will resume posting actions here :)


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 5 March 2018

2018-03-12 Thread estebanlm
Hello!

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

ChangeLog
=

5 March 2018:
-

*Today I worked on details of Pull/Push views, and I fixed some pending 
issues with all the others.

As a side note, I added badges to my toolbars ;)
Is not finished yet (I guess it will be tomorrow), but is a good way to 
present certain information.


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 26 February 2018

2018-03-04 Thread estebanlm
Hello!

This is my weekly ChangeLog, from 26 February 2018 to 4 March 2018.
You can see it in a better format by going here: 
http://log.smallworks.eu/web/search?from=26/2/2018=4/3/2018

ChangeLog
=

2 March 2018:
-

*I've been working on Iceberg UI. 
I have first versions of: 

* repositories browser
* individual repository browser
* individual repository management browser
* commit window
* push window
* pull windows

I'm not woking on fix a couple of problems on refreshing windows and 
defining how the pull will work (by default, 
it will trigger a merge of the changes your are pulling into your image).


1 March 2018:
-

*I made a new backport for 6.1, [case: 
21344](https://pharo.fogbugz.com/f/cases/21344)

enjoy


28 February 2018:
-

*Well... I spent an stupid amount of time to figure out why the latest VM 
for macOS was not including libgit2. 

Turns out, there was a "deploy filter" problem (two problems, in fact), 
that was making that all pharo flavours 
were being uploaded to the file server and with same name so in fact, one 
flavour was being copied on top of the 
other. And "lowcode VM", for example, does not includes libgi2. 

So, now that's fixed. You can start using latest VM again (which is the one 
that is signed) ;) 


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 19 February 2018

2018-02-25 Thread estebanlm
Hello!

This is my weekly ChangeLog, from 19 February 2018 to 25 February 2018.
You can see it in a better format by going here: 
http://log.smallworks.eu/web/search?from=19/2/2018=25/2/2018

ChangeLog
=

21 February 2018:
-

*So well... I spent some hours yesterday to make the backport of Iceberg 
0.6.8 to Pharo 6.1 to actually happen. 

Now it should be there ;)


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 5 February 2018

2018-02-11 Thread estebanlm
Hello!

This is my weekly ChangeLog, from 5 February 2018 to 11 February 2018.
You can see it in a better format by going here: 
http://log.smallworks.eu/web/search?from=5/2/2018=11/2/2018

ChangeLog
=

6 February 2018:


*... and packaging should be 
[restored](https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/214) too.

Which means latest vm versions are latest builds from OSVM: 

=== 64bit
* 
[http://files.pharo.org/get-files/70/pharo64-mac-latest.zip](http://files.pharo.org/get-files/70/pharo64-mac-latest.zip)
* 
[http://files.pharo.org/get-files/70/pharo64-linux-threaded-latest.zip](http://files.pharo.org/get-files/70/pharo64-linux-threaded-latest.zip)
* 
[http://files.pharo.org/get-files/70/pharo64-linux-latest.zip](http://files.pharo.org/get-files/70/pharo64-linux-latest.zip)
* 
[http://files.pharo.org/get-files/70/pharo64-win-latest.zip](http://files.pharo.org/get-files/70/pharo64-win-latest.zip)
 

=== 32bit
* 
[http://files.pharo.org/get-files/70/pharo-win-latest.zip](http://files.pharo.org/get-files/70/pharo-win-latest.zip)
* 
[http://files.pharo.org/get-files/70/pharo-linux-threaded-latest.zip](http://files.pharo.org/get-files/70/pharo-linux-threaded-latest.zip)
* 
[http://files.pharo.org/get-files/70/pharo-linux-latest.zip](http://files.pharo.org/get-files/70/pharo-linux-latest.zip)
* 
[http://files.pharo.org/get-files/70/pharo-mac-latest.zip](http://files.pharo.org/get-files/70/pharo-mac-latest.zip)

=== Hints
* MacOS VMs now are signed! This should fix a lot of problems we had before.
* Please take note that latest win64 build lacks all library dependencies, 
and many things will not work (working on that)

Thanks to [Fabio](https://github.com/fniephaus) to help me put all the 
pieces together.

*Certificates should work now, and we can have a [signed 
VM](https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/214).

*yesterday with Fabio we worked on fix an upload of pharo-vm that was 
failing: 

* 
[https://github.com/OpenSmalltalk/opensmalltalk-vm/issues/160](https://github.com/OpenSmalltalk/opensmalltalk-vm/issues/160)


5 February 2018:


*I released a patch for iceberg: 

* [iceberg 0.6.7](https://github.com/pharo-vcs/iceberg/releases/tag/v0.6.7)
* [libgit 
1.0.5](https://github.com/pharo-vcs/libgit2-pharo-bindings/releases/tag/v1.0.5)
* [tonel 1.0.6](https://github.com/pharo-vcs/tonel/releases/tag/v1.0.6)

this is a maintenance version that fixes a couple of bugs and cleans a bit, 
but big changes will come next release (0.7)

*I published new versions of the certifictes to get a signed mac VM. In 
theory, this time it should work :)


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 29 January 2018

2018-02-04 Thread estebanlm
Hello!

This is my weekly ChangeLog, from 29 January 2018 to 4 February 2018.
You can see it in a better format by going here: 
http://log.smallworks.eu/web/search?from=29/1/2018=4/2/2018

ChangeLog
=

29 January 2018:


*I spent the morning adding certificates to the VM to sign it :)

Next batch of VMs should come signed... now it rest to see if we need to 
sign the images also.


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 22 January 2018

2018-01-28 Thread estebanlm
Hello!

This is my weekly ChangeLog, from 22 January 2018 to 28 January 2018.
You can see it in a better format by going here: 
http://log.smallworks.eu/web/search?from=22/1/2018=28/1/2018

ChangeLog
=

26 January 2018:


*I worked a bit on recover the CI process for the PharoVM. 

It was in bad shape since months, now I need to make it work so I can 
process a couple of PRs 
that are waiting :)


23 January 2018:


*I made VMMaker to load on Pharo7 :)

This was needed to be able to work on the VM, of course... and to finally 
merge some long time 
PRs that are waiting there. 

Now, I need to recover the CI, which is not trivial ;)

*I've been working on a small tool for Calypso (since I'm working with new 
calypso browser, 
to prepare it for inclussion).

I prepared a small video showing it 
[https://youtu.be/RgqiSRFUAIk](https://youtu.be/RgqiSRFUAIk) :)

*I published a new version of 
[libgit2-pharo-bindings](https://github.com/pharo-vcs/libgit2-pharo-bindings/releases/tag/v1.0.4>),
to fix a problem with asserting correct branch names.


22 January 2018:


*I worked a bit on iceberg since last week. I added a tool to retrieve the 
full history of a method, 
which will be available directly on Calypso. 

I recorded a very small [video](https://youtu.be/6xBJilwdH0A) to show how 
it will work.

*Last week I discovered there was an error in the cron job that was sending 
mails 
with my changelog to pharo-dev list. 

I fixed that, so this week should resume.


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 8 January 2018

2018-01-19 Thread estebanlm
Hello!

This is my weekly ChangeLog, from 8 January 2018 to 14 January 2018.
You can see it in a better format by going here: 
http://log.smallworks.eu/web/search?from=8/1/2018=14/1/2018

ChangeLog
=

12 January 2018:


*So well... it was the full week trying to compile all dependences for 
win64. 

and failed. 

Not that I didn't make any progress... but I still cann't compile +libssh2+ 
not +cairo+ :(

(all the others are being built correctly)


8 January 2018:
---

*Still trying to compile dependences for win64 (stuck on libssh2 for now) 
:( 


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 27 November 2017

2017-12-03 Thread estebanlm
Hello!

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

ChangeLog
=

28 November 2017:
-

*I just released [Iceberg 
0.6.4](https://github.com/pharo-vcs/iceberg/releases/tag/v0.6.4).

This is a bugfix release :)


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 20 November 2017

2017-11-26 Thread estebanlm
Hello!

This is my weekly ChangeLog, from 20 November 2017 to 26 November 2017.
You can see it in a better format by going here: 
http://log.smallworks.eu/web/search?from=20/11/2017=26/11/2017

ChangeLog
=

24 November 2017:
-

*I spent some time working on the health of CI for some projects. 
So far, I restored the green status to:

* [Tonel](https://github.com/pharo-vcs/tonel)
* [Libgit2-bindings](https://github.com/pharo-vcs/libgit2-pharo-bindings)

Now I need to work on the hardest (and most important) one: 
[Iceberg](https://github.com/pharo-vcs/iceberg)

Some of this broken status were because we needed a functionality on 
smalltalkCI who was missing: 
the ability to execute some scripts before loading, and we need to cleanup 
the images (since I am 
testing things that are already there). 

Now, thanks to Fabio is fixed so we can move on.


23 November 2017:
-

*after spend last two days fixing bugs on the parser, I finally could 
integrate 

* Iceberg 0.6.3
* Tonel 1.0.4
* Libgit2-bindings 1.0

Into Pharo 7.0a. Now... I need to prepare an update to backport to Pharo 
6.1.


21 November 2017:
-

*I released iceberg version 
[0.6.3](https://github.com/pharo-vcs/iceberg/releases/tag/v0.6.3) .
And I released also tonel version 
[1.0.4](https://github.com/pharo-vcs/tonel/releases/tag/v1.0.4) 

Along, that will bring a better iceberg for everybody ;)

(now I need to integrate to Pharo 7.0a and backport to 6.1)
 


20 November 2017:
-

*Back from holidays. During my freetime, I worked on Iceberg a bit... there 
was an ugly bug, 
[commit can lead to lose 
data](https://github.com/pharo-vcs/iceberg/issues/516) and fix it 
took more time than expected. 

Now is done, I will prepare a release today with some other issues.


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 6 November 2017

2017-11-12 Thread estebanlm
Hello!

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

ChangeLog
=

5 November 2017:


*I spent the full week working on the conversion to tonel, which is not 
working. 

So I can say "mission accomplished" ;)

Please notice that for properly use Pharo7.0a with tonel you should: 

* update/sync your clone and fork
* download a new Pharo7.0a image

Next week I'm on holidays and on Smalltalks conf so you will not hear much, 
but right after I 
will work on simplify the contribution process (make it more coherent at 
least) and improvements 
to speed up Iceberg a bit more.


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 23 October 2017

2017-10-30 Thread estebanlm
Hello!

This is my weekly ChangeLog, from 23 October 2017 to 29 October 2017.
You can see it in a better format by going here: 
http://log.smallworks.eu/web/search?from=23/10/2017=29/10/2017

ChangeLog
=

26 October 2017:


*I spent far too much time backporting 0.6.2 to Pharo 6.1, but now is done 
:)


25 October 2017:


*... and iceberg 0.6.2 hit Pharo 7.0a :)

*I just released [Iceberg 
v0.6.2](https://github.com/pharo-vcs/iceberg/releases/tag/v0.6.2)

Now I need to 

* update Pharo 7.0
* backport to Pharo 6.1

*I backported latest [metacello](http://github.com/metacello/metacello) to 
Pharo 6.1

This is needed to now backport iceberg (0.6.2)


24 October 2017:


*And now I took the oportunity to modify zeroconf to *not* download sources 
if release >= 7.0 (the 
image comes with sources anyway).

*I just changed the way zeroconf works to restore its original purpose. 

Turns out, at some moment we introduced a change to ask users if an 
override will happen. But this 
is a problem because zeroconf is designed to be used on CI environments, 
where human interaction does 
not have a place. 

I restored the old behaviour, but now I'm creating a backup of files 
already existing. 

This way if someone has an error and executes zeroconf in the wrong place, 
previous images will not 
be lost.


23 October 2017:


*I spend some days last week woking with the guys of AFI 
([http://afi-sa.fr](http://afi-sa.fr), yes they also use Pharo 
in some of their projects) and together we recovered SeasideTesting from 
Davis Shaffer to be used for 
their TDD experience. 

you can check it out here: 
[https://github.com/Afibre/SeasideTesting](https://github.com/Afibre/SeasideTesting)

What’s SeasideTesting? A package to test Seaside components.
Why we do not use Parasol? Because it is based on selenium and that makes 
the process slow.
Where can I know more? 

* there is some documentation here (for VW, I think): 
[http://www.shaffer-consulting.com/david/Seaside/TestingComponents/TestingComponents.html](http://www.shaffer-consulting.com/david/Seaside/TestingComponents/TestingComponents.html)
 
* some slides here (on squeak): 
[http://esug.org/data/ESUG2005/Wednesday/2005-ESUG-Shaffer.pdf](http://esug.org/data/ESUG2005/Wednesday/2005-ESUG-Shaffer.pdf)

but all that is old. Best way is to just install and see the tests, as 
always,


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 16 October 2017

2017-10-23 Thread estebanlm
Hello!

This is my weekly ChangeLog, from 16 October 2017 to 22 October 2017.
You can see it in a better format by going here: 
http://log.smallworks.eu/web/search?from=16/10/2017=22/10/2017

ChangeLog
=

17 October 2017:


*I spent an stupid amount of time creating *platinum* account on 
[consortium site](http://consortium.pharo.org). :(

*I spent a couple of days doing a new bridge for Objective-C (which allow 
cool stuff on macs, but not 
only). 

While this is not "direct-Pharo", I think the new "headless VMs" that will 
be a thing in the near 
future will allow more "native-oriented" development and interacting with 
the underlying platform 
is needed to make the echosystem boom in that area.

There are still some caveats, but is already usable :) 

New bridge can be found [here](https://github.com/estebanlm/objcbridge). 


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 9 October 2017

2017-10-16 Thread estebanlm
Hello!

This is my weekly ChangeLog, from 9 October 2017 to 15 October 2017.
You can see it in a better format by going here: 
http://log.smallworks.eu/web/search?from=9/10/2017=15/10/2017

ChangeLog
=

11 October 2017:


*I just integrated [case: 20492](https://pharo.fogbugz.com/f/cases/20492) 
(backport EPICEA changes) to Pharo6.1. 

This was seriously needed because the bugs were breaking some production 
code.


9 October 2017:
---

*... and after days of trying, I'm finally able to close [case: 
18849](https://pharo.fogbugz.com/f/cases/18849) !

So we have an update Metacello in Pharo 7.0... and I can integrate Iceberg 
0.6... tomorrow :)

*I released a new version of [Iceberg 
(0.6.1)](https://github.com/pharo-vcs/iceberg/releases/tag/v0.6.1). 

This is just a bugfix release to allow install Iceberg 0.6 on Pharo 6.0. 

*And now I made [case: 20372](https://pharo.fogbugz.com/f/cases/20372)

*Well, I started week by working a bit on Pharo 6.0 :)

I just integrated [case: 20503](https://pharo.fogbugz.com/f/cases/20503)


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 2 October 2017

2017-10-09 Thread estebanlm
Hello!

This is my weekly ChangeLog, from 2 October 2017 to 8 October 2017.
You can see it in a better format by going here: 
http://log.smallworks.eu/web/search?from=2/10/2017=8/10/2017

ChangeLog
=

6 October 2017:
---

*I released [Iceberg 
0.6](https://github.com/pharo-vcs/iceberg/releases/tag/v0.6) ! 
Most important part of the inclusion of 
[tonel](https://github.com/pharo-vcs/tonel) as the default 
file format, but there are a lot of small changes and bugfixes. 

It will be integrated soon into Pharo 7.0a and the 
[README](https://github.com/pharo-vcs/iceberg/blob/master/README.md) 
has instructions to explain you how to update Pharo 6.1 images.


5 October 2017:
---

*I've been working on release Iceberg 0.6, and we are almost there... but I 
decided 
to restore green tests on travis before moving on. Test have been failing 
since a 
lot of time as is moment to get back to appropriate software policies :)


3 October 2017:
---

*I just submited a PR to fix [case: 
18849](https://pharo.fogbugz.com/f/cases/18849) to update Metacello to latest 
version. This will prepare things to 
integrate Iceberg 0.6.


2 October 2017:
---

*Finally, I got latest version of Metacello to work on Pharo correctly. It 
was hard, but I prevailed :)

I will schedule it for integration in Pharo 7 too.


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 25 September 2017

2017-10-02 Thread estebanlm
Hello!

This is my weekly ChangeLog, from 25 September 2017 to 1 October 2017.
You can see it in a better format by going here: 
http://log.smallworks.eu/web/search?from=25/9/2017=1/10/2017

ChangeLog
=

28 September 2017:
--

*I spent my day preparing [iceberg 
0.6](https://github.com/pharo-vcs/iceberg/commits/dev-0.6) to be released
and I think I didn't do a bad you. 

* I integrate two PR to dev-0.5 and then merge it to dev-0.6
* I closed issues [#470](https://github.com/pharo-vcs/iceberg/issues/470) 
and [#239](https://github.com/pharo-vcs/iceberg/issues/239)
* I fixed a problem on cherry-pick and renamed/removed classes (not 
reported as issue, but there)
* I added a "full sync" option meant to verify the full repository 
differences (this is useful in certain cases)

... and I'm still trying to get a loadable version of latest metacello 
(which will come with tonel integration)


27 September 2017:
--

*I'm still making latest [metacello](http://github.com/metacello/metacello) 
version to work properly 
on Pharo, so we can integrate it into Pharo 7.0 (and we can also update 
Iceberg).

Right now, I have what I think is a "working version", but I'm still 
figuring out how to include it 
into Pharo (other than regular merge in image, export... which I think will 
be our approach until 
we have subtrees)


24 September 2017:
--

*I forget to say that friday with Ronie we made win32 headless version work 
:)

Now, it just remains win64 version... and of course, we will need to start 
test intensively so we can 
have good support for the moment of release.


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 18 September 2017

2017-09-25 Thread estebanlm
Hello!

This is my weekly ChangeLog, from 18 September 2017 to 24 September 2017.
You can see it in a better format by going here: 
http://log.smallworks.eu/web/search?from=18/9/2017=24/9/2017

ChangeLog
=

22 September 2017:
--

*Yesterday I worked on a new version of 
[metacello](https://github.com/Metacello/metacello/tree/pharo-6.1_dev) 
for Pharo 7.0 that incorporates latest fixes and specially, adds support 
for [tonel](https://github.com/pharo-vcs/tonel).

After some tries, it is ready to be loaded and older Pharo versions can 
update executing:


Metacello new
  baseline: 'Metacello';
  repository: 'github://metacello/metacello:pharo-6.1_dev/repository';
  onConflict: [:ex | ex allow];
  get;
  load


(do not fear, even if is a 6.1 branch, it will load properly also on Pharo 
3.0+)

Now, I discovered a remaining problem, 
[https://github.com/Metacello/metacello/issues/460](https://github.com/Metacello/metacello/issues/460)
 (I will 
fix this today) but most of the time this will be painless.


20 September 2017:
--

*... and today we make linux i386 and x86 [headless 
VM](https://github.com/estebanlm/opensmalltalk-vm/tree/add-minheadless-vm) to 
build and (aparently), work :)


19 September 2017:
--

*Today Ronie and I finished the [build of real headless 
VMs](https://github.com/estebanlm/opensmalltalk-vm/tree/add-minheadless-vm) 
for macOS (both i386 and x86) versions. 

Now, we stopped here because linux is more complicated (oh yes, at least 
once :P): since all configuration
is made with autoconf and Ronie's' builds are made with CMake, now we need 
to adapt more than we 
wanted. Anyway, tomorrow we'll do another pass... or maybe we will start 
with Windows, to see if 
this time also there is easier ;)


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 11 September 2017

2017-09-18 Thread estebanlm
Hello!

This is my weekly ChangeLog, from 11 September 2017 to 17 September 2017.
You can see it in a better format by going here: 
http://log.smallworks.eu/web/search?from=11/9/2017=17/9/2017

ChangeLog
=

14 September 2017:
--

*Since Ronie came to spend two weeks with us, I made a "stop the world" 
call to work with him in a couple 
of projects I want to integrate in Pharo.

So, I've been working on that last two days: Ronie has a working 
implementation of a "real headless" 
VM that can chose to start a world using SDL2. 
 
Why we want this? Because of many reasons... one of them is because is lame 
to open a hidden window when 
we want to use just a command line, but also because the desition of 
opening a window (the World or 
whatever) should be responsibility of the image (the user), not the VM.

Anyway, the problem is that Ronie made his VM using CMake and we use plain 
Makefiles (a very complex 
structure of makefiles), so we needed to convert that. 

Also, since this is experimental, a lot ot small details are missing and we 
are running to supply them.

But well... I'm happy to say that we have a Pharo 7.0 running 100% on 
headless mode with an SDL2 window
serving the world, on macOS 32bits. 

Tomorrow we will look to fix some remaining details and to expand the 
source to linux and windows (32bits), 
then we will jump to 64bits.


11 September 2017:
--

*I just released [iceberg 
v0.5.8](https://github.com/pharo-vcs/iceberg/releases/tag/v0.5.8).

This version is a maintenance version, and contains this fixes: 

* speed up of commits by not traversing the full tree to detect staged 
files (just compare later)
* fix refresh option in PR tool
* do not use hardcoded colours in diffs
* add guessing of source dirs to easy adding of local repositories
* recategorise methods

It will be integrated on Pharo 7.0 in on [case: 
20406](https://pharo.fogbugz.com/f/cases/20406). 

*Last week I was at ESUG :) 

Anyway, I'm working on [tonel](http://github.com/pharo-vcs/tonel), the new 
fileformat made to replace 
[filetree](http://github.com/pharo-vcs/filetree) (because of many reasons, 
being the non-scalable nature of
file-per-method strategy the most important).


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 28 August 2017

2017-09-04 Thread estebanlm
Hello!

This is my weekly ChangeLog, from 28 August 2017 to 3 September 2017.
You can see it in a better format by going here: 
http://log.smallworks.eu/web/search?from=28/8/2017=3/9/2017

ChangeLog
=

29 August 2017:
---

*I just released [Iceberg 
v0.5.7](https://github.com/pharo-vcs/iceberg/releases/tag/v0.5.7) with some 
minor (but necessary) fixes.

* fixes cherry pick bug on multiple packages (issue #450)
* indirectly fixes issues #403, #440 and #442
* fixes windows crashes

(and from 0.5.6)

* fixes "restore" clone
* adds IceLog to query history
* minor enhancements

This version also updates 0.25.1 branch from [libgit2 
bindings](https://github.com/pharo-vcs/libgit2-pharo-bindings/tree/v0.25.1), 
who makes Windows not crash :)

Now, there are still a remaining problem which is: writing the index for 
windows is taking ages for pharo
project, which means any huge project will also take ages... I need to dig 
into this more in detail :(  


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 21 August 2017

2017-08-28 Thread estebanlm
Hello!

This is my weekly ChangeLog, from 21 August 2017 to 27 August 2017.
You can see it in a better format by going here: 
http://log.smallworks.eu/web/search?from=21/8/2017=27/8/2017

ChangeLog
=

22 August 2017:
---

*I debugged a crash on the VM (I originally thought it was a Windows bug 
but turns out is general). 

But I need some discussion on it before fixing: 
[http://forum.world.st/bug-when-instantiating-ExternalData-to-return-void-from-FFI-td4963348.html](http://forum.world.st/bug-when-instantiating-ExternalData-to-return-void-from-FFI-td4963348.html)


21 August 2017:
---

*I'm back from holidays! 

But... I spent the full day getting a windows VM to compile (so I can debug 
iceberg problems) :( 


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 24 July 2017

2017-07-31 Thread estebanlm
Hello!

This is my weekly ChangeLog, from 24 July 2017 to 30 July 2017.
You can see it in a better format by going here: 
http://log.smallworks.eu/web/search?from=24/7/2017=30/7/2017

ChangeLog
=

25 July 2017:
-

*I made a [pull request](https://github.com/hpi-swa/smalltalkCI/pull/311) 
to enable Pharo 6.1 on SmalltalkCI :)


24 July 2017:
-

*I just released [Pharo 6.1](http://pharo.org/news/pharo6.1-released) to 
update VM and Iceberg (which now 
is version 0.5.5).


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 17 July 2017

2017-07-24 Thread estebanlm
Hello!

This is my weekly ChangeLog, from 17 July 2017 to 23 July 2017.
You can see it in a better format by going here: 
http://log.smallworks.eu/web/search?from=17/7/2017=23/7/2017

ChangeLog
=

20 July 2017:
-

*I'm fixing the Pharo7 build process to finally get to the point where we 
can use easily the Iceberg-based 
process. We have two remaining problems: 


. Since we use plain filetree on the bootstrap process, we do not have 
version information of packages.
. Also because of that (and because Iceberg uses metadataless format), we 
do not have correct timestamps. 

So, today (last two days, in fact), I fixed point 1, by adding a Pharo 
+hidden+ repository to iceberg and 
setting the package ancestors with correct version info. This way, all 
comparissons are fine :)

Process is kind of complex to explain here, but basically we replace the 
+cypress.1+ info with a correct
version with a commit reference.


19 July 2017:
-

*I released [Iceberg 
v0.5.3](https://github.com/pharo-vcs/iceberg/releases/tag/v0.5.3)

I needed this because the load/merge/pull times for large projects were 
innaceptable, mainly 
because after doing the pull into the local workingcopy, it was scanning 
all packages to see 
what changed and load them. This naive approach was ok for most of the 
projects, but those with
many packages (like Pharo itself) were taking ages to perform a merge. 

Now we do it as the sync: we figure out packages that changed between your 
installed version and 
the upcoming version and we merge just that. 

Also, I fixed some other important issues: 

* +#isAncestorOf:+ was scanning all commits. 

Again, this worked for small projects. Big ones (as Pharo) were not scaling.

* I created "system repository" concept. 

This is because Pharo7 will be dispatched with a Pharo repository but no 
local checkout. Then you 
will see an invalid project in iceberg window. This is not good because 
most of the times users 
will not care about it, but it will be annoying :)

Now, if you are a Pharo developer, you can add to your startup actions this 
script: 


Iceberg showSystemRepositories: true.
IceRepository registry 
detect: [ :each | each name = 'pharo' ]
ifFound: [ :each | each location: 
'/path/to/your/location/of/pharo-project/pharo' asFileReference ].


with this, you will have always access to your Pharo repository.


17 July 2017:
-

*I just cameback from a week off. I released a patch version of [Iceberg 
(0.5.2)](https://github.com/pharo-vcs/iceberg/tree/v0.5.2),
mostly to fix an override problem, but incorporating some other 
contributions.


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 3 July 2017

2017-07-10 Thread estebanlm
Hello!

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

ChangeLog
=

6 July 2017:


*Tuesday I spend the full day trying to get the windows VM to compile on my 
environment, and I failed 
completely because I don't know why, +pkgconfig+ is crashing.

I need to doit to review some problems of the VM on windows, but well, I 
decided to jump to better 
places for the moment, and then I've been working on a Pull Request tool, 
which first version is now 
released on [Iceberg 
0.5.1](https://github.com/pharo-vcs/iceberg/tree/v0.5.1) .

You can check details on this 
[mail](http://forum.world.st/ANN-Iceberg-0-5-1-with-Pull-Request-review-tool-td4953751.html).


3 July 2017:


*I made default vm for linux (for P7) the default VM. 

I also updated [zeroconf](http://get.pharo.org) to add a new type of 
download for linux: the explicit 
iTimer heartbeat download.

So, for P7, if you download the default stable VM… it will be a threaded 
VM. Take that into account :)

*And now I also release [Iceberg 
0.5](https://github.com/pharo-vcs/iceberg/releases/tag/0.5) :)

== Major changes this release: 
* works on 64bits
* adds cherry-pick

== Other
* important revision of the sync process. Now is a lot smarter and relies 
much more on libgit2. Not perfect, but we are getting there :)
* branch-in-image is in sync with branch-in-local (the other way was a mess)
* other bugfixes

*I released a new stable VM for [Pharo 
7.0](http://files.pharo.org/get-files/70).

This is to catch up with latest fixes made by Eliot but mostly to update 
libgit2 library (and include 
it in mac64 distribution).


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 26 June 2017

2017-07-03 Thread estebanlm
Hello!

This is my weekly ChangeLog, from 26 June 2017 to 2 July 2017.
You can see it in a better format by going here: 
http://log.smallworks.eu/web/search?from=26/6/2017=2/7/2017

ChangeLog
=

29 June 2017:
-

*... and I spent some time figuring out why windows users have a persistent 
error about access files. 

We should always remember the windows path limitations (256) :) 

Now, the workaround for this is to execute this in command line: 


git config --system core.longpaths true


but of course, this is just a workaround because people using Iceberg could 
not hava installed a
command line git client. I will need to check in the future this :(

*I spent some time trying to get [Iceberg version 
dev-0.5](https://github.com/pharo-vcs/iceberg/tree/dev-0.5) 
to load properly (yesterday's script is not working). 

The reason is that +Metacello+ fails to upgrade packages from a baseline. 
And there is no way (at least 
that I found) to force the upload. 

So this is the updated script to test dev-0.5: 

1. Download latest vm and image. 


wget -O- get.pharo.org/64/70+vmLatest | bash
wget -O- get.pharo.org/64/70+vmTLatest | bash # for linux systems


2. Execute this on your image


#('Iceberg-UI' 'Iceberg-Plugin' 'Iceberg-Metacello-Integration' 
'Iceberg-Libgit' 'Iceberg' 'BaselineOfIceberg' 
'LibGit-Core' 'BaselineOfLibGit') 
do: [ :each | each asPackage removeFromSystem ].

Metacello new
  baseline: 'Iceberg';
  repository: 'github://pharo-vcs/iceberg:dev-0.5';
  load.


This should actually remove old iceberg version then install new one.


28 June 2017:
-

*Ok, I get the VM to compile correctly with the new libgit2 version, and 
now +latest vm+ comes with 
+libgit 0.25.1+ for both 32 and 64 bits versions. 

I also made some minor fixes to +iceberg dev-0.5+ and it should be ready to 
test and release. This 
version incorporates some important changes that will allow us to work with 
it to make changes to 
Pharo itself (and that will be noticed on big projects): 

* it has cherry-pick.
* it speeds up sincronization by introducing more precise comparisons 
instead making a "full scan"
* it keeps in sync branch on disk and branch on iceberg (before it was 
keeping them separately and it was very confusing)

To test it, you can execute: 


wget -O- get.files.org/64/70+vmLatest | bash
wget -O- get.files.org/64/70+vmTLatest | bash # on linux systems


then you will need to load version +dev-0.5+ :


Metacello new
  baseline: 'Iceberg';
  repository: 'github://pharo-vcs/iceberg:dev-0.5';   
  load.
"And you will need to execute this... I will need to update the baseline 
with this,
 now that I think :)"
LGitExternalStructure allSubclassesDo: #compileFields.


*I finished ensuring 
[iceberg](https://github.com/pharo-vcs/iceberg/tree/dev-0.5) will work on 64 
bits. 

Now, I needed to make some fixes for UFFI, which I put in [case: 
20198](https://pharo.fogbugz.com/f/cases/20198) (it is imperative to include 
this to be able to backport 0.5 into Pharo 6.0). Also, I will need to 
promote a new VM as stable.

I'm not sure I want to backport this into Pharo 6. I know I promised but 
complications are... more than
benefits, I think: You will need a new VM. People will not know that and 
they will download a P6 image 
with the older VM and this will cause problems.

Maybe is better to move all this to P7?


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 19 June 2017

2017-06-26 Thread estebanlm
Hello!

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

ChangeLog
=

21 June 2017:
-

*Succeed!! 

I made [iceberg](http://github.com/pharo-vcs/iceberg) to work on 64bits!

Now, I need to promote a new VM as stable (and probably backported it to 
Pharo 6.0)

*After 1.5 days still working on 64bits version of 
[iceberg](http://github.com/pharo-vcs/iceberg) and that 
annoying malloc crash. Last idea was the believing something is wrong with 
sizes and marshallings so I 
verified all: 

* I reviewed all structures and callbacks. 
* I took a look to each function call. 

I got some differences that needed to be fixed and perticularly a lot of 
+size_t+ that were wrongly 
mapped as +FFIUInt32+ and I have some movement: it is not crashing anymore 
on malloc (which is a 
relief), but is still crashing someplace later. 

I'm now reviewing that.


19 June 2017:
-

*I spent the full day trying to get 
[iceberg](http://github.com/pharo-vcs-iceberg) to work on 64bits. 

Is almost working... if it wouldn't be because I'm having a random crash 
while trying to +malloc+ 
something random.

We'll see tomorrow.


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 12 June 2017

2017-06-19 Thread estebanlm
Hello!

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

ChangeLog
=

15 June 2017:
-

*I finished an iteration for allowing cherry-pick into 
[iceberg](http://github.com/pharo-vcs/iceberg). 

Now, I just need to make it work on 64bits and we will be ready-to-go for 
releasing it :)


13 June 2017:
-

*Still "iceberging", I fixed an annoying bug when browsing diff with parent 
(in all screens that have it), 
who was trowing a DNU because of course, first commits do not have a parent 
to compare with.

*I've been working on iceberg 0.5. It will incorporate some needed features 
(to make it appropriate to 
work on pharo itself, and better for users).

This was also my work last week, but I forget to announce it here ;)

So far, I added following features: 

=== Better diff handling
It was very naive because it was comparing always all present packages 
which does not scales on 
large repositories. Now, I implemented a double dispatch that works in 
different scenarios: 

* commit -> commit: It relies in libgit2 to take the list of changed 
packages.
* commit -> branch: it takes last commit on branch on continues as 
commit->commit scenario
* loaded code -> commit: this is the most complicated scenario. It compares 
what is in image with what is in commit to take a correct diff.

With this, now diffs are performant in all cases (bah, if you have a commit 
that changes 
300 packages, you will suffer anyway, but I would argue that is not a very 
good codign practice)

Also with this you will finally be able to add not-dirty packages to your 
repo and commit them :)

=== Branch sync with disk copy
I had a discussion with author of Iceberg (Nico) on this: originally he 
weanted to treat loaded code in 
the image as a got working-copy itself, so he was taking the information of 
the branch and keepong it. 

Problem with this is, if you change the repository branch (in command line 
or another image) and then
go back to your current image, you do not have any feedback... and that is 
severely confusing. 

So now I'm just taking the information from git repository. That means you 
can have differences between 
what you loaded and your current branch, but that's, IMO, perfectly 
reasonable (you can always switch back or 
merge or whatever you need to do)

=== Other
* Minor cleanups
* Other bugfixes


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 5 June 2017

2017-06-12 Thread estebanlm
Hello!

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

ChangeLog
=

6 June 2017:


*Well... we finally [released version 
6.0](http://pharo.org/news/pharo6.0-released) !

And yes, I've been working the full day on that :)  


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 29 May 2017

2017-06-05 Thread estebanlm
Hello!

This is my weekly ChangeLog, from 29 May 2017 to 4 June 2017.
You can see it in a better format by going here: 
http://log.smallworks.eu/web/search?from=29/5/2017=4/6/2017

ChangeLog
=

1 June 2017:


*... and now I fixed the problem with real files/symlinks in distribution, 
it will be fixed in next build.

Turns out it was a problem with the cache of travis for opensmalltalk-vm :)

*Problem in Athens 64bits was with font treatment: Someone was using an 
+uint+ instead a +void *+ to pass a 
pointer. Of course, this was working fine on 32bits (because sizeof is the 
same) but is completely wrong on 
64bits. 

Anyway, I found it and fixed it on [case: 
20099](https://pharo.fogbugz.com/f/cases/20099)

*Yesterday after we ask for final testing we spotted two new blocking 
issues for release: 

* Athens was not working on 64bits 
* Distribution packaging were duplicating files insted copying symlink

So, I deferred the release (once again) to next tuesday.


31 May 2017:


*I promoted new stables for [PharoVM](http://files.pharo.org/get-files/60) 
. 

This should fix the black-screen problem on mac and the problem of 
fast-typing also on mac (but latest 
still needs some test)


30 May 2017:


*I checked a couple of issues on 
[iceberg](https://github.com/pharo-vcs/iceberg). Still warming up but I got 
to solve at least [one 
issue](https://github.com/pharo-vcs/iceberg/issues/361), around correctly 
dealing with 
bad user.name and user.mail properties :) 

*I updated the scripts for creating platform distributions to build also 
64bits versions, now you have 
also a distribution for 64bits on 
[mac](http://files.pharo.org/platform/Pharo6.0-64-mac.zip) and on 
[linux](http://files.pharo.org/platform/Pharo6.0-64-linux.zip).

*Back from holidays, I just restored the CI building for Pharo to green :P

Now, to do that release!


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 8 May 2017

2017-05-15 Thread estebanlm
Hello!

This is my weekly ChangeLog, from 8 May 2017 to 14 May 2017.
You can see it in a better format by going here: 
http://log.smallworks.eu/web/search?from=8/5/2017=14/5/2017

ChangeLog
=

10 May 2017:


*I removed some remaining overrides on 
[iceberg](http://github.com/pharo-vcs/iceberg). 

NOW is ready for integration. I will submit an issue :)


9 May 2017:
---

*Working for release: I spent some time working on the future 
[Pharo 7.0 download page](http://pharo.org/STAGE.download). It's still not 
finished (I need 
to see how to fix the linux distros), but is almost there.

*I prepared [zeroconf](http://get.pharo.org) to serve also Pharo 7.0 images 
(and prepared it to declare a 
new stable/latest). This is ready but on hold for the momnent of release.

*I fixed [iceberg](http://github.com/pharo-vcs/iceberg) remaining problems, 
merged +dev-0.4+ to +master+ 
and verify everything works more or less "as expected".

With this, I think iceberg is ready to integration (in Pharo6, not enabled 
by default, but available 
anyway).


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 1 May 2017

2017-05-08 Thread estebanlm
Hello!

This is my weekly ChangeLog, from 1 May 2017 to 7 May 2017.
You can see it in a better format by going here: 
http://log.smallworks.eu/web/search?from=1/5/2017=7/5/2017

ChangeLog
=

5 May 2017:
---

*I just made this little script: 


startDate := Date year: 2016 month: 04 day: 01. 
authors := Set new.
unknown := Set new.
CompiledMethod allInstancesDo: [ :each | 
| array date | 
array := each timeStamp substrings.
((array size = 3) 
and: [ 
date := [ array second asDate ] on: Error do: [ :e | ].
date notNil ])
ifTrue: [ 
date >= startDate ifTrue: [ authors add: array first 
trimBoth ] ]
ifFalse: [ unknown add: each  timeStamp] ].


To collect this release authors :)
Seems that we have at least 88 contributors this version. And we are not 
counting VM contributors 
or the people who contributes in other ways: documenting, enhancing 
frameworks... just particupanting 
in the lists.
This are the authors this script collects: 

[[[
 
 a Set('BernhardPieber' 'AliakseiSyrel' 'MaxLeske' 'StephanEggermont' 
'KenCausey' 'RogerStebler' 
 'EliotMiranda' 'AndreiChis' 'SergeStinckwich' 'DenisKudryashov' 
'ThierryGoubier' 'CyrilFerlciot' 
 'HenrikSperreJohansen' 'ThibaultRaffaillac' 'monty' 'MarcusDenker' 
'RonieSalgado' 'Uko' 
 'ChristopheDemarey' 'NicolaiHess' 'JohnSnow' 'SomeName' 'md' 
'DenisKUdryashov' 'StefanReichhart' 
 'BenComan' 'DirkRoeleveld' 'johanfabry' 'AutoDeprecationRefactoring' 
'CyrilFerlicot' 'YuriyTymchuk' 
 'mml' 'GitHub' 'SvenVanCaekenberghe' 'LucFabresse' 'matteob8' 
'JurajKubelka' 'TommasoDalSasso' 
 'VincentBlondeauMaximeRoelandt' 'kks' 'pk' 'RM' 'AlexandreBergel' 'auto' 
'MerwanOuddane' 'PavelKrivanek' 
 'OffrayLuna' 'dik' 'nice' 'BooleanSlotTest' 'StephaneDucasse' 'LionelAkue' 
'VincentBlondeau' 'eem' 
 'HenrikNergaard' 'AlejandroInfante' 'hn' 'NicoPasserini' 
'PropertySlotTest' 'HilaireFernandes' 'PeterUhnak' 
 'BernardoContreras' 'ClementBera' 'PabloTesone' 
'UnlimitedInstanceVariableSlotTest' 'ThibaultArloing' 
 'CamilloBruni' 'Spirita' 'cb' 'Anonymous' 'TorstenBergmann' 
'PaulDeBruicker' 'TheIntegrator' 'ClementBer' 
 'AlistairGrant' 'TravisCI' 'JanVanDeSandt' 'TudorGirba' 'EstebanLorenzano' 
'SlotErrorsTest' 'Denis' 
 'ClementBEra' 'MartinDias' 'GlennCavarle' 'GustavoSantos' 
'GuillermoPolito' 'RyckewaertValentin' 
 'ValentinRyckewaert')
 
 ]]]
 
 Yes, there are some repeated (like "Denis" and "DenisKudriasov") and some 
wrong (like "CamilloBruni", he 
 is not in the community since some time now), and finally there are others 
 that are robots (like 
"TheIntegrator"). But this gives a hint of the people contributing which 
overall will be more than 80 for 
sure.


4 May 2017:
---

*So, I worked a bit on 
[smalltalk-travis-ci](http://github.com/estebanlm/smalltalk-travis-ci) to allow 
some environment configurations: 


PHARO_VM=stable*|latest
PHARO_ARCH=i386*|x86_64
LINUX_HEARTBEAT=threaded*|itimer


Idea is simple: we want to be able to tune the compilations a bit more than 
now. The options added 
allows us to declare the type of VM (and in the case of the +PHARO_ARCH+ 
variable, also the type 
of the image). 

For now, this is experimental and if you want access to it you need to add 
this to your +.travis.yml+
file: 


smalltalk_edge:
  source: estebanlm/smalltalk-travis-ci
  branch: dev


I will test and add other options as we need, but it remains to integrate 
it/generalise it better, 
that needs to be talked with Fabio later :)

*I just fixed all crashes on [libgi2 
0.25.1](https://github.com/pharo-vcs/libgit2-pharo-bindings/tree/v0.25.1) 
and [iceberg](https://github.com/pharo-vcs/iceberg) !

But now I realised I cannot activate the tests on github and travis because 
it needs a special VM :S


3 May 2017:
---

*I spent the day recovering the tests for 
[iceberg](http://github.com/pharo-vcs/iceberg). 
At this moment, tests are disabled because after moving to internal backend 
they got 
broken. 

Now, we need to make then pass. 

And I 'almost' succeeded. They are still two tests crashing the image, but 
most of the 
rest seems to be ok. I hope to finish tomorrow. 

*I take some time to verify and promote new [stable VMs for Pharo 
6.0](http://files.pharo.org/get-files/60). 

They are now based on the 
[opensmalltalk-vm](http://github.com/opensmalltalk/opensmalltalk-vm) 
process so I expect certain noise, but in general this should be working a 
lot better than before. 


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 24 April 2017

2017-05-01 Thread estebanlm
Hello!

This is my weekly ChangeLog, from 24 April 2017 to 30 April 2017.
You can see it in a better format by going here: 
http://log.smallworks.eu/web/search?from=24/4/2017=30/4/2017

ChangeLog
=

27 April 2017:
--

*= VERY IMPORTANT
We moved iceberg repositories to: 

[https://github.com/pharo-vcs/iceberg](https://github.com/pharo-vcs/iceberg)
So, now to install you will need: 


Metacello new
  baseline: 'Iceberg';
  repository: 'github://pharo-vcs/iceberg:dev-0.4';
  load.


I also uploaded a Configuration to the [catalog](http://catalog.pharo.org), 
so you can load while 
doing the transition.

*I figured out that we will need it, so I'm working on a cherry-pick system 
for [iceberg](http://github.com/npasserini/iceberg). Still nothing to show 
but stay tuned. 

Also, I'm working on translate [libgit2 
bindings](http://github.com/npasserini/libgit2-pharo-bindings) 
to version 0.25.1, because of compilation issues with 0.23 and because we 
will need it anyway. 

*I spent some time fixing 'once again' the VM build to allow +libgit2+ 
module to load.
This time it was just a stupid cache issue... latest VM will work now. 


24 April 2017:
--

*... and I spent the rest of the day recovering the vm tests.

So far I have running +linux+ and +macOS+. Windows tests are have still 3 
errors, I will end this tomorrow. 

*I just spend 2hs fixing a corruption on pharo [site](http://pharo.org). Is 
becoming annoying, but 
there is a problem in certain cases were +VOLazyProxy+ throws an exception 
which provoques a 
semaphore to stay in +wait+ status and then keeping conections to the 
database. 

And well, that ends... not in the best of the ways.
 


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 10 April 2017

2017-04-17 Thread estebanlm
Hello!

This is my weekly ChangeLog, from 10 April 2017 to 16 April 2017.
You can see it in a better format by going here: 
http://log.smallworks.eu/web/search?from=10/4/2017=16/4/2017

ChangeLog
=

13 April 2017:
--

*After spending again far too much time trying to get a compilation of 
+libgit2 v0.23+ on macOS 64bits 
(for some misterious reason is very hard... I guess is because is an old 
version), I decided to go the 
other way: migrate libgit2 bindings to the latest version (something that 
we needed to do anyway). 

So far, I got a version working on macOS 32bits (I needed to change some 
structures, but not as many as 
I thought). 

Anyway, tomorrow I will test linux and windows and we'll see 64bits later :)


12 April 2017:
--

*I updated [zeroconf](http://get.pharo.org/64) with 64bits support!

It is still a "preview" (stable version is still not final :P), but is 
there to test :)

I recommend to test: 


curl get.pharo.org/64/60+vmLatest | bash


*REMEMBER:* Windows 64bits  is still not supported.

*Just fixed a small bug on [iceberg](http://github.com/npasserini/iceberg) 
: it was missing comparison of 
locations when mixing absolute and relative paths, even if pointing to same 
place.

*I worked on fix [case: 19891](https://pharo.fogbugz.com/f/cases/19891) and 
[case: 19890](https://pharo.fogbugz.com/f/cases/19890). Second one took more 
than expected even if is so trivial
just because I was in the middle of another problem with VM :)

*I spent some time updating 
[http://pharo.org/community](http://pharo.org/community) page (not much there, 
just making shure people will
come to the right place when asking for help), and fixing a couple of 
annoying issues in +/news+.


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 3 April 2017

2017-04-10 Thread estebanlm
Hello!

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

ChangeLog
=

7 April 2017:
-

*Fixed the small but annoying [issue 
323](https://github.com/npasserini/iceberg/issues/323) 
(DNU when creating a local repository )

*Today I'm working on [Iceberg](http://github.com/npasserini/iceberg). 

I fixed a bug on locating existing repositories for +gitlocal:+ Metacello 
protocol, but most amusing, 
I added a new plugin: "Install Baseline", who allows you to install a 
project from a baseline listed in 
"Packages" tab from repositories browser.


6 April 2017:
-

*I worked a lot preparing the new deployment model for VMs. 

Basically, now it will be like this: 

* nightly builds will be still built by our CI (to produce test VMs)
* latest VMs will be produced on opensmalltalk-vm, using blessed sources.
* stable VMs will be promoted by me :) 

I'm thinking on change a bit this scheme, but for now it will work like 
that.

I finisged the 
[OpenSmalltalk](http://github.com/OpenSmalltalk/opensmalltalk-vm) part, now I 
need to adapt 
also [Pharo-Project](http://github.com/pharo-project/pharo-vm) (tomorrow). 

Then, we still need to fix one problem with a primitive... and we will be 
good to go.

*I worked on [case: 19921](https://pharo.fogbugz.com/f/cases/19921), to 
allow Athens to run fine on 64bits (linux).


5 April 2017:
-

*I worked on +UnifiedFFI+, making sure different architectures of linux 
(i386, x86_64) will have methods to 
find their libraries. 

In particular, I added: +#unix32ModuleName+ and +#unix64ModuleName+. Both 
are redirecting to 
+#unixModuleName+ by default as a way to provide backward compatibility 
(also, libraries could)
be in same place in different architectures, like the case of libraries 
distributed by ourselves 
(libgit2, libssl, libssh2, libsdl2).


4 April 2017:
-

*I made some fixes on [Iceberg](https://github.com/npasserini/iceberg)... 
in particular, this two issues: 

* [Issue 317](https://github.com/npasserini/iceberg/issues/317), which adds 
the posibility of removing a package from FileSystem. 
* [Issue 319](https://github.com/npasserini/iceberg/issues/319), forcing 
unix line endings to commit messages (as is required by git).

*I fixed a problem when building the VM for Windows: thing is, as it was, 
it was building cairo library without 
freetype support, so frameworks like Roassal to fail.

Problem was that pkgconfig was failing to find correct version of 
+freetype+ effectively letting it outside. 

I needed to change the build script (for Windows) to this: 


$(THIRDPARTYLIBDIR)/$(CAIROLIBNAME): $(CAIROARCHIVE)
tar x -f $(CAIROARCHIVE) -C $(THIRDPARTYDIR)
cd $(CAIRODIR) \
&& ./configure \
--prefix="$(THIRDPARTYOUTDIR)" \
--host=i686-w64-mingw32 \
PKG_CONFIG="$(PKG_CONFIG)" \
PKG_CONFIG_PATH="$(PKG_CONFIG_PATH)" \
CFLAGS='$(THIRDPARTY_CFLAGS) 
-I$(THIRDPARTYINCLUDEDIR) -march=pentium4' \
LDFLAGS='$(THIRDPARTY_LDFLAGS) 
-L$(THIRDPARTYLIBDIR) -march=pentium4' \
FREETYPE_LIBS="-L$(THIRDPARTYLIBDIR) -lfreetype 
-lz" \
FREETYPE_CFLAGS="-I$(THIRDPARTYINCLUDEDIR) 
-I$(THIRDPARTYINCLUDEDIR)/freetype2" \
--disable-silent-rules \
--disable-xlib \
--disable-dependency-tracking \
&& sed -i '/.* sh .\/make-/i\\ttest -e \$$\@ \&\& rm 
\$$\@' test/Makefile \
&& make \
&& make install


Now averything seems working. 


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 27 March 2017

2017-04-03 Thread estebanlm
Hello!

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

ChangeLog
=

31 March 2017:
--

*Yesterday I spent most of the day verifying why the pharo site was going 
down time to time... as a result, we found 
a problem in Voyage that may cause a deadlock under heavy load. 

Finally, with the help of Guille we help a possible cause in the way the 
+VOLazyProxy+ is implemented. 

This is +#doesNotUnderstand:+ current implementation: 


VOLazyProxy>>doesNotUnderstand: aMessage 
| realObject |

realObject := self obtainRealObject.
realObject ifNil: [
(repository descriptionBuilder for: objectClass) 
isAllowMissingContent
ifTrue: [ 
realObject := VOMissingObject class: 
objectClass id: objectId ]
ifFalse: [ 
VOError signal: ('Lazy reference not found {1}: 
{2}' format: {objectClass name. objectId}) ] ].

VOLazyProxy mutex critical: [
self == realObject 
ifFalse: [ self becomeForwardKeepingHash: realObject ] 
].
^realObject
perform: aMessage selector 
withArguments: aMessage arguments.


It is designed to prevent double attempt to become when trying to access 
same proxy at concurrent moments (in webapps is 
very frequent).

We discovered this implementation has some problems: 

* When doing the comparisson of of +self+ with +realObject+ self can 
already be in the stack, and then it can fail.
* apparently the error handler handles the occurrence of +Semaphore+ in a 
stack in weird ways (to ensure is debuggable) :)

So, now I'm testing (and proposing to Voyage) this implementation: 


VOLazyProxy>>#doesNotUnderstand: aMessage 
| realObject thisObject error |

realObject := self obtainRealObject.
realObject ifNil: [
(repository descriptionBuilder for: objectClass) 
isAllowMissingContent
ifTrue: [ 
realObject := VOMissingObject class: 
objectClass id: objectId ]
ifFalse: [ 
VOError signal: ('Lazy reference not found {1}: 
{2}' format: {objectClass name. objectId}) ] ].

error := nil.
thisObject := self.
VOLazyProxy mutex critical: [
thisObject == realObject ifFalse: [ 
[ self becomeForwardKeepingHash: realObject ]
on: Error do: [ :e | error := e ] ] ].
error ifNotNil: [ 
VOLazyProxyBecomeError new
error: error;
signal ].

^realObject
perform: aMessage selector 
withArguments: aMessage arguments.


If this works, I will submit an update to 
[Voyage](http://github.com/pharo-nosql/voyage) immediately :) 


29 March 2017:
--

*I validated some changes to Athens and copyBits primitive to fix the 
crashing problem. 

Seems to be working so I will integrate it... thanks Eliot!

*Still with [Iceberg](https://github.com/npasserini/iceberg), I took care 
of some bug... but most important than that, 
I added an option to create repositories from Iceberg. 

This is very simple: you click in the "New repository" button :)

This way you do not need a remote repository to start working, and you can 
keep your versions in your local environent
if you want. 

*WARNNING*: When doing your first push, it has to be a clean push 
(fast-forward), I have had problems trying the 
otherwise (which triggered a merge that Iceberg still does not knows how to 
handle).


27 March 2017:
--

*I just spent sometime fixing stuff on 
[Iceberg](https://github.com/npasserini/iceberg).

* I fixed [issue 313](https://github.com/npasserini/iceberg/issues/313) 
(now user gets a dialog to set user properties when needed).
* Now commit dialog remembers last choice of "push" automatically while 
commiting. 


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 20 March 2017

2017-03-27 Thread estebanlm
Hello!

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

ChangeLog
=

23 March 2017:
--

*Fixed (again!) build process for linux (libssh2 version was not correct).


22 March 2017:
--

*I made another pass to some problems on *icebeg>* : added a new "branch 
browser" to compare sources from remote
branchs and added a couple of fixes to make the system a bit stronger... 
still working on this :)

*I spent some time again on VM building, where a couple of issues arised: 

=== Build windows VM with cygwin instead mingw
[Nico Cellier](https://github.com/nicolas-cellier-aka-nice) moved the 
[OSVM](https://github.com/OpenSmalltalk/opensmalltalk-vm) 
to cygwin as part of his effort to produce Win64 VMs (and to align PharoVM 
with the other VMs flavours built).

This was a cool work, but it requires some work for our side to properly 
build the [PharoVM](https://github.com/pharo-project/pharo-vm).

=== Fix a problem with SDL2 and linux
SDL2 version was upgraded, but there was a remaining problem when building 
it, so I needed to track down the 
problem and fix it. 

Overall, the process are ok now... nevertheless I cannot merge the changes 
to make them available for users 
because with latest VM sources there are some problems here and there (not 
all tests pass). So I'm waiting 
for Eliot :)


20 March 2017:
--

*I added edit of repositories to 
[Iceberg](https://github.com/npasserini/iceberg) :)

This is usefull when you make a mistake and do not locate sources properly 
when cloning or when you want to
re-locate repository after moving it in your disk.


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 13 March 2017

2017-03-20 Thread estebanlm
Hello!

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

ChangeLog
=

17 March 2017:
--

*So, I changed the build process for linux to do what I suggested 
[here](http://forum.world.st/changing-pharo-packaging-in-linux-td4938906.html).

I also prepared the [zeroconf](http://get.pharo.org) scripts, but now I 
cannot build a VM because there is a 
problem with latest sources. I hope it will be fixed soon :)

*I reverted LD_LIBRARY_PATH I added to [zeroconf](http://get.pharo.org) 
scripts. There are two reasons for this: 

* It was bugged.
* It will not be necesary as soon as I can build new VMs because we will be 
distributing a script to execute in linux, with everything prepared there.


15 March 2017:
--

*I made a new change to [zeroconf](http://get.pharo.org) scripts, this time 
going back to my location of 
resources (libraries) on linux. This time, I changed the execution script 
for linux into something like this: 


LD_LIBRARY_PATH=$DIR/pharo-vm:$LD_LIBRARY_PATH $DIR/pharo-vm/pharo 
--nodisplay  "$@"


this needs to be like that due to the problem with libgit2 dependences, 
since there is still a possibility 
that linux will found the incorrect library versions. 

This matches with the old distribution script, who was adding: 


LD_LIBRARY_PATH="$PLUGINS:$SVMLLP:${LD_LIBRARY_PATH}" exec $GDB 
"$BIN/pharo" "$@"


so now we will be on track... but still, the "regular" (no zerconf) 
distribution will not work out of the 
box, I think we need to change it to the old script in some way. I will 
think how can we do that without 
break our current process.


13 March 2017:
--

*I continued working on [zeroconf](http://get.pharo.org): I added linux 
threaded VMs. Of course, not as default
since it requieres a special configuration, but at least people wanting to 
use them now can do it.

*Continuing with this "administrative" day, I updated 
[zeroconf](http://get.pharo.org) to use +PharoConsole.exe+ 
in Windows VM. This will allow windows users to start an image from command 
line and be able to write to console.

Now, to take advantage of this it was necessary to rollback a change I 
made... like 5 years ago! (it was one 
of the first workarounds I applied to the image, when we were working on 
the CI for Pharo). 

Anyway, the [case: 19832](https://pharo.fogbugz.com/f/cases/19832) is there 
to fix that.

*last post I forget to clarify that I needed to do this update because 
older VMs didn't work on macOS sierra.

*I made some administrative stuff and I updated downloads of Pharo 3.0 and 
Pharo 4.0 for macOS at
[http://files.pharo.org/platform/](http://files.pharo.org/platform/), I 
also updated the "platform files" for this versions. 
... and I also updated the [get-files](http://files.pharo.org/get-files) 
files for Pharo 3.0. 

*I started the week tooking some minutes to fix a problem in Catalog I 
caused when trying to enhance the 
behaviour between sessions (fix is [case: 
19831](https://pharo.fogbugz.com/f/cases/19831)).


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 6 March 2017

2017-03-13 Thread estebanlm
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=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: 


This VM uses a thread heartbeat who requires a special configuration to 
work.
You need to allow it to run higher priority threads (real time), to allow 
clock to work properly
You need to add a conf file to /etc/security/limits.d, executing this:

sudo cat >/etc/security/limits.d/%s.conf <

[Pharo-dev] Esteban's ChangeLog week of 27 February 2017

2017-03-05 Thread estebanlm
Hello!

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

ChangeLog
=

3 March 2017:
-

*And now I made +libssh2.so+ compile on linux too :)

I think Iceberg is fixed now for linux, can someone with linux try 
+vmLatest60+.

*I worked on VM for linux, this time fixing dependencies for libgit2: it 
was not working because it was trying 
to link libssh2 existing in the system instead the one we provide (a 
problem with rpath)... I figured out I 
need to add some CMAKE options:


-DCMAKE_SKIP_BUILD_RPATH=FALSE
-DCMAKE_INSTALL_RPATH="."


otherwise +make install+ was ignoring the +-Wl,rpath,.+ configuration. With 
this it seems to be working, 
but now I have a problem with +libssh2+ compilation. 

I'll see this next.

*I took some moments to fix a problem on new UFFI version (0.26): Now, 
structures use a class variable to keep 
the offset value of a field. So now, instead having an accessor to a field 
of the form (for example): 


MyStructure>>myField
^ handle unsignedLongAt: 42 


... now you have an accessor of the form: 


MyStructure>>myField
^ handle unsignedLongAt: OFFSET_MYFIELD


this is necesary to allow different platforms to use same structures 
(because sizes of fields, and in 
consequence of offsets of them inside a stricture are different). This 
'offsets' are calculated (as 
structure compiled specs) at first access to +#compiledSpec+ of structure, 
which usually happens when 
you use it first time... but now always, as [case: 
19788](https://pharo.fogbugz.com/f/cases/19788) shows. 

Well, now I fixed that :)


2 March 2017:
-

*I added a Discord link on 
[http://pharo.org/community](http://pharo.org/community)... I want to slowly 
start moving our community there. 
I know Slack is very popular among us this days but Dicords offers some 
advantages (like no 10k limit on 
messages and a powerful search).


1 March 2017:
-

*... and now I made the 
[case:19783](https://pharo.fogbugz.com/f/cases/19783), to make SDL2 work on 
64bits (it works!) :)

*Yesterday I spent the full day debugging a VM to see why Athens was not 
working for 64bits and I finally 
figured out the problem was in image and not in VM :P

As a result of the work, I produced this fixes: 

* [case:19781](https://pharo.fogbugz.com/f/cases/19781) to fix a problem 
answering pointers on callbacks. 
* [case:19782](https://pharo.fogbugz.com/f/cases/19782) to actually prepare 
Athens. 

With this two cases, Athens works in 64bits (almost) :)

Now there is a problem in 64bits callbacks that makes the +VGTigerDemo 
runDemo+ to fail after 
some cycles. Since this problem does not happens on 32bits, I assume there 
is a problem on how callbacks 
work on 64bits. I'm not working on that (I will work also in migrating 
SDL2).


27 February 2017:
-

*Well, I spend some time trying to blindly figure out why athens may crash 
time to time when drawing surfaces, 
basically testing the apprachs [Ronie 
proposes](http://forum.world.st/Too-frequent-crashes-td4927143i20.html#a4934027).
 

First approach consists on copying data to not rely on a surface at all. 
Problem with this is that it involves
a whole full copy, that causes a lot of GC that pauses a lot the image... 
so smoothness is gone. 

Second approach seems a lot more doable, but I still don't know if it works:


Form subclass: #AthensCairoSurfaceForm
instanceVariableNames: 'surface'
classVariableNames: ''
package: 'Athens-Cairo'

AthensCairoSurfaceForm>>surface
^ surface

AthensCairoSurfaceForm>>surface: anObject
surface := anObject

AthensCairoSurface>>asForm
"create a form and copy an image data there"
self checkSession.
self flush.
^ (AthensCairoSurfaceForm extent: (self width@self height) depth: 32 
bits: id)
surface: self;
yourself


this will prevent surfaces to be garbage collected before it's time and 
seems to be working fine (at least 
in my machine).


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 20 February 2017

2017-02-26 Thread estebanlm
Hello!

This is my weekly ChangeLog, from 20 February 2017 to 26 February 2017.
You can see it in a better format by going here: 
http://log.smallworks.eu/web/search?from=20/2/2017=26/2/2017

ChangeLog
=

23 February 2017:
-

*I promoted latest VMs as stable!

This is a dangerous step this time (because is the first VM stable after 
the merge with osvm), but at 
least now I will have feedback faster than before ;)


22 February 2017:
-

*= [Voyage](https://github.com/pharo-nosql/voyage)
I spent some time working on the new +VOTimestampVersionGenerator+ who will 
replace the current 
+VOSeedVersionGenerator+, because of two reasons:


. +UUIDGenerator>>makeSeed+ is not present on Pharo 6.0
. +UUIDGenerator>>makeSeed+ is very slow

The new algoritm creates a composed number, with this scheme: 

* 2 bytes a "machine id": a random generated number unique on the generator 
(ideally, unnique of the image).
* 4 bytes the timestamp in milliseconds
* 2 bytes a counter

This should be enough to prevent version collisions... and is super fast :)


20 February 2017:
-

*Today I spent the day working on finishing new version of UFFI. With Ronie 
we fixed a small bug and now 
we are ready to integrate... something that should happen tomorrow :)


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 6 February 2017

2017-02-13 Thread estebanlm
Hello!

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

ChangeLog
=

9 February 2017:


*I finished the work started yesterday and now there is a [Pull 
Request](https://github.com/npasserini/iceberg/pull/276) 
enabling the use of SSH for iceberg :)


8 February 2017:


*I worked with Pablo on *iceberg*, in [issue 
275](https://github.com/npasserini/iceberg/issues/275) (enable 
use of ssh-agent). It is very important to provide an easy way to use the 
tool (otherwise you need to provide 
your username/password, and there is people who do not like this). 

After one afternoon of hard work, we now have an "almost" working version, 
as you can see 
[here](https://github.com/estebanlm/iceberg/commits/dev-0.4)
This thing in fact should be working, but there are still some UI missing 
stuff and it is not validated on 
other platforms (linux and windows)... ut it 'should' work... we'll see 
tomorrow :)


7 February 2017:


*I'm working on restore the testing of VM builds, and so far linux tests 
are passing. There are some problems 
in macOS (probably due to missing chunks when performing the merge), and 
windows is still not tested at all. 

So, I will work tomorrow on those to see if we can have finished the 
process this week: I need to have a stable 
VM to continue with iceberg development (users will need to have a new VM, 
so better to have it tested :P)


6 February 2017:


*Working a bit on VM, I integrated a [pull 
request](https://github.com/pharo-project/pharo-vm/pull/114) that 
will enhance the build process in linux platforms. 

This was submited by [Holger](https://github.com/zecke), and is part of his 
work to create VM package versions.


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 30 January 2017

2017-02-06 Thread estebanlm
Hello!

This is my weekly ChangeLog, from 30 January 2017 to 5 February 2017.
You can see it in a better format by going here: 
http://log.smallworks.eu/web/search?from=30/1/2017=5/2/2017

ChangeLog
=

3 February 2017:


*Still on [iceberg](https://github.com/npasserini/iceberg), this time I 
addresed two issues: 

* [issue 269](https://github.com/npasserini/iceberg/issues/269), which is 
an improvement on the way we visualise trees (showing just those that have 
changes, this is very important in big repositories)
* [issue 270](https://github.com/npasserini/iceberg/issues/270), which 
addreses a problem I left there when working on multi-remotes: it was showing 
incorrect data between the real outgoing commits and the ones shown in the 
browser.

I made a couple of pull requests with them (yep, still using the plugin I 
developed yesterday :P)


2 February 2017:


*I spent last two days working on adapt 
[Iceberg](https://github.com/npasserini/iceberg) infrastructure to accept 
plugins. 

Well... not totally true. What in fact I made was to *start* to program a 
way to add plugins, which for now 
are just allowed in repositories pane on repositories browser. But well, 
the rudiments are there. 

What actually took most of my time was the development of the first plugin 
(you know, I do not believe too much 
on "developments in abstract", I need concrete cases to test my ideas): an 
Pull Request creator. With this, you 
can do from iceberg the same kind of work you do in github web page :)

So, now you can have a beutiful pull request dialog, along with several 
validations... Now, you may wonder why 
I needed to develop such kind of tool (after all, you can always go to the 
web page and do the same). And the 
answer is that in the new process we are starting to create for Pharo, we 
need to be able to do things like: 


. create a fix
. create a branch from pharo-core sources, named for example issue-12345 
(something that would usually belong to a SLICE)
. sends commits to that branch while working on the issue
. send a Pull Request of the issue (what now is to commit the SLICE to 
inbox and changing status on the bug tracker)

so, to make this process easy, we need to be able to complete the full 
cycle from Pharo, exactly as we do it now.

Pull Requests are a necessary step to fulfill this requirement. 


31 January 2017:


*Working on [iceberg](https://github.com/npasserini), I fixed a bug that 
happened when trying to clone a recently created repository 
(without branchs yet).


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 23 January 2017

2017-01-30 Thread estebanlm
Hello!

This is my weekly ChangeLog, from 23 January 2017 to 29 January 2017.
You can see it in a better format by going here: 
http://log.smallworks.eu/web/search?from=23/1/2017=29/1/2017

ChangeLog
=

27 January 2017:


*I worked a bit with [iceberg](https://github.com/npasserini/iceberg). 
Finally merged the branch +multi-remotes+ 
onto +0.4-dev+ just to realise immediately there is a 
[bug](https://github.com/npasserini/iceberg/issues/264) :(

Anyway... this is at least partially solved so I will integrate it directly.

*Fixed [case: 19592](https://pharo.fogbugz.com/f/cases/19592) (PharoVM 
shown as Squeak Cog VM on Windows task Manager).

*I worked with Clement to figure out why +supportsWriteBarrier+ was 
answering +false+ in windows builds. 

Turns out it was a combined bug: 

First, a problem in the VM and double castings (weird, isn't?). This is 
already taken care by Clement. 

Second (and this is 'my' side of the problem), PharoVM builds needed to 
include a couple of flags I was 
not inclding: 


MULTIPLEBYTECODESETS=true

bytecodeTableInitializer=initializeBytecodeTableForSqueakV3PlusClosuresSistaV1Hybrid
 


with this two things fixed, now everything should be fine in Windows side. 
Curiously, even if the method
was answering false, the 'write barrier' was actually working :)


26 January 2017:


*Spent some time verifying some issues with VM on Windows. 

* Why +SqueakSSL+ is not working? [case: 
19605](https://pharo.fogbugz.com/f/cases/19605). This looks to be an invalid 
issue, since I cannot prove it (nor Torsten).
* Why +Smalltalk vm supportsWriteBarrier+ answers +false+ ? This is weird, 
since my own builds (which are the same) answers correctly +true+ . Anyway, I 
will try triggering a new build, and hope for the best.

*I submited a fix for [case: 
19315](https://pharo.fogbugz.com/f/cases/19315). The patch contains both my 
workaround plus the fix suggested by Phil 
(in a slightly different way)... yeah, I know this is redundant but I want 
to be sure this damn bug 
is fixed for good :)


23 January 2017:


*I made a small iteration on the new mail service over this thingy... now I 
export the log in my own 
variation of the 
[AsciiDoc](http://asciidoctor.org/docs/what-is-asciidoc/#who-s-using-asciidoc) 
format.

I choose to do it like this because format is more legible (and +Pillar+ 
already has one exporter to it :P)

*I added +AioPlugin+ to all linux distros (they will be available in latest 
VM). 

As with SqueakSSL, I have no idea why it was missing :P


cheers! 
Esteban



[Pharo-dev] Esteban's ChangeLog week of 16 January 2017

2017-01-23 Thread estebanlm
Hello!

This is my weekly ChangeLog, from 16 January 2017 to 22 January 2017.
You can see it in a better format by going here: http://log.smallworks.eu

ChangeLog
=

20 January 2017:


  * I'm still fixing a couple of final failing tests on iceberg, 
multi-remotes branch. Problem is that there are still somethings to 
understand
on the "command line 
backend" (we need to find a better name for this), and the #pushTo: method: 
if I
do it as I 
think is correct, a couple of failing tests appear... but then, I need to
reflect if this is 
a problem on the functionality or on the tests.

19 January 2017:


  * I think I finally got the problem with FT2Plugin! 
Yesterday night talking in slack I realised that there was actually 
duplicated
instances of 
FT2Handle hierarchy with exactly same handle  (pointer address). This, of
course, causes a double free when those instances are released... and 
that's the VM crash :)
So I quickly sketched a workaround, that you can see here: 
FT2HandlepvtDestroyHandle
"This should only be sent from the finalizer. 
It runs inside a mutex because in strange cases it can happen that this is
executed twice, 
causing a primitiveFailed to be raised."
self class destroyMutex critical: [ | handleToRelease |
self isValid ifFalse: [ ^self ].
handleToRelease := self handle copy.
self primDestroyHandle.
"This is super-ugly, but it will prevent duplicated handles to be released"
FT2Handle allSubInstancesDo: [ :each | 
(handleToRelease = each handle) ifTrue: [ each beNull ] ] ] 
and so far nobody who is testing it crashed! 
This can be important, but of course... now we need to realise why the
duplicated instances are happening.
  * I spent some time preparing a new way to annoy people :)
I prepared a way to send a digest mail about my activity (this stream) to
pharo-dev list.
I hope it will not be too much.

18 January 2017:


  * ... and still some more work on iceberg, this time making some test 
pass on the command line backend (who is just a fallback, but well... we 
still
need it around).
  * Still working on UFFI 64bits. Now I introduced a new hierarchy, 
FFIArchitecture
for now with two children: 
* FFI_i386
* FFI_x86_64
the purpose is obvious: to allow UFFI to handle differences between 
different
architectures (for example, 
long has to be parsed to FFIInt32 in i386 and to FFIInt64 in x86_64).

17 January 2017:


  * I'm working on the UFFI support for 64bits. 
In general, it works fine, but there is a huge problem with structures. 
What's
this problem? Well, let's take
this simple structure as example: 
struct point {
unsigned long x;
unsigned long y;
}
Well, thing is in 32bits sizeof(struct point) = 8 while in 64bits 
sizeof(struct
point) = 16, and of 
course this breaks our current implementation which would be something like 
this
StructPointx
^ handle unsignedLongAt: 1
StructPointy
^ handle unsignedLongAt: 5
and of course, this is not correct for 64bits. 
My solution is quite simple, instead hardcoding the field offsets, I store 
those
values into class variables
that can be calculated each session (but just once).
So, this structure would end looking like this: 
StructPointx
^ handle unsignedLongAt: OFFSET_X
StructPointy
^ handle unsignedLongAt: OFFSET_Y
this would solve the problem for most of the cases, but there is still the 
issue
that emerges when complete
implementation of the struct changes between platforms. I'm planning to
implement a strategy pattern to solve 
this, but not yet (probably I will wait until having a concrete case).
This seems to be working, but now I have other problems not related to UFFI:
many people has implemented 
void * parameters of funtions as unsigned long (including me, time ago) 
which
was correct in 32bits but 
it is not in 64bits. So now I need to review this implementations to see 
where a
fix is needed.
But this is not directly a problem of UFFI, I think.
  * I worked with Nico on fixing libgit2 backend tests for iceberg. 
Now (more thanks to Nico than me, heh), test for multi-remotes branch are
passing for linux but 
still not for macOS (and forget it about Pharo 5.0). 
I suspect a problem with VM, I need to review if I can configure 
smalltalkci 
to work with latest vm instead stable. 

15 January 2017:


  * ... and now I restored the posix permissions to windows platform. Next 
latest VM
will have this change, I 
hope that will end the problems with FilePlugin, but we'll see.
  * I just fixed a problem with FilePlugin on macOS: the problem was when
determining if a symlink is also a 
directory: 
‘/tmp’ 

[Pharo-dev] Poll: What should we use to replace cmd+o in GTPlayground?

2014-10-03 Thread estebanlm

Te he invitado a rellenar el formulario Formulario sin título. Para
rellenarlo, visita:
https://docs.google.com/forms/d/14y9NJfSk-hsrmcpCMc8sY2cy6za8GAYQ_lipRFL6aWs/viewform?c=0w=1usp=mail_form_link