Pharo-dev
By thread
pharo-dev@lists.pharo.org
By month
Messages by month
- ----- 2026 -----
- 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
- 144613 messages
Re: [Pharo-dev] Squeak and Pharo speed differences
by Shaping
Hence graphics output necessarily lags input on Morphic. So these speed differences have nothing to do with vm performance and everything to do with GUI architecture.
Both Squeak and Pharo show the same delay for text selection latency. The architecture difference is not likely causing that.
Given that both Pharo and Squeak useorphic and hence nothing have the same tender-in-step architecture isnât the fact that they show the sane performance issue evidence that points to precisely this being the cause?
Yes, but not architecture, by which I think you mean the pushing of events versus the fixed-frequency regular loop in Morphic. I would expect a big variation in the Morphic case, but I donât know what the fixed frequency is; it could well under the noise floor. My first thought would be that getting the damage rects is the problem, but Iâve not seen the code.
How do we index or look up the word rectangle to render? Iâm think that is more likely the cause. Is a map created at method compile time and updated after text is moved during edits?
My understanding is that damage rectangles are retrieved,
Right, but this is the potentially slow partâthe retrieving or perhaps more specifically mapping a point to a rectangle containing a contiguous sequence of non-whitespace character (a word).
combined to produce a smaller (non-overlapping?) set, and that the entire morph tree is asked to render within these damage rectangles. You can read the gods for yourself.
Itâll be a while.
â¦.
I just tried some new experiments. I should have thought of these earlier. Character insertion and cursoring in any direction by one character have the same latency. Collecting the damage rectangle at the cursor position and around the selected word are both taking about the same time as far as I can tell with my eye, and this time is longer than in VW or any Windows app. But VW doesnât use the Windows message queue directly. All incoming Windows events are converted to Smalltalk equivalents and are queued on the Smalltalk side. And it works well. Why not mimic that pattern to get the extra speed? Does something in Squeak/Pharo architecture prevent us from doing that?
How do we set a multi-process time profiler running so that we donât need to eval blocks to get tallies. I just want to use the editor and watch method hit distribution. I see the Time profiler window; it seems to need a code snippet to work.
How is the JIT code cache cleared?
Dialect dependent. In Squeak/Pharo/Cuis IIRC Smalltalk voidCogVMState.
Okay.
Canât remember how itâs done in VW.
CompiledMethod allInstancesWeakly do: [:compiledMethod | compiledMethod flushCachedVMCode]
Baseline state: the only thing that comes to mind here is Collect All Garbage.
Thereâs also Smalltalk garbageCollectMost which just runs a scavenge. IIRC someInstance has a side effect of running a scavenge in VW.
Okay.
and then ensure, through the relevant introspection primitives,
What are these? What state features am I introspecting after the test? Sizes of heap subspaces? I can do Time microsecondsToRun: on the blocks.
In Squeak/Pharo/Cuis see Smalltalk vmParameterAt: or Smalltalk vm parameterAt: and senders.
Okay. I see this list:
parameterAt: parameterIndex
"parameterIndex is a positive integer corresponding to one of the VM's internal
parameter/metric registers. Answer with the current value of that register.
Fail if parameterIndex has no corresponding register.
VM parameters are numbered as follows:
1 end (v3)/size(Spur) of old-space (0-based, read-only)
2 end (v3)/size(Spur) of young/new-space (read-only)
3 end (v3)/size(Spur) of heap (read-only)
4 nil (was allocationCount (read-only))
5 nil (was allocations between GCs (read-write)
6 survivor count tenuring threshold (read-write)
7 full GCs since startup (read-only)
8 total milliseconds in full GCs since startup (read-only)
9 incremental GCs (SqueakV3) or scavenges (Spur) since startup (read-only)
10 total milliseconds in incremental GCs (SqueakV3) or scavenges (Spur) since startup (read-only)
11 tenures of surving objects since startup (read-only)
12-20 were specific to ikp's JITTER VM, now 12-19 are open for use
20 utc microseconds at VM start-up (actually at time initialization, which precedes image load).
21 root table size (read-only)
22 root table overflows since startup (read-only)
23 bytes of extra memory to reserve for VM buffers, plugins, etc (stored
in image file header).
24 memory threshold above which shrinking object memory (rw)
25 memory headroom when growing object memory (rw)
26 interruptChecksEveryNms - force an ioProcessEvents every N milliseconds (rw) 27 number of times mark loop iterated for current IGC/FGC (read-only) includes ALL marking
28 number of times sweep loop iterated for current IGC/FGC (read-only)
29 number of times make forward loop iterated for current IGC/FGC (read-only) 30 number of times compact move loop iterated for current IGC/FGC (read-only)
31 number of grow memory requests (read-only)
32 number of shrink memory requests (read-only)
33 number of root table entries used for current IGC/FGC (read-only)
34 number of allocations done before current IGC/FGC (read-only)
35 number of survivor objects after current IGC/FGC (read-only)
36 millisecond clock when current IGC/FGC completed (read-only)
37 number of marked objects for Roots of the world, not including Root Table entries for current IGC/FGC (read-only)
38 milliseconds taken by current IGC (read-only)
39 Number of finalization signals for Weak Objects pending when current IGC/FGC completed (read-only)
40 BytesPerOop for this image
41 imageFormatVersion for the VM
42 number of stack pages in use
43 desired number of stack pages (stored in image file header, max 65535)
44 size of eden, in bytes
45 desired size of eden, in bytes (stored in image file header)
46 machine code zone size, in bytes (Cog only; otherwise nil)
47 desired machine code zone size (stored in image file header; Cog only; otherwise nil)
48 various header flags. See getCogVMFlags.
49 max size the image promises to grow the external semaphore table to (0 sets to default, which is 256 as of writing)
50-51 nil; reserved for VM parameters that persist in the image (such as eden above)
52 root table capacity
53 number of segments (Spur only; otherwise nil)
54 total size of free old space (Spur only, otherwise nil)
55 ratio of growth and image size at or above which a GC will be performed post scavenge
56 number of process switches since startup (read-only)
57 number of ioProcessEvents calls since startup (read-only)
58 number of ForceInterruptCheck calls since startup (read-only)
59 number of check event calls since startup (read-only)
60 number of stack page overflows since startup (read-only)
61 number of stack page divorces since startup (read-only) 62 compiled code compactions since startup (read-only; Cog only; otherwise nil)
63 total milliseconds in compiled code compactions since startup (read-only; Cog only; otherwise nil)
64 the number of methods that currently have jitted machine-code
65 whether the VM supports a certain feature, MULTIPLE_BYTECODE_SETS is bit 0, IMMTABILITY is bit 1
66 the byte size of a stack page
67 the max allowed size of old space (Spur only; nil otherwise; 0 implies no limit except that of the underlying platform)
68 the average number of live stack pages when scanned by GC (at scavenge/gc/become et al)
69 the maximum number of live stack pages when scanned by GC (at scavenge/gc/become et al)
70 the vmProxyMajorVersion (the interpreterProxy VM_MAJOR_VERSION)
71 the vmProxyMinorVersion (the interpreterProxy VM_MINOR_VERSION)"
Shaping
May 19, 2020
Re: [Pharo-dev] Squeak and Pharo speed differences
by Eliot Miranda
Hi Shaping,
> On May 18, 2020, at 6:52 PM, Shaping <shaping(a)uurda.org> wrote:
>
> 
> 1. Double-click text selection in both Squeak and Pharo shows a 75-100 ms latency (eye-balled, estimated) between end of double click (button up on second click) and time of highlighting of selected text. It could be as low as 60 ms, but I doubt it, and thatâs still too long. I canât track the latency in VW 8.3.2. Itâs too short, probably 30 ms or less, and is under my noise floor. Notepad latencies are even lower. The difference between VW and Notepad is not enough to complain about. Neither is noticeable in passing. The difference between VW and Pharo/Squeak latencies is a little painful/distracting. Itâs very much in your face, and you are keenly aware that you are waiting for something to happen before you can resume your thoughts about the code.
>
> 2. Stepping in the Pharo debugger is slow (Squeak is fine). The latencies between the step-click event and selection of the next evaluable is a solid 100 ms (again estimated). Feels more like 150-175 ms much of the time. This is actually hard to work with.
>
> Neither of these unequivocally demonstrates VM performance.
>
> I know. This comment is not about the VM. VM performance is another issue. This comment is only about general usability as a function of the latencies, whatever the cause.
>
> Both are more likely to derive from overall GUI architecture.
>
> Yup.
>
> In particular, VWâs display architecture is a direct stimulus-response i/o model where input results in a transformation producing immediate rendering, whereas Morphic is an animation architecture where input results in a new state but no rendering. The Morphic GUI is rendered separately on every âstepâ of the system.
>
> Okay.
>
> Hence graphics output necessarily lags input on Morphic. So these speed differences have nothing to do with vm performance and everything to do with GUI architecture.
>
> Both Squeak and Pharo show the same delay for text selection latency. The architecture difference is not likely causing that.
Given that both Pharo and Squeak useorphic and hence nothing have the same tender-in-step architecture isnât the fact that they show the sane performance issue evidence that points to precisely this being the cause?
> How do we index or look up the word rectangle to render? Iâm think that is more likely the cause. Is a map created at method compile time and updated after text is moved during edits?
My understanding is that damage rectangles are retrieved, combined to produce a smaller (non-overlapping?) set, and that the entire morph tree is asked to render within these damage rectangles. You can read the gods for yourself.
> Where is VisualWorks significantly faster than either Squeak or Pharo?
>
> VW 8.3.2 faster:
>
> 1. Text selection.
>
> 2. Repeat-key rate in VW is smoother (not perfect; I see a few pauses). Pharoâs repeat-key rate is the same or a little slower, there are more pauses, and distribution of those pause-times is slightly wider for Pharo 9, as if event flow isnât as smooth as it could be (because text/cursor rendering is a not efficient?). This is a minor issue, not a practical problem. I did the test in a workspace in both cases.
>
>
> Pharo 9 same or faster:
>
> Everything else in the GUI, like window openings/closings, menu openings/closings work at nearly the same speed, or Pharo 9 is faster.
>
> Opening a system browser in VW 8.3.2 and Pharo 9 takes about the same time. If you scrutinize, you can see that Pharo system browser open times are often about 2/3 to 4/5 of the VW times. This action is never faster in VW.
>
> Popup menus in Pharo 9 are noticeably faster than those in VW 8.3.2. Instant--delightful.
>
>
> Specifically which VisualWorks VM or lower level facilities are much faster than the Cog VM? Do you have benchmarks?
>
> No, I donât, but I find the subject interesting, and would like to pursue it. Iâm trying to get some pressing work done in VW (as I contemplate jumping ship to Pharo/Squeak). Itâs not a good time for excursions, but here I am playing with Squeak/Pharo, anyway. I want to dig deeper at some future date.
>
> Do you have a specific procedure you like to use when benchmarking the VW VM?
>
> Any VM. Express the benchmark as a block. If the benchmark is not trying to measure JIT and/or GC overhead then before the block is run make sure to put the vm in some initialized state wrt hitting and/or GC, eg by voiding the JIT code cache,
>
> How is the JIT code cache cleared?
Dialect dependent. In Squeak/Pharo/Cuis IIRC Smalltalk voidCogVMState. Canât remember how itâs done in VW.
> and/or forcing a scavenge or a global GC. Then run the block twice, reporting itâs second iteration, to ensure all code is JITted.
>
> Okay, so the above procedure tests execution-engine efficiency apart from JIT and GC efficiency.
>
> If attempting to measure JIT and/or GC overhead then do the same wet getting the vm to some baseline consistent initial state
>
> Baseline state: the only thing that comes to mind here is Collect All Garbage.
Thereâs also Smalltalk garbageCollectMost which just runs a scavenge. IIRC someInstance has a side effect of running a scavenge in VW.
>
> and then ensure, through the relevant introspection primitives,
>
> What are these? What state features am I introspecting after the test? Sizes of heap subspaces? I can do Time microsecondsToRun: on the blocks.
In Squeak/Pharo/Cuis see Smalltalk vmParameterAt: or Smalltalk vm parameterAt: and senders.
> that after the benchmark has run the events desired to be benchmarked have actually taken place.
>
> Iâm thinking most checks on state will involve running more Smalltalk, not just primitives.
>
> If a micobenchmark then ensure that eg loop, block invocation, arithmetic, overheads are either minimised wrt the code being benchmarked or subtracted from the code being benchmarked.
>
> Okay.
>
> i.e. make sure the benchmark is repeatable (benchmark an initial used state). make sure the benchmark measures what is intended to be benchmarked and not some overhead.
>
> Right. I donât see how to guarantee some known starting state except to collect all garbage.
See answers above.
> Shaping
May 19, 2020
Re: [Pharo-dev] Squeak and Pharo speed differences
by Shaping
1. Double-click text selection in both Squeak and Pharo shows a 75-100 ms latency (eye-balled, estimated) between end of double click (button up on second click) and time of highlighting of selected text. It could be as low as 60 ms, but I doubt it, and thatâs still too long. I canât track the latency in VW 8.3.2. Itâs too short, probably 30 ms or less, and is under my noise floor. Notepad latencies are even lower. The difference between VW and Notepad is not enough to complain about. Neither is noticeable in passing. The difference between VW and Pharo/Squeak latencies is a little painful/distracting. Itâs very much in your face, and you are keenly aware that you are waiting for something to happen before you can resume your thoughts about the code.
2. Stepping in the Pharo debugger is slow (Squeak is fine). The latencies between the step-click event and selection of the next evaluable is a solid 100 ms (again estimated). Feels more like 150-175 ms much of the time. This is actually hard to work with.
Neither of these unequivocally demonstrates VM performance.
I know. This comment is not about the VM. VM performance is another issue. This comment is only about general usability as a function of the latencies, whatever the cause.
Both are more likely to derive from overall GUI architecture.
Yup.
In particular, VWâs display architecture is a direct stimulus-response i/o model where input results in a transformation producing immediate rendering, whereas Morphic is an animation architecture where input results in a new state but no rendering. The Morphic GUI is rendered separately on every âstepâ of the system.
Okay.
Hence graphics output necessarily lags input on Morphic. So these speed differences have nothing to do with vm performance and everything to do with GUI architecture.
Both Squeak and Pharo show the same delay for text selection latency. The architecture difference is not likely causing that.
How do we index or look up the word rectangle to render? Iâm think that is more likely the cause. Is a map created at method compile time and updated after text is moved during edits?
Where is VisualWorks significantly faster than either Squeak or Pharo?
VW 8.3.2 faster:
1. Text selection.
2. Repeat-key rate in VW is smoother (not perfect; I see a few pauses). Pharoâs repeat-key rate is the same or a little slower, there are more pauses, and distribution of those pause-times is slightly wider for Pharo 9, as if event flow isnât as smooth as it could be (because text/cursor rendering is a not efficient?). This is a minor issue, not a practical problem. I did the test in a workspace in both cases.
Pharo 9 same or faster:
Everything else in the GUI, like window openings/closings, menu openings/closings work at nearly the same speed, or Pharo 9 is faster.
Opening a system browser in VW 8.3.2 and Pharo 9 takes about the same time. If you scrutinize, you can see that Pharo system browser open times are often about 2/3 to 4/5 of the VW times. This action is never faster in VW.
Popup menus in Pharo 9 are noticeably faster than those in VW 8.3.2. Instant--delightful.
Specifically which VisualWorks VM or lower level facilities are much faster than the Cog VM? Do you have benchmarks?
No, I donât, but I find the subject interesting, and would like to pursue it. Iâm trying to get some pressing work done in VW (as I contemplate jumping ship to Pharo/Squeak). Itâs not a good time for excursions, but here I am playing with Squeak/Pharo, anyway. I want to dig deeper at some future date.
Do you have a specific procedure you like to use when benchmarking the VW VM?
Any VM. Express the benchmark as a block. If the benchmark is not trying to measure JIT and/or GC overhead then before the block is run make sure to put the vm in some initialized state wrt hitting and/or GC, eg by voiding the JIT code cache,
How is the JIT code cache cleared?
and/or forcing a scavenge or a global GC. Then run the block twice, reporting itâs second iteration, to ensure all code is JITted.
Okay, so the above procedure tests execution-engine efficiency apart from JIT and GC efficiency.
If attempting to measure JIT and/or GC overhead then do the same wet getting the vm to some baseline consistent initial state
Baseline state: the only thing that comes to mind here is Collect All Garbage.
and then ensure, through the relevant introspection primitives,
What are these? What state features am I introspecting after the test? Sizes of heap subspaces? I can do Time microsecondsToRun: on the blocks.
that after the benchmark has run the events desired to be benchmarked have actually taken place.
Iâm thinking most checks on state will involve running more Smalltalk, not just primitives.
If a micobenchmark then ensure that eg loop, block invocation, arithmetic, overheads are either minimised wrt the code being benchmarked or subtracted from the code being benchmarked.
Okay.
i.e. make sure the benchmark is repeatable (benchmark an initial used state). make sure the benchmark measures what is intended to be benchmarked and not some overhead.
Right. I donât see how to guarantee some known starting state except to collect all garbage.
Shaping
May 19, 2020
Re: [Pharo-dev] Squeak and Pharo speed differences
by Eliot Miranda
Hi Shaping,
> On May 16, 2020, at 4:33 AM, Shaping <shaping(a)uurda.org> wrote:
>
> 
> Hi Eliot.
>
>
> Generally, comparing VisualWorks to either Squeak or Pharo or both, what are the most pressing speed problems?
>
> 1. Double-click text selection in both Squeak and Pharo shows a 75-100 ms latency (eye-balled, estimated) between end of double click (button up on second click) and time of highlighting of selected text. It could be as low as 60 ms, but I doubt it, and thatâs still too long. I canât track the latency in VW 8.3.2. Itâs too short, probably 30 ms or less, and is under my noise floor. Notepad latencies are even lower. The difference between VW and Notepad is not enough to complain about. Neither is noticeable in passing. The difference between VW and Pharo/Squeak latencies is a little painful/distracting. Itâs very much in your face, and you are keenly aware that you are waiting for something to happen before you can resume your thoughts about the code.
>
> 2. Stepping in the Pharo debugger is slow (Squeak is fine). The latencies between the step-click event and selection of the next evaluable is a solid 100 ms (again estimated). Feels more like 150-175 ms much of the time. This is actually hard to work with.
Neither of these unequivocally demonstrates VM performance. Both are more likely to derive from overall GUI architecture. N particular, VWâs display architecture is a direct stimulus-response i/o model where input results in a transformation producing immediate rendering, whereas Morphic is an animation architecture where input results in a new state but no rendering. The Morphic GUI is rendered separately on every âstepâ of the system. Hence graphics output necessarily lags input on Morphic. So these speed differences have nothing to do with vm performance and everything to do with GUI architecture.
>
> Where is VisualWorks significantly faster than either Squeak or Pharo?
>
> VW 8.3.2 faster:
>
> 1. Text selection.
>
> 2. Repeat-key rate in VW is smoother (not perfect; I see a few pauses). Pharos repeat-key rate is the same or a little slower, there are more pauses, and distribution of those pause-times is slightly wider for Pharo 9, as if event flow isnât as smooth as it could be (because text/cursor rendering is a not efficient?). This is a minor issue, not a practical problem. I did the test in a workspace in both cases.
>
>
> Pharo 9 same or faster:
>
> Everything else in the GUI, like window openings/closings, menu openings/closings work at nearly the same speed, or Pharo 9 is faster.
>
> Opening a system browser in VW 8.3.2 and Pharo 9 takes about the same time. If you scrutinize, you can see that Pharo system browser open times are often about 2/3 to 4/5 of the VW times. This action is never faster in VW.
>
> Popup menus in Pharo 9 are noticeably faster than those in VW 8.3.2. Instant--delightful.
>
>
> Specifically which VisualWorks VM or lower level facilities are much faster than the Cog VM? Do you have benchmarks?
>
> No, I donât, but I find subject interesting, and would like to pursue it. Iâm trying to get some pressing work done in VW (as I contemplate jumping ship to Pharo/Squeak). Itâs not a good time for excursions, but here I am playing with Squeak/Pharo, anyway. I want to dig deeper at some future date.
>
> Do you have a specific procedure you like to use when benchmarking the VW VM?
Any VM. Express the benchmark as a block. If the benchmark is not trying to measure JIT and/or GC overhead then before the block is run make sure to put the vm in some initialized state wrt hitting and/or GC, eg by voiding the JIT code cache, and/or forcing a scavenge or a global GC. Then run the block twice, reporting itâs second iteration, to ensure all code is JITted.
If attempting to measure JIT and/or GC overhead then do the same wet getting the vm to some baseline consistent initial state and then ensure, through the relevant introspection primitives, that after the benchmark has run the events desired to be benchmarked have actually taken place.
If a micobenchmark then ensure that eg loop, block invocation, arithmetic, overheads are either minimised wrt the code being benchmarked or subtracted from the code being benchmarked.
i.e. make sure the benchmark is repeatable (benchmark an initial used state). make sure the benchmark measures what is intended to be benchmarked and not some overhead.
>
>
> Shaping
Cheers, Eliot,
_,,,^..^,,,_ (phone)
May 18, 2020
[ANN] Smalltalkhub Readonly Migration tuesday 8hs - server maintenance / migration
by Guillermo Polito
Hi all,
We wanted to announce that, as announced previously, Smalltalkhub is going read only from tomorrow, 8h central Europe time.
This means the service could be down for a couple of hours until the sync of data is done.
Keep tuned,
Guille and Christophe in behalf of the RMoD team
May 18, 2020
Re: [Pharo-dev] [Vm-dev] Squeak and Pharo speed differences
by Ben Coman
On Sun, 17 May 2020 at 15:06, Ronie Salgado <roniesalg(a)gmail.com> wrote:
>
> By the release of Pharo 7 the idle time was increased to 50 ms in order to
> reduce the CPU usage on the cloud and reduce costs. If I remember correctly
> Ben Coman did a PR that changes the way the delays are scheduled in order
> to select the most appropriate time for sleeping, but since the PR was to
> close to a Pharo release, it was decided to not be included for safeness
> reasons. We should resurrect that change soon because the default latency
> is really bad.
>
hi Ronie,
The PR that comes to mind essentially did two things:
1. Moved the native-sleep from the Idle-thread to the DelayScheduler-thread
2. Added an Idle-flag set in the Idle-thread and reset when the
DelayScheduler-thread wakes a delayed-thread.
It was based on the following logic...
1. When the existing Idle-thread is running, its knows that there are no
other runable threads and so should native-sleep. However there are
probably some delays that expire soon, but the Idle-thread doesn't know
when, so it native-sleeps for a fixed period - possibly sleeping past a
delay expiry.
2. If the Idle-thread were to send messages to discover how long until the
next delay-expiry, that could race with an actual delay-expiry firing the
timingSemaphore to premptively wake the DelayScheduler-thread, which
subsequently wakes the delayed-thread - and I couldn't reason through the
combination of multithreaded line-by-line sequences.
3. It simplified things to ensure there is only ONE sequence to reason
about... where the only thing the Idle-thread does is set an Idle-flag then
immediately fire the timingSemaphore to invoke the DelayScheduler-thread.
When that sees the Idle-flag it native-sleeps the appropriate time until
the next delay expiry. Upon waking from that it immediately schedules the
delayed-thread and resets the Idle-flag.
It shouldn't be too hard to recreate, but it may be redundant. I'd need
direction from those working on the IdleVM
cheers -ben
May 18, 2020
Re: [Pharo-dev] [Mm10s] 2020-05-18
by tesonep@gmail.com
### Last week:
- Large Images Updating Baseline
- Pharo Sync Meeting
- LiveTyping in Pharo: Recovering the build, fixing some problems
- JIT Documentation / Test
- Benchmarks with the Lowcode variant
- Meeting with Esteban
- Activate setting to run build in Sista w/FullBlockClosures
- Implementing the Decompiler for FullBlockClosures
- Fixing RecompileAll / recompile: with traits (it looks like it was
never working), discovered thank to the tests - and activating
FullBlockClosures
- Working in PICs with Guille & Stef
- Idle VM stabilization
### This week (starting 2020-05-18):
- Missing parts in the Image to have Sista + FullBlockClosure
- Running multiple testing images
- Propagating changes in many images
- [VM] Configuring Defaults from the build process.
- Pharo Bootstrap in 64 bits
- Large Images: Checking Remaining issues
- Reviewing PR & Issues
On Mon, May 18, 2020 at 10:00 AM Esteban Lorenzano <estebanlm(a)netc.eu> wrote:
>
> Short list today ;)
>
> ### Last week:
>
> * [NewTools-Playground] polishing details and get it ready to test internally (which now is the case :P)
> * Documenting transmissions sub-framework.
> * Spent a lot of time preparing integration of Spec2 0.6 into P9.
>
> ### This week (starting 2020-05-18):
>
> - Finish 0.6 merge.
> - Start working with NewTools-Inspector
> - verify some errors in UFFI
> - Gtk backend: verify some problems with low-level events
>
--
Pablo Tesone.
tesonep(a)gmail.com
May 18, 2020
Re: [Pharo-dev] would it make sense to have ZnCharacterReadStream and other readstream reply to readstream
by Sven Van Caekenberghe
https://github.com/svenvc/zinc/commit/7a4b4bda502092186d03b467dc6baf9d1a76b…
> On 13 May 2020, at 17:49, Sven Van Caekenberghe <sven(a)stfx.eu> wrote:
>
> Yes, I know the pattern and yes it would make sense. I will study this a bit.
>
>> On 13 May 2020, at 17:21, Stéphane Ducasse <stephane.ducasse(a)inria.fr> wrote:
>>
>> Hi sven
>>
>> I like the pattern
>>
>>
>> on: aStringOrStream
>>
>> | stream |
>> stream := aStringOrStream readStream
>>
>> but I cannot apply with Zn because ZnCharacterReadStream and friends do not answer readstream
>>
>> What is your point of view on it.
>>
>>
>> S.
>> --------------------------------------------
>> Stéphane Ducasse
>> http://stephane.ducasse.free.fr / http://www.pharo.org
>> 03 59 35 87 52
>> Assistant: Julie Jonas
>> FAX 03 59 57 78 50
>> TEL 03 59 35 86 16
>> S. Ducasse - Inria
>> 40, avenue Halley,
>> Parc Scientifique de la Haute Borne, Bât.A, Park Plaza
>> Villeneuve d'Ascq 59650
>> France
>>
>
May 18, 2020
[Mm10s] 2020-05-18
by Esteban Lorenzano
Short list today ;)
### Last week:
* [NewTools-Playground] polishing details and get it ready to test internally (which now is the case :P)
* Documenting transmissions sub-framework.
* Spent a lot of time preparing integration of Spec2 0.6 into P9.
### This week (starting 2020-05-18):
- Finish 0.6 merge.
- Start working with NewTools-Inspector
- verify some errors in UFFI
- Gtk backend: verify some problems with low-level events
May 18, 2020
pharo-contributions/pharo-unicode
by Sven Van Caekenberghe
Hi,
I am not 100% sure how things are organised, but I would like access to pharo-contributions/pharo-unicode, so that I can commit directly.
I see that Alistair did the initial commits (copying from history), but I can't see how he could have done that. I access granted at the pharo-contributions level, or below ?
Thx,
Sven
May 17, 2020