[consortium] 27 feb-5 march

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&to=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

As a result of the work, I produced these 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 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
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 its time and seems to be working fine (at least in my machine).

cheers!
Esteban

Advertisements

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: