>
> In commemoration of the 40th anniversary of the release of Smalltalk-80,
> the Computer History Museum is proud to announce a collaboration with Dan
> Ingalls to preserve and host the “Smalltalk Zoo.”
Dan has been working on this for a good while now. I helped with the
SqueakJS part. Today the Computer History Museum announced it:
https://computerhistory.org/blog/introducing-the-smalltalk-zoo-48-years-of-…
Not everything is working perfectly yet. If you want to help out, I can put
you in touch with Dan.
Cheers!
Vanessa
Branch: refs/heads/Cog
Home: https://github.com/OpenSmalltalk/opensmalltalk-vm
Commit: 5431a13d1ef2b3f37b0527405d9e771693d02ff1
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/5431a13d1ef2b3f37b…
Author: Eliot Miranda <eliot.miranda(a)gmail.com>
Date: 2020-12-17 (Thu, 17 Dec 2020)
Changed paths:
M build.macos64ARMv8/common/Makefile.flags
M build.macos64ARMv8/common/Makefile.vm
M build.macos64ARMv8/common/entitlements.plist
M build.macos64x64/common/Makefile.flags
M build.macos64x64/common/Makefile.vm
Log Message:
-----------
MacOS:
Copy changes to the ARMv8 build, and clean-up to reduce extraneous diffs.
[ci skip]
Branch: refs/heads/Cog
Home: https://github.com/OpenSmalltalk/opensmalltalk-vm
Commit: 912e763a1c49692ccb53faddfa0c42737c258879
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/912e763a1c49692ccb…
Author: Eliot Miranda <eliot.miranda(a)gmail.com>
Date: 2020-12-17 (Thu, 17 Dec 2020)
Changed paths:
M build.macos64x64/common/Makefile.flags
M build.macos64x64/common/Makefile.vm
M build.macos64x64/common/entitlements.plist
M platforms/iOS/plugins/CameraPlugin/AVFoundationVideoGrabber.m
M platforms/iOS/plugins/SoundPlugin/sqSqueakSoundCoreAudio.m
M platforms/iOS/vm/OSX/Squeak-Info.plist
Log Message:
-----------
MacOS:
Add entitlements for camera and microphone access for Big Sur. Add the code
to request permission from the user. This is only compilable on 10.14 SDKs
and subsequent, so the code is guarded and not included if compiled with an
earlier SDK. Hence add AVFoundation to the base VM's frameworks; the auth
code is defined here-in.
Make sure TARGET_MIN_VERSION is passed to plugin makes.
Correct a slip in the microphone entitlement usage string in the plist.
[ci skip]
Hi Eliot / Clément / everyone,
how do I properly convert a 64 bit method header word to 32 bits?
E.g. if in 64 bits I have 0x8000000000000049 my guess it would be 0x80000049 in
32 bits, but which bits should I actually drop?
Thanks!
Vanessa
Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.2886.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.2886
Author: eem
Time: 15 November 2020, 11:27:11.64449 pm
UUID: 78490b88-d959-40aa-9436-2b640bb0ecc6
Ancestors: VMMaker.oscog-eem.2885
Oops. Forgot to revert a method necessary to make the previous commit compile.
=============== Diff against VMMaker.oscog-eem.2885 ===============
We are seeking to appoint a qualified and highly motivated researcher to work as a Research Associate (Postdoc) as well as a PhD student. You will work on a project titled “CaMELot: Catching and Mitigating Event-Loop Concurrency Issues”, which is funded by an EPSRC UK grant and is led by Dr Stefan Marr.
Job description / Additional Information / Please apply at:
Postdoc Closing Date: 17 January 2021
https://jobs.kent.ac.uk/Vacancy.aspx?ref=CEMS-005-20
PhD studentship Closing Date: 13 January 2021
https://www.jobs.ac.uk/job/CCY406/phd-studentship-catching-and-mitigating-e…
Modern server applications utilize concurrency in many ways. Actors and event loops are popular as programming paradigms since they avoid low-level concurrency issues. Unfortunately, even when using actors or event loops, server applications still show other types of concurrency bugs. Though, they can be mitigated with run-time detection techniques. In the CaMELot project, we want to make detection and mitigation fast enough to be usable in production systems. This way, even though software may contain bugs, we can reduce their impact on correct execution.
Building on a system for deterministic replay of actor applications, you would investigate how one can use lightweight race detection to facilitate debugging of the underlying concurrency issues. Afterall, if we can detect the issues, we should help developers to fix them! One of the challenges here is to derive actionable insights from the detected races. A tool processing the race detection results may guide developers to fix the underlying issues, possibly replaying the problematic execution for the developers.
For more details, please email me (s.marr(a)kent.ac.uk) or see the links above.
When joining the project, you’ll also be an active member of the Programming Languages and Systems (PLAS) research group. PLAS spans the breadth and depth of practical and theoretical aspects of programming languages and system building related to languages. Our work goes across paradigms (imperative, object-oriented, functional, logic) and is complemented by our systems research in concurrency, relaxed memory, verified compilation, verification, language prototypes, garbage collection, and tools. All our work is linked by a shared vision of the power and impact of programming languages on the rest of Computer Science. The PLAS group at Kent has a long history of contributions to the field and continues to be a hotbed of programming language research in the South East of England:
https://www.cs.kent.ac.uk/research/groups/plas/index.html
The School of Computing [1] is a welcoming, supportive, and diverse environment whose commitment to gender equality has been recognised with a Bronze Athena SWAN [2] award. We are keen to enhance the balanced, inclusive and diverse nature of the community within our School and would particularly encourage female candidates to apply for these posts.
The University of Kent campus overlooks the city centre of Canterbury, and with 125 nationalities represented, it has a very cosmopolitan feel. Canterbury is a small city that retains parts of its medieval walls (with Roman foundations). Famous for its heritage (Canterbury Cathedral; Chaucer’s Tales; etc), Canterbury is a vibrant community and UNESCO World Heritage site whose culture and leisure facilities are enhanced by hosting three universities. The city and surrounding region combines an attractive and affordable environment, excellent schools, and fast transport links to London and mainland Europe.
Links:
[1] https://cs.kent.ac.uk/
[2] http://www.ecu.ac.uk/equality-charters/athena-swan/
--
Stefan Marr
School of Computing, University of Kent
https://stefan-marr.de/research/
============================================================================
Call for Extended Abstracts and Talks: MoreVMs’21
5th International Workshop on
Modern Language Runtimes, Ecosystems, and VMs
Co-located with ‹Programming›’21
March 22nd to 26th, 2021, Online, United Kingdom
https://2021.programming-conference.org/home/MoreVMs-2021
============================================================================
Following four previous successful editions, the MoreVMs’21 workshop aims to
bring together industrial and academic programmers to discuss the design,
implementation, and usage of modern languages and runtimes. This includes
aspects such as reuse of language runtimes, modular implementation, language
design, and compilation strategies. By bringing together both researchers and
practitioners, the workshop aims to enable a diverse discussion on how
languages and runtimes are currently being utilized, and where they need to
improve further.
In addition to conventional workshop-style submissions, MoreVMs also accepts
(and encourages) submissions that present early-stage work and emerging ideas.
Relevant topics include, but are definitely not limited to, the following:
- Extensible VM design (compiler- or interpreter-based VMs)
- Reusable components (e.g. interpreters, garbage collectors, ...)
- Static and dynamic compilation techniques
- Techniques for targeting high-level languages such as JavaScript
- Interoperability between languages
- Tooling support (e.g. debugging, profiling, etc.)
- Programming language development environments
- Case studies of existing language implementation approaches
- Language implementation challenges and trade-offs
- Surveys and usage reports to understand usage in the wild
- Ideas for more predictable performance
- Ideas for how VMs could take advantage of new hardware features
- Ideas for how we should build languages in the future
Workshop Format and Submissions
-------------------------------
We welcome presentation proposals in the form of extended abstracts (2 to 4
pages long) and talk proposals (title and 400 words abstract) discussing new
techniques, insights, experiences, works-in-progress, as well as future
visions, from either an academic or industrial perspective.
The extended abstracts and talk proposals, and if the speakers wish, their
slides, will be published on the workshop's website. Alternatively, extended
abstracts can be published as part of the companion of ‹Programming›’21 in the
ACM DL. Publication in the ACM DL is conditional on the acceptance by the
program committee.
Please note that MoreVMs’21 is organized as an academic workshop, and as such,
speakers will be required to register for the workshop.
Author Instructions
-------------------
Submissions should use the ACM `acmart` format:
https://www.acm.org/publications/proceedings-template
If you are using LaTeX, submissions should use the 'acmart' document class with
the 'sigconf' option, and with a font size of 9 point. Please use the
Libertine/Biolinum font family. Please include page numbers in your submission
using the LaTeX command `\settopmatter{printfolios=true}`.
All submissions should be in PDF format.
Please also ensure that your submission is legible when printed on a black and
white printer. In particular, please check that colors remain distinct and font
sizes are legible.
Submission Site: https://easychair.org/conferences/?conf=morevms21
Important Dates
---------------
Extended abstract and talk submissions: 2021-01-13
Author notification: 2021-02-15
Camera Ready: 2021-02-26
Workshop: TBA (between 2021-03-22 and 2021-03-26)
All deadlines are Anywhere on Earth (AoE), i.e. GMT/UTC-12:00 hour.
Program Committee
-----------------
Maya Armyanova, Google, Germany
Maxime Chevalier-Boisvert, Université de Montréal, Canada
Lukas Diekmann, King's College London, United Kingdom
Charlie Gracie, Microsoft, Canada
Daco Harkes, Google, Denmark
Christian Humer, Oracle Labs, Switzerland
Sophie Kaleba, University of Kent, United Kingdom
Mikel Luján, University of Manchester, United Kingdom
Ana Milanova, Rensselaer Polytechnic Institute, United States
Tobias Pape, Hasso Plattner Institute, University of Potsdam, Germany
Tomoharu Ugawa, University of Tokyo, Japan
Organizers
----------
Fabio Niephaus, Hasso Plattner Institute, University of Potsdam, Germany
David Leopoldseder, Oracle Labs, Austria
Is anybody else doing anything with MP3 files? It looks like we haven't included any image-side support for them for several releases now (I've look back to 4.5) but it is/was working just fine for the work I did on Pi Scratch. That was, admittedly, quite a while ago.
In the current system I can load much of Scratch without too many issues - sounds are really messed up in various places, some morph building is broken etc - but today I'm trying to see why mp3 sounds don't.
It seems that the code for the src/plugins/Mpeg3Plugin.c is broken. The autogenerated checks for the types of the arguments is insisting that be indexable pointers, when is is in fact a variable word array. That at least explains why the prim fails, which is at least a step forward.
Current code on opensmalltalk git -
/* int mpeg3_read_audio(mpeg3_t *file,
float *output_f,
short *output_i,
int channel,
long samples,
int stream) */
/* Mpeg3Plugin>>#primitiveMPEG3ReadAudio:shortArray:channel:samples:stream: */
EXPORT(sqInt)
primitiveMPEG3ReadAudio(void)
{
sqInt aChannelNumber;
sqInt aNumber;
sqInt *anArray;
short *arrayBase;
sqInt aSampleNumber;
mpeg3_t *file;
sqInt fileHandle;
sqInt result;
result = 0;
if (!(((isPointers(stackValue(3)))
&& (isIndexable(stackValue(3))))
&& ((isIntegerObject((aChannelNumber = stackValue(2))))
&& ((isIntegerObject((aSampleNumber = stackValue(1))))
&& (isIntegerObject((aNumber = stackValue(0)))))))) {
primitiveFailFor(PrimErrBadArgument);
return null;
}
The two interesting things I have remaining energy to point out today -
The Slang does explicitly and wrongly declare it as
self primitive: 'primitiveMPEG3ReadAudio' parameters: #(Oop Array SmallInteger SmallInteger SmallInteger).
.. which clearly doesn't help. It has, however, been that way since 2006.
And the old C file from Back Then has
result = 0;
fileHandle = stackValue(4);
success(isIndexable(stackValue(3)));
anArray = ((sqInt *) (firstIndexableField(stackValue(3))));
aChannelNumber = stackIntegerValue(2);
aSampleNumber = stackIntegerValue(1);
aNumber = stackIntegerValue(0);
if (failed()) {
return null;
}
.. and so it makes kinda sense why it worked Back Then.
Thus I am inclined (and not just because I'm falling asleep) to think that some change in how the prologue stuff is generated might have started to note the Array declaration and become more zealous.
More when awake.
tim
--
tim Rowledge; tim(a)rowledge.org; http://www.rowledge.org/tim
Strange OpCodes: STOP: No Op
Branch: refs/heads/Cog
Home: https://github.com/OpenSmalltalk/opensmalltalk-vm
Commit: 73ed9e41c227f41c9e96631d4ee55feb91f69f35
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/73ed9e41c227f41c9e…
Author: Eliot Miranda <eliot.miranda(a)gmail.com>
Date: 2020-12-14 (Mon, 14 Dec 2020)
Changed paths:
M src/plugins/Mpeg3Plugin/Mpeg3Plugin.c
Log Message:
-----------
CogVM source as per VMMaker.oscog-tpr.2906
Mpeg3Plugin sample read routines must expect word arrays, not pointer arrays.
Became an issue recently due to Slang changes?