Skip to content

Commit

Permalink
Merge branch 'master' into dispatch-202406
Browse files Browse the repository at this point in the history
  • Loading branch information
housel authored Jun 20, 2024
2 parents 4e4bc74 + 49127ba commit d50508a
Show file tree
Hide file tree
Showing 16 changed files with 34 additions and 87 deletions.
2 changes: 0 additions & 2 deletions OVERVIEW.txt
Original file line number Diff line number Diff line change
Expand Up @@ -94,8 +94,6 @@ sources
jam - Jam script interpreter.
parser-run-time - Support for parsers.
source-records - Reads source files and tracks location.
stack-walker - Debugging on UNIX by walking the stack. Nowadays
directly in the run-time.
walker - Build has-a tree.
project-manager - Takes care about dependencies of projects and actual
invocation of linker, etc.
Expand Down
18 changes: 18 additions & 0 deletions documentation/source/release-notes/2024.2.rst
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,19 @@ Compiler
* The build rules for unified executables now properly depend on
copying included run-time libraries such as libunwind.

* Optimizations that allow the type of ``if`` expressions to be more
accurately estimated have been improved. For example, in this
function:

.. code-block::
define function if-example (arg :: false-or(<integer>)) => (result :: <integer>);
min(arg | 20, 30)
end;
the comparison can now be properly inlined because the first
argument to :drm:`min` is known to be an :drm:`<integer>`.

Tools
=====

Expand Down Expand Up @@ -61,6 +74,11 @@ System
:const:`$machine-architecture`. The old name will remain, for backward
compatibility.

Other
-----

* The obsolete (32-bit x86-only) ``stack-walker`` library was removed.

Contributors
============

10 changes: 8 additions & 2 deletions sources/dfmc/optimization/assignment.dylan
Original file line number Diff line number Diff line change
Expand Up @@ -190,14 +190,20 @@ define method maybe-rename-temporaries-in-conditional
(c.environment, <constrain-type>,
value: to-be-renamed, type: constraint);
let then-f = c.consequent;
let merge-c :: <if-merge> = c.next-computation;
let changed? = #f;
rename-temporary!(to-be-renamed, tt-t);
for-computations(tc from then-f before c.next-computation)
for-computations(tc from then-f before merge-c)
let now-changed? = rename-temporary-references!(tc, to-be-renamed, tt-t);
changed? := (changed? | now-changed?);
end;
// The left side of the merge is also part of the consequent
if (merge-c.merge-left-value == to-be-renamed)
merge-replace-left-value!(merge-c, to-be-renamed, tt-t);
changed? := #t;
end;
if (changed?)
insert-computation-before!(then-f, tt-c);
insert-computation-before-reference!(then-f, tt-c, tt-t);
else // It's not used in the consequent, so get rid of it.
remove-user!(to-be-renamed, tt-c);
end;
Expand Down
10 changes: 8 additions & 2 deletions sources/dfmc/optimization/calls.dylan
Original file line number Diff line number Diff line change
Expand Up @@ -79,13 +79,19 @@ define method do-optimize-instance?-user(c :: <if>, object, type) => ();
= make-with-temporary(c.environment, <constrain-type>,
value: object, type: type);
let then-f = c.consequent;
let merge-c :: <if-merge> = c.next-computation;
let changed? = #f;
for-computations(tc from then-f before c.next-computation)
for-computations(tc from then-f before merge-c)
let now-changed? = rename-temporary-references!(tc, object, tt-t);
changed? := (changed? | now-changed?);
end;
// The left side of the merge is also part of the consequent
if (merge-c.merge-left-value == object)
merge-replace-left-value!(merge-c, object, tt-t);
changed? := #t;
end;
if (changed?)
insert-computation-before!(then-f, tt-c);
insert-computation-before-reference!(then-f, tt-c, tt-t);
else // It's not used in the consequent, so get rid of it.
remove-user!(object, tt-c);
end
Expand Down
2 changes: 0 additions & 2 deletions sources/environment/dswank/library.dylan
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ define library dswank
use file-source-records;
use system;
use registry-projects;
//use stack-walker;
use release-info;
use dfmc-back-end-implementations;
end library;
Expand All @@ -46,7 +45,6 @@ define module dswank
use file-system;
use locators;
use registry-projects;
//use stack-walker;
use release-info;
use operating-system;
end module;
35 changes: 0 additions & 35 deletions sources/lib/stack-walker/getebp.c

This file was deleted.

19 changes: 0 additions & 19 deletions sources/lib/stack-walker/library.dylan

This file was deleted.

9 changes: 0 additions & 9 deletions sources/lib/stack-walker/stack-walker.dylan

This file was deleted.

9 changes: 0 additions & 9 deletions sources/lib/stack-walker/stack-walker.lid

This file was deleted.

1 change: 0 additions & 1 deletion sources/registry/aarch64-linux/stack-walker

This file was deleted.

1 change: 0 additions & 1 deletion sources/registry/arm-linux/stack-walker

This file was deleted.

1 change: 0 additions & 1 deletion sources/registry/riscv64-linux/stack-walker

This file was deleted.

1 change: 0 additions & 1 deletion sources/registry/x86-freebsd/stack-walker

This file was deleted.

1 change: 0 additions & 1 deletion sources/registry/x86-linux/stack-walker

This file was deleted.

1 change: 0 additions & 1 deletion sources/registry/x86-netbsd/stack-walker

This file was deleted.

1 change: 0 additions & 1 deletion sources/registry/x86_64-linux/stack-walker

This file was deleted.

0 comments on commit d50508a

Please sign in to comment.