Pharo-users
By thread
pharo-users@lists.pharo.org
By month
Messages by month
- ----- 2026 -----
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
December 2024
- 8 participants
- 13 messages
Re: [Pharo-dev] Re: "Evaluation of SUnit" â New blog post on all: objects all: theTime
by Yanni Chiu
Hi Koen,
I understand that as a writer, something like âNobody thought about
automatingâ¦â does more to draw a reader in to reading more of the article,
than something like âNobody had ever published a public domain framework
that â¦â. As your reply says, your intended meaning may be âpublished ⦠for
the first timeâ, but I think very few readers would take that meaning. In
my own experience, automated testing was a concept I encountered from
earlier programmers, and Richardâs post also confirms that automated
testing was commonly known.
Youâre right about the âopen sourceâ environment of the early 90âs.
Employees/programmers were unlikely to publish code into the public domain
at that time. I think Kent was in a unique position to tour various
Smalltalk teams, distill out key processes and techniques, and publish
about it. SUnit is a great distillation of the idea.
The actual unit test framework code is not the key idea. People knew of
using automated test suites. But flipping to another browser and adding a
#testZZZ method, while coding for your development task, is something that
seems to just emerge from the Smalltalk environment - once you determine
that you want to have a test suite to help you code. Previously, some
statically defined test suite, perhaps written by others, is used to verify
code. By putting the #testZZZ definitions in the hands of the developer,
the whole waterfall coding model is upended.
Regards,
Yanni
On Sun, Dec 29, 2024 at 10:44 AM Koen De Hondt <
koen(a)all-objects-all-the-time.st> wrote:
> Hi Yanni,
>
> Thank you for sharing your story. It gives another view on history. Maybe
> you should share it with a wider audience.
>
> As always, the people publishing about something for the first time get
> the credits.
>
> When I wrote "Nobody thought about automating that process. Until Kent
> Beck did.â, I meant that he was the one who published about SUnit for the
> first time (and that is why I linked to the publication). I am sure that
> many other people, like you and George, had tools to automate tests, in one
> form or another. After all, Smalltalkers build their own tools to automate
> repetitive tasks. That is a super power Smalltalkers have compared to
> developers using other programming languages.
>
> You write about 1993. Back then, it was hard to share
> code/projects/software with the world. These days, people put their code in
> a public repo. But still that does not prove that the underlying ideas are
> original. It just proves that they did something creative with those ideas,
> just like in 1993. But at least it is clear for the rest of the community
> who is building software based on those ideas.
>
> So I think publishing work â even early work â, in the form of code or
> written documents, is crucial to keep a trace of where ideas originate.
>
> Thanks again for sharing. I like stories about the history of software
> development and I enjoyed your story.
>
> Best regards,
> Koen
>
> > On 22 Nov 2024, at 23:10, Yanni Chiu <yannix7db(a)gmail.com> wrote:
> >
> > The blog post has "Nobody thought about automating that process. Until
> > Kent Beck did." That is not accurate, AFAIK. I believe it was in Kent
> > Beck's original EXtreme Programming book where he says the practices
> > were gathered from various Smalltalk shops he consulted at during the
> > Smalltalk heyday in the early 90's.
> >
> > For what it's worth, here's the history I know. Around 1993, in
> > Toronto, I was working at Footprint Software on VisualBanker (a suite
> > of code to support banking that 4 of the 5 major Canadian banks
> > bought). With my programming buddy (no "pair programming" at the time)
> > our task was to build a persistence framework (supporting Relational,
> > ObjectFiler, and in-memory).
> >
> > My task in a previous job was to convert (the AT&T Unix) C compiler to
> > support the "new" ANSI C standard. Thankfully, I was provided with a
> > test suite of C code, so that if it compiled without errors, then the
> > compiler was standard compliant. So, looking for something similar to
> > the ANSI C test suite I'd encountered, I set up test cases where all
> > methods starting with "test" would be run, and ran the tests against
> > all the backend data stores. The next day, my programming buddy
> > (George), who started at 6am (to have a faster commute) tells me this
> > test thing is great, and shows me the UI he built so we could just
> > push a button. We can check the same behaviour for all backends, and
> > we can coordinate our code changes through the tests (to mitigate our
> > different schedule).
> >
> > A year later, the company's product was deemed slow, so they
> > contracted Kent Beck to review our code base. He eventually comes
> > around to us. We showed him what we did with tests, and then he just
> > paused for about a minute staring out the window. We thought we were
> > doing something really bad. A few months later, George said to me "did
> > you see the SUnit thing posted on comp.lang.smalltalk". The basic
> > "test"-prefixed test cases were there, but with the addition of the
> > setUp and tearDown concept.
> >
> > Every once in a while I think to write this up. The "Nobody thought
> > about automating..." words pushed me over this time. Maybe 15 years
> > ago, I was able to find the original comp.lang.smalltalk SUnit
> > posting, but could not locate it this time when I wanted to verify the
> > dates.
> >
> > Yanni Chiu,
> > Smalltalk oldtimer, Toronto
> >
> > On Fri, Nov 22, 2024 at 8:58â¯AM Koen De Hondt
> > <koen(a)all-objects-all-the-time.st> wrote:
> >>
> >> Dear Pharo users and developers,
> >>
> >> I wrote a blog post in which I evaluate SUnit.
> >>
> >> Enjoy reading it!
> >>
> >> Ciao,
> >> Koen
> >>
>
Dec. 31, 2024
Re: "Comparing SUnit with RSpec" â New blog post on all: objects all: theTime
by Richard O'Keefe
The difference between âexampleâ and âtestâ is trivial, except that
Smalltalk already uses âexampleâ for, well, examples. Sample code that is
intended to be read and imitated, not run for testing.
The difference between âexpectâ and âassertâ is that âexpectâ asserts what
to expect while âassertâ asserts what to expect. I hope that is clear.
A ârich expectation languageâ doesnât strike me as a virtue. It has been a
long time since I regarded ârich formatting languagesâ like Fortran or
Common Lisp have as a good idea. Give me the basic building blocks I can
freely combine using my existing programming language. Indeed, that was
one of the great merits of sUnit: if you understand Smalltalk you
understand the test cases without having to learn a whole ânother ârich
languageâ.
As for the logging, there are two fairly clear issues. Nothing stops you
constructing such logs in Smalltalk. We could add a suitable âself log:
textâ message to sUnit, which would make localisation easier. We could use
pragmas. But the second point is that nothing ensuresthat such messages
are true or accurate. For example, #pop DOESNâT remove the last item added
to a stack, and whatâs more it shouldnât. It removes the most recently
added REMAINING item, which is not at all the same thing.
As for âsubjectâ, just as test cases normally check mutual consistency of
multiple methods, so it is not unusual for a test case to relate to
multiple objects. For example, to test the #copy method of some class, I
might make an instance, copy it, change one of the copies, and check that
the other did not change. Which one is *the* subject?
I like a programming language that makes me think, but not one that tries
to tell me how to think. Comparing RSpec with sUnit, I feel that RSpec is
trying to canalise my thinking, while sUnit offers me possibilities. Above
all, sUnit lets me extend it without drama.
On Mon, 30 Dec 2024 at 5:01â¯AM, Koen De
Hondt <koen(a)all-objects-all-the-time.st> wrote:
> Dear Pharo users and developers,
>
> After my previous blog post on SUnit, I added a follow-up post
> <https://all-objects-all-the-time.st/#/blog/posts/11> on the comparison
> of SUnit and RSpec for Ruby.
>
> Happy reading!
>
> This will be my last post for 2024. Happy holidays and all the best for
> 2025.
>
> Ciao,
> Koen
>
Dec. 31, 2024
Re: "Evaluation of SUnit" â New blog post on all: objects all: theTime
by Richard O'Keefe
First, automated test running was common practice in software engineering.
We were doing it with shell scripts at my company back in 1985. And of
course this is precisely what âexpectâ was written for, and itâs why tools
like tcov/xcov exist for conventionallanguages like C. SUnit just made it
*easy* .
Second, why would anyone *expect* a one to one correspondence between
method names and test method names? Where is it written that a test case
tests or indeed can test only one method? Take a trivial example like
testThatAddAdds
|x m|
x := testClass withAll: #(1 2 3 5).
m := x size.
x add: 4.
self assert: x size equals: m+1.
(Typed on a tablet, so pretty rough. Sorry.)
Does this test #add: or #size? Iâve known tests like thisto find faults in
#withAll: and in one memorable case #+ .
If you want to document a link to what youâre testing, use a pragma.
<test: #consistency of: #add: with: #size>
and set up your UI to realize that this is a test of BOTH #add: and #size
so that it should be rerun if either of them changes.
On Sat, 23 Nov 2024 at 2:58â¯AM, Koen De Hondt <
koen(a)all-objects-all-the-time.st> wrote:
> Dear Pharo users and developers,
>
> I wrote a blog post in which I evaluate SUnit
> <https://all-objects-all-the-time.st/#/blog/posts/10>.
>
> Enjoy reading it!
>
> Ciao,
> Koen
>
>
Dec. 31, 2024
Re: Need Help with Changing Message Sends in Compiled Blocks
by Tim Mackinnon
Iâm not totally clear on what you are trying to do, but have you looked at the rewrite tool, that is meant for this kind of thing?
The online help is reasonable good for this and there are quite a few msgs here describing it. You should be able to match the change you want and also limit the scope of the change,
Tim
> On 30 Dec 2024, at 12:56, Sebastian Jordan <sebastian.jordan(a)inria.fr> wrote:
>
> TL;DR: I need help changing the message OrderedCollection new to OrderedCollection --> newTenured <-- at a specific offset in a compiled block. I can do this for regular methods, but I get an error when the method is a Block.
>
> Hello everyone,
>
> I'm trying to automatically change message sends in my code, but I'm having trouble with compiled blocks.
> For example, I want to change the message OrderedCollection new to OrderedCollection --> newTenured <-- in a specific method. I have the compiled block and the offset (26) for the message I want to change. However, searching for the selector new doesn't work because there can be multiple messages with the same name, and I only want to change the one at the given offset.
>
> theMethod
>
> | tmp1 |
> 1 = tmp1 something: [ "rewrite this message send" OrderedCollection new ].
> tmp1 otherStruf: [ Dictionary new "do not rewrite this meesage send" ].
> ^ self
>
>
> I can change the message when there is no block without any problem using the IR like this:
>
> transformMessageSend: compiledMethodOrBlock offset: offset
>
> | oldSelector newSelector irSendNode ir irSequences |
> oldSelector := (compiledMethodOrBlock sourceNode sourceNodeForPC: offset) selector.
> newSelector := self makeNewSelector: oldSelector.
>
> ir := compiledMethodOrBlock ir.
> irSequences := ir allSequences flatCollect: #children.
> irSendNode := (irSequences select: #isSend) detect: [ :e | e selector = oldSelector ].
> irSendNode selector: newSelector.
>
> ^ ir generate
> selector: compiledMethodOrBlock selector;
> yourself
>
>
> But I get an error with ir generate when the compiledMethodOrBlock is a Block. If it's a normal compiled method, it works as expected.
> Can anyone help me with this? Thanks!
>
> PS: I'm not forced to do it with the IR, ir can be done by using the AST. The only thing is that I'd like to avoid doing string manipulation
>
> Cheers and merry christmas,
> Sebastian Jordan
Dec. 30, 2024
Need Help with Changing Message Sends in Compiled Blocks
by Sebastian Jordan
TL;DR: I need help changing the message OrderedCollection new to OrderedCollection --> newTenured <-- at a specific offset in a compiled block. I can do this for regular methods, but I get an error when the method is a Block.
Hello everyone,
I'm trying to automatically change message sends in my code, but I'm having trouble with compiled blocks.
For example, I want to change the message OrderedCollection new to OrderedCollection --> newTenured <-- in a specific method. I have the compiled block and the offset (26) for the message I want to change. However, searching for the selector new doesn't work because there can be multiple messages with the same name, and I only want to change the one at the given offset.
theMethod
| tmp1 |
1 = tmp1 something: [ "rewrite this message send" OrderedCollection new ].
tmp1 otherStruf: [ Dictionary new "do not rewrite this meesage send" ].
^ self
I can change the message when there is no block without any problem using the IR like this:
transformMessageSend: compiledMethodOrBlock offset: offset
| oldSelector newSelector irSendNode ir irSequences |
oldSelector := (compiledMethodOrBlock sourceNode sourceNodeForPC: offset) selector.
newSelector := self makeNewSelector: oldSelector.
ir := compiledMethodOrBlock ir.
irSequences := ir allSequences flatCollect: #children.
irSendNode := (irSequences select: #isSend) detect: [ :e | e selector = oldSelector ].
irSendNode selector: newSelector.
^ ir generate
selector: compiledMethodOrBlock selector;
yourself
But I get an error with ir generate when the compiledMethodOrBlock is a Block. If it's a normal compiled method, it works as expected.
Can anyone help me with this? Thanks!
PS: I'm not forced to do it with the IR, ir can be done by using the AST. The only thing is that I'd like to avoid doing string manipulation
Cheers and merry christmas,
Sebastian Jordan
Dec. 30, 2024
"Comparing SUnit with RSpec" â New blog post on all: objects all: theTime
by Koen De Hondt
Dear Pharo users and developers,
After my previous blog post on SUnit, I added a follow-up post <https://all-objects-all-the-time.st/#/blog/posts/11> on the comparison of SUnit and RSpec for Ruby.
Happy reading!
This will be my last post for 2024. Happy holidays and all the best for 2025.
Ciao,
Koen
Dec. 29, 2024
Re: [Pharo-dev] "Evaluation of SUnit" â New blog post on all: objects all: theTime
by Koen De Hondt
Hi Yanni,
Thank you for sharing your story. It gives another view on history. Maybe you should share it with a wider audience.
As always, the people publishing about something for the first time get the credits.
When I wrote "Nobody thought about automating that process. Until Kent Beck did.â, I meant that he was the one who published about SUnit for the first time (and that is why I linked to the publication). I am sure that many other people, like you and George, had tools to automate tests, in one form or another. After all, Smalltalkers build their own tools to automate repetitive tasks. That is a super power Smalltalkers have compared to developers using other programming languages.
You write about 1993. Back then, it was hard to share code/projects/software with the world. These days, people put their code in a public repo. But still that does not prove that the underlying ideas are original. It just proves that they did something creative with those ideas, just like in 1993. But at least it is clear for the rest of the community who is building software based on those ideas.
So I think publishing work â even early work â, in the form of code or written documents, is crucial to keep a trace of where ideas originate.
Thanks again for sharing. I like stories about the history of software development and I enjoyed your story.
Best regards,
Koen
> On 22 Nov 2024, at 23:10, Yanni Chiu <yannix7db(a)gmail.com> wrote:
>
> The blog post has "Nobody thought about automating that process. Until
> Kent Beck did." That is not accurate, AFAIK. I believe it was in Kent
> Beck's original EXtreme Programming book where he says the practices
> were gathered from various Smalltalk shops he consulted at during the
> Smalltalk heyday in the early 90's.
>
> For what it's worth, here's the history I know. Around 1993, in
> Toronto, I was working at Footprint Software on VisualBanker (a suite
> of code to support banking that 4 of the 5 major Canadian banks
> bought). With my programming buddy (no "pair programming" at the time)
> our task was to build a persistence framework (supporting Relational,
> ObjectFiler, and in-memory).
>
> My task in a previous job was to convert (the AT&T Unix) C compiler to
> support the "new" ANSI C standard. Thankfully, I was provided with a
> test suite of C code, so that if it compiled without errors, then the
> compiler was standard compliant. So, looking for something similar to
> the ANSI C test suite I'd encountered, I set up test cases where all
> methods starting with "test" would be run, and ran the tests against
> all the backend data stores. The next day, my programming buddy
> (George), who started at 6am (to have a faster commute) tells me this
> test thing is great, and shows me the UI he built so we could just
> push a button. We can check the same behaviour for all backends, and
> we can coordinate our code changes through the tests (to mitigate our
> different schedule).
>
> A year later, the company's product was deemed slow, so they
> contracted Kent Beck to review our code base. He eventually comes
> around to us. We showed him what we did with tests, and then he just
> paused for about a minute staring out the window. We thought we were
> doing something really bad. A few months later, George said to me "did
> you see the SUnit thing posted on comp.lang.smalltalk". The basic
> "test"-prefixed test cases were there, but with the addition of the
> setUp and tearDown concept.
>
> Every once in a while I think to write this up. The "Nobody thought
> about automating..." words pushed me over this time. Maybe 15 years
> ago, I was able to find the original comp.lang.smalltalk SUnit
> posting, but could not locate it this time when I wanted to verify the
> dates.
>
> Yanni Chiu,
> Smalltalk oldtimer, Toronto
>
> On Fri, Nov 22, 2024 at 8:58â¯AM Koen De Hondt
> <koen(a)all-objects-all-the-time.st> wrote:
>>
>> Dear Pharo users and developers,
>>
>> I wrote a blog post in which I evaluate SUnit.
>>
>> Enjoy reading it!
>>
>> Ciao,
>> Koen
>>
Dec. 29, 2024
files.pharo.org scheduled downtime
by Christophe Demarey
Dear Pharo users,
We would like to inform you that the files.pharo.org service will be unavailable due to an electrical maintenance intervention in the server room.
Downtime Schedule (CET):
Start: Thursday, January 2nd, 6:00 PM
End: Friday, January 3rd, 10:00 AM
We apologize for any inconvenience this may cause and thank you for your understanding.
Best regards,
The Pharo team
Ps: Pharo Launcher and smalltalk-ci uses this service to get fresh Pharo images.
Dec. 23, 2024
2nd CfP: SLE 2025 - 18th ACM SIGPLAN International Conference on Software Language Engineering
by Andrei Chis
18th ACM SIGPLAN International Conference on Software Language Engineering
(SLE 2025)
12-13 June 2025
Koblenz, Germany
https://www.sleconf.org/2025/
https://x.com/sleconf
------------------------------------------------------------------------
We are pleased to invite you to submit papers to the 18th ACM SIGPLAN
International Conference on Software Language Engineering (SLE) which is
devoted to the principles of software languages: their design, their
implementation, and their evolution. The SLE 2025 conference will be
co-located with STAF 2025 and hosted in Koblenz, Germany, on 12-13 June
2025.
---------------------------
Important Dates
---------------------------
* Abstract submission: Fri 7 Feb 2025
* Paper submission: Fri 14 Feb 2025
* Authors response period: Tue 1 Apr - Sat 5 Apr 2025
* Notification: Tue 15 Apr 2025
* Conference: Thu 12 June - Fri 13 June 2025 (co-located with STAF)
All dates are Anywhere on Earth.
---------------------------
Topics of Interest
---------------------------
SLE covers software language engineering in general, rather than
engineering a specific software language. Topics of interest include, but
are not limited to:
* Software Language Design and Implementation
- Approaches to and methods for language design
- Static semantics (e.g., design rules, well-formedness constraints)
- Techniques for specifying behavioral/executable semantics
- Generative approaches (incl. code synthesis, compilation)
- Meta-languages, meta-tools, language workbenches
- AI-assisted language design and optimisation
* Software Language Validation
- Verification and formal methods for languages
- Testing techniques for languages
- Simulation techniques for languages
- Model-based testing
- AI-assisted validation
* Software Language Integration and Composition
- Coordination of heterogeneous languages and tools
- Mappings between languages (incl. transformation languages)
- Traceability between languages
- Deployment of languages to different platforms
- AI-assisted refactoring
* Software Language Maintenance
- Software language reuse
- Language evolution
- Language families and variability, language and software product lines
* Domain-specific approaches for any aspects of SLE (design,
implementation, validation, maintenance)
* Empirical evaluation and experience reports of language engineering tools
- User studies evaluating usability
- Performance benchmarks
- Industrial applications
* Synergies between Language Engineering and emerging/promising research
areas
- Generative AI in language engineering (e.g., AI-based language
modelling, AI-driven code generation tools)
- AI and ML language engineering (e.g., ML compiler testing, code
classification)
- Quantum language engineering (e.g., language design for quantum
machines)
- Language engineering for physical systems (e.g., CPS, IoT, digital
twins)
- Socio-technical systems and language engineering (e.g., language
evolution to adapt to social requirements)
---------------------------
Types of Submissions
---------------------------
SLE accepts the following types of papers:
* Research papers: These are âtraditionalâ papers detailing research
contributions to SLE. Papers may range from 6 to 12 pages in length and may
optionally include 2 further pages of bibliography/appendices. Papers will
be reviewed with an understanding that some results do not need 12 full
pages and may be fully described in fewer pages.
* New ideas/vision papers: These papers may describe new, unconventional
software language engineering research positions or approaches that depart
from standard practice. They can describe well-defined research ideas that
are at an early stage of investigation. They could also provide new
evidence to challenge common wisdom, present new unifying theories about
existing SLE research that provides novel insight or that can lead to the
development of new technologies or approaches, or apply SLE technology to
radically new application areas. New ideas/vision papers must not exceed 5
pages and may optionally include 1 further page of bibliography/appendices.
* SLE Body of Knowledge: The SLE Body of Knowledge (SLEBoK) is a
community-wide effort to provide a unique and comprehensive description of
the concepts, best practices, tools, and methods developed by the SLE
community. In this respect, the SLE conference will accept surveys, essays,
open challenges, empirical observations, and case study papers on the SLE
topics. These can focus on, but are not limited to, methods, techniques,
best practices, and teaching approaches. Papers in this category can have
up to 20 pages, including bibliography/appendices.
* Tool papers: These papers focus on the tooling aspects often forgotten or
neglected in research papers. A good tool paper focuses on practical
insights that will likely be useful to other implementers or users in the
future. Any of the SLE topics of interest are appropriate areas for tool
demonstrations. Submissions must not exceed 5 pages and may optionally
include 1 further page of bibliography/appendices. They may optionally
include an appendix with a demo outline/screenshots and/or a short
video/screencast illustrating the tool.
Workshops: Workshops will be organised by STAF. Please inform us and
contact STAF 2025 organisers if you would like to organise a workshop of
interest to the SLE audience. Information on how to submit workshops can be
found on the STAF 2025 Website.
---------------------------
Submission
---------------------------
SLE 2025 has a single submission round for papers, including a mandatory
abstract registration and a rebuttal phase, where all authors of research
papers will have the possibility of responding to the reviews on their
submissions.
Authors of accepted research papers will be invited to submit artefacts.
---------------------------
Format
---------------------------
Submissions have to use the ACM SIGPLAN Conference Format âacmartâ (
https://sigplan.org/Resources/Author/#acmart-format) please make sure that
you always use the latest ACM SIGPLAN acmart LaTeX template, and that the
document class definition is
`\documentclass[sigplan,anonymous,review]{acmart}`. Do not make any changes
to this format!
Ensure that your submission is legible when printed on a black and white
printer. In particular, please check that colours remain distinct and font
sizes in figures and tables are legible.
To increase fairness in reviewing, a double-blind review process has become
standard across SIGPLAN conferences. Accordingly, SLE will follow the
double-blind process. Author names and institutions must be omitted from
submitted papers, and references to the authorsâ own related work should be
in the third person. No other changes are necessary, and authors will not
be penalized if reviewers are able to infer their identities in implicit
ways.
All submissions must be in PDF format. The submission website is:
https://sle25.hotcrp.com
---------------------------
Concurrent Submissions
---------------------------
Papers must describe unpublished work that is not currently submitted for
publication elsewhere as described by SIGPLANâs Republication Policy (
https://www.sigplan.org/Resources/Policies/Republication/) Submitters
should also be aware of ACMâs Policy and Procedures on Plagiarism (
https://www.acm.org/publications/policies/plagiarism-overview) Submissions
that violate these policies will be desk-rejected.
---------------------------
Policy on Human Participant and Subject Research
---------------------------
Authors conducting research involving human participants and subjects must
ensure that their research complies with their local governing laws and
regulations and the ACMâs general principles, as stated in the ACMâs
Publications Policy on Research Involving Human Participants and Subjects (
https://www.acm.org/publications/policies/research-involving-human-particip…)
If submissions are found to be violating this policy, they will be rejected.
---------------------------
Reviewing Process
---------------------------
All submitted papers will be reviewed by at least three members of the
program committee. Research papers and tool papers will be evaluated
concerning soundness, relevance, novelty, presentation, and replicability.
New ideas/vision papers will be evaluated primarily concerning soundness,
relevance, novelty, and presentation. SLEBoK papers will be reviewed on
their soundness, relevance, originality, and presentation. Tool papers will
be evaluated concerning relevance, presentation, and replicability.
For fairness reasons, all submitted papers must conform to the above
instructions. Submissions that violate these instructions may be rejected
without review at the discretion of the PC chairs.
For research papers, authors will get a chance to respond to the reviews
before a final decision is made.
---------------------------
Artefact Evaluation
---------------------------
SLE will use an evaluation process to assess the quality of artefacts on
which papers are based to foster the culture of experimental
reproducibility. Authors of accepted research papers are invited to submit
artefacts.
---------------------------
Awards
---------------------------
* Distinguished paper: Award for the most notable paper, as determined by
the PC chairs based on the recommendations of the program committee.
* Distinguished artefact: Award for the artefact most significantly
exceeding expectations, as determined by the AEC chairs based on the
recommendations of the artefact evaluation committee.
* Distinguished reviewer: Award for the programme committee member that
produced the most useful reviews as assessed by paper authors.
* Most Influential Paper: Award for the SLE 2015 paper with the greatest
impact, as judged by the SLE Steering Committee.
---------------------------
Publication
---------------------------
All accepted papers will be published in the ACM Digital Library.
**AUTHORS TAKE NOTE**: The official publication date is the date the
proceedings are made available in the ACM Digital Library. This date may be
up to two weeks prior to the first day of the conference. The official
publication date affects the deadline for any patent filings related to
published work.
---------------------------
Organisation
---------------------------
* General chair: Görel Hedin, Lunds Universitet, Sweden
* PC co-chair: Regina Hebig, Universität Rostock, Germany
* PC co-chair: Vadim Zaytsev, Universiteit Twente, The Netherlands
* Publicity chair: Andrei ChiÅ, feenk gmbh, Switzerland
* Local chair: Ralf Lämmel, Universität Koblenz, Germany
---------------------------
Contact
---------------------------
For additional information, clarification, or answers to any questions,
please get in touch with the program co-chairs (regina.hebig(a)uni-rostock.de
and vadim(a)grammarware.net)
Dec. 20, 2024
Pharo News of the Week 51/2024
by Marcus Denker
# Pharo News of the Week 51/2024
- [ANN] pharox-dependency-visualizer: This tool helps understand/untangle dependencies
https://github.com/ironirc/pharox-dependency-visualizer
- [ANN] A Pharo/Bloc port of the example code from The Nature of Code book by Daniel Shiffman
https://github.com/lucretiomsp/nature-of-code-pharo
- [ANN] Pharo UFFI binding with the rtmidi library
https://github.com/ironirc/pharo-rtmidi
- [ANN] Poster from Audio Developer Conference 2024: "Phausto: fast and accessible DSP programming in Pharo" https://hal.science/hal-04813572v1/file/ADC2024-poster.pdf
The weekly newsletter takes a break for the rest of the year.
We wish already a happy new year and will be back in the second week of January.!
# The week on the Pharo Issue Tracker
# Pharo 12
- Fix compiler literals p12 #17532
https://github.com/pharo-project/pharo/pull/17532
# VM
- Fixes for 10.3.2 #885
https://github.com/pharo-project/pharo-vm/pull/885
- Enhancement(versionning): Extract full semantic version from git #884
https://github.com/pharo-project/pharo-vm/pull/884
# Features
- Breakpoints in debugger #920
https://github.com/pharo-spec/NewTools/pull/920
- Sorting items in bag inspector by default #915
https://github.com/pharo-spec/NewTools/pull/915
- Using the dedicated pointers to image #1647
https://github.com/pharo-spec/Spec/pull/1647
# Fixes
- Fix: #17531: We can use string instead of symbols in slot in class definition #17531 #17537
https://github.com/pharo-project/pharo/pull/17537
- fix-SDL-default-renderer-by-platform #17517
https://github.com/pharo-project/pharo/pull/17517
# Refactoring Engine
- Fix RBClassRegexRefactoring #17552
https://github.com/pharo-project/pharo/pull/17552
- rename asMethodPreamble (dated concept) to asMethodSignature #17547
https://github.com/pharo-project/pharo/pull/17547
- fix #17543: [RB] Comment on RBClassRegexRefactoring and superclass is wrong #17545
https://github.com/pharo-project/pharo/pull/17545
- Cleaning ReDriver #17541
https://github.com/pharo-project/pharo/pull/17541
- Fixing the rename from call site. #17536
https://github.com/pharo-project/pharo/pull/17536
# Compiler
- Fix: #17524 MOve OCASTSemanticCleaner to its only user: Reflectivity #17546
https://github.com/pharo-project/pharo/pull/17546
- improve comment of private method scanToken #17539
https://github.com/pharo-project/pharo/pull/17539
- Deprecate IRFix #17538
https://github.com/pharo-project/pharo/pull/17538
- Improving opal comment4 #17530
https://github.com/pharo-project/pharo/pull/17530
- Better comment in opal #17526
https://github.com/pharo-project/pharo/pull/17526
- Deprecate RBParser and RBPatternParser. #17514
https://github.com/pharo-project/pharo/pull/17514
# Comments
- Better class comment for commentTestCase #17540
https://github.com/pharo-project/pharo/pull/17540
Dec. 20, 2024
Pharo News of the Week 50/2024
by Marcus Denker
# Pharo News of the Week 50/2024
- [ANN] MasterLu is your electronic music teacher in Pharo: https://github.com/lucretiomsp/MasterLu
- [ANN] ESUG 2024: Show Us Your Project playlist https://www.youtube.com/playlist?list=PLJ5nSnWzQXi89jwnBCmGPh9xG6shuvuwb
# The week on the Pharo Issue Tracker
# Fixes
- Fix crash of Mac on 4K display #17496
https://github.com/pharo-project/pharo/pull/17496
- Adding fallback code in the allocation primitives basicNewTenured, basicNewTenured: #17492
https://github.com/pharo-project/pharo/pull/17492
- DynamicLoader: unsing LoadLibraryW instead old LoadLibrary in windows #17479
https://github.com/pharo-project/pharo/pull/17479
- Fix #17471: custom Job interruption #17474
https://github.com/pharo-project/pharo/pull/17474
# VM
- Fixes for 10.3.2 #885
https://github.com/pharo-project/pharo-vm/pull/885
- Enhancement(versionning): Extract full semantic version from git #884
https://github.com/pharo-project/pharo-vm/pull/884
# Refactoring Engine
- Created new driver for tempToIV refactoring #17490
https://github.com/pharo-project/pharo/pull/17490
- Deprecate RBParser and RBPatternParser. #17514
https://github.com/pharo-project/pharo/pull/17514
# CI
- Skip some socket tests on windows #17498
https://github.com/pharo-project/pharo/pull/17498
- Fix release tests #17497
https://github.com/pharo-project/pharo/pull/17497
# Documentation
- Update README.md #919
https://github.com/pharo-spec/NewTools/pull/919
Dec. 13, 2024
Pharo News of the Week 49/2024
by Marcus Denker
# Pharo News of the Week 49/2024
- [New blog] Music and Sounds with Pharo https://lucretiomsp.github.io/musicwithpharo/
- [Blog Post] Phausto at IFC24 https://lucretiomsp.github.io/musicwithpharo/2024/11/24/phaustoIFC24.html
# The week on the Pharo Issue Tracker
# Fixes
- Fix the possibility to put methods as extensions #17489
https://github.com/pharo-project/pharo/pull/17489
- 17487-SignalLogger-should-unsubscribe-on-intance-reset #17488
https://github.com/pharo-project/pharo/pull/17488
- Add tests for safeMethodNameFor:basedOn: and revisit it #17486
https://github.com/pharo-project/pharo/pull/17486
- Do not change the border color of an ImageMorph if it already has a color #17475
https://github.com/pharo-project/pharo/pull/17475
- Fix default behavior of literalEqual: #17467
https://github.com/pharo-project/pharo/pull/17467
- Fixes 17483 on Pharo putting finder in browse menu #918
https://github.com/pharo-spec/NewTools/pull/918
# Spec
- add drag transfer customization #1678
https://github.com/pharo-spec/Spec/pull/1678
- Fix implementors of #transferFrom:event: that no longer add #shouldCopy from the TransferMorph to the SpDragAndDropTransfer #1677
https://github.com/pharo-spec/Spec/pull/1677
# Iceberg / Git
- Fixes # 1861 on Pharo : location not a git repo when Importing existing clone #1862
https://github.com/pharo-vcs/iceberg/pull/1862
- Pressing enter activates ok action in new branch dialog #1869
https://github.com/pharo-vcs/iceberg/pull/1869
- Enabled cancel button / selected the first option by default ( if the list is not empty ) #1868
https://github.com/pharo-vcs/iceberg/pull/1868
- Fixes #1863 changed title desc for assertion failure #1865
https://github.com/pharo-vcs/iceberg/pull/1865
# Refactoring Engine
- refactorings (R) rename method is fixed #17495
https://github.com/pharo-project/pharo/pull/17495
- Extract temp continued #17478
https://github.com/pharo-project/pharo/pull/17478
- Adding comments and protocols reoganisation for RBMethod. #17484
https://github.com/pharo-project/pharo/pull/17484
# VM
- Prepare release 10.3.2 #879
https://github.com/pharo-project/pharo-vm/pull/879
- Update README #878
https://github.com/pharo-project/pharo-vm/pull/878
- fix unused-local-typedef #877
https://github.com/pharo-project/pharo-vm/pull/877
- When patching JITed code after become of a class, the class index can look like a negative number #873
https://github.com/pharo-project/pharo-vm/pull/873
- Add default values to --help parameters #872
https://github.com/pharo-project/pharo-vm/pull/872
- Cleanups and improvements #871
https://github.com/pharo-project/pharo-vm/pull/871
# Cleanup
- Rename temp var; remove dot after comment #17463
https://github.com/pharo-project/pharo/pull/17463
- Remove some of the last users of SystemAnnouncer uniqueInstance #17372
https://github.com/pharo-project/pharo/pull/17372
- fix a baseline problem #917
https://github.com/pharo-spec/NewTools/pull/917
# Pharo 12
- [Backport] Undo fixes p12 #17309
https://github.com/pharo-project/pharo/pull/17309
- Fix ring global variable #17470
https://github.com/pharo-project/pharo/pull/17470
Dec. 11, 2024
Pharo News of the Week 48/2024
by Marcus Denker
# Pharo News of the Week 48/2024
- [Blog Post] Evaluation of SUnit https://all-objects-all-the-time.st/#/blog/posts/10
# The week on the Pharo Issue Tracker
# Pharo 11
- Apply changes from pull request #17375 (âuse file server @ inriaâ) to âPharo11â #17462
https://github.com/pharo-project/pharo/pull/17462
- Backport addition of discardBuffer to ZnBufferedReadStream>>#readInto:startingAt:count in the case that the buffer is bypassed to Pharo 11 #17382
https://github.com/pharo-project/pharo/pull/17382
# Features
- Morphic File List replacement with New Tools File Browser #17383
https://github.com/pharo-project/pharo/pull/17383
- 17435 introduce backward compatible rewriting #17438
https://github.com/pharo-project/pharo/pull/17438
# Improvements
- Discard Finder unnecessary evaluation with time out in the Compiler #910
https://github.com/pharo-spec/NewTools/pull/910
- Fix: #17423 Pass different application to Cycle Presenter #17429
https://github.com/pharo-project/pharo/pull/17429
- 17451 pharos about window should give the date of the build #17456
https://github.com/pharo-project/pharo/pull/17456
- Add String>>withPlatformLineEndings #17457
https://github.com/pharo-project/pharo/pull/17457
- Fixes #17459: Remove "Declare new Global" feature from the undeclared variable dialogue #17465
https://github.com/pharo-project/pharo/pull/17465
# Refactoring Engine
- Adding RBInteractionDriver #17455
https://github.com/pharo-project/pharo/pull/17455
- Fix for Better use the correct condition in RB rename instance variable #17454
https://github.com/pharo-project/pharo/pull/17454
- Revert "ExtractTempDriver" #17452
https://github.com/pharo-project/pharo/pull/17452
- 17440 refactorings reserved names should not be duplicated #17450
https://github.com/pharo-project/pharo/pull/17450
- 17436 again the push up user refactoring interface got broken #17446
https://github.com/pharo-project/pharo/pull/17446
- Fix Rename temp refactoring #17441
https://github.com/pharo-project/pharo/pull/17441
- Discard methodDefinedInClassCondition while renaming method #17425
https://github.com/pharo-project/pharo/pull/17425
- Remember package refactor17388 #17414
https://github.com/pharo-project/pharo/pull/17414
# Spec
- fix column view resizable columns #1675
https://github.com/pharo-spec/Spec/pull/1675
- add new list view components #1674
https://github.com/pharo-spec/Spec/pull/1674
- fixes 1663 #1673
https://github.com/pharo-spec/Spec/pull/1673
- Add missing keyboard focus methods #1669
https://github.com/pharo-spec/Spec/pull/1669
- 1658 deprecate at in favor for at point in sp grid layout #1667
https://github.com/pharo-spec/Spec/pull/1667
# Fixes
- Fix Pharo build #913
https://github.com/pharo-spec/NewTools/pull/913
# Bootstrap
- Add a retry in case of IceGenericError in the bootstrap #17466
https://github.com/pharo-project/pharo/pull/17466
# Cleanup
- Explicit morphic/uimanager dependencies #878
https://github.com/pharo-spec/NewTools/pull/878
- use registerToolsOn: logic to respect architecture: class initialize #911
https://github.com/pharo-spec/NewTools/pull/911
- Remove broken method from PlaygroundPresenter #914
https://github.com/pharo-spec/NewTools/pull/914
- Remove the last case of ad-hoc polymorphism around on:do: . Deprecate⦠#17385
https://github.com/pharo-project/pharo/pull/17385
- Remove old Finder references in Baselines #17421
https://github.com/pharo-project/pharo/pull/17421
- Fixes: ##17426 there is no need for this method. Its caller checks th⦠#17428
https://github.com/pharo-project/pharo/pull/17428/files
- 17403 test case failure log should not refer to a globlal #17434
https://github.com/pharo-project/pharo/pull/17434
- Fix double dot at end of line #17448
https://github.com/pharo-project/pharo/pull/17448
- fixing unused instance variable #17447
https://github.com/pharo-project/pharo/pull/17447
- Tag some ExternalAddress method as to ignore by testNoEquivalentSuperclassMethods #17416
https://github.com/pharo-project/pharo/pull/17416
- Less Smalltalk hardcoded references #1659
https://github.com/pharo-spec/Spec/pull/1659
Dec. 10, 2024