21,040 research outputs found
On-stack replacement, distilled
On-stack replacement (OSR) is essential technology for adaptive optimization, allowing changes to code actively executing in a managed runtime. The engineering aspects of OSR are well-known among VM architects, with several implementations available to date. However, OSR is yet to be explored as a general means to transfer execution between related program versions, which can pave the road to unprecedented applications that stretch beyond VMs. We aim at filling this gap with a constructive and provably correct OSR framework, allowing a class of general-purpose transformation functions to yield a special-purpose replacement. We describe and evaluate an implementation of our technique in LLVM. As a novel application of OSR, we present a feasibility study on debugging of optimized code, showing how our techniques can be used to fix variables holding incorrect values at breakpoints due to optimizations
GoTcha: An Interactive Debugger for GoT-Based Distributed Systems
Debugging distributed systems is hard. Most of the techniques that have been
developed for debugging such systems use either extensive model checking, or
postmortem analysis of logs and traces. Interactive debugging is typically a
tool that is only effective in single threaded and single process applications,
and is rarely applied to distributed systems. While the live observation of
state changes using interactive debuggers is effective, it comes with a host of
problems in distributed scenarios. In this paper, we discuss the requirements
an interactive debugger for distributed systems should meet, the role the
underlying distributed model plays in facilitating the debugger, and the
implementation of our interactive debugger: GoTcha. GoTcha is a browser based
interactive debugger for distributed systems built on the Global Object Tracker
(GoT) programming model. We show how the GoT model facilitates the debugger,
and the features that the debugger can offer. We also demonstrate a typical
debugging workflow
Setting the stage – embodied and spatial dimensions in emerging programming practices.
In the design of interactive systems, developers sometimes need to engage in various ways of physical
performance in order to communicate ideas and to test out properties of the system to be realised. External
resources such as sketches, as well as bodily action, often play important parts in such processes, and
several methods and tools that explicitly address such aspects of interaction design have recently been
developed. This combined with the growing range of pervasive, ubiquitous, and tangible technologies
add up to a complex web of physicality within the practice of designing interactive systems. We illustrate
this dimension of systems development through three cases which in different ways address the design
of systems where embodied performance is important. The first case shows how building a physical sport
simulator emphasises a shift in activity between programming and debugging. The second case shows a
build-once run-once scenario, where the fine-tuning and control of the run-time activity gets turned into
an act of in situ performance by the programmers. The third example illustrates the explorative and experiential
nature of programming and debugging systems for specialised and autonomous interaction
devices. This multitude in approaches in existing programming settings reveals an expanded perspective
of what practices of interaction design consist of, emphasising the interlinking between design, programming,
and performance with the system that is being developed
Detailed Diagnosis of Performance Anomalies in Sensornets
We address the problem of analysing performance anomalies in sensor networks. In this paper, we propose an approach that uses the local flash storage of the motes for logging system data, in combination with online statistical analysis. Our results show not only that this is a feasible method but that the overhead is significantly lower than that of communication-centric methods, and that interesting patterns can be revealed when calculating the correlation of large data sets of separate event types.GINSENGCONE
- …