By itself, this change won't help anything, because tail-call
allocation is triggered for something that can't be called directly.
This change sets up part of an improvement for future-local recovery
from stack overflow, though.
(I had trouble constructing a test that would trigger the new code.
Fortunately, the existing tests trigger it.)
This fixes drdr, which is using a pre-submodules version of racket.
There was also a use of one-argument `string-join' that is fixed that
has been there for a while but drdr uses the api directly.
- added some color (mostly to try to disambiguate the lines)
- several of the things named '*-element' actually belong under content, not element.
- element has 'content', not the substructs.
- convertible?s are content's.
- the 'content' field in an element is not a list, but simply a content.
- there are a bunch of things under target-element.
- image-element was missing fields
- collect-element was missing the collect field
Simplified code, and additional testing for redundant properties, and
for properties that can be collapsed into a parent directory (this might
be dropped or used only for notification on differences, see
commentage).
Also, make drdr test itself reflectively.
The code is improved, and also the default changes for *.rkt files:
there is no need for any flags -- "-q" is redundant, and with no flags
it's doing "-u" which is the same as "-t" (with an added "-N").
This was broken in the class100 port. The init arguments
previously handled by the class100*/kw macro need to be
explicitly passed down.
Also, an (init-rest) is needed at the leaves of the class
hierarchy to ensure that internal super init args don't
leak via error messages. (the class100 macro always
inserts these)
Added a test file so similar breakage is detectable in the
future.
1. Lots of #lang-ization, other racketizations, code improvements, etc.
2. Some files that were not working now do.
3. "collects/tests/aligned-pasteboard" had some files that were near
duplicates of "collects/mrlib/private/aligned-pasteboard/tests".
I've removed the former since in a few places it looked like an older
version (eg, there were bogus references to a non-existent
"utils.rkt"). The former has more files that are in runnable
condition now.
4. There are plenty of tests that look like they're failing, but it
wasn't shown since they just return #f, and when they were running
with a "-f" these results weren't displayed.
5. I have no idea about the code, this is all just reshuffling and minor
editing.
There were many such properties that were leftover from before the big
GUI rewrite where the gracket executable was needed, and now there is no
longer any need for these things. There are two exceptions:
* There is a drdr feature that forces all tests that use gracket to run
sequentially, which is used for tests that rely on some actual state
of shown windows. I ran all of the files and monitored for windows
popping up, and left the test to use gracket in these cases.
* There are a few cases where running "racket -f <file>" resulted in an
unbound identifier, whereas "gracket -f <file>" does not. These are
because of the different global namespace, and I will fix them (props
and the files) in a different commit.
One of the expected results of this is that a drdr might run faster,
because the serial-running hack above should now be applied only where
relevant. (And some of the drracket tests are very long.)
This commit is pushed by itself to identify possible problems with a
drdr run that tests only this change.
Check that the entries are sorted, and check that there's a
`responsible' for all files on disk, except for known exceptions. It
might be better to use "git ls-tree HEAD <path>" instead of looking at
the filesystem, but then it won't work on drdr.
For example, a syntactic form box is labeled with "SYNTAX". Forms
such as `defform' and `defthing' now support a `#:kind' option
for setting the label.