Pharo-dev
By thread
pharo-dev@lists.pharo.org
By month
Messages by month
- ----- 2026 -----
- October
- 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
- 7 participants
- 144631 messages
Re: [Pharo-project] [Vm-dev] Re: Reproducible VM crash when loading FFI
by Guillermo Polito
Ok, as a summary. I've tried
1) not recreating the compact classes array without voiding vm caches:
works ok.
2) making another compact classes array, voiding the vm caches
(primitive 214): random crashes :/. Sometimes it works, some times it does
not...
I've tried, just for the record, to void the cache before, after and
(before and after) the become forward of the special objects array:
a)
| newSpecialObjectsArray |
self vm voidCogVMState.
newSpecialObjectsArray := self newSpecialObjectsArray.
self specialObjectsArray becomeForward: newSpecialObjectsArray.
b)
| newSpecialObjectsArray |
newSpecialObjectsArray := self newSpecialObjectsArray.
self specialObjectsArray becomeForward: newSpecialObjectsArray.
self vm voidCogVMState.
c)
| newSpecialObjectsArray |
self vm voidCogVMState.
newSpecialObjectsArray := self newSpecialObjectsArray.
self specialObjectsArray becomeForward: newSpecialObjectsArray.
self vm voidCogVMState.
All with different results when executing several times... :/
voidCogVMState is the following in Pharo:
VirtualMachine class>>voidCogVMState
"Void any internal caches the VM maintains other than the method lookup
caches.
These comprise
- the stack zone, where method activations are stored, and
- the machine code zone, where the machine code form of CompiledMethods is
held."
<primitive: 214>
^self primitiveFailed
The comment says it does not clean method lookup caches...
any ideas?
Guille
On Tue, Mar 26, 2013 at 11:48 AM, Guillermo Polito <
guillermopolito(a)gmail.com> wrote:
> Ok, first I'm sorry for the evil upload. That was the first at hand
> :$. I'll get a more trustful way to do it the next one...
> Second, thanks for taking the time to look at it :).
>
> Now, I've some questions:
>
> - this "bug" is particular to Cog, isn't it? I mean, only related to
> inlining with JIT, so a Stack vm does not play with these rules, right?
> - Why is voiding the cache hackish? I mean, replacing the special objects
> array is a very low level operation, and a very special one which is not
> commonly performed. Voiding the cache looks like normal to me in such a
> case...
>
> Tx!
> Guille
>
> On Mon, Mar 25, 2013 at 11:56 PM, Eliot Miranda <eliot.miranda(a)gmail.com>wrote:
>
>>
>>
>>
>> On Mon, Mar 25, 2013 at 3:22 PM, Camillo Bruni <camillobruni(a)gmail.com>wrote:
>>
>>>
>>> Thanks for the findings!
>>>
>>
>> you're welcome :)
>>
>>
>>>
>>> I opened an issue http://bugs.pharo.org/issues/id/10134 with the
>>> contents
>>> of your solution.
>>>
>>> I think for completeness we should implement both solution, and of course
>>> use the one that does not #becomeForward: in the standard case.
>>>
>>
>> To be clear, becomeForward: is the correct way to install the
>> specialObjectsArray. The issue is what entries in the specialObjectsArray
>> need to remain constant. The Character table, the compactClassesArray, all
>> the classes and a few other entries (semaphores, etc) must remain the same.
>> This could do with better documenting of the method :-/
>>
>>
>>
>>>
>>> On 2013-03-25, at 19:52, Eliot Miranda <eliot.miranda(a)gmail.com> wrote:
>>> > Hi Guille,
>>> >
>>> > thanks for this. The problem is that Pharo's
>>> > recreateSpecialObjectsArray uses newCompactClassesArray to recreate the
>>> > compact classes array and on Cog that is not supported. Cog caches the
>>> > compactClassesArray (specialObjectsArray at: 29) in every jitted method
>>> > prolog to reduce the time taken to derive the receiver's class in
>>> message
>>> > lookup. The Pharo 2.0 code for recreating the specialObjectsArray can
>>> > therefore create a dangling pointer where the only reference to the old
>>> > compactClassesArray is in machine code, and the machine code GC doesn't
>>> > cope with there being roots in machine code. Note that Cog also
>>> caches the
>>> > characterTable and class SmallInteger in machine code.
>>> >
>>> > There are two solutions to this.
>>> > One would be to reuse the compactClassesArray (my recommendation). So
>>> that
>>> > recreateSpecialObjectsArray looks like
>>> >
>>> > ...
>>> > "An array of the 255 Characters in ascii order.
>>> > Cog inlines table into machine code at: prim so do not regenerate it."
>>> > newArray at: 25 put: Character characterTable.
>>> > ...
>>> > "A 32-element array with up to 32 classes that have compact instances.
>>> > Cog inlines table into machine code class lookup so do not regenerate
>>> it."
>>> > newArray at: 29 put: self compactClassesArray.
>>> > ...
>>> >
>>> > where compactClassesArray, like Character characterTable, answers the
>>> > existing object.
>>> >
>>> > The second solution (rather hackish) is to void all machine code on
>>> > installing the new specialObjectsArray. e.g.
>>> > recreateSpecialObjectsArray
>>> > "Smalltalk recreateSpecialObjectsArray"
>>> > "To external package developers:
>>> > **** DO NOT OVERRIDE THIS METHOD. *****
>>> > If you are writing a plugin and need additional special object(s) for
>>> your
>>> > own use,
>>> > use addGCRoot() function and use own, separate special objects
>>> registry "
>>> > "The Special Objects Array is an array of objects used by the Squeak
>>> > virtual machine.
>>> > Its contents are critical and accesses to it by the VM are unchecked,
>>> so
>>> > don't even
>>> > think of playing here unless you know what you are doing."
>>> > "Replace the interpreter's reference in one atomic operation.
>>> > Void machine code to avoid crashing Cog."
>>> > | newSpecialObjectsArray |
>>> > newSpecialObjectsArray := self newSpecialObjectsArray.
>>> > self specialObjectsArray becomeForward: newSpecialObjectsArray.
>>> > Smalltalk vm voidCogVMState
>>> >
>>> >
>>> > this is my fault for not ensuring recreateSpecialObjectsArray was
>>> properly
>>> > commented. I had commented the inlining of Character table, but not
>>> the
>>> > inlining of the CompactClasses array. Apologies.
>>> >
>>> > HTH,
>>> > Eliot
>>> >
>>> > On Sat, Mar 23, 2013 at 10:19 AM, Guillermo Polito <
>>> > guillermopolito(a)gmail.com> wrote:
>>> >
>>> >> Hi!
>>> >>
>>> >> In my quest to crash the vm, i've found an ugly common case :(.
>>> >> I am trying to port the opendbx driver to 2.0, but I'm getting vm
>>> crashes
>>> >> when my configuration loads FFI :(. I updated my configuration to load
>>> >> version 1.7 of FFI (which I assume is the latest).
>>> >>
>>> >> I tried to do it in Pharo 2.0 with latest pharovm, and with eliot's
>>> Cog
>>> >> 2701 from his website, failing in both cases.
>>> >> The snippet of code that gets a sistematic crash is:
>>> >>
>>> >> Gofer it
>>> >> smalltalkhubUser: 'DBXTalk' project: 'DBXTalkDriver';
>>> >> package: 'ConfigurationOfOpenDBXDriver';
>>> >> load.
>>> >> ((Smalltalk at: #ConfigurationOfOpenDBXDriver) project
>>> version:#stable)
>>> >> load
>>> >>
>>> >>
>>> >> This snippet crashes always with a segmentation fault (at least the
>>> >> fifteen times i tried :), with several different output in the
>>> console...
>>> >>
>>> >> Surprisingly, if I load FFI alone and not from the OpenDBXDriver
>>> >> configuration, it loads well... :/
>>> >>
>>> >> So I'm deferring the OpenDBX port a bit longer :(
>>> >>
>>> >> Thanks!
>>> >> Guille
>>> >>
>>> >
>>> >
>>> >
>>> > --
>>> > best,
>>> > Eliot
>>>
>>>
>>
>>
>> --
>> best,
>> Eliot
>>
>>
>
March 26, 2013
Re: [Pharo-project] Fwd: Some question and request for Athens
by Benjamin
And if you want to be lazier, you can export the setting in your preference file, and have a look then :)
Ben
On Mar 26, 2013, at 4:23 PM, Igor Stasenko <siguctua(a)gmail.com> wrote:
> On 26 March 2013 15:32, Tudor Girba <tudor(a)tudorgirba.com> wrote:
>> Hi Igor,
>>
>> Thanks. I managed that also in 1.4, but my question was about how to set a
>> TT font programmatically.
>>
>
> where?
>
> you know, if you right-click on setting in settings browser and then
> click "browse",
> you will find a place where this setting is defined and then a little
> of investigation will lead you to some class var/etc which you can
> change programmatically in
> a way you want.
>
>> Cheers,
>> Doru
>>
>>
>>
>> On Tue, Mar 26, 2013 at 2:20 PM, Igor Stasenko <siguctua(a)gmail.com> wrote:
>>>
>>> On 26 March 2013 11:32, Tudor Girba <tudor(a)tudorgirba.com> wrote:
>>>> Indeed, I second the newbie question: how do we set TrueType fonts :)?
>>>>
>>> system settings -> appearance
>>> turn on "use freetype"
>>> then go to "standard fonts" and choose any truetype font you like as
>>> default.
>>>
>>>> Doru
>>>>
>>>>
>>>> On Tue, Mar 26, 2013 at 11:29 AM, Tristan Bourgois
>>>> <tristan.bourgois(a)gmail.com> wrote:
>>>>>
>>>>> 2013/3/25 Stéphane Ducasse <stephane.ducasse(a)inria.fr>:
>>>>>>
>>>>>>
>>>>>> Begin forwarded message:
>>>>>>
>>>>>> From: Igor Stasenko <siguctua(a)gmail.com>
>>>>>> Subject: Re: Some question and request for Athens
>>>>>> Date: March 25, 2013 2:57:33 PM GMT+01:00
>>>>>> To: Tristan Bourgois <tristan.bourgois(a)gmail.com>
>>>>>> Cc: Stéphane Ducasse <stephane.ducasse(a)inria.fr>, LE PORS Eric
>>>>>> <eric.lepors(a)fr.thalesgroup.com>
>>>>>>
>>>>>> On 25 March 2013 11:45, Tristan Bourgois <tristan.bourgois(a)gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>> Hi Igor!
>>>>>>
>>>>>> I have some questions and request for Athens :)
>>>>>>
>>>>>> 1 Do exist a possibility in Athens to draw a Surface on a Surface?
>>>>>> For example :
>>>>>> aSurf drawSurface: anOtherSurface at: aPosition
>>>>>> (I need it for draw image on a surface)
>>>>>>
>>>>>>
>>>>>> yes. You can use Forms or surfaces as paints so they act like 2D
>>>>>> textures:
>>>>>>
>>>>>> canvas setPaint: someSurface.
>>>>>> canvas drawShape: myRect.
>>>>>
>>>>> Thanks that's works fine :)
>>>>>
>>>>>>
>>>>>> 2 About my first question, I try to draw a png image on a Surface and
>>>>>> I get some strange behavior. When nothing is applied on my first
>>>>>> surface and draw the image in a rectangle path I crash the VM!
>>>>>> This an example I tried and crash my VM:
>>>>>>
>>>>>> |surf pharoLogo ref path patternPaint|
>>>>>> surf := AthensCairoSurface extent: 600@600.
>>>>>>
>>>>>> ref := 'pharo.png' asFileReference.
>>>>>> pharoLogo := AthensCairoSurface createFromFile: ref fullName
>>>>>> ifFailed:[nil].
>>>>>>
>>>>>> surf drawDuring: [:can|
>>>>>> surf clear.
>>>>>> patternPaint := can setPaint: pharoLogo.
>>>>>> patternPaint setExtend: #None.
>>>>>> can drawShape: (0@0 extent: pharoLogo extent).
>>>>>> ].
>>>>>> Display getCanvas drawImage: surf asForm at: 0@0.
>>>>>>
>>>>>> If you need more information about the crash and my environment ask
>>>>>> it
>>>>>> :)
>>>>>>
>>>>>> weird... it should be working fine.
>>>>>
>>>>> I try it on a new clean image and again get a VM crash.
>>>>>
>>>>>> 3. Do exist something in Athens to create some text and get the
>>>>>> extent
>>>>>> of the text? I tried to draw text but I only succeed to draw a text
>>>>>> without font (only width) and I don't found how to get the extent of
>>>>>> this text :( This is really important for the next of the porting
>>>>>> because I'm blocking on that and the textModel is not necessary for
>>>>>> the next of my work because they already have a layoutManager for the
>>>>>> text.
>>>>>>
>>>>>> You can use freetype to measure text extent. Please look how i doing
>>>>>> it
>>>>>> with
>>>>>> AthensTextScanner.
>>>>>> Because the default methods of freetype using rounding for font
>>>>>> size(s),
>>>>>> which is not really nice.
>>>>>> I added more precise methods, which do not do any rounding and using
>>>>>> them for measuring
>>>>>> text extent.
>>>>>>
>>>>>> Try this:
>>>>>>
>>>>>> text := 'asdsdgs' asText.
>>>>>> lines := (AthensTextComposer scan: text for: AthensTextScanner new)
>>>>>> lines.
>>>>>>
>>>>>> lines first width.
>>>>>>
>>>>>> will give you the width.
>>>>>>
>>>>>> (but for that to work, your default font should be TTF font)
>>>>>
>>>>> Sorry for the newbie question but how I can change the default font to
>>>>> TTF
>>>>> font?
>>>>>
>>>>>> Thanks Igor :)
>>>>>>
>>>>>> Tristan
>>>>>>
>>>>>> PS: The porting advance as well :) I have animation and that's really
>>>>>> amazing :)
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Best regards,
>>>>>> Igor Stasenko.
>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> www.tudorgirba.com
>>>>
>>>> "Every thing has its own flow"
>>>
>>>
>>>
>>> --
>>> Best regards,
>>> Igor Stasenko.
>>>
>>
>>
>>
>> --
>> www.tudorgirba.com
>>
>> "Every thing has its own flow"
>
>
>
> --
> Best regards,
> Igor Stasenko.
>
March 26, 2013
Re: [Pharo-project] Fwd: Some question and request for Athens
by Igor Stasenko
On 26 March 2013 15:32, Tudor Girba <tudor(a)tudorgirba.com> wrote:
> Hi Igor,
>
> Thanks. I managed that also in 1.4, but my question was about how to set a
> TT font programmatically.
>
where?
you know, if you right-click on setting in settings browser and then
click "browse",
you will find a place where this setting is defined and then a little
of investigation will lead you to some class var/etc which you can
change programmatically in
a way you want.
> Cheers,
> Doru
>
>
>
> On Tue, Mar 26, 2013 at 2:20 PM, Igor Stasenko <siguctua(a)gmail.com> wrote:
>>
>> On 26 March 2013 11:32, Tudor Girba <tudor(a)tudorgirba.com> wrote:
>> > Indeed, I second the newbie question: how do we set TrueType fonts :)?
>> >
>> system settings -> appearance
>> turn on "use freetype"
>> then go to "standard fonts" and choose any truetype font you like as
>> default.
>>
>> > Doru
>> >
>> >
>> > On Tue, Mar 26, 2013 at 11:29 AM, Tristan Bourgois
>> > <tristan.bourgois(a)gmail.com> wrote:
>> >>
>> >> 2013/3/25 Stéphane Ducasse <stephane.ducasse(a)inria.fr>:
>> >> >
>> >> >
>> >> > Begin forwarded message:
>> >> >
>> >> > From: Igor Stasenko <siguctua(a)gmail.com>
>> >> > Subject: Re: Some question and request for Athens
>> >> > Date: March 25, 2013 2:57:33 PM GMT+01:00
>> >> > To: Tristan Bourgois <tristan.bourgois(a)gmail.com>
>> >> > Cc: Stéphane Ducasse <stephane.ducasse(a)inria.fr>, LE PORS Eric
>> >> > <eric.lepors(a)fr.thalesgroup.com>
>> >> >
>> >> > On 25 March 2013 11:45, Tristan Bourgois <tristan.bourgois(a)gmail.com>
>> >> > wrote:
>> >> >
>> >> > Hi Igor!
>> >> >
>> >> > I have some questions and request for Athens :)
>> >> >
>> >> > 1 Do exist a possibility in Athens to draw a Surface on a Surface?
>> >> > For example :
>> >> > aSurf drawSurface: anOtherSurface at: aPosition
>> >> > (I need it for draw image on a surface)
>> >> >
>> >> >
>> >> > yes. You can use Forms or surfaces as paints so they act like 2D
>> >> > textures:
>> >> >
>> >> > canvas setPaint: someSurface.
>> >> > canvas drawShape: myRect.
>> >>
>> >> Thanks that's works fine :)
>> >>
>> >> >
>> >> > 2 About my first question, I try to draw a png image on a Surface and
>> >> > I get some strange behavior. When nothing is applied on my first
>> >> > surface and draw the image in a rectangle path I crash the VM!
>> >> > This an example I tried and crash my VM:
>> >> >
>> >> > |surf pharoLogo ref path patternPaint|
>> >> > surf := AthensCairoSurface extent: 600@600.
>> >> >
>> >> > ref := 'pharo.png' asFileReference.
>> >> > pharoLogo := AthensCairoSurface createFromFile: ref fullName
>> >> > ifFailed:[nil].
>> >> >
>> >> > surf drawDuring: [:can|
>> >> > surf clear.
>> >> > patternPaint := can setPaint: pharoLogo.
>> >> > patternPaint setExtend: #None.
>> >> > can drawShape: (0@0 extent: pharoLogo extent).
>> >> > ].
>> >> > Display getCanvas drawImage: surf asForm at: 0@0.
>> >> >
>> >> > If you need more information about the crash and my environment ask
>> >> > it
>> >> > :)
>> >> >
>> >> > weird... it should be working fine.
>> >>
>> >> I try it on a new clean image and again get a VM crash.
>> >>
>> >> > 3. Do exist something in Athens to create some text and get the
>> >> > extent
>> >> > of the text? I tried to draw text but I only succeed to draw a text
>> >> > without font (only width) and I don't found how to get the extent of
>> >> > this text :( This is really important for the next of the porting
>> >> > because I'm blocking on that and the textModel is not necessary for
>> >> > the next of my work because they already have a layoutManager for the
>> >> > text.
>> >> >
>> >> > You can use freetype to measure text extent. Please look how i doing
>> >> > it
>> >> > with
>> >> > AthensTextScanner.
>> >> > Because the default methods of freetype using rounding for font
>> >> > size(s),
>> >> > which is not really nice.
>> >> > I added more precise methods, which do not do any rounding and using
>> >> > them for measuring
>> >> > text extent.
>> >> >
>> >> > Try this:
>> >> >
>> >> > text := 'asdsdgs' asText.
>> >> > lines := (AthensTextComposer scan: text for: AthensTextScanner new)
>> >> > lines.
>> >> >
>> >> > lines first width.
>> >> >
>> >> > will give you the width.
>> >> >
>> >> > (but for that to work, your default font should be TTF font)
>> >>
>> >> Sorry for the newbie question but how I can change the default font to
>> >> TTF
>> >> font?
>> >>
>> >> > Thanks Igor :)
>> >> >
>> >> > Tristan
>> >> >
>> >> > PS: The porting advance as well :) I have animation and that's really
>> >> > amazing :)
>> >> >
>> >> >
>> >> >
>> >> >
>> >> > --
>> >> > Best regards,
>> >> > Igor Stasenko.
>> >> >
>> >> >
>> >>
>> >
>> >
>> >
>> > --
>> > www.tudorgirba.com
>> >
>> > "Every thing has its own flow"
>>
>>
>>
>> --
>> Best regards,
>> Igor Stasenko.
>>
>
>
>
> --
> www.tudorgirba.com
>
> "Every thing has its own flow"
--
Best regards,
Igor Stasenko.
March 26, 2013
[Pharo-project] Nautilus: A fix for bad subclass indentation
by Damien Cassou
Hi,
in Nautilus, sometimes, subclasses are not indented properly, i.e.,
Nautilus shows that a class is a subclass of another one, but this is not
the case.
I have a fix for this bad behavior. To be sure the fix works fine, could
you please tell me where you found hierarchies that are not properly
indented?
Thank you
--
Damien Cassou
http://damiencassou.seasidehosting.st
"Success is the ability to go from one failure to another without losing
enthusiasm."
Winston Churchill
March 26, 2013
Re: [Pharo-project] GSoC idea: Spec over Aida component model
by Benjamin
Of course I could be a mentor :)
But my question is can I be a mentor and a student ?
And this proposal go in the direction I want Spec to follow: platform/framework independency :)
I know that Nico would love to have Spec running in Amber ^^
Ben
On Mar 26, 2013, at 3:49 PM, Janko Mivšek <janko.mivsek(a)eranova.si> wrote:
> Guys, would be this an interesting project to advance Smalltalk UI more
> toward bleeding edge again, after 30 years, when we were there already
> with MVC based GUI? Spec project have a potential here and Spec over web
> frameworks to build fully desktop-capable web apps seems to be
> achievable. Spec over Amber (who will propose that?), Spec over Aida,
> Spec over Seaside? Benjamin, would you be a co-mentor of that project?
>
> Title: Spec over Aida for desktop-capable Web Apps
>
> Level: advanced
>
> Possible mentor: Janko Mivšek
>
> Possible second mentor: Benjamin?
>
> Description
>
> Spec as a means to describe and generate GUI has a potential to help
> building web applications as well. And because one of Spec goals is to
> become a platform/framework independent, this project has a goal to
> extend Aida component model for building Single Page web apps to become
> Spec-aware
>
>
> Technical Details
>
> Aida has a component model for building so called Single Page web UIs,
> capable of composing a hierarchy of so called web widgets, which are
> standalone reusable components, together with hierarchical web form
> support. Spec as descriptor and generator of UI is therefore a natural
> extension of Aida component model. When a HTML5 Web Components standard
> will be ready, Aida component model can be easily extended to support
> that standard as well, together with Spec (and maybe UIBuilder too?).
>
> Benefits to the Student
>
> Student will acquire the knowledge and experience of building
> desktop-capable UIs on the web using HTML5 approach.
>
> Benefits to the Community
>
> Spec has a potential to become a de-facto standard way of describing
> User Interfaces for Smalltalk projects from desktop to web and mobile,
> on a dialect and web framework neutral way. This project can contribute
> a piece toward that goal.
>
>
> Best regards
> Janko
>
>
> --
> Janko Mivšek
> Aida/Web
> Smalltalk Web Application Server
> http://www.aidaweb.si
>
March 26, 2013
Re: [Pharo-project] More GSoC ideas wanted, 3 days left ....
by Yuriy Tymchuk
On 26 беÑ. 2013, at 12:36, Janko MivÅ¡ek <janko.mivsek(a)eranova.si> wrote:
>
> Ideas so far: http://gsoc2013.esug.org/ideas
>
And we should change the year in the heading to 2013 (now it's Ideas for Smalltalk GSoC 2012 projects)
March 26, 2013
Re: [Pharo-project] More GSoC ideas wanted, 3 days left ....
by Yuriy Tymchuk
Title: FAST Java Model
Level: intermediate
Possible mentor: Nikolas Anquetil
Possible second mentor: Yuriy Tymchuk
Description: For in depth source code analysis a support of abstract syntax trees is required. FAST is an abstract syntax tree extension for FAMIX meta-model that is used by Moose technology. The goal of this project is to create a Java version of FAST.
Technical Details: As programming languages are different, their AST representations are different too. FAST model aims for creation of as generic as possible core that can be extended for different languages. Also the structure of a model allows creation of generic algorithms like symbol resolution, metrics calculation and rule checking that will work for any language. A prototype of FAST for Smalltalk is already implemented by Yuriy Tymchuk as well as couple of nodes for Java. During the project a student will implement the rest of the Java model, and improve some parts of PetitJava parser that is used by FAST.
Benefits to the Student: The student will gain a deep understanding of a Java syntax and abstract syntax tree model. He will also learn about PetitParser framework, and gain knowledge about software modeling and analysis.
Benefits to the Community: Community will get a FAST model for Java that can be used for software assessment with Moose. Also this model can be used later in PhD projects such as automation of source code translation form C++ to Java.
On 26 беÑ. 2013, at 12:36, Janko MivÅ¡ek <janko.mivsek(a)eranova.si> wrote:
> Dear Pharoers,
>
> Ideas are slowly coming, 14 so far, but this is way below the 30+ in
> previous years. So, stretch your brain, come with some more ideas, which
> will be interesting for potential students and of course useful for our
> community. Students you are again welcome to propose such idea by your
> own. One student idea for now!
>
> Ideas so far: http://gsoc2013.esug.org/ideas
>
> To propose an idea just respond to this post by fulfilling this idea
> template:
>
> Title:
>
> Level: (beginner, intermediate, advanced)
>
> Possible mentor: (if already known)
>
> Possible second mentor: (if already known)
>
> Description
>
> Technical Details
>
> Benefits to the Student
>
> Benefits to the Community
>
> Best regards
> Serge and Janko,
> your this year GSoC admins
>
>
> --
> Janko Mivšek
> Aida/Web
> Smalltalk Web Application Server
> http://www.aidaweb.si
>
March 26, 2013
[Pharo-project] GSoC idea: Spec over Aida component model
by Janko Mivšek
Guys, would be this an interesting project to advance Smalltalk UI more
toward bleeding edge again, after 30 years, when we were there already
with MVC based GUI? Spec project have a potential here and Spec over web
frameworks to build fully desktop-capable web apps seems to be
achievable. Spec over Amber (who will propose that?), Spec over Aida,
Spec over Seaside? Benjamin, would you be a co-mentor of that project?
Title: Spec over Aida for desktop-capable Web Apps
Level: advanced
Possible mentor: Janko Mivšek
Possible second mentor: Benjamin?
Description
Spec as a means to describe and generate GUI has a potential to help
building web applications as well. And because one of Spec goals is to
become a platform/framework independent, this project has a goal to
extend Aida component model for building Single Page web apps to become
Spec-aware
Technical Details
Aida has a component model for building so called Single Page web UIs,
capable of composing a hierarchy of so called web widgets, which are
standalone reusable components, together with hierarchical web form
support. Spec as descriptor and generator of UI is therefore a natural
extension of Aida component model. When a HTML5 Web Components standard
will be ready, Aida component model can be easily extended to support
that standard as well, together with Spec (and maybe UIBuilder too?).
Benefits to the Student
Student will acquire the knowledge and experience of building
desktop-capable UIs on the web using HTML5 approach.
Benefits to the Community
Spec has a potential to become a de-facto standard way of describing
User Interfaces for Smalltalk projects from desktop to web and mobile,
on a dialect and web framework neutral way. This project can contribute
a piece toward that goal.
Best regards
Janko
--
Janko Mivšek
Aida/Web
Smalltalk Web Application Server
http://www.aidaweb.si
March 26, 2013
Re: [Pharo-project] fog monkey bugz
by Serge Stinckwich
Can you add me ?
Thank you.
Regards,
On Mon, Mar 25, 2013 at 1:40 PM, Benjamin
<benjamin.vanryseghem.pharo(a)gmail.com> wrote:
> We are encountering a strange problem with email containing a dot :s
>
> I thought we fixed it, but it seems not
> Two solutions:
> - you use an address without a point now, and fix it asap in fogbugz
> - I create you an account
>
> Sorry for the inconvenience,
> Ben
>
> On Mar 25, 2013, at 12:08 PM, Serge Stinckwich <serge.stinckwich(a)gmail.com>
> wrote:
>
> I also have some problem to register. I enter SergeStinckwich as my
> username and serge.stinckwich(a)gmail.com as my email
> Penelope says after that : "invalid email adress." ...
>
> What's wrong ?
>
>
>
> On Mon, Mar 25, 2013 at 10:20 AM, Norbert Hartl <norbert(a)hartl.name> wrote:
>
> Yesterday I registered for an account on bugs.pharo.org. I enteres username
> (NorbertHartl) and email and assured I'm not monkey. I got to the fogbugz
> page but not logged in. I didn't receive an email to set a password or
> something like that. How is it supposed to work?
>
> Norbert
>
>
>
>
> --
> Serge Stinckwich
> UCBN & UMI UMMISCO 209 (IRD/UPMC)
> Every DSL ends up being Smalltalk
> http://doesnotunderstand.org/
>
>
--
Serge Stinckwich
UCBN & UMI UMMISCO 209 (IRD/UPMC)
Every DSL ends up being Smalltalk
http://doesnotunderstand.org/
March 26, 2013
Re: [Pharo-project] Fwd: Some question and request for Athens
by Tudor Girba
Hi Igor,
Thanks. I managed that also in 1.4, but my question was about how to set a
TT font programmatically.
Cheers,
Doru
On Tue, Mar 26, 2013 at 2:20 PM, Igor Stasenko <siguctua(a)gmail.com> wrote:
> On 26 March 2013 11:32, Tudor Girba <tudor(a)tudorgirba.com> wrote:
> > Indeed, I second the newbie question: how do we set TrueType fonts :)?
> >
> system settings -> appearance
> turn on "use freetype"
> then go to "standard fonts" and choose any truetype font you like as
> default.
>
> > Doru
> >
> >
> > On Tue, Mar 26, 2013 at 11:29 AM, Tristan Bourgois
> > <tristan.bourgois(a)gmail.com> wrote:
> >>
> >> 2013/3/25 Stéphane Ducasse <stephane.ducasse(a)inria.fr>:
> >> >
> >> >
> >> > Begin forwarded message:
> >> >
> >> > From: Igor Stasenko <siguctua(a)gmail.com>
> >> > Subject: Re: Some question and request for Athens
> >> > Date: March 25, 2013 2:57:33 PM GMT+01:00
> >> > To: Tristan Bourgois <tristan.bourgois(a)gmail.com>
> >> > Cc: Stéphane Ducasse <stephane.ducasse(a)inria.fr>, LE PORS Eric
> >> > <eric.lepors(a)fr.thalesgroup.com>
> >> >
> >> > On 25 March 2013 11:45, Tristan Bourgois <tristan.bourgois(a)gmail.com>
> >> > wrote:
> >> >
> >> > Hi Igor!
> >> >
> >> > I have some questions and request for Athens :)
> >> >
> >> > 1 Do exist a possibility in Athens to draw a Surface on a Surface?
> >> > For example :
> >> > aSurf drawSurface: anOtherSurface at: aPosition
> >> > (I need it for draw image on a surface)
> >> >
> >> >
> >> > yes. You can use Forms or surfaces as paints so they act like 2D
> >> > textures:
> >> >
> >> > canvas setPaint: someSurface.
> >> > canvas drawShape: myRect.
> >>
> >> Thanks that's works fine :)
> >>
> >> >
> >> > 2 About my first question, I try to draw a png image on a Surface and
> >> > I get some strange behavior. When nothing is applied on my first
> >> > surface and draw the image in a rectangle path I crash the VM!
> >> > This an example I tried and crash my VM:
> >> >
> >> > |surf pharoLogo ref path patternPaint|
> >> > surf := AthensCairoSurface extent: 600@600.
> >> >
> >> > ref := 'pharo.png' asFileReference.
> >> > pharoLogo := AthensCairoSurface createFromFile: ref fullName
> >> > ifFailed:[nil].
> >> >
> >> > surf drawDuring: [:can|
> >> > surf clear.
> >> > patternPaint := can setPaint: pharoLogo.
> >> > patternPaint setExtend: #None.
> >> > can drawShape: (0@0 extent: pharoLogo extent).
> >> > ].
> >> > Display getCanvas drawImage: surf asForm at: 0@0.
> >> >
> >> > If you need more information about the crash and my environment ask it
> >> > :)
> >> >
> >> > weird... it should be working fine.
> >>
> >> I try it on a new clean image and again get a VM crash.
> >>
> >> > 3. Do exist something in Athens to create some text and get the extent
> >> > of the text? I tried to draw text but I only succeed to draw a text
> >> > without font (only width) and I don't found how to get the extent of
> >> > this text :( This is really important for the next of the porting
> >> > because I'm blocking on that and the textModel is not necessary for
> >> > the next of my work because they already have a layoutManager for the
> >> > text.
> >> >
> >> > You can use freetype to measure text extent. Please look how i doing
> it
> >> > with
> >> > AthensTextScanner.
> >> > Because the default methods of freetype using rounding for font
> size(s),
> >> > which is not really nice.
> >> > I added more precise methods, which do not do any rounding and using
> >> > them for measuring
> >> > text extent.
> >> >
> >> > Try this:
> >> >
> >> > text := 'asdsdgs' asText.
> >> > lines := (AthensTextComposer scan: text for: AthensTextScanner new)
> >> > lines.
> >> >
> >> > lines first width.
> >> >
> >> > will give you the width.
> >> >
> >> > (but for that to work, your default font should be TTF font)
> >>
> >> Sorry for the newbie question but how I can change the default font to
> TTF
> >> font?
> >>
> >> > Thanks Igor :)
> >> >
> >> > Tristan
> >> >
> >> > PS: The porting advance as well :) I have animation and that's really
> >> > amazing :)
> >> >
> >> >
> >> >
> >> >
> >> > --
> >> > Best regards,
> >> > Igor Stasenko.
> >> >
> >> >
> >>
> >
> >
> >
> > --
> > www.tudorgirba.com
> >
> > "Every thing has its own flow"
>
>
>
> --
> Best regards,
> Igor Stasenko.
>
>
--
www.tudorgirba.com
"Every thing has its own flow"
March 26, 2013