Pharo-dev
By thread
pharo-dev@lists.pharo.org
By month
Messages by month
- ----- 2026 -----
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- 1 participants
- 144619 messages
Re: [Pharo-dev] [pharo-project/pharo-core] 0635d1: 40371
by Ben Coman
GitHub wrote:
> Branch: refs/heads/4.0
> Home: https://github.com/pharo-project/pharo-core
> Commit: 0635d15a291debc0717b5f2711d3832e1a77f2e6
> https://github.com/pharo-project/pharo-core/commit/0635d15a291debc0717b5f27…
> Author: Jenkins Build Server <board(a)pharo-project.org>
> 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
> A Kernel.package/DelayScheduler.class/README.md
> A Kernel.package/DelayScheduler.class/definition.st
> A Kernel.package/DelayScheduler.class/instance/class initialization/initialize.st
> A Kernel.package/DelayScheduler.class/instance/low priority processes/schedule_.st
> A Kernel.package/DelayScheduler.class/instance/low priority processes/unschedule_.st
> A Kernel.package/DelayScheduler.class/instance/primitives/primSignal_atMilliseconds_.st
> A Kernel.package/DelayScheduler.class/instance/snapshotting/restoreResumptionTimes.st
> A Kernel.package/DelayScheduler.class/instance/snapshotting/saveResumptionTimes.st
> A Kernel.package/DelayScheduler.class/instance/snapshotting/shutDown.st
> A Kernel.package/DelayScheduler.class/instance/snapshotting/startUp.st
> A Kernel.package/DelayScheduler.class/instance/testing/anyActive.st
> A Kernel.package/DelayScheduler.class/instance/testing/nextWakeUpTime.st
> A Kernel.package/DelayScheduler.class/instance/timer process/handleTimerEvent_.st
> A Kernel.package/DelayScheduler.class/instance/timer process/runTimerEventLoop.st
> A Kernel.package/DelayScheduler.class/instance/timer process/scheduleDelay_.st
> A Kernel.package/DelayScheduler.class/instance/timer process/schedulingProcess.st
> A Kernel.package/DelayScheduler.class/instance/timer process/startTimerEventLoop.st
> A Kernel.package/DelayScheduler.class/instance/timer process/startTimerEventLoop_.st
> A Kernel.package/DelayScheduler.class/instance/timer process/stopTimerEventLoop.st
> A Kernel.package/DelayScheduler.class/instance/timer process/unscheduleDelay_.st
> A KernelTests.package/DelayBenchmark.class/README.md
> A KernelTests.package/DelayBenchmark.class/class/action/run.st
> A KernelTests.package/DelayBenchmark.class/definition.st
> A KernelTests.package/DelayBenchmark.class/instance/action/run.st
> A KernelTests.package/DelayBenchmark.class/instance/support/generateDelayProcesses_priority_maxDuration_fromSeed_.st
> A KernelTests.package/DelayBenchmark.class/instance/support/trialConcurrent_priority_maxDuration_fromSeed_.st
> A KernelTests.package/DelaySchedulerTest.class/README.md
> A KernelTests.package/DelaySchedulerTest.class/definition.st
> A KernelTests.package/DelaySchedulerTest.class/instance/tests/testMaxTickLessThanDuration.st
> A KernelTests.package/DelaySchedulerTest.class/instance/tests/testMaxTickMoreThanDuration.st
> A KernelTests.package/extension/DelayScheduler/instance/testCaseSupportActiveDelay.st
> A KernelTests.package/extension/DelayScheduler/instance/testCaseSupportSetActiveDelayStartTime_.st
> A ScriptLoader40.package/ScriptLoader.class/instance/pharo - scripts/script371.st
> A ScriptLoader40.package/ScriptLoader.class/instance/pharo - updates/update40371.st
> M ScriptLoader40.package/ScriptLoader.class/instance/public/commentForCurrentUpdate.st
>
> Log Message:
> -----------
> 40371
> 14261 Delay refactoring (part 1) - move scheduler from class-side to instance-side of its own class
> https://pharo.fogbugz.com/f/cases/14261
>
> http://files.pharo.org/image/40/40371.zip
>
>
Thanks very much for that, but it picked up the .4 slice
rather than the .9 slice. Probably due to my changing the issue title
half way through (sorry).
-ben
Nov. 16, 2014
[pharo-project/pharo-core]
by GitHub
Branch: refs/tags/40371
Home: https://github.com/pharo-project/pharo-core
Nov. 16, 2014
[pharo-project/pharo-core] 0635d1: 40371
by GitHub
Branch: refs/heads/4.0
Home: https://github.com/pharo-project/pharo-core
Commit: 0635d15a291debc0717b5f2711d3832e1a77f2e6
https://github.com/pharo-project/pharo-core/commit/0635d15a291debc0717b5f27…
Author: Jenkins Build Server <board(a)pharo-project.org>
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
A Kernel.package/DelayScheduler.class/README.md
A Kernel.package/DelayScheduler.class/definition.st
A Kernel.package/DelayScheduler.class/instance/class initialization/initialize.st
A Kernel.package/DelayScheduler.class/instance/low priority processes/schedule_.st
A Kernel.package/DelayScheduler.class/instance/low priority processes/unschedule_.st
A Kernel.package/DelayScheduler.class/instance/primitives/primSignal_atMilliseconds_.st
A Kernel.package/DelayScheduler.class/instance/snapshotting/restoreResumptionTimes.st
A Kernel.package/DelayScheduler.class/instance/snapshotting/saveResumptionTimes.st
A Kernel.package/DelayScheduler.class/instance/snapshotting/shutDown.st
A Kernel.package/DelayScheduler.class/instance/snapshotting/startUp.st
A Kernel.package/DelayScheduler.class/instance/testing/anyActive.st
A Kernel.package/DelayScheduler.class/instance/testing/nextWakeUpTime.st
A Kernel.package/DelayScheduler.class/instance/timer process/handleTimerEvent_.st
A Kernel.package/DelayScheduler.class/instance/timer process/runTimerEventLoop.st
A Kernel.package/DelayScheduler.class/instance/timer process/scheduleDelay_.st
A Kernel.package/DelayScheduler.class/instance/timer process/schedulingProcess.st
A Kernel.package/DelayScheduler.class/instance/timer process/startTimerEventLoop.st
A Kernel.package/DelayScheduler.class/instance/timer process/startTimerEventLoop_.st
A Kernel.package/DelayScheduler.class/instance/timer process/stopTimerEventLoop.st
A Kernel.package/DelayScheduler.class/instance/timer process/unscheduleDelay_.st
A KernelTests.package/DelayBenchmark.class/README.md
A KernelTests.package/DelayBenchmark.class/class/action/run.st
A KernelTests.package/DelayBenchmark.class/definition.st
A KernelTests.package/DelayBenchmark.class/instance/action/run.st
A KernelTests.package/DelayBenchmark.class/instance/support/generateDelayProcesses_priority_maxDuration_fromSeed_.st
A KernelTests.package/DelayBenchmark.class/instance/support/trialConcurrent_priority_maxDuration_fromSeed_.st
A KernelTests.package/DelaySchedulerTest.class/README.md
A KernelTests.package/DelaySchedulerTest.class/definition.st
A KernelTests.package/DelaySchedulerTest.class/instance/tests/testMaxTickLessThanDuration.st
A KernelTests.package/DelaySchedulerTest.class/instance/tests/testMaxTickMoreThanDuration.st
A KernelTests.package/extension/DelayScheduler/instance/testCaseSupportActiveDelay.st
A KernelTests.package/extension/DelayScheduler/instance/testCaseSupportSetActiveDelayStartTime_.st
A ScriptLoader40.package/ScriptLoader.class/instance/pharo - scripts/script371.st
A ScriptLoader40.package/ScriptLoader.class/instance/pharo - updates/update40371.st
M ScriptLoader40.package/ScriptLoader.class/instance/public/commentForCurrentUpdate.st
Log Message:
-----------
40371
14261 Delay refactoring (part 1) - move scheduler from class-side to instance-side of its own class
https://pharo.fogbugz.com/f/cases/14261
http://files.pharo.org/image/40/40371.zip
Nov. 16, 2014
Re: [Pharo-dev] How to add a morph to a Spec GUI
by kilon alios
thanks for the info Nicolai, what I am trying to do is super simple, as you
can see from the code I linked I have a very simple interface of a single
button, I want to put before that button a simple morph to display color.
Basically the button changes the background color of windows and I want the
morph to display the color. Morph wise i can create the Morph like this
backgroundColorMorph := Morph new.
backgroundColorMorph color: self backgroundColor.
the problem is how I add this Morph to my gui. Meaning how to wrap it as
spec widget which is what your code is doing. I was not aware of
asSpecAdapter. Documentation does not mention this in Pharo for the
Enterprise Spec Chapter.
So following your instructions i added to my initialise method
backgroundColorMorph := Morph new.
backgroundColorWidget := backgroundColorMorph asSpecAdapter .
I added a method to return backgroundColorWidget with the same name and
changed at class side defaultSpec to
defaultSpec
<spec>
^ SpecLayout composed
newRow: [:r | r add: #button width: 25. r add: #backgroundColorWidget]
; yourself
I try to open the Spec gui and gives me a MNU Morph>>layout:
Am I suppose to add some form of layout to the morph ?
Do I need to add something to initialiseWidgets ?
On Sun, Nov 16, 2014 at 12:36 PM, Nicolai Hess <nicolaihess(a)web.de> wrote:
> 2014-11-16 10:02 GMT+01:00 kilon alios <kilon.alios(a)gmail.com>:
>
>> 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.
>>
>>
>> https://github.com/kilon/Nireas/blob/master/Nireas.package/Nireas.class/cla…
>>
>
> What do you mean "add a morph to spec gui". The common way is to define
> your own model and instead of composing
> your GUI with different morphs, you compose your GUI with different
> (ready-made) models. If you need a new
> kind of 1 model-GUI-Widget you'll have to define your own spec
> (morphic)adapter and add a spec binding.
>
> If you just want to add an existing morph into your layout, you can use
> Morphic>>#asSpecAdapter.
>
> This example looks a bit ugly, just because it uses a
> DynamicComposableModel. In your own
> applicatoin you would define your own model for defining and composing the
> parts:
>
>
> class:=AthensFlakeDemo.
> method:=AthensFlakeDemo>>#initialize.
> composed:= DynamicComposableModel new.
> composed instantiateModels: #(code TextModel method TextInputFieldModel).
>
> "this is a hack, as #instantiateModels: does not work for non-spec-models"
> composed widgets at:#demo put:(AthensFlakeDemo new asSpecAdapter).
>
> "with your own model (instead of using DynamicComposableModel) you would"
> "define a method that returns the morph asSpecadapter "
>
> composed code text:method sourceCode.
> composed method text: method selector asString.
> composed code aboutToStyle:true.
> composed code behavior:class.
> composed title:(class asString).
> composed openWithSpecLayout:(
> SpecLayout composed
> newColumn:[:r | r
> add: #demo height:80;
> add: #method height:25;
> add: #code];
> yourself).
>
>
>
>
>
>
>
>>
>> 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.
>>
>
>
Nov. 16, 2014
Re: [Pharo-dev] How to add a morph to a Spec GUI
by Nicolai Hess
2014-11-16 10:02 GMT+01:00 kilon alios <kilon.alios(a)gmail.com>:
> 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.
>
>
> https://github.com/kilon/Nireas/blob/master/Nireas.package/Nireas.class/cla…
>
What do you mean "add a morph to spec gui". The common way is to define
your own model and instead of composing
your GUI with different morphs, you compose your GUI with different
(ready-made) models. If you need a new
kind of 1 model-GUI-Widget you'll have to define your own spec
(morphic)adapter and add a spec binding.
If you just want to add an existing morph into your layout, you can use
Morphic>>#asSpecAdapter.
This example looks a bit ugly, just because it uses a
DynamicComposableModel. In your own
applicatoin you would define your own model for defining and composing the
parts:
class:=AthensFlakeDemo.
method:=AthensFlakeDemo>>#initialize.
composed:= DynamicComposableModel new.
composed instantiateModels: #(code TextModel method TextInputFieldModel).
"this is a hack, as #instantiateModels: does not work for non-spec-models"
composed widgets at:#demo put:(AthensFlakeDemo new asSpecAdapter).
"with your own model (instead of using DynamicComposableModel) you would"
"define a method that returns the morph asSpecadapter "
composed code text:method sourceCode.
composed method text: method selector asString.
composed code aboutToStyle:true.
composed code behavior:class.
composed title:(class asString).
composed openWithSpecLayout:(
SpecLayout composed
newColumn:[:r | r
add: #demo height:80;
add: #method height:25;
add: #code];
yourself).
>
> 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.
>
Nov. 16, 2014
How to add a morph to a Spec GUI
by kilon alios
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.
https://github.com/kilon/Nireas/blob/master/Nireas.package/Nireas.class/cla…
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.
Nov. 16, 2014
Re: [Pharo-dev] New Cog VMs available
by Douglas McPherson
⦠and ARMv6 and ARMv7 stack and stack/spur VMs updated accordingly.
Doug
> On Nov 15, 2014, at 19:24, Eliot Miranda <eliot.miranda(a)gmail.com> wrote:
>
> Hi All,
>
> problems solved. So new VMs available at http://www.mirandabanda.org/files/Cog/VM/VM.r3137/ <http://www.mirandabanda.org/files/Cog/VM/VM.r3137/>.
>
> CogVM binaries as per VMMaker.oscog-eem.935/r3137
>
> These VMs should be functionally identical to the 3126 VMs; the core VM differs
> only in having been compiled from generated source that has been refactored to
> enable convenient 32-bit to 64-bit Spur image bootstrap. I'm building and
> releasing them mostly to test that refactoring. However, there is new DNS
> support on Windows and SSL support on Unix. See below.
>
> Simulator/Slang:
> Refactor to allow 32-bit and 64-bit Spur to coexist
> in the simulator, thereby allowing a 64-bit bootstrap.
>
> Replace direct use of BytesPerWord, ShiftForWord, BytesPerOop and BaseHeaderSize
> with sends of wordSize, shiftForWord, bytesPerOop & baseHeaderSize respectively.
> Make sure these are still output as the manifest constants in the generated C.
> Eliminate use of bytesPerSlot in favour of bytesPerOop. The use of sends is
> similar to those in trunk VMMaker, but I don't have time to merge. Sorry :-(.
>
> Work-around use of sends for bytesPerOop in e.g. generateToByDo:on:indent: and
> users of isConstantNode:valueInto:.
>
> Do a better job at inlining via inlineCodeOrNilForStatement:in:. Comment in
> isNode:substitutableFor:inMethod:in: explains.
>
> Eliminate generic VM_LABEL support, labelling only the bytecodes in interpret.
>
> Eliminate use of LargeContextSize in the stack and cog VMs. Alas haven't yet
> eliminated the frame offset constants such as FoxCallerSavedIP et al. We only
> need one of the two word sizes of interpreter to be executable in the bootstrap.
>
> And remember to generate the GdbARMPlugin
>
> Add accessorDepths for the exported browser plugin primitives for Spur.
>
> Merge Levente's recent changes to DNS lookup on Windows and SSL on Unix.
> See http://squeakvm.org/cgi-bin/viewvc.cgi/squeak?view=revision&revision=2249 <http://squeakvm.org/cgi-bin/viewvc.cgi/squeak?view=revision&revision=2249>
> http://bugs.squeak.org/view.php?id=7824 <http://bugs.squeak.org/view.php?id=7824>
>
> Have the Unix & Mac VMs print the process id and working directory when blocking
> on error or assert fail. Add scripts for the ARM VM archives.
>
>
> On Fri, Nov 14, 2014 at 3:11 PM, Eliot Miranda <eliot.miranda(a)gmail.com <mailto:eliot.miranda@gmail.com>> wrote:
> ... at http://www.mirandabanda.org/files/Cog/VM/VM.r3133/ <http://www.mirandabanda.org/files/Cog/VM/VM.r3133/>.
>
> CogVM binaries as per VMMaker.oscog-eem.934/r3133
> These VMs should be functionally identical to the 3126 VMs; the core VM differs
> only in having been compiled from generated source that has been refactored to
> enable convenient 32-bit to 64-bit Spur image bootstrap. I'm building and
> releasing them mostly to test that refactoring. However, there is new DNS
> support on Windows and SSL support on Unix. See below.
>
> Simulator/Slang:
> Refactor to allow 32-bit and 64-bit Spur to coexist
> in the simulator, thereby allowing a 64-bit bootstrap.
>
> Replace direct use of BytesPerWord, ShiftForWord, BytesPerOop and BaseHeaderSize
> with sends of wordSize, shiftForWord, bytesPerOop & baseHeaderSize respectively.
> Make sure these are still output as the manifest constants in the generated C.
> Eliminate use of bytesPerSlot in favour of bytesPerOop. The use of sends is
> similar to those in trunk VMMaker, but I don't have time to merge. Sorry :-(.
>
> Work-around use of sends for bytesPerOop in e.g. generateToByDo:on:indent: and
> users of isConstantNode:valueInto:.
>
> Do a better job at inlining via inlineCodeOrNilForStatement:in:. Comment in
> isNode:substitutableFor:inMethod:in: explains.
>
> Eliminate generic VM_LABEL support, labelling only the bytecodes in interpret.
>
> Eliminate use of LargeContextSize in the stack and cog VMs. Alas haven't yet
> eliminated the frame offset constants such as FoxCallerSavedIP et al. We only
> need one of the two word sizes of interpreter to be executable in the bootstrap.
>
> And remember to generate the GdbARMPlugin
>
> Add accessorDepths for the exported browser plugin primitives for Spur.
>
> Merge Levente's recent changes to DNS lookup on Windows and SSL on Unix.
> See http://squeakvm.org/cgi-bin/viewvc.cgi/squeak?view=revision&revision=2249 <http://squeakvm.org/cgi-bin/viewvc.cgi/squeak?view=revision&revision=2249>
> http://bugs.squeak.org/view.php?id=7824 <http://bugs.squeak.org/view.php?id=7824>
>
> Have the Unix & Mac VMs print the process id and working directory when blocking
> on error or assert fail. Add scripts for the ARM VM archives.
> --
> best,
> Eliot
>
>
>
> --
> best,
> Eliot
Nov. 16, 2014
Re: [Pharo-dev] New Cog VMs available
by Eliot Miranda
Hi All,
problems solved. So new VMs available at
http://www.mirandabanda.org/files/Cog/VM/VM.r3137/.
CogVM binaries as per VMMaker.oscog-eem.935/r3137
These VMs should be functionally identical to the 3126 VMs; the core VM
differs
only in having been compiled from generated source that has been refactored
to
enable convenient 32-bit to 64-bit Spur image bootstrap. I'm building and
releasing them mostly to test that refactoring. However, there is new DNS
support on Windows and SSL support on Unix. See below.
Simulator/Slang:
Refactor to allow 32-bit and 64-bit Spur to coexist
in the simulator, thereby allowing a 64-bit bootstrap.
Replace direct use of BytesPerWord, ShiftForWord, BytesPerOop and
BaseHeaderSize
with sends of wordSize, shiftForWord, bytesPerOop & baseHeaderSize
respectively.
Make sure these are still output as the manifest constants in the generated
C.
Eliminate use of bytesPerSlot in favour of bytesPerOop. The use of sends is
similar to those in trunk VMMaker, but I don't have time to merge. Sorry
:-(.
Work-around use of sends for bytesPerOop in e.g. generateToByDo:on:indent:
and
users of isConstantNode:valueInto:.
Do a better job at inlining via inlineCodeOrNilForStatement:in:. Comment in
isNode:substitutableFor:inMethod:in: explains.
Eliminate generic VM_LABEL support, labelling only the bytecodes in
interpret.
Eliminate use of LargeContextSize in the stack and cog VMs. Alas haven't
yet
eliminated the frame offset constants such as FoxCallerSavedIP et al. We
only
need one of the two word sizes of interpreter to be executable in the
bootstrap.
And remember to generate the GdbARMPlugin
Add accessorDepths for the exported browser plugin primitives for Spur.
Merge Levente's recent changes to DNS lookup on Windows and SSL on Unix.
See
http://squeakvm.org/cgi-bin/viewvc.cgi/squeak?view=revision&revision=2249
http://bugs.squeak.org/view.php?id=7824
Have the Unix & Mac VMs print the process id and working directory when
blocking
on error or assert fail. Add scripts for the ARM VM archives.
On Fri, Nov 14, 2014 at 3:11 PM, Eliot Miranda <eliot.miranda(a)gmail.com>
wrote:
> ... at http://www.mirandabanda.org/files/Cog/VM/VM.r3133/.
>
> CogVM binaries as per VMMaker.oscog-eem.934/r3133
> These VMs should be functionally identical to the 3126 VMs; the core VM
> differs
> only in having been compiled from generated source that has been
> refactored to
> enable convenient 32-bit to 64-bit Spur image bootstrap. I'm building and
> releasing them mostly to test that refactoring. However, there is new DNS
> support on Windows and SSL support on Unix. See below.
>
> Simulator/Slang:
> Refactor to allow 32-bit and 64-bit Spur to coexist
> in the simulator, thereby allowing a 64-bit bootstrap.
>
> Replace direct use of BytesPerWord, ShiftForWord, BytesPerOop and
> BaseHeaderSize
> with sends of wordSize, shiftForWord, bytesPerOop & baseHeaderSize
> respectively.
> Make sure these are still output as the manifest constants in the
> generated C.
> Eliminate use of bytesPerSlot in favour of bytesPerOop. The use of sends
> is
> similar to those in trunk VMMaker, but I don't have time to merge. Sorry
> :-(.
>
> Work-around use of sends for bytesPerOop in e.g.
> generateToByDo:on:indent: and
> users of isConstantNode:valueInto:.
>
> Do a better job at inlining via inlineCodeOrNilForStatement:in:. Comment
> in
> isNode:substitutableFor:inMethod:in: explains.
>
> Eliminate generic VM_LABEL support, labelling only the bytecodes in
> interpret.
>
> Eliminate use of LargeContextSize in the stack and cog VMs. Alas haven't
> yet
> eliminated the frame offset constants such as FoxCallerSavedIP et al. We
> only
> need one of the two word sizes of interpreter to be executable in the
> bootstrap.
>
> And remember to generate the GdbARMPlugin
>
> Add accessorDepths for the exported browser plugin primitives for Spur.
>
> Merge Levente's recent changes to DNS lookup on Windows and SSL on Unix.
> See
> http://squeakvm.org/cgi-bin/viewvc.cgi/squeak?view=revision&revision=2249
> http://bugs.squeak.org/view.php?id=7824
>
> Have the Unix & Mac VMs print the process id and working directory when
> blocking
> on error or assert fail. Add scripts for the ARM VM archives.
> --
> best,
> Eliot
>
--
best,
Eliot
Nov. 16, 2014
Re: [Pharo-dev] ValueHolder analysis
by Igor Stasenko
On 15 November 2014 22:49, stepharo <stepharo(a)free.fr> wrote:
> I get dizzy (may be time to go to sleep) but I wonder
> why do we need to check first the the window changed and after that it got
> closed?
> Especially since whenWindowChanged: presuppose that we have access to
> window.
> Am I missing something?
>
> self whenWindowChanged: [ :w |
> w whenClosedDo: [ self clear ] ].
>
>
> ComposableModel>>whenWindowChanged: aBlock
> window whenChangedDo: aBlock
>
>
> WindowModel>>whenClosedDo: aBlock
>
> isClosedHolder whenChangedDo: [:value |
> value ifTrue: [ aBlock value ] ]
>
>
i am lost with this code.
i cannot understand what is it for?
because by construction you start from building GUI representation of your
model..
in this case
- you create a controller
- and create a window (or widget AKA presenter) connected to it
if you wanna present your model differently, you just start from fresh
controller/presenter pair
but changing the presenter while keeping controller intact (hence
whenWindowChanged:) ?
in that case, if you really want that, you will need to wire all events
from widget
once you set it up.. and not just close events.. but all e.g.:
self whenWindowChanged: [ :w |
w whenClosedDo: [ ].
w whenKeyPressedDo: [..].
w whenInvalidUserDo: [..].
w whenSomethingWentWrongDo: [..].
w whateverHappensDo: [..].
].
i don't know, maybe i don't see it clearly. just trying to understand.
--
Best regards,
Igor Stasenko.
Nov. 16, 2014
Re: [Pharo-dev] [NB] NativeBoost and optCoerceNilToNull
by Igor Stasenko
On 15 November 2014 22:39, stepharo <stepharo(a)free.fr> wrote:
> Igor
>
> Could you document this part of NB?
> Write one page on your old blog so that after we can turn it into a real
> doc.
>
>
> i'd prefer to not change documentation, but implementation to match the
documentation.
>
> Stef
>
> On 15/11/14 22:28, Igor Stasenko wrote:
>
>
>
> On 15 November 2014 15:53, Max Leske <maxleske(a)gmail.com> wrote:
>
>> 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:
>>
>>
>> "#optCoerceNilToNull"
>> "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.
>>
>
> perhaps because it is not there? :)
> So, lets add it.
>
> - Related: there are instances where even non-pointer arguments are
>> allowed to be NULL. Why does optCoerceNilToNull only work for pointer types?
>>
>>
> like what? Suppose the argument type is a structure, e.g
> "struct foo bar", that is non-pointer type. What in this case the NULL
> value for the structure?
>
>
>> Igor! Help! :)
>>
>> Cheers,
>> Max
>>
>>
>
>
> --
> Best regards,
> Igor Stasenko.
>
>
>
--
Best regards,
Igor Stasenko.
Nov. 16, 2014