============================================================================
Call for Papers: MoreVMs’17
1st Workshop on
Modern Language Runtimes, Ecosystems, and VMs
Co-located with <Programming> 2017
April, 2017, Brussels, Belgium
http://2017.programming-conference.org/track/MoreVMs-2017-papers
============================================================================
The MoreVMs'17 workshop aims bring together programmers from industry and
academy to discuss the design, implementation, and usage of modern languages
and runtimes. This includes aspects such as reuse of language runtimes, modular
implementation, or design and compilation strategies to target existing
runtimes.
The main goals of the workshop is to bring together both researchers and
practitioners and facilitate effective sharing of their respective experiences
and ideas on how languages and runtimes are utilized and where they need to
improve further. We welcome presentation proposals in the form of extended
abstracts discussing experiences, work-in-progress, as well as future visions
from the academic as well as industrial perspective. Relevant topics include,
but are definitely not limited to, the following:
- extensible VM design (compiler- or interpreter-based VMs)
- reusable runtime components (e.g. interpreters, garbage collectors,
intermediate representations)
- static and dynamic compiler techniques
- techniques for compilation to high-level languages such as JavaScript
- runtimes and mechanisms for interoperability between languages
- tooling support (e.g. debugging, profiling, etc.)
- programming language development environments and virtual machines
- case studies of existing language implementations, virtual machines, and
runtime components (e.g. design choices, tradeoffs, etc.)
- language implementation challenges and trade-offs (e.g. performance, completeness, etc.)
- surveys and applications usage reports to understand runtime usage in the wild
- surveys on frameworks and their impact on runtime usage
- new research ideas on how we want to build languages in the future
### Workshop Format and Submissions
This workshop welcomes the presentation and discussion of new ideas and
emerging problems to facilitate interaction among workshop participants and
exchange of ideas. We accept presentation proposals in the form of extended
abstracts (1-2 pages). Accepted abstracts will be published on the workshop's
website before the workshop date.
For preparing your abstract, please use the provided author kit:
https://github.com/smarr/morevms17-author-kit. It is based on the ACM SIGPLAN
Conference Format with 10 point font, and includes a Creative Commons License,
which will allow us to publish the abstract on the workshop web site.
Please submit abstracts through http://ssw.jku.at/morevms17/
### Important Dates
Abstract submission: 15 February 2017
Author notification: 01 March 2017
Workshop: 3 April 2017
All deadlines are Anywhere on Earth (AoE), i.e. GMT/UTC−12:00 hour
### Program Committee
Matthias Grimmer, Oracle Labs
Christine H. Flood, Red Hat
Tony Hosking, Australian National University
Hannes Payer, Google
Tiark Rompf, Purdue University
Jeremy Singer, University of Glasgow
Mark Stoodley, IBM Canada
Sam Tobin-Hochstadt, Indiana University
### Workshop Organizers
Laurence Tratt, King's College London, United Kingdom
Adam Welc, Oracle Labs, United States
Stefan Marr, Johannes Kepler University Linz, Austria
ClementBera uploaded a new version of BytecodeSets to project VM Maker:
http://source.squeak.org/VMMaker/BytecodeSets.spur-cb.60.mcz
==================== Summary ====================
Name: BytecodeSets.spur-cb.60
Author: cb
Time: 19 December 2016, 11:11:28.315661 am
UUID: 80d34098-984f-4688-acae-978401da8a95
Ancestors: BytecodeSets.spur-cb.59
Fixed identityHash spec
=============== Diff against BytecodeSets.spur-cb.59 ===============
Item was changed:
BytecodeEncoder subclass: #EncoderForSistaV1
(excessive size, no diff calculated)
ClementBera uploaded a new version of BytecodeSets to project VM Maker:
http://source.squeak.org/VMMaker/BytecodeSets.spur-cb.59.mcz
==================== Summary ====================
Name: BytecodeSets.spur-cb.59
Author: cb
Time: 19 December 2016, 10:54:41.759471 am
UUID: 17db338f-e79a-48df-ab56-9fc40ce845c8
Ancestors: BytecodeSets.spur-eem.58
Added spec for idenityHash
=============== Diff against BytecodeSets.spur-eem.58 ===============
Item was changed:
BytecodeEncoder subclass: #EncoderForSistaV1
(excessive size, no diff calculated)
Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.2042.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.2042
Author: eem
Time: 17 December 2016, 12:35:26.951861 pm
UUID: 6c0ea7a2-25c3-4375-9ca0-f865eb2197ed
Ancestors: VMMaker.oscog-eem.2041
Refactor globalGarbageCollect to do the scavenge outside of the compactor.
Provide the mechanism to specify a different compactor.
=============== Diff against VMMaker.oscog-eem.2041 ===============
Item was changed:
----- Method: SpurMemoryManager class>>compactorClass (in category 'accessing class hierarchy') -----
compactorClass
"Answer the compaction algorithm to use."
+ ^Smalltalk classNamed: (initializationOptions at: #compactorClass ifAbsent: [#SpurPigCompactor])!
- ^SpurPigCompactor!
Item was changed:
----- Method: SpurMemoryManager>>globalGarbageCollect (in category 'gc - global') -----
globalGarbageCollect
<inline: true> "inline into fullGC"
self assert: self validObjStacks.
self assert: (self isEmptyObjStack: markStack).
self assert: (self isEmptyObjStack: weaklingStack).
+ "Mark objects /before/ scavenging, to empty the rememberedTable of unmarked roots."
self markObjects: true.
+
+ scavenger forgetUnmarkedRememberedObjects.
+ self doScavenge: MarkOnTenure.
+ segmentManager prepareForGlobalSweep. "for notePinned:"
+
compactor freeUnmarkedObjectsAndPrepareFreeSpace.
"Mid-way the leak check must be more lenient. Unmarked classes will have been
expunged from the table, but unmarked instances will not yet have been reclaimed."
self runLeakCheckerFor: GCModeFull
excludeUnmarkedNewSpaceObjs: true
classIndicesShouldBeValid: true.
compactor compact.
self setHeapSizeAtPreviousGC.
self assert: self validObjStacks.
self assert: (self isEmptyObjStack: markStack).
self assert: (self isEmptyObjStack: weaklingStack).
self assert: self allObjectsUnmarked.
self runLeakCheckerFor: GCModeFull!
Item was changed:
----- Method: SpurPigCompactor>>freeUnmarkedObjectsAndSortAndCoalesceFreeSpaceForPigCompact (in category 'compaction') -----
freeUnmarkedObjectsAndSortAndCoalesceFreeSpaceForPigCompact
"Sweep all of old space, freeing unmarked objects, coalescing free chunks, and sorting free space.
Doubly-link the free chunks in address order through the freeChunkNextIndex field using the
xor trick to use only one field, see e.g.
The Art of Computer Programming, Vol 1, D.E. Knuth, 3rd Ed, Sec 2.2.4 `Circular Lists', exercise. 18
http://en.wikipedia.org/wiki/XOR_linked_list.
Record the lowest free object in firstFreeChunk and the highest in lastFreeChunk.
Let the segmentManager mark which segments contain pinned objects via notePinned:."
| prevPrevFree prevFree |
<inline: #never> "for profiling"
manager checkFreeSpace: GCModeFull.
- scavenger forgetUnmarkedRememberedObjects.
- manager doScavenge: MarkOnTenure.
- manager segmentManager prepareForGlobalSweep."for notePinned:"
"throw away the list heads, including the tree."
manager resetFreeListHeads.
firstFreeChunk := prevPrevFree := prevFree := 0.
manager allOldSpaceEntitiesForCoalescingFrom: manager firstObject do:
[:o|
self assert: (firstFreeChunk = 0 or: [manager isFreeObject: firstFreeChunk]).
(manager isMarked: o)
ifTrue: "forwarders should have been followed in markAndTrace:"
[self assert: (manager isForwarded: o) not.
manager setIsMarkedOf: o to: false. "this will unmark bridges. undo the damage in notePinned:"
(manager isPinned: o) ifTrue:
[manager segmentManager notePinned: o]]
ifFalse: "unmarked; two cases, an unreachable object or a free chunk."
[| here |
self assert: (manager isRemembered: o) not. "scavenger should have cleared this above"
here := manager coallesceFreeChunk: o.
manager setObjectFree: here.
self inSortedFreeListLink: prevFree to: here given: prevPrevFree.
prevPrevFree := prevFree.
prevFree := here]].
prevFree ~= firstFreeChunk ifTrue:
[manager storePointer: manager freeChunkNextIndex
ofFreeChunk: prevFree
withValue: prevPrevFree].
lastFreeChunk := prevFree.
self inSortedFreeListLink: lastFreeChunk to: 0 given: prevPrevFree.
self assert: self checkTraversableSortedFreeList!
On Sat, Dec 17, 2016 at 9:57 AM, Robert Withers
<robert.w.withers(a)gmail.com> wrote:
>
> I need to apologize for all my dread behavior. Here is the reason, and I am
> on service-connected disability. Current diagnosis is Complex PTSD. Sorry
> about all my sturm und drang.
>
> http://www.ptsd.va.gov/public/problems/anger-and-trauma.asp
>
Sorry to hear you are suffering with that.
Hopefully a useful treatment is not too far away...
F.D.A. Agrees to New Trials for Ecstasy as Relief for PTSD Patients
http://www.nytimes.com/2016/11/29/us/ptsd-mdma-ecstasy.html?_r=0
cheers -ben
Branch: refs/heads/Cog
Home: https://github.com/OpenSmalltalk/opensmalltalk-vm
Commit: 28293aa6b85eb1903ad81d71285f5c3dcd6d8eb5
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/28293aa6b85eb1903a…
Author: Eliot Miranda <eliot.miranda(a)gmail.com>
Date: 2016-12-16 (Fri, 16 Dec 2016)
Changed paths:
M image/BuildSqueakSpurTrunkVMMakerImage.st
M nsspur64src/vm/cointerp.c
M nsspur64src/vm/cointerp.h
M nsspur64src/vm/gcc3x-cointerp.c
M nsspursrc/vm/cointerp.c
M nsspursrc/vm/cointerp.h
M nsspursrc/vm/gcc3x-cointerp.c
M nsspurstack64src/vm/gcc3x-interp.c
M nsspurstack64src/vm/interp.c
M nsspurstacksrc/vm/gcc3x-interp.c
M nsspurstacksrc/vm/interp.c
M spur64src/vm/cointerp.c
M spur64src/vm/cointerp.h
M spur64src/vm/gcc3x-cointerp.c
M spursista64src/vm/cointerp.c
M spursista64src/vm/cointerp.h
M spursista64src/vm/gcc3x-cointerp.c
M spursistasrc/vm/cointerp.c
M spursistasrc/vm/cointerp.h
M spursistasrc/vm/gcc3x-cointerp.c
M spursrc/vm/cointerp.c
M spursrc/vm/cointerp.h
M spursrc/vm/gcc3x-cointerp.c
M spurstack64src/vm/gcc3x-interp.c
M spurstack64src/vm/interp.c
M spurstacksrc/vm/gcc3x-interp.c
M spurstacksrc/vm/interp.c
Log Message:
-----------
CogVM source as per VMMaker.oscog-eem.2041
Extract the pig compaction algorithm into its own class, allowing experimentation
and hopefully prompt replacement.
Make sure that the RBSqueakPlatform is included when building a VMMaker image.