diff --git a/RELEASE_NOTES.rst b/RELEASE_NOTES.rst index d1f88b15f..7b9899d71 100644 --- a/RELEASE_NOTES.rst +++ b/RELEASE_NOTES.rst @@ -24,9 +24,6 @@ Highlights: * Core device: ``panic_reset 1`` now correctly resets the kernel CPU as well if communication CPU panic occurs. * NumberValue accepts a ``type`` parameter specifying the output as ``int`` or ``float`` -* In kernels, lifetime of allocated values (e.g. lists) is now correctly tracked across - function calls (see #1497, #1394). Previous versions (since ARTIQ 1.0) would accept - illegal code that would result in silent memory corruption at runtime. Breaking changes: diff --git a/artiq/compiler/validators/escape.py b/artiq/compiler/validators/escape.py index 5aae58e51..000c3ee5b 100644 --- a/artiq/compiler/validators/escape.py +++ b/artiq/compiler/validators/escape.py @@ -103,7 +103,7 @@ class RegionOf(algorithm.Visitor): # The cache is borrow checked dynamically return Global() else: - return self.visit_sometimes_allocating(node) + self.visit_sometimes_allocating(node) # Value lives as long as the object/container, if it's mutable, # or else forever diff --git a/artiq/test/lit/escape/error_call.py b/artiq/test/lit/escape/error_call.py deleted file mode 100644 index 8bbc7992f..000000000 --- a/artiq/test/lit/escape/error_call.py +++ /dev/null @@ -1,14 +0,0 @@ -# RUN: %python -m artiq.compiler.testbench.embedding +diag %s 2>%t -# RUN: OutputCheck %s --file-to-check=%t - -from artiq.experiment import * - -@kernel -def leak(a): - return a - -@kernel -def entrypoint(): - # CHECK-L: ${LINE:+2}: error: cannot return an allocated value that does not live forever - # CHECK-L: ${LINE:+1}: note: ... to this point - return leak([1, 2, 3])