Yuriy Tymchuk | 17 Nov 22:52 2014



can someone advise me how to deal with one issue.

I put Roassal3D morph is a spec composite model, and when I open the window I get 'Frame buffer is incomplete:
GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT’ error because GLViewportMorph>>#layoutInBounds:
bounds attribute has a zero coordinate. Should there be a guard in the method of GLViewportMorph, or I
should do something in Spec?


Ben Coman | 17 Nov 16:58 2014

OSX 10.9 PharoVM build failure workarounds

I followed the instructions at https://github.com/pharo-project/pharo-vm
to build the Pharo VM. In generator.image I evaluated...
     PharoVMBuilder buildMacOSX32.
     cd ../build
     bash build.sh

After cmake finished its checks, it tried to compile freetype (2.4.9) 
but gets errors...


clang: warning: no such sysroot directory:

**fatal error: **'math.h' file not found*

And indeed, I don't have
I have

So updating CMakeLists.txt as follows...

(Continue reading)

seaside | 17 Nov 07:00 2014

WhatsUp from: 2014-11-17 until: 2014-11-30

Hi! We're sending this automatic email twice a month, to give the community an opportunity to easily know
what's happening and to coordinate efforts.  Just answer informally, and feel free to spawn discussions thereafter!

### Here's what I've been up to since the last WhatsUp:


### What's next, until 2014-11-30 (*):


(*) we'll be expecting results by then ;)

Paul DeBruicker | 16 Nov 21:49 2014

How do I get a >512MB image with Pharo 3 on a mac?

Hi - 

I don't have a need for a big image.  I just discovered I have no idea how to make one larger than ~512MB, and am

I was running into an out of memory error and discussing it in a thread on pharo-users list
 The details of that discussion aren't pertinent to this question.  

This script below ought to make an image that maxes out well above a GB but cannot cross 512MB without
throwing an OutOfMemory error.  

| them | 
them := OrderedCollection new. 
[[them addLast: (ByteArray new: 16000000). 
 Transcript cr; show: ((Smalltalk vm parameterAt: 3) / (1024*1024.0) printShowingDecimalPlaces: 1);
flush] repeat] 
on: OutOfMemory 
do: [:ex| 2 to: them size by: 2 do: [:i| them at: i put: nil. Smalltalk garbageCollect]]. 
Transcript cr; show: ((Smalltalk vm parameterAt: 3) / (1024*1024.0) printShowingDecimalPlaces: 1);
them := nil. 
Smalltalk garbageCollect. 
Transcript cr; show: ((Smalltalk vm parameterAt: 3) / (1024*1024.0) printShowingDecimalPlaces: 1); flush

In the transcript you will see an output of the image size as more ByteArrays are added to the
OrderedCollection.  On my laptop with 4GB of ram it always peaks at just over 500MB.  

Setting the memory from the command line (e.g. pharo-ui --memory 1000m  Pharo.image) does not help.

(Continue reading)

GitHub | 16 Nov 14:29 2014


  Branch: refs/tags/40371
  Home:   https://github.com/pharo-project/pharo-core
GitHub | 16 Nov 14:29 2014

[pharo-project/pharo-core] 0635d1: 40371

  Branch: refs/heads/4.0
  Home:   https://github.com/pharo-project/pharo-core
  Commit: 0635d15a291debc0717b5f2711d3832e1a77f2e6
  Author: Jenkins Build Server <board@...>
  Date:   2014-11-16 (Sun, 16 Nov 2014)

  Changed paths:
    M Kernel.package/Delay.class/README.md
    M Kernel.package/Delay.class/class/class initialization/initialize.st
    A Kernel.package/Delay.class/class/enable new code/newCodeEnabled.st
    A Kernel.package/Delay.class/class/enable new code/newCodeEnabled_.st
    M Kernel.package/Delay.class/class/snapshotting/restoreResumptionTimes.st
    M Kernel.package/Delay.class/class/snapshotting/saveResumptionTimes.st
    M Kernel.package/Delay.class/class/snapshotting/shutDown.st
    M Kernel.package/Delay.class/class/snapshotting/startUp.st
    M Kernel.package/Delay.class/class/testing/anyActive.st
    M Kernel.package/Delay.class/class/testing/nextWakeUpTime.st
    M Kernel.package/Delay.class/class/timer process/handleTimerEvent.st
    M Kernel.package/Delay.class/class/timer process/runTimerEventLoop.st
    M Kernel.package/Delay.class/class/timer process/scheduleDelay_.st
    M Kernel.package/Delay.class/class/timer process/schedulingProcess.st
    M Kernel.package/Delay.class/class/timer process/startTimerEventLoop.st
    A Kernel.package/Delay.class/class/timer process/startTimerEventLoop_.st
    M Kernel.package/Delay.class/class/timer process/stopTimerEventLoop.st
    M Kernel.package/Delay.class/class/timer process/unscheduleDelay_.st
    M Kernel.package/Delay.class/definition.st
    A Kernel.package/Delay.class/instance/enable new code/newCodeEnabled.st
    M Kernel.package/Delay.class/instance/private/schedule.st
    M Kernel.package/Delay.class/instance/private/unschedule.st
(Continue reading)

kilon alios | 16 Nov 10:02 2014

How to add a morph to a Spec GUI

Hello guys I am trying to add a morph to spec gui before a spec button and the experience has been a nightmare so far.

I understand how columns and rows work but I cant figure out how Spec works with Morphs.

I took a look at CheckBoxExample but it completely jammed my brain how complex it looks.

First of all defaultSpec2 is what ? and whats the diffirence with defaultSpec ? 

Dont know about you but I don't like neither name defaultSpec and defaultSpec2 , I would have chosen a name like layout or something that makes sense. 

also why we need to initializeWidgets when we already define their order in defaultSpec ? Why cant Spec initialise those widgets by itself ?

Is it really necessary for each element of the gui to be defined as a getter method ? Why not just put everything to a dictionary and make a getter for that dictionary ? It would make a complex Spec gui a nightmare to browser and leads to braking it up to more classes which will still make it a mess to browse. 

I see also  a container defined in there , I assume it has something to do with the morphs. 

I took also a look at documentation at Pharo for the Enterprise and it has a section for building widgets but it looks too much work to add just a few morph to a Spec gui. 

I wanted to make the gui for Nireas with Spec and I like some of its design but overall it has been way more struggle than working with Morphic. 

I know I have complained about Spec before and sorry if I sound like a broken tape but making guis in heavily gui based environment like Pharo should not be so hard. 

I dont have a problem failing back to Morphic but since I see so many people praise Spec I keep wondering if I approach this the wrong way and things are much more elegant and easy than they look. 
Ben Coman | 16 Nov 01:52 2014

VM fixes to review

I notice several VM fixes [1] submitted by Nicolas 6 months ago. They
are categorized as Milestone=Later, so I'm bumping them here just in 
case these slipped through the cracks to get them into Pharo 4.

[1] https://pharo.fogbugz.com/default.asp?pgx=LF&ixFilter=36

But then I think I remember that early in Pharo 4 cycle, the Pharo VM 
was aligned more closely with with Eliot's - so maybe some of these are 
already included?

cheers -ben

Paul DeBruicker | 15 Nov 20:25 2014

cross platform issue with versionner in pharo 3.0 - want a slice?

Hey - 

I'm thinking about making a slice to that versionner doesn't use Symbols for class names when creating
baselines.  The problem is that on GemStone symbols and strings don't compare as equal, so looking up a
class in a repo fails.    

Is that slice  something that is generally interesting ?  Is it already fixed in Pharo 4?



Max Leske | 15 Nov 15:53 2014

[NB] NativeBoost and optCoerceNilToNull

Once again I’m struggling with NativeBoost. I’m trying to use optCoerceNilToNull with this function:

^self call: #(LGitReturnCodeEnum git_commit_create(
LGitId * theCommitId, 
LGitRepository repo,
String update_ref, 
LGitSignature * theAuthor,
LGitSignature * theCommitter,
String message_encoding,
String theMessage,
LGitTree theTree,
int parent_count, 
LGitCommit * parentsPointer)) options: #( optCoerceNilToNull )

The last argument can be NULL, per documentation, (no parents).
LGitCommit is a subclass of NBExternalObject and apparently NBExternalObjctType>>pushAsPointer: does *not* use the optCoerceNilToNull option (the super implementation in NBExternalType>>pushAsPointer: however does). The upshot of course is that the call fails with “an instance of LGitCommit expected”.

My questions:
- The documentation says:

"passing nil as a pointer-type argument, converts it to C NULL “
but apparently this doesn’t apply to every pointer type. Should the documentation be updated?
- Why does NBExternlObjectType not use optCoerceNilToNull? I don’t want to use tricks to pass null if I don’t have to.
- Related: there are instances where even non-pointer arguments are allowed to be NULL. Why does optCoerceNilToNull only work for pointer types?

Igor! Help! :)


kilon alios | 15 Nov 13:26 2014

How to refresh the pharo window manually

Hello guys I am making a theme manager and I have observed that when I choose a background color for pharo windows it does not update properly. How I can force the whole pharo window to update ? I have found DisplayScreen and WorldMorph but no idea how to use them.