Pharo-dev
By thread
pharo-dev@lists.pharo.org
By month
Messages by month
- ----- 2026 -----
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- 1 participants
- 144619 messages
[Pharo-project] Overrides. Evil. Need to do something with it.
by Igor Stasenko
Hello,
there is a certain critial places in system, which should not be
overridden by external packages.
Otherwise, it becomes a mess and usually leads to malfunction in key
system parts: compiler, special objects etc.
I'd like to propose to introduce a special marker pragma for methods,
which should _never_ be overridden by external package.
myMethod
<doNotOverride>
an MC code loader should honor this pragma, and do not attempt to
override this method when installing a package
or at least ask user that there is a risk of getting serious problems,
if you override this method.
What you think?
--
Best regards,
Igor Stasenko AKA sig.
May 5, 2010
Re: [Pharo-project] Help System
by Stéphane Ducasse
On May 5, 2010, at 3:24 PM, Torsten Bergmann wrote:
> Hi Lukas,
>
> "it is a design flaw"
> "Being forced to have strong references ... "
> "makes it impossible to just include some documentation"
> "This doesn't encourage me at all"
> "..."
>
> So many negative statements in one post, look like you had
> a bad day today ;)
PhD stress :)
>>
>
....
> Attached is a simple (rough)example that it is easy to extend the help
> system the way you may want (with a builder similar to system settings
> and your above example)
Good this is what I want. I want to leverage the tests we have.
Since we can remove tests anyway.
>
> Just load it into an up to date core 1.1. image and evaluate:
>
> HelpBrowser openOn: PragmaHelp
>
> Look at class Foo and Bar to see that there is no dependency
> and PragmaHelp/PragmaHelpBuilder to see how it is done.
>
> HelpSystem is flexible, you can also have external help sources
> as I've shown with the IRC example.
> It just depends on how you want to describe and structure your
> documentation...
>
> Bye
> Torsten
>
> P.S: I'm still in favour of well structured books in separate
> packages than mixed code/docu in one package since you
> may wish to unload docu for deployment/runtime scenarios.
>
>
>
>
>
> --
> GRATIS für alle GMX-Mitglieder: Die maxdome Movie-FLAT!
> Jetzt freischalten unter http://portal.gmx.net/de/go/maxdome01
> <HelpSystemWithPragmaHelp.1.cs>_______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
May 5, 2010
[Pharo-project] Help System
by Torsten Bergmann
Hi Lukas,
"it is a design flaw"
"Being forced to have strong references ... "
"makes it impossible to just include some documentation"
"This doesn't encourage me at all"
"..."
So many negative statements in one post, look like you had
a bad day today ;)
My comments below:
a) If you want to provide API help (reference docu)
you DONT HAVE ANY reference or dependency since you can comment your
classes and methods in the usual Smalltalk way using class/method
comments.
No need for "HelpSystem-Core" to be around, NO REFERENCES,
and NO EXCUSE NOT TO document your code ;)
b) If you want to provide similar tutorials help (books/system help)
that should appear in the "SystemHelp" then the answer
is YES, HERE WE HAVE A DEPENDENCY since you subclass
"CustomHelp" and reference "HelpTopic". But this is
intended since after a few experiments with other solutions
this was a very natural way to define the book contents.
Would you call it a design flaw of SUnit to create tests
by subclassing the class "TestCase" so that it is known to
the system as test case and also shows up in the TestRunner?
Does the dependency on SUnit make it impossible for you
to write tests? Or does it even encourage you not to write
tests? So please revise your statements.
And yes, in the scenario I'm up to you typically provide a
separate help package that can be separately loaded/unloaded.
It depends on your deployment scenario if you want to
keep it in the image or not. So a separate package makes sense
for these tutorials. Either you ship with tests and docu or
just with the code.
If you deploy and ship an end user app for instance you
would just need "SQLite-Core" and may unload "SQLite-Tests"
and "SQLite-Help".
If someone works with code (for instance SQLite) he can
- either use the known API help (either in the Class browser
or the HelpBrowser, see a)
- or load the additional package with mostyl more generalized
tutorials/manuals/books, its up to you to provide such an
additional help package ("SQLite-Help" for instance)
However - these two scenarios are provided by DEFAULT. You have
a different scenario since where (if I understand you correctly) you
want:
c) Provide documentation that
- is not defined in usual class/method comments
- should be packaged with your code package instead of
a separate one
- should not be dependent on any class in the
HelpSystem-Core package
- may already be defined
Here I would suggest you to find an appropriate way to write and
store your documentation (for instance in methods with pragmas)
the way you want AND INDEPENDENT from the current help system.
If you want to have it shown later in the help system/help browser
too you need to provide at least an (extension) method #asHelpTopic
or use an own builder (see HelpBuilder and subclasses) to convert
your documentation style to the generalized help topic hierarchy
the browser is able to display.
When you talk about an extensibility of the help system similar
to preferences/menu building then you mainly talk about a
pragma solution here:
I already experimented with this in the early help system (see
HelpSystem-Core-tbn.4) for instance and later switched
to the subclassesing solution (similar to SUnit) mainly for the
following reasons:
1. it is more intentional to directly map the book structure to the
class hierarchy
2. You can use the usual ST tools to manage or refactor your books
(the class hierarchy browse even shows you the topic hierarchy)
3. It is hard to describe a complete book structure (with page
order, nested books and the like) in pragmas
If you have a good solution then I'm all ears here.
4. By using pragmas (loose coupling) you have to deal
with the problem that by your parent topic may not be
there/not be loaded since it can be defined somewhere else
in the class hierarchy.
By mapping to the class hierarchy you cant run into the problem
since you need the superclass (parent topic definition) for the
subclass (subtopic definition) to be loaded.
So I was pragmatic and used Plain old Smalltalk classes and method
to define the books (POSCAM).
But Help System does not limit you, currently we have a) and b)
to define and bring help into the help system/help browser.
If you have a good solution for defining complete books with structure
using pragmas then we can include it...
Meanwhile Lukas wrote:
>Yes, I imagine something along ...
>
>PPParser class>>helpOn: aBuilder
> <help>
>
Attached is a simple (rough)example that it is easy to extend the help
system the way you may want (with a builder similar to system settings
and your above example)
Just load it into an up to date core 1.1. image and evaluate:
HelpBrowser openOn: PragmaHelp
Look at class Foo and Bar to see that there is no dependency
and PragmaHelp/PragmaHelpBuilder to see how it is done.
HelpSystem is flexible, you can also have external help sources
as I've shown with the IRC example.
It just depends on how you want to describe and structure your
documentation...
Bye
Torsten
P.S: I'm still in favour of well structured books in separate
packages than mixed code/docu in one package since you
may wish to unload docu for deployment/runtime scenarios.
--
GRATIS für alle GMX-Mitglieder: Die maxdome Movie-FLAT!
Jetzt freischalten unter http://portal.gmx.net/de/go/maxdome01
May 5, 2010
Re: [Pharo-project] ConfigurationOfPharo and OmniBrowser
by Alexandre Bergel
> I'm actually working through this scenario right now.
Hi Dale!
Any progress?
Cheers,
Alexandre
> Moving OB BEFORE AutomaticMethodCategorizer will load the proper
> version of OB ... with this load order the older version of OB
> shouldn't be loaded by AutomaticMethodCategorizer (this is the area
> where I suspected a bug in 1.0-beta.26 that is fixed in 1.0-beta.
> 26.1).
>
> However, I have run into an issue with SHOUT using the deprecated
> API and then I ran into an MNU in another part of the system (doing
> initialization) so I'm trying to determine if this is a problem for
> Metacello or not ... when I have characterized the issues, I'll send
> mail...
>
> Dale
>
>
> ----- "Alexandre Bergel" <alexandre(a)bergel.eu> wrote:
>
> | > Thanks Dale for the dedicated answer. I understood you
> correclty? If
> |
> | > I change baseline11: and I put
> | >
> | > project: 'AutomaticMethodCategorizer'
> | > with:
> | > [ spec
> | > className:
> | > 'ConfigurationOfAutomaticMethodCategorizer';
> | > file:
> | > 'ConfigurationOfAutomaticMethodCategorizer';
> | > repository:
> | 'http://www.squeaksource.com/MetacelloRepository'
> | > ];
> | >
> | >
> | > AFTER
> | >
> | > project: 'OB Dev'
> | > with:
> | > [ spec
> | > className:
> | > 'ConfigurationOfOmniBrowser';
> | > loads: #('Dev');
> | > file:
> 'ConfigurationOfOmniBrowser';
> | > repository:
> | 'http://www.squeaksource.com/MetacelloRepository'
> | > ];
> | >
> | >
> | > then it should work ok ?
> |
> | I understand that if you do this, then the version 1.1.3 of
> | Omnibrowser will be loaded, then AutomaticMethodCategorizer will
> load
> |
> | the old version of OB.
> |
> | I think that ConfigurationOfAutomaticMethodCategorizer needs to be
> | updated.
> | I work on it now...
> |
> | Cheers,
> | Alexandre
> |
> | >
> | >
> | >
> | > This implies that ConfigurationOfAutomaticMethodCategorizer will
> not
> |
> | > load correctly into Pharo 1.1, so the solution is to create a new
> | > version ConfigurationOfAutomaticMethodCategorizer that will load
> | > into Pharo 1.1 (i.e. referencing version 1.1.3 of
> | > ConfigurationOfOmniBrowser) and then update ConfigurationOfPharo
> | > accordingly...
> | >
> | > yes...the problem is that you have to do that in all the confs
> that
> |
> | > points to OB.
> | >
> | > .....
> | >
> | >
> | > The nesting level for '1.1.3 [ConfigurationOfOmniBrowser]' and
> '1.1
> |
> | > [ConfigurationOfAutomaticMethodCategorizer]' are the same which
> | > means that they are both referenced in '1.1
> [ConfigurationOfPharo]'.
> |
> | > That was enough to solve this particular problem, but in an
> | > Inspector, you can dive into the directives themselves and
> actually
> |
> | > get to the MetacelloSpec that was used to create the directive...
> | >
> | >
> | >
> | > Here is what I don't understand. If you have that directive, and
> you
> |
> | > have ALL that information, can't you guess that if you need to
> load
> |
> | > the N version of a package and then the version M, where M > N,
> then
> |
> | > you can skip to load N and just load M directly ?
> | >
> | > In this example, can you DO NOT load OmniBrowser-lr.458 as you
> know
> |
> | > that after you will load OmniBrowser-lr.469 ?
> | > Or maybe directly about conf: Do not load 1.1
> | > [ConfigurationOfOmniBrowser] if you know that then you will need
> |
> | > to load 1.1.3 [ConfigurationOfOmniBrowser]
> | >
> | > Thanks a lot for the explanation dale!
> | >
> | > mariano
> | >
> | > _______________________________________________
> | > Pharo-project mailing list
> | > Pharo-project(a)lists.gforge.inria.fr
> | > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-
> project
> |
> | --
> | _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> | Alexandre Bergel http://www.bergel.eu
> | ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
May 5, 2010
[Pharo-project] ESUG call for contribution + student volunteer programs
by Stéphane Ducasse
please distribute widely
18th International Smalltalk Joint Conference - Call for Contributions
Barcelona, Spain
September 13 - 17, 2010; Camp Smalltalk September 11-12
http://www.esug.org/conferences/2010/
This call includes:
Developer program
Free ESUG tickets
Business day 16th of September (sponsored by Cincom Smalltalk)
International Workshop http://www.esug.org/Conferences/2010/International+Workshop+on+Smalltalk+Te…
Student Volunteer http://www.esug.org/Conferences/2010/Student+Volunteers+program
Camp Smalltalk 11-12 September 2010
----------------------------------------------------------------------
For the past 18 years, the European Smalltalk User Group (ESUG) has
organised the International Smalltalk Conference, a lively forum on
cutting edge software technologies that attract people from both
academia and industry for a whole week. The attendees are both
engineers using Smalltalk in business and students and teachers
using Smalltalk both for research and didactic purposes.
As every year, this year's edition of the largest European Smalltalk
event will include the regular Smalltalk developers conference with
renowned invited speakers, a Smalltalk camp that proves fruitful for
interactions and discussions. Besides, this year will be held the
- 6th edition of the Innovation Technology Awards where prizes will be
awarded to authors of best pieces of Smalltalk-related projects
- an international workshop on Smalltalk and dynamic languages
http://www.esug.org/Conferences/2010/International+Workshop+on+Smalltalk+Te…
* New this year:
- There will be a business day: thursday 16th of September 2010.
The focus will be on "Agile Development Processes and Smalltalk"
- ESUG will offer 10 free entrance tickets.
To get a free ticket you should send a mail to the esug board (board(a)esug.org)
Subject: [ESUG 2010 Free entrance] + your name
And you should write a small motivation.
You can support the ESUG conference in many different ways:
* Sponsor the conference. New sponsoring packages are described at
http://www.esug.org/supportesug/becomeasponsor/
* Submit a talk, a software or a paper to one of the events. See
below.
* Attend the conference. We'd like to beat the previous record of
attendance (156 participants at Brest and 170 people at Amsterdam)!
* Students can get free registration and hosting if they enroll
into the the Student Volunteers program. See below.
Developers Forum: International Smalltalk Developers Conference
------------------------------------------------------------------------
This year we are looking for YOUR experience on using Smalltalk.
In addition, we are looking for tutorials. The
list of topics includes, but is not limited to the following:
* XP practices
* Development tools
* Experience reports
* Model driven development
* Web development
* Team management
* Meta-Modeling
* Security
* New libraries & frameworks
* Educational material
* Embedded systems and robotics
* SOA and Web services
* Interaction with other programming languages
Submissions due on 1 July 2010
Notification of acceptance on 15 of July 2010
More information at http://www.esug.org/conferences/2010
How to submit?
------------------
Pay attention: the places are limited so do not wait till the last
minute to apply. Prospective presenters should submit a request to
board(a)esug.org AND stephane.ducasse(a)free.fr
following the template below. Please use this template since the
emails will be automatically processed!
Subject: [ESUG 2010 Developers] + your name
First Name:
Last Name:
Email where you can always be reached:
Title:
Abstract:
Bio:
Any presentation not respecting this form will be discarded
automatically
Innovation Technology Award
------------------------------------------------------------------------
We are proud to announce the 6th Innovation Technology Awards. The
top 3 teams with the most innovative software will receive,
respectively, 500 Euros, 300 Euros and 200 Euros during an awards
ceremony at the conference. Developers of any Smalltalk-based
software are welcome to compete. This year we will request 3-5min videos.
More information at http://www.esug.org/Conferences/2010/Innovation+Technology+Awards
Student Volunteer Program
------------------------------------------------------------------------
If you are a student wanting to attend ESUG, have you considered
being a student volunteer? Student volunteers help keep the
conference running smoothly; in return, they have free
accommodations, while still having most of the time to enjoy the
conference.
More information at
http://www.esug.org/conferences/2010
http://www.esug.org/Conferences/2010/Student+Volunteers+program
We hope to see you there and have fun together.
Ze ESUG board_______________________________________________
Board mailing list
Board(a)lists.esug.org
May 5, 2010
Re: [Pharo-project] Help System
by Stéphane Ducasse
Yes and I want the same for tests.
- we get better tests
- we get better documentation
stef
On May 5, 2010, at 11:42 AM, Lukas Renggli wrote:
> Yes, I imagine something along ...
>
> PPParser class>>helpOn: aBuilder
> <help>
>
> aBuilder newBook: [ :book |
> book
> title: 'PetitParser';
> newPage: [ :page | page title: 'Tutorial'; contents: self blogArticle ];
> newChapter: [ :chap | chap title: 'Operator API'; methodComments:
> PPParser selectors in: PPParser ];
> newChapter: [ :chap | chap title: 'Parser Classes'; classComments:
> PPParser withAllSubclasses ] ]
>
> This allows me to assemble the help from things that I have already
> written anyway. It does not introduce new dependencies and is small
> and concise.
>
> Lukas
>
> On 5 May 2010 11:24, Stéphane Ducasse <stephane.ducasse(a)inria.fr> wrote:
>> Lukas
>>
>> I agree with you. Now my point was let us learn
>> there is a builder that can use pragma and this is the one we should use.
>> See my mails and the answers of torsten.
>>
>> What I would love to have is
>> - HelpSystemBuilder that collect some class comments and tests
>> based on a given pragma.
>>
>> Alain? Lukas? Torsten? Other? what could be a nice pragma for a Sunit
>>
>>
>> testAbsoluteAuthority
>> "self debug: #testAbsoluteAuthority"
>>
>> <test: #URI about: 'absolute uri with authority' tag: #(network )>
>>
>> | uri absoluteURIString |
>> "An absolute URI with authority. An absolute URI starts with a scheme:"
>> absoluteURIString := 'http://www.pharo-project.org'.
>> uri := URI fromString: absoluteURIString.
>> self assert: (uri asString = absoluteURIString).
>> self assert: (uri isAbsolute).
>> self assert: (uri authority asString = 'www.pharo-project.org').
>> self deny: (uri isOpaque).
>>
>>
>> Then now we could use help system to force us to write better tests.
>>
>>
>> Stef
>>
>>
>>> I think it is a design flaw that the help system doesn't make use of
>>> extensibility in the spirit of the new preference system, the
>>> extensible menus, or the metacello configurations. They all don't have
>>> external dependencies and load fine into any image.
>>>
>>> Being forced to have strong references to the HelpSystem package (with
>>> subclasses and class references) makes it impossible to just include
>>> some documentation into a package, without introducing a dependency
>>> onto the HelpSystem. This doesn't encourage me at all to provide some
>>> quick documentation (e.g. for Gofer, PetitParser, RB, OB, ...),
>>> because I would need to create separate packages.
>>>
>>> For deployment I usually use kernel images, or core images with
>>> unnecessary code unloaded (tests, examples, help system, ...). With
>>> the current setup I cannot just include some documentation into a core
>>> package without being forced to package it separately.
>>>
>>> Lukas
>>>
>>> --
>>> Lukas Renggli
>>> www.lukas-renggli.ch
>>>
>>> _______________________________________________
>>> Pharo-project mailing list
>>> Pharo-project(a)lists.gforge.inria.fr
>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>>
>> _______________________________________________
>> Pharo-project mailing list
>> Pharo-project(a)lists.gforge.inria.fr
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>
>
>
> --
> Lukas Renggli
> www.lukas-renggli.ch
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
May 5, 2010
Re: [Pharo-project] Help System
by Tudor Girba
+1
Doru
On 5 May 2010, at 11:42, Lukas Renggli wrote:
> Yes, I imagine something along ...
>
> PPParser class>>helpOn: aBuilder
> <help>
>
> aBuilder newBook: [ :book |
> book
> title: 'PetitParser';
> newPage: [ :page | page title: 'Tutorial'; contents: self
> blogArticle ];
> newChapter: [ :chap | chap title: 'Operator API'; methodComments:
> PPParser selectors in: PPParser ];
> newChapter: [ :chap | chap title: 'Parser Classes'; classComments:
> PPParser withAllSubclasses ] ]
>
> This allows me to assemble the help from things that I have already
> written anyway. It does not introduce new dependencies and is small
> and concise.
>
> Lukas
>
> On 5 May 2010 11:24, Stéphane Ducasse <stephane.ducasse(a)inria.fr>
> wrote:
>> Lukas
>>
>> I agree with you. Now my point was let us learn
>> there is a builder that can use pragma and this is the one we
>> should use.
>> See my mails and the answers of torsten.
>>
>> What I would love to have is
>> - HelpSystemBuilder that collect some class comments and tests
>> based on a given pragma.
>>
>> Alain? Lukas? Torsten? Other? what could be a nice pragma for a Sunit
>>
>>
>> testAbsoluteAuthority
>> "self debug: #testAbsoluteAuthority"
>>
>> <test: #URI about: 'absolute uri with authority' tag:
>> #(network )>
>>
>> | uri absoluteURIString |
>> "An absolute URI with authority. An absolute URI starts with
>> a scheme:"
>> absoluteURIString := 'http://www.pharo-project.org'.
>> uri := URI fromString: absoluteURIString.
>> self assert: (uri asString = absoluteURIString).
>> self assert: (uri isAbsolute).
>> self assert: (uri authority asString = 'www.pharo-
>> project.org').
>> self deny: (uri isOpaque).
>>
>>
>> Then now we could use help system to force us to write better tests.
>>
>>
>> Stef
>>
>>
>>> I think it is a design flaw that the help system doesn't make use of
>>> extensibility in the spirit of the new preference system, the
>>> extensible menus, or the metacello configurations. They all don't
>>> have
>>> external dependencies and load fine into any image.
>>>
>>> Being forced to have strong references to the HelpSystem package
>>> (with
>>> subclasses and class references) makes it impossible to just include
>>> some documentation into a package, without introducing a dependency
>>> onto the HelpSystem. This doesn't encourage me at all to provide
>>> some
>>> quick documentation (e.g. for Gofer, PetitParser, RB, OB, ...),
>>> because I would need to create separate packages.
>>>
>>> For deployment I usually use kernel images, or core images with
>>> unnecessary code unloaded (tests, examples, help system, ...). With
>>> the current setup I cannot just include some documentation into a
>>> core
>>> package without being forced to package it separately.
>>>
>>> Lukas
>>>
>>> --
>>> Lukas Renggli
>>> www.lukas-renggli.ch
>>>
>>> _______________________________________________
>>> Pharo-project mailing list
>>> Pharo-project(a)lists.gforge.inria.fr
>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>>
>> _______________________________________________
>> Pharo-project mailing list
>> Pharo-project(a)lists.gforge.inria.fr
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>
>
>
> --
> Lukas Renggli
> www.lukas-renggli.ch
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
--
www.tudorgirba.com
"In a world where everything is moving ever faster,
one might have better chances to win by moving slower."
May 5, 2010
Re: [Pharo-project] Help System
by Lukas Renggli
Yes, I imagine something along ...
PPParser class>>helpOn: aBuilder
<help>
aBuilder newBook: [ :book |
book
title: 'PetitParser';
newPage: [ :page | page title: 'Tutorial'; contents: self blogArticle ];
newChapter: [ :chap | chap title: 'Operator API'; methodComments:
PPParser selectors in: PPParser ];
newChapter: [ :chap | chap title: 'Parser Classes'; classComments:
PPParser withAllSubclasses ] ]
This allows me to assemble the help from things that I have already
written anyway. It does not introduce new dependencies and is small
and concise.
Lukas
On 5 May 2010 11:24, Stéphane Ducasse <stephane.ducasse(a)inria.fr> wrote:
> Lukas
>
> I agree with you. Now my point was let us learn
> there is a builder that can use pragma and this is the one we should use.
> See my mails and the answers of torsten.
>
> What I would love to have is
> Â Â Â Â - HelpSystemBuilder that collect some class comments and tests
> Â Â Â Â based on a given pragma.
>
> Alain? Lukas? Torsten? Other? what could be a nice pragma for a Sunit
>
>
> testAbsoluteAuthority
> Â Â Â Â "self debug: #testAbsoluteAuthority"
>
> Â Â Â Â <test: #URI about: 'absolute uri with authority' tag: #(network )>
>
> Â Â Â Â | uri absoluteURIString |
> Â Â Â Â "An absolute URI with authority. An absolute URI starts with a scheme:"
> Â Â Â Â absoluteURIString := 'http://www.pharo-project.org'.
> Â Â Â Â uri := URI fromString: absoluteURIString.
> Â Â Â Â self assert: (uri asString = absoluteURIString).
> Â Â Â Â self assert: (uri isAbsolute).
> Â Â Â Â self assert: (uri authority asString = 'www.pharo-project.org').
> Â Â Â Â self deny: (uri isOpaque).
>
>
> Then now we could use help system to force us to write better tests.
>
>
> Stef
>
>
>> I think it is a design flaw that the help system doesn't make use of
>> extensibility in the spirit of the new preference system, the
>> extensible menus, or the metacello configurations. They all don't have
>> external dependencies and load fine into any image.
>>
>> Being forced to have strong references to the HelpSystem package (with
>> subclasses and class references) makes it impossible to just include
>> some documentation into a package, without introducing a dependency
>> onto the HelpSystem. This doesn't encourage me at all to provide some
>> quick documentation (e.g. for Gofer, PetitParser, RB, OB, ...),
>> because I would need to create separate packages.
>>
>> For deployment I usually use kernel images, or core images with
>> unnecessary code unloaded (tests, examples, help system, ...). With
>> the current setup I cannot just include some documentation into a core
>> package without being forced to package it separately.
>>
>> Lukas
>>
>> --
>> Lukas Renggli
>> www.lukas-renggli.ch
>>
>> _______________________________________________
>> Pharo-project mailing list
>> Pharo-project(a)lists.gforge.inria.fr
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
--
Lukas Renggli
www.lukas-renggli.ch
May 5, 2010
Re: [Pharo-project] Help System
by Stéphane Ducasse
Lukas
I agree with you. Now my point was let us learn
there is a builder that can use pragma and this is the one we should use.
See my mails and the answers of torsten.
What I would love to have is
- HelpSystemBuilder that collect some class comments and tests
based on a given pragma.
Alain? Lukas? Torsten? Other? what could be a nice pragma for a Sunit
testAbsoluteAuthority
"self debug: #testAbsoluteAuthority"
<test: #URI about: 'absolute uri with authority' tag: #(network )>
| uri absoluteURIString |
"An absolute URI with authority. An absolute URI starts with a scheme:"
absoluteURIString := 'http://www.pharo-project.org'.
uri := URI fromString: absoluteURIString.
self assert: (uri asString = absoluteURIString).
self assert: (uri isAbsolute).
self assert: (uri authority asString = 'www.pharo-project.org').
self deny: (uri isOpaque).
Then now we could use help system to force us to write better tests.
Stef
> I think it is a design flaw that the help system doesn't make use of
> extensibility in the spirit of the new preference system, the
> extensible menus, or the metacello configurations. They all don't have
> external dependencies and load fine into any image.
>
> Being forced to have strong references to the HelpSystem package (with
> subclasses and class references) makes it impossible to just include
> some documentation into a package, without introducing a dependency
> onto the HelpSystem. This doesn't encourage me at all to provide some
> quick documentation (e.g. for Gofer, PetitParser, RB, OB, ...),
> because I would need to create separate packages.
>
> For deployment I usually use kernel images, or core images with
> unnecessary code unloaded (tests, examples, help system, ...). With
> the current setup I cannot just include some documentation into a core
> package without being forced to package it separately.
>
> Lukas
>
> --
> Lukas Renggli
> www.lukas-renggli.ch
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
May 5, 2010
Re: [Pharo-project] Help System
by Lukas Renggli
I think it is a design flaw that the help system doesn't make use of
extensibility in the spirit of the new preference system, the
extensible menus, or the metacello configurations. They all don't have
external dependencies and load fine into any image.
Being forced to have strong references to the HelpSystem package (with
subclasses and class references) makes it impossible to just include
some documentation into a package, without introducing a dependency
onto the HelpSystem. This doesn't encourage me at all to provide some
quick documentation (e.g. for Gofer, PetitParser, RB, OB, ...),
because I would need to create separate packages.
For deployment I usually use kernel images, or core images with
unnecessary code unloaded (tests, examples, help system, ...). With
the current setup I cannot just include some documentation into a core
package without being forced to package it separately.
Lukas
--
Lukas Renggli
www.lukas-renggli.ch
May 5, 2010