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&to=5/3/2017
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:
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):
^ handle unsignedLongAt: 42
… now you have an accessor of the form:
^ 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
As a result of the work, I produced these fixes:
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 approachs [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
surface := anObject
“create a form and copy an image data there”
^ (AthensCairoSurfaceForm extent: (self width@self height) depth: 32 bits: id)
this will prevent surfaces to be garbage collected before its time and seems to be working fine (at least in my machine).