racket/s
Andy Keep 38d1000f70 Added fix for wpo bug from issue 386.
added fix for whole program/library compilation bug with help from
@owaddell who originally reported the problem in issue 386.  this bug
arises from the way the parts of the combined library, and their
binary dependencies, are invoked when one of the constituent libraries
is invoked.  consider, for example, a combined library that contains
(A) and (B), where (B) depends on a binary library (C).  depending on
the sort order of (A) and (B), which may be unconstrained in the
partial ordering established by library dependencies, invoking (A) may
result in the invoke code for (B) being run first, without (B) ever
being explicitly invoked.  this can result in bindings required from
(C) by the invoke code in (B) to be unbound.  even in the case where
(A) comes before (B) in the topological sort, if they are combined
into the same cluster, (B)'s invoke code will be run as part of
invoking (A).  the solution is two part: first we extend the invoke
requirements of the first library in the cluster to include the binary
libraries that precede it in the topological sort and add a dependency
on the first library in the cluster to all of the other libraries in
the cluster.  this means no matter which library in the cluster is
invoked first, it will cause the first library to be invoked, in turn
ensuring the binary libraries that precede it are invoked.  when there
are multiple clusters, a dependency is added from each cluster to the
first library in the cluster that precedes it.  this ensures that
invoking a library in a later cluster first, will still cause all of
the dependencies of the previous clusters to be invoked.  ultimately,
these extra dependencies enforce an ordering on the invocation of the
source and binary libraries that matches the topological sort, even if
the topological sort was under constrained.  to maintain the property
that import requirements are a superset of the invoke and visit
requirements, we also extend the import requirements to include the
extended invoke requirements.  the import requirements are also added
to the dependency graph to further constrain the topological sort and
ensure that we do not introduce artificial cycles in the import graph.
  compile.ss,
  7.ms,
  root-experr*, patch*

original commit: 09bba001a33a5ee9268f1e5cf0cc118e8a2eec7f
2019-03-17 14:18:42 -04:00
..
4.ss changed copyright year to 2017 2017-04-06 11:41:33 -04:00
5_1.ss changed copyright year to 2017 2017-04-06 11:41:33 -04:00
5_2.ss changed copyright year to 2017 2017-04-06 11:41:33 -04:00
5_3.ss even? and odd?: reject exceptional flonums, since they're not integers 2017-12-28 17:00:04 -06:00
5_4.ss Fixing output of substring-fill! and vector-fill! 2017-12-12 08:43:01 -05:00
5_6.ss Fixing output of substring-fill! and vector-fill! 2017-12-12 08:43:01 -05:00
5_7.ss changed copyright year to 2017 2017-04-06 11:41:33 -04:00
6.ss improved consistency of Windows filename handling 2018-10-22 16:17:12 -04:00
7.ss committing a handful of changes, none of which should be particularly 2019-02-11 20:06:42 -08:00
a6fb.def changed copyright year to 2017 2017-04-06 11:41:33 -04:00
a6le.def changed copyright year to 2017 2017-04-06 11:41:33 -04:00
a6nb.def changed copyright year to 2017 2017-04-06 11:41:33 -04:00
a6nt.def changed copyright year to 2017 2017-04-06 11:41:33 -04:00
a6ob.def changed copyright year to 2017 2017-04-06 11:41:33 -04:00
a6osx.def changed copyright year to 2017 2017-04-06 11:41:33 -04:00
a6s2.def changed copyright year to 2017 2017-04-06 11:41:33 -04:00
arm32.ss add box-cas! and vector-cas! 2018-07-16 07:51:32 -06:00
arm32le.def changed copyright year to 2017 2017-04-06 11:41:33 -04:00
back.ss Various updates, mostly to the compiler, including a new lambda 2018-01-29 09:20:07 -05:00
base-lang.ss Improvements to __collect_safe 2018-04-20 21:55:09 -06:00
bytevector.ss attempt to stabilize timing tests let-values source-caching 2017-10-29 17:48:43 -04:00
cafe.ss changed copyright year to 2017 2017-04-06 11:41:33 -04:00
cback.ss changed copyright year to 2017 2017-04-06 11:41:33 -04:00
cmacros.ss committing a handful of changes, none of which should be particularly 2019-02-11 20:06:42 -08:00
compile.ss Added fix for wpo bug from issue 386. 2019-03-17 14:18:42 -04:00
costctr.ss changed copyright year to 2017 2017-04-06 11:41:33 -04:00
cp0.ss - fixed bug in inline-lists: wasn't setting multiply-referenced flag 2019-02-27 16:05:29 -08:00
cpcheck.ss Improvements to __collect_safe 2018-04-20 21:55:09 -06:00
cpcommonize.ss Improvements to __collect_safe 2018-04-20 21:55:09 -06:00
cpletrec.ss Improvements to __collect_safe 2018-04-20 21:55:09 -06:00
cpnanopass.ss committing a handful of changes, none of which should be particularly 2019-02-11 20:06:42 -08:00
cprep.ss - fixed bug in inline-lists: wasn't setting multiply-referenced flag 2019-02-27 16:05:29 -08:00
cpvalid.ss Improvements to __collect_safe 2018-04-20 21:55:09 -06:00
date.ss attempt to stabilize timing tests let-values source-caching 2017-10-29 17:48:43 -04:00
debug.ss changed copyright year to 2017 2017-04-06 11:41:33 -04:00
engine.ss changed copyright year to 2017 2017-04-06 11:41:33 -04:00
enum.ss enum-set-indexer procedure now checks for a symbol, changed "isn't" to "is not" for consistency 2017-05-05 15:22:46 -04:00
env.ss changed copyright year to 2017 2017-04-06 11:41:33 -04:00
event.ss changed copyright year to 2017 2017-04-06 11:41:33 -04:00
exceptions.ss add locate-source cache and line+column components to source objects 2017-08-01 05:23:56 -06:00
expand-lang.ss committing @akeep library change with rebuilt boot files: 2018-04-05 21:28:33 -07:00
expeditor.ss - add unicode support to the expression editor. entry and display now work 2016-07-20 21:54:50 -04:00
fasl-helpers.ss changed copyright year to 2017 2017-04-06 11:41:33 -04:00
fasl.ss add make-ephemeron-eq-hashtable, etc. 2017-07-06 16:27:23 -06:00
foreign.ss changed copyright year to 2017 2017-04-06 11:41:33 -04:00
format.ss changed copyright year to 2017 2017-04-06 11:41:33 -04:00
front.ss changed copyright year to 2017 2017-04-06 11:41:33 -04:00
ftype.ss committing a handful of changes, none of which should be particularly 2019-02-11 20:06:42 -08:00
hashtable-types.ss add make-ephemeron-eq-hashtable, etc. 2017-07-06 16:27:23 -06:00
i3fb.def changed copyright year to 2017 2017-04-06 11:41:33 -04:00
i3le.def changed copyright year to 2017 2017-04-06 11:41:33 -04:00
i3nb.def changed copyright year to 2017 2017-04-06 11:41:33 -04:00
i3nt.def changed copyright year to 2017 2017-04-06 11:41:33 -04:00
i3ob.def changed copyright year to 2017 2017-04-06 11:41:33 -04:00
i3osx.def changed copyright year to 2017 2017-04-06 11:41:33 -04:00
i3qnx.def changed copyright year to 2017 2017-04-06 11:41:33 -04:00
i3s2.def changed copyright year to 2017 2017-04-06 11:41:33 -04:00
inspect.ss add generate-procedure-source-information 2018-07-15 19:51:54 -06:00
interpret.ss committing a handful of changes, none of which should be particularly 2019-02-11 20:06:42 -08:00
io-types.ss changed copyright year to 2017 2017-04-06 11:41:33 -04:00
io.ss changed copyright year to 2017 2017-04-06 11:41:33 -04:00
layout.ss changed copyright year to 2017 2017-04-06 11:41:33 -04:00
library.ss add box-cas! and vector-cas! 2018-07-16 07:51:32 -06:00
mathprims.ss changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-a6fb changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-a6le changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-a6nb changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-a6nt changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-a6ob changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-a6osx changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-a6s2 changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-arm32le changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-base - redirecting output of first two checkboot runs to /dev/null so the 2019-01-11 18:10:38 -08:00
Mf-cross Various updates, mostly to the compiler, including a new lambda 2018-01-29 09:20:07 -05:00
Mf-i3fb changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-i3le changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-i3nb changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-i3nt changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-i3ob changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-i3osx changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-i3qnx changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-i3s2 changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-ppc32le changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-ta6fb changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-ta6le changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-ta6nb changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-ta6nt changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-ta6ob changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-ta6osx changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-ta6s2 changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-ti3fb changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-ti3le changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-ti3nb changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-ti3nt changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-ti3ob changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-ti3osx changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-ti3s2 changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-tppc32le changed copyright year to 2017 2017-04-06 11:41:33 -04:00
mkheader.ss add load-compiled-from-port and Sregister_boot_file_fd 2018-07-15 20:44:34 -06:00
newhash.ss committing @mflatt hashtable-cells pull request 2019-02-07 13:54:14 -08:00
np-languages.ss add box-cas! and vector-cas! 2018-07-16 07:51:32 -06:00
patch.ss committing a handful of changes, none of which should be particularly 2019-02-11 20:06:42 -08:00
pdhtml.ss profile counts are now maintained even for code that has been 2019-01-17 09:43:18 -08:00
ppc32.ss add box-cas! and vector-cas! 2018-07-16 07:51:32 -06:00
ppc32le.def changed copyright year to 2017 2017-04-06 11:41:33 -04:00
pretty.ss changed copyright year to 2017 2017-04-06 11:41:33 -04:00
primdata.ss expose default-library-search-handler and library-search-handler parameter 2019-03-14 14:31:02 -04:00
priminfo.ss changed copyright year to 2017 2017-04-06 11:41:33 -04:00
primref.ss changed copyright year to 2017 2017-04-06 11:41:33 -04:00
prims.ss committing a handful of changes, none of which should be particularly 2019-02-11 20:06:42 -08:00
primvars.ss changed copyright year to 2017 2017-04-06 11:41:33 -04:00
print.ss add locate-source cache and line+column components to source objects 2017-08-01 05:23:56 -06:00
read.ss committing a handful of changes, none of which should be particularly 2019-02-11 20:06:42 -08:00
record.ss removed a useless check in foreign-alloc 2017-09-15 09:49:00 -04:00
reloc.ss changed copyright year to 2017 2017-04-06 11:41:33 -04:00
setup.ss changed copyright year to 2017 2017-04-06 11:41:33 -04:00
strip.ss update test patch files 2017-07-06 20:45:18 -06:00
strnum.ss changed copyright year to 2017 2017-04-06 11:41:33 -04:00
syntax.ss Added fix for wpo bug from issue 386. 2019-03-17 14:18:42 -04:00
ta6fb.def changed copyright year to 2017 2017-04-06 11:41:33 -04:00
ta6le.def changed copyright year to 2017 2017-04-06 11:41:33 -04:00
ta6nb.def changed copyright year to 2017 2017-04-06 11:41:33 -04:00
ta6nt.def changed copyright year to 2017 2017-04-06 11:41:33 -04:00
ta6ob.def changed copyright year to 2017 2017-04-06 11:41:33 -04:00
ta6osx.def changed copyright year to 2017 2017-04-06 11:41:33 -04:00
ta6s2.def changed copyright year to 2017 2017-04-06 11:41:33 -04:00
ti3fb.def changed copyright year to 2017 2017-04-06 11:41:33 -04:00
ti3le.def changed copyright year to 2017 2017-04-06 11:41:33 -04:00
ti3nb.def changed copyright year to 2017 2017-04-06 11:41:33 -04:00
ti3nt.def changed copyright year to 2017 2017-04-06 11:41:33 -04:00
ti3ob.def changed copyright year to 2017 2017-04-06 11:41:33 -04:00
ti3osx.def changed copyright year to 2017 2017-04-06 11:41:33 -04:00
ti3s2.def changed copyright year to 2017 2017-04-06 11:41:33 -04:00
tppc32le.def changed copyright year to 2017 2017-04-06 11:41:33 -04:00
trace.ss changed copyright year to 2017 2017-04-06 11:41:33 -04:00
types.ss add locate-source cache and line+column components to source objects 2017-08-01 05:23:56 -06:00
ubify.ss changed copyright year to 2017 2017-04-06 11:41:33 -04:00
x86_64.ss reliably preserve cp in thread context for S_call_help 2018-12-05 07:53:49 -07:00
x86.ss reliably preserve cp in thread context for S_call_help 2018-12-05 07:53:49 -07:00