Pharo-dev
By thread
pharo-dev@lists.pharo.org
By month
Messages by month
- ----- 2026 -----
- 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
March 2017
- 718 messages
Good way to promote Smalltalk
by askoh
Being able to shine in software competitions is a very good way for Smalltalk
to get exposure. We should present our technologies as such competitions as
much as possible. Enjoy the case below.
http://www.cincomsmalltalk.com/main/2017/03/one-cincom-engineer-got-450-pro…
Aik-Siong Koh
--
View this message in context: http://forum.world.st/Good-way-to-promote-Smalltalk-tp4939758.html
Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
March 23, 2017
Fwd: GSoC 2017: Tips on Reviewing Student Proposals
by Serge Stinckwich
Dear all,
this is a short update for the Google Summer of Code 2017.
The students have to submit your proposals on the Google website before
April 3rd.
See details below.
I dunno exactly who are the students/mentors who are submitting a proposal
for Pharo.
Can the mentors (or students) send me in private an email about the name of
the students/mentors + a title of your project ?
Thank you very much.
Regards,
---------- Forwarded message ----------
From: Google Summer of Code <summerofcode-noreply(a)google.com>
Date: Mon, Mar 20, 2017 at 7:26 PM
Subject: GSoC 2017: Tips on Reviewing Student Proposals
To: sergestinckwich(a)gmail.com
[image: Google Summer of Code]
Hi Serge Stinckwich,
Thank you for registering to be a GSoC 2017 mentor or organization
administrator!
We have many new mentors and organizations this year so we wanted to go
through some important details to help you understand the process for the
next couple of months.
Please take the time to reach out to your organization administrator about
what is expected of you this year as a mentor. We also encourage you to
read the entire Google Summer of Code mentor manual
<http://write.flossmanuals.net/gsoc-mentoring/about-this-manual/> and the
Roles and Responsibilities doc if you haven't done so already. Both the
manual and Roles and Responsibilities doc were written by GSoC veteran Org
Admins, Mentors, former students and Google Program Admins. They have
helpful information about the program and how to participate successfully
at each step in GSoC.
*New GSoC Orgs*: the section about participating in your first GSoC has
some great tips.
To see all emails sent to mentors and org admins visit this page
<https://developers.google.com/open-source/gsoc/2017/mentor-oa-announcements>
that will continue to be updated throughout the program.
Student Proposals
As of today, students are able to submit their proposals via the website.
Each student may submit up to 5 proposals to the program. They can submit
multiple proposals to the same organization for different projects if they
wish.
Historically, the students with the best proposals reach out to the orgs
early to receive feedback before submitting their final proposal. To
encourage more students to seek feedback on their proposals we made draft
proposals part of the official proposal workflow. Be sure to refresh your
dashboard periodically so that you can see when new drafts are ready to
review. You will not receive an email. We are encouraging the use of Google
Docs for proposals as this will allow you to comment directly on the
proposal (if the student sets their sharing settings correctly).
Over the next couple of weeks you will be interacting with dozens and in
some cases hundreds of students interested in working with your project. We
know many of you may become overwhelmed and some students can be impatient,
so you may want to have an auto-responder or some sort of canned response
to let students know you are looking at their proposals but it could take X
days to receive a response.
Students *must* submit their final proposal as a PDF through the website.
It will be visible to you after the deadline for student applications
(April 3 16:00 UTC). You should make your decisions on which students to
accept based on the contents of the final PDF proposal and your
interactions with the student.
Students can delete their proposals and you will not receive an email of
the deletion. If a proposal disappears from your list, it is likely because
they deleted it.
Working with Students
All student projects must have at least 1 mentor assigned to the project.
We strongly encourage assigning a second mentor as a backup mentor or
co-mentor. A mentor should not be the primary mentor for more than one or
two students. Mentoring can be a lot of work and we donât want anyone to
burn out and become frustrated with the program.
Important GSoC 2017 Dates and Deadlines
*March 20 - April 3 16:00 UTC*: Mentors and Org Admins review student draft
proposals and give students feedback on their proposals.
*April 3 - 16:* Review all submitted student proposals with your org and
consider how many you want to select and how many you can handle. Decide on
the minimum/maximum number of student slots to request.
*April 17, 16:00 UTC*: Deadline to submit slot requests (OAs enter requests)
*April 19, 16:00 UTC*: Slot allocations are announced by Google
*April 19 - 24 16:00 UTC* : Select the proposals to become student
projects. At least 1 mentor must be assigned to each project before it can
be selected. (OAs enter selections)
*April 24 - May 4:* Google Program Admins will do another review of student
eligibility
*May 4*: Accepted GSoC students/projects are announced
*May 4 - 29*: Community Bonding Period
*May 30*: Coding begins
*June 26-30*: First evaluation period - mentors evaluate students, students
evaluate mentors
*July 24 - 28*: Second evaluation period - mentors evaluate students,
students evaluate mentors
*August 21- 29*: Students wrap up their projects and submit final
evaluation of their mentor
*August 29 - September 5*: Mentors submit final evaluations of students
*September 6*: Students passing GSoC 2017 are announced
Mentors Mailing List
If you want to be included on the GSoC mentors mailing list be sure to opt
in on your User Profile page. We will add anyone who has opted in to the
list every few days for the next month. And then every couple of weeks
throughout the program. You can always opt out once you have been added by
unsubscribing using the link on any of the emails.
Contact Us
Please use the gsoc-support(a)google.com email address for questions so that
anyone on our team can answer your question for you.
We look forward to working with all of you over these next 6 months! Thanks
again for being a mentor for GSoC 2017!
Google Open Source Programs Office
This email was sent to serge.stinckwich(a)gmail.com.
You are receiving this email because of your participation in Google Summer
of Code 2017.
https://summerofcode.withgoogle.com
To leave the program and stop receiving all emails, you can go to your
profile <https://summerofcode.withgoogle.com/dashboard/profile/> and
request deletion of your program profile.
For any questions, please contact gsoc-support(a)google.com. Replies to this
message go to an unmonitored mailbox.
© 2017 Google Inc., 1600 Amphitheatre Parkway, Mountain View, CA 94043, USA
--
Serge Stinckwich
UCN & UMI UMMISCO 209 (IRD/UPMC)
Every DSL ends up being Smalltalk
http://www.doesnotunderstand.org/
March 23, 2017
Re: [Pharo-dev] More Windows VM Crashing -_-
by Aliaksei Syrel
Hi all,
I got a strange crash on Mac, never saw any similar crash dump.
Image: 6.0 #60447
5.0 Mac OS X built on Mar 10 2017 13:46:32 UTC Compiler: 4.2.1 Compatible
> Apple LLVM 7.3.0 (clang-703.0.31) [Production Spur VM]
> CoInterpreter * VMMaker.oscog-eem.2146 uuid: da6aee6e-4738-4161-b221-3c8135ac1bf7
> Mar 10 2017
> StackToRegisterMappingCogit * VMMaker.oscog-eem.2146 uuid:
> da6aee6e-4738-4161-b221-3c8135ac1bf7 Mar 10 2017
> VM: 201703101242 https://github.com/pharo-project/pharo-vm.git $ Date:
> Fri Mar 10 13:42:34 2017 +0100 $
> Plugins: 201703101242 https://github.com/pharo-project/pharo-vm.git $
First few lines of crash (the whole dump is in attachment):
C stack backtrace & registers:
eax 0x849671d0 ebx 0x7c6e3820 ecx 0x90301065 edx 0xe0000000
edi 0x7c6e3820 esi 0x7c6e3820 ebp 0xbff40708 esp 0xbff404c8
eip 0x9ef29013
0 libobjc.A.dylib 0x9ef29013 objc_msgSend + 19
1 Pharo 0x0010227a reportStackState + 706
2 Pharo 0x001025d2 sigsegv + 113
3 libsystem_platform.dylib 0x9f98bebb _sigtramp + 43
4 ??? 0xffffffff 0x0 + 4294967295
5 CoreFoundation 0x94671888 _CFAutoreleasePoolPop +
24
6 HIToolbox 0x9401fa35
IMKInputSessionProcessEventRefWithCompletionHandler + 125
7 HIToolbox 0x9401ebd2
InputMethodInstanceProcessEventRef_WithCompletionHandler + 135
8 HIToolbox 0x94006c9c __TSMEventToInputMethod_
WithCompletionHandler_block_invoke + 121
9 HIToolbox 0x9400b3fa __TrySendLockEvent_
BeforeEventToInputMethod_WithContinuationHandler_block_invoke + 27
10 HIToolbox 0x9400b496
__SendTSMDocumentLockEvent_WithCompletionHandler_block_invoke + 90
11 HIToolbox 0x93ddc6a3 __SendTSMEvent_
WithCompletionHandler_block_invoke + 66
12 HIToolbox 0x93ddf651 __
SendEventToEventTargetWithCompletionHandler_block_invoke + 22
Cheers,
Alex
On 22 March 2017 at 21:26, Esteban Lorenzano <estebanlm(a)gmail.com> wrote:
> Hi,
>
> I do not think this is a windows problem.
> At least, I had some crashes when performing compaction last days tooâ¦
> this is a crash I collected 10 mins ago, in a mac.
>
> cheers,
> Esteban
>
>
>
>
> > On 22 Mar 2017, at 10:31, Peter Uhnak <i.uhnak(a)gmail.com> wrote:
> >
> > Hi,
> >
> > Originally I thought my VM is crashing because of FT, so I applied some
> fix from FogBugz (that is now part of Pharo 6), but that didn't help.
> >
> > So I disabled FT in settings and changed fonts to non-FT ones; didn't
> help.
> > So I completely removed FT2Plugin.dll (now settings just states that FT
> fonts are not available), but that didn't help either.
> >
> > And obviously there is no crash.dmp whatsoever (this is latest Windows
> VM).
> >
> > This crash is extremely frustrating because the crash happens _during
> saving_, which means I am losing code all the time and have to constantly
> recover them, which really makes my blood boil.
> >
> > Without crash dump I don't even know where and how to start
> investigating. Windows kindly opens Visual Studio when Pharo crashes, but
> all it shows to me is assembly, which is not very useful to me. I can
> somewhat orient myself in the C code of the VM (as I've alredy fixed some
> other issues in the VM), but here I am lost.
> >
> > <SNIP>
> > 00407D7F ret
> > 00407D80 mov eax,dword ptr ds:[00596E44h]
> > 00407D85 test al,3
> > 00407D87 jne 00407DB2
> > 00407D89 mov ecx,dword ptr ds:[596E08h]
> > 00407D8F lea edx,[ecx-1]
> > 00407D92 cmp eax,edx
> > 00407D94 jb 00407DB2
> > 00407D96 cmp dword ptr ds:[596E10h],eax
> > 00407D9C jb 00407DB2
> > 00407D9E mov ecx,dword ptr ds:[5B89D0h]
> > 00407DA4 cmp dword ptr [eax-4],ecx
> > 00407DA7 jb 00407DB2
> > 00407DA9 mov eax,dword ptr ds:[00596E28h]
> > ---> 00407DAE movzx eax,byte ptr [eax]
> > 00407DB1 ret
> >
> > eax = 00000000
> > ecx = 04700000
> > </SNIP>
> >
> > So my question I guess is:
> > How can we fix this? How can I help fix this? Because I've lost
> countless days of time and energy on this f***ing problem...
> >
> > Peter
> >
>
>
>
March 23, 2017
Re: [Pharo-dev] [Vm-dev] [ANN] PharoNOS
by Igor Stasenko
On 23 March 2017 at 00:03, Ronie Salgado <roniesalg(a)gmail.com> wrote:
>
> Hi,
>
> With the experimental Lowcode backend for the UFFI, it is possible to call
> functions with almost arbitrary calling conventions. For some of the
> special assembly instructions that are required by this project, I could
> add the following extra instruction:
> - storeIntoSpecialRegister: {CR0, CR1, CR2, CR3, CR4, CR5, GDT, LDT, IDT)
> - loadFromSpecialRegister:
> - loadFromIOPortU?Int{8,16,32}:
> - storeIntoIOPortU?Int{8,16,32}:
>
> As for the interruptions, there are far trickier because they can be
> triggered in any time. They probably would require some special trampoline
> for storing/restoring the VM state, something similar to the callbacks.
>
> Currently I am finishing a refactoring of the Lowcode register allocator,
> so the Lowcode VM is out of service for this week :) .
>
> Hey, guys, i'd like to stress, that AsmJit
>> is quite standalone part of NB, and nothing prevents you to use it in own
>> way, not the way NB was..
>> Because NB was born to make nice integration between machine code and VM
>> , and providing FFI,
>> and as a demonstration that generating machine code IS possible and quite
>> doable from within an image.
>>
>> But there's a tons of ways how you could generate machine code, and then
>> use it outside the scope of FFI.
>> You could just make own llittle primitive, that just makes a call on
>> arbitrary address, and put your generated code on it.. Voila.
>> Again, you could store generated code not in method(s) trailer , but
>> somewhere else.. it just up to you, after all.
>> For instance i had parts that were storing generated code directly in
>> COG's JITter, replacing its primitive section.
>> So, that make a nice integration with JIT, that just using your code as a
>> primitive for given method..
>> All is doable, when you working at lowest level, you just need to think
>> how to expose it in convenient way.
>>
>
> For GPU compilation, I implemented a SSA based intermediate representation
> very similar to the one used by LLVM. As a experiment, I did a very basic
> machine code generator which can produce relocatable ELF32 and ELF64 object
> files, which can be linked with any C library or program. With this I
> managed to implement a basic ahead of time compiled Smalltalk runtime.
>
> Before starting that backend, I took a look on AsmJit and the VirtualCPU
> and I did not like the dependencies and some details about the stack.
> However, now I do not like the low level backend so I started refactoring
> into a separate package, but I still think that I should take yet another
> look to AsmJit and the VirtualCPU, so I am wondering where is actually
> located the latest version of these two projects.
>
> IIRC, the stack (but more precisely - temporaries) management in AsmJIT
are implemented in own classes, that doing the job of allocating stack
space and assigning each temporary to specific place on stack.
As well, as calling convention. Nothing prevents you from adding own by
implementing their protocol(s).
Or you may leave it as a whole, except that then you'll have to handle it
by yourself. And of course, it is already there, since initial version has
no such functionality at all,
all you have to do is to tell:
asm noStackFrame.
And so, it will leave you without it.
As for where it located - see at smalltalkhub , if i remember Max were
working on that and made quite complete coverage of ARM instruction set. (
http://smalltalkhub.com/#!/~maxmattone/AsmJit-ARM)
I don't remember if we merged the ARM support into main branch.. But i
think you can figure it out.
P.S. ohh, you see.. it just never ending quest to keep dispelling people's
perception, that there's something impossible or wrong with these things
or that's there are something that won't make things possible.. So, they
choose to go with C :)
Best regards,
> Ronie
>
>
--
Best regards,
Igor Stasenko.
March 23, 2017
Re: [Pharo-dev] [ANN] PharoNOS
by Ronie Salgado
Hi,
With the experimental Lowcode backend for the UFFI, it is possible to call
functions with almost arbitrary calling conventions. For some of the
special assembly instructions that are required by this project, I could
add the following extra instruction:
- storeIntoSpecialRegister: {CR0, CR1, CR2, CR3, CR4, CR5, GDT, LDT, IDT)
- loadFromSpecialRegister:
- loadFromIOPortU?Int{8,16,32}:
- storeIntoIOPortU?Int{8,16,32}:
As for the interruptions, there are far trickier because they can be
triggered in any time. They probably would require some special trampoline
for storing/restoring the VM state, something similar to the callbacks.
Currently I am finishing a refactoring of the Lowcode register allocator,
so the Lowcode VM is out of service for this week :) .
Hey, guys, i'd like to stress, that AsmJit
> is quite standalone part of NB, and nothing prevents you to use it in own
> way, not the way NB was..
> Because NB was born to make nice integration between machine code and VM ,
> and providing FFI,
> and as a demonstration that generating machine code IS possible and quite
> doable from within an image.
>
> But there's a tons of ways how you could generate machine code, and then
> use it outside the scope of FFI.
> You could just make own llittle primitive, that just makes a call on
> arbitrary address, and put your generated code on it.. Voila.
> Again, you could store generated code not in method(s) trailer , but
> somewhere else.. it just up to you, after all.
> For instance i had parts that were storing generated code directly in
> COG's JITter, replacing its primitive section.
> So, that make a nice integration with JIT, that just using your code as a
> primitive for given method..
> All is doable, when you working at lowest level, you just need to think
> how to expose it in convenient way.
>
For GPU compilation, I implemented a SSA based intermediate representation
very similar to the one used by LLVM. As a experiment, I did a very basic
machine code generator which can produce relocatable ELF32 and ELF64 object
files, which can be linked with any C library or program. With this I
managed to implement a basic ahead of time compiled Smalltalk runtime.
Before starting that backend, I took a look on AsmJit and the VirtualCPU
and I did not like the dependencies and some details about the stack.
However, now I do not like the low level backend so I started refactoring
into a separate package, but I still think that I should take yet another
look to AsmJit and the VirtualCPU, so I am wondering where is actually
located the latest version of these two projects.
Best regards,
Ronie
2017-03-22 14:29 GMT-03:00 Igor Stasenko <siguctua(a)gmail.com>:
>
> Hey, guys, i'd like to stress, that AsmJit
> is quite standalone part of NB, and nothing prevents you to use it in own
> way, not the way NB was..
> Because NB was born to make nice integration between machine code and VM ,
> and providing FFI,
> and as a demonstration that generating machine code IS possible and quite
> doable from within an image.
>
> But there's a tons of ways how you could generate machine code, and then
> use it outside the scope of FFI.
> You could just make own llittle primitive, that just makes a call on
> arbitrary address, and put your generated code on it.. Voila.
> Again, you could store generated code not in method(s) trailer , but
> somewhere else.. it just up to you, after all.
> For instance i had parts that were storing generated code directly in
> COG's JITter, replacing its primitive section.
> So, that make a nice integration with JIT, that just using your code as a
> primitive for given method..
> All is doable, when you working at lowest level, you just need to think
> how to expose it in convenient way.
>
> --
> Best regards,
> Igor Stasenko.
>
March 22, 2017
Re: [Pharo-dev] More Windows VM Crashing -_-
by Esteban Lorenzano
Hi,
I do not think this is a windows problem.
At least, I had some crashes when performing compaction last days too⦠this is a crash I collected 10 mins ago, in a mac.
cheers,
Esteban
> On 22 Mar 2017, at 10:31, Peter Uhnak <i.uhnak(a)gmail.com> wrote:
>
> Hi,
>
> Originally I thought my VM is crashing because of FT, so I applied some fix from FogBugz (that is now part of Pharo 6), but that didn't help.
>
> So I disabled FT in settings and changed fonts to non-FT ones; didn't help.
> So I completely removed FT2Plugin.dll (now settings just states that FT fonts are not available), but that didn't help either.
>
> And obviously there is no crash.dmp whatsoever (this is latest Windows VM).
>
> This crash is extremely frustrating because the crash happens _during saving_, which means I am losing code all the time and have to constantly recover them, which really makes my blood boil.
>
> Without crash dump I don't even know where and how to start investigating. Windows kindly opens Visual Studio when Pharo crashes, but all it shows to me is assembly, which is not very useful to me. I can somewhat orient myself in the C code of the VM (as I've alredy fixed some other issues in the VM), but here I am lost.
>
> <SNIP>
> 00407D7F ret
> 00407D80 mov eax,dword ptr ds:[00596E44h]
> 00407D85 test al,3
> 00407D87 jne 00407DB2
> 00407D89 mov ecx,dword ptr ds:[596E08h]
> 00407D8F lea edx,[ecx-1]
> 00407D92 cmp eax,edx
> 00407D94 jb 00407DB2
> 00407D96 cmp dword ptr ds:[596E10h],eax
> 00407D9C jb 00407DB2
> 00407D9E mov ecx,dword ptr ds:[5B89D0h]
> 00407DA4 cmp dword ptr [eax-4],ecx
> 00407DA7 jb 00407DB2
> 00407DA9 mov eax,dword ptr ds:[00596E28h]
> ---> 00407DAE movzx eax,byte ptr [eax]
> 00407DB1 ret
>
> eax = 00000000
> ecx = 04700000
> </SNIP>
>
> So my question I guess is:
> How can we fix this? How can I help fix this? Because I've lost countless days of time and energy on this f***ing problem...
>
> Peter
>
March 22, 2017
Re: [Pharo-dev] [ANN] PharoNOS
by Igor Stasenko
Hey, guys, i'd like to stress, that AsmJit
is quite standalone part of NB, and nothing prevents you to use it in own
way, not the way NB was..
Because NB was born to make nice integration between machine code and VM ,
and providing FFI,
and as a demonstration that generating machine code IS possible and quite
doable from within an image.
But there's a tons of ways how you could generate machine code, and then
use it outside the scope of FFI.
You could just make own llittle primitive, that just makes a call on
arbitrary address, and put your generated code on it.. Voila.
Again, you could store generated code not in method(s) trailer , but
somewhere else.. it just up to you, after all.
For instance i had parts that were storing generated code directly in COG's
JITter, replacing its primitive section.
So, that make a nice integration with JIT, that just using your code as a
primitive for given method..
All is doable, when you working at lowest level, you just need to think how
to expose it in convenient way.
--
Best regards,
Igor Stasenko.
March 22, 2017
Re: [Pharo-dev] [ANN] PharoNOS
by Javier Pimás
Cool!!! I just tried and loads nicely :))).
For the curious, easy way to test (ubuntu 16.04):
you'll need qemu (sudo apt-get install qemu)
unzip
chmod +x NOS.img
qemu-system-i386 NOS.img
enjoy!
Cheers!!!
Pocho
On Wed, Mar 22, 2017 at 12:40 PM, jan.struz <public+pharo(a)struz.cz> wrote:
> It is working now, thanks for feedback.
> Link here - Download the latest build artifact for PharoNOS
> <https://gitlab.com/johnnyzz/pharo-nos-build/builds/artifacts/master/downloa…>
> Save The World!
>
> ------------------------------
> View this message in context: Re: [ANN] PharoNOS
> <http://forum.world.st/ANN-PharoNOS-tp4939247p4939643.html>
> Sent from the Pharo Smalltalk Developers mailing list archive
> <http://forum.world.st/Pharo-Smalltalk-Developers-f1294837.html> at
> Nabble.com.
>
--
Javier Pimás
Ciudad de Buenos Aires
March 22, 2017
Re: [Pharo-dev] More Windows VM Crashing -_-
by Peter Uhnak
On Wed, Mar 22, 2017 at 07:06:30AM -0700, Eliot Miranda wrote:
> Hi Peter,
>
> > On Mar 22, 2017, at 2:31 AM, Peter Uhnak <i.uhnak(a)gmail.com> wrote:
> >
> > Hi,
> >
> > Originally I thought my VM is crashing because of FT, so I applied some fix from FogBugz (that is now part of Pharo 6), but that didn't help.
> >
> > So I disabled FT in settings and changed fonts to non-FT ones; didn't help.
> > So I completely removed FT2Plugin.dll (now settings just states that FT fonts are not available), but that didn't help either.
> >
> > And obviously there is no crash.dmp whatsoever (this is latest Windows VM).
> >
> > This crash is extremely frustrating because the crash happens _during saving_, which means I am losing code all the time and have to constantly recover them, which really makes my blood boil.
> >
> > Without crash dump I don't even know where and how to start investigating. Windows kindly opens Visual Studio when Pharo crashes, but all it shows to me is assembly, which is not very useful to me. I can somewhat orient myself in the C code of the VM (as I've alredy fixed some other issues in the VM), but here I am lost.
> >
> > <SNIP>
> > 00407D7F ret
> > 00407D80 mov eax,dword ptr ds:[00596E44h]
> > 00407D85 test al,3
> > 00407D87 jne 00407DB2
> > 00407D89 mov ecx,dword ptr ds:[596E08h]
> > 00407D8F lea edx,[ecx-1]
> > 00407D92 cmp eax,edx
> > 00407D94 jb 00407DB2
> > 00407D96 cmp dword ptr ds:[596E10h],eax
> > 00407D9C jb 00407DB2
> > 00407D9E mov ecx,dword ptr ds:[5B89D0h]
> > 00407DA4 cmp dword ptr [eax-4],ecx
> > 00407DA7 jb 00407DB2
> > 00407DA9 mov eax,dword ptr ds:[00596E28h]
> > ---> 00407DAE movzx eax,byte ptr [eax]
> > 00407DB1 ret
> >
> > eax = 00000000
> > ecx = 04700000
> > </SNIP>
>
> Can you post a link to the exact VM you're using? I may be able to make sense of this.
I'm using the latest pharo-win-latest.zip from here http://files.pharo.org/get-files/60/
(2017-03-10 17:16 ... alternative link https://drive.google.com/open?id=0B6_V7NFdYhuWNkdnLTZPRjFlTEk )
Win32 built on Mar 10 2017 16:11:13 CUT Compiler: 4.9.2
VMMaker versionString VM: 201703101446 https://github.com/pharo-project/pharo-vm.git $ Date: Fri Mar 10 15:46:52 2017 +0100 $ Plugins: 201703101446 https://github.com/pharo-project/pharo-vm.git $
CoInterpreter * VMMaker.oscog-eem.2146 uuid: da6aee6e-4738-4161-b221-3c8135ac1bf7 Mar 10 2017
StackToRegisterMappingCogit * VMMaker.oscog-eem.2146 uuid: da6aee6e-4738-4161-b221-3c8135ac1bf7 Mar 10 2017
Pharo5.0
Latest update: #50770
Unnamed
>
> First, I'm very sorry you're experiencing these crashes. They're likely a bug in the new compactor. It makes multiple compaction passes when there are lots of objects, only on snapshot. In a normal GC it only ever makes one pass.
>
> Therefore, one thing that may allow you to work around the bug is to modify the snapshot:andQuit: method to explicitly do a Smalltalk garbageCollect before invoking the snapshot primitive. If the bug is only on subsequent passes then the explicit GC should not crash and will make it much less likely that the GC done as part of the snapshot will require a second pass, and hence less likely to crash.
>
Thanks, I will try this and see if it improves.
> > So my question I guess is:
> > How can we fix this? How can I help fix this? Because I've lost countless days of time and energy on this f***ing problem...
>
> Helping me match the code above with the VM will be really helpful. I want to know the values in registers, and the value of nilObj too.
registers:
EAX=00000000 EBX=00ACCA44 ECX=04700000 EDX=00ACD250 ESI=00ACCA44 EDI=00000000 EIP=00407DAE ESP=00ACC0F4 EBP=00ACCA14 EFL=00010202
In the meantime I will try to figure out how to build the VM myself on Windows ...
The disassembly doesn't seem to know what is on the upper addresses, but here's a bit longer snippet
<SNIP>
... lots of ?? ?? ...
00407C67 ?? ??
00407C68 ?? ??
00407C69 add al,0
00407C6B add byte ptr [eax],al
00407C6D add byte ptr [ebx+596E4C15h],cl
00407C73 add byte ptr [ebx+24048902h],cl
00407C79 call 00483351
00407C7E add esp,1Ch
00407C81 ret
00407C82 mov eax,596E44h
00407C87 ret
00407C88 push esi
00407C89 push ebx
00407C8A sub esp,14h
00407C8D mov eax,dword ptr [esp+24h]
00407C91 xor ebx,ebx
00407C93 cmp eax,23Fh
00407C98 jg 00407CB1
00407C9A mov ebx,dword ptr [eax*4+575580h]
00407CA1 cmp ebx,406866h
00407CA7 je 00407CB9
00407CA9 cmp ebx,43DF10h
00407CAF je 00407CD1
00407CB1 mov eax,ebx
00407CB3 add esp,14h
00407CB6 pop ebx
00407CB7 pop esi
00407CB8 ret
00407CB9 mov eax,dword ptr ds:[00565084h]
00407CBE cmp eax,0FFFFFFFFh
00407CC1 je 00407D50
00407CC7 mov ebx,eax
00407CC9 mov eax,ebx
00407CCB add esp,14h
00407CCE pop ebx
00407CCF pop esi
00407CD0 ret
00407CD1 mov dword ptr [esp],484C4Ah
00407CD8 call 00480E39
00407CDD mov edx,dword ptr [esp+20h]
00407CE1 mov ecx,dword ptr [edx+8]
00407CE4 mov eax,ecx
00407CE6 and ecx,1
00407CE9 je 00407D4B
00407CEB test eax,0FFFEh
00407CF0 je 00407D70
00407CF2 mov ebx,dword ptr [esp+20h]
00407CF6 mov esi,dword ptr [ebx+0Ch]
00407CF9 mov ebx,43DF10h
00407CFE test esi,3
00407D04 jne 00407CB1
00407D06 movzx edx,byte ptr [esi+3]
00407D0A and edx,1Fh
00407D0D cmp edx,2
00407D10 jne 00407CB1
00407D12 mov edx,2
00407D17 mov eax,esi
00407D19 call 004024F8
00407D1E cmp eax,4
00407D21 jne 00407CB1
00407D23 mov eax,dword ptr [esi+14h]
00407D26 test al,1
00407D28 je 00407CB1
00407D2A sar eax,1
00407D2C sub eax,1
00407D2F cmp eax,0FFFh
00407D34 ja 00407CB1
00407D3A mov ecx,dword ptr [eax*4+58B080h]
00407D41 test ecx,ecx
00407D43 cmovne ebx,ecx
00407D46 jmp 00407CB1
00407D4B mov eax,dword ptr [eax+14h]
00407D4E jmp 00407CEB
00407D50 mov dword ptr [esp+4],5721E5h
00407D58 mov dword ptr [esp],5721F4h
00407D5F call 004978A4
00407D64 mov dword ptr ds:[00565084h],eax
00407D69 mov ebx,eax
00407D6B jmp 00407CC9
00407D70 mov ebx,43DF10h
00407D75 jmp 00407CB1
00407D7A mov eax,dword ptr ds:[005B8A00h]
00407D7F ret
00407D80 mov eax,dword ptr ds:[00596E44h]
00407D85 test al,3
00407D87 jne 00407DB2
00407D89 mov ecx,dword ptr ds:[596E08h]
00407D8F lea edx,[ecx-1]
00407D92 cmp eax,edx
00407D94 jb 00407DB2
00407D96 cmp dword ptr ds:[596E10h],eax
00407D9C jb 00407DB2
00407D9E mov ecx,dword ptr ds:[5B89D0h]
00407DA4 cmp dword ptr [eax-4],ecx
00407DA7 jb 00407DB2
00407DA9 mov eax,dword ptr ds:[00596E28h]
----> 00407DAE movzx eax,byte ptr [eax] <-----
00407DB1 ret
</SNIP>
Peter
March 22, 2017
Re: [Pharo-dev] [ANN] PharoNOS
by jan.struz
It is working now, thanks for feedback.
Link here - Download the latest build artifact for PharoNOS
<https://gitlab.com/johnnyzz/pharo-nos-build/builds/artifacts/master/downloa…>
-----
Save The World!
--
View this message in context: http://forum.world.st/ANN-PharoNOS-tp4939247p4939643.html
Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
March 22, 2017