I've looked for a while, and it seems that there is no easy way to do
this, not even in bash, and worse with /bin/sh. So this is kind of
resorting to a simple parsing of the input, and using `eval' if it
starts with a tilde. Note the hack of not doing that when there is a
space, otherwise the `eval' thing will silently ignore it.
This hack means that it's easy to get into a mess if quotes are used
after a tilde, but that was already the case with the use of `eval' to
handle environment variables. It's not a real security issue, however,
since we're talking about a user who can just run any command anyway.
Also including a test file for the expansion functionality. If anyone
wants to improve this code, making the tests pass would reveal the
tricky issues.
[FWIW, I've asked on the #bash channel, and the only serious suggestion
was getting the paths as command-line arguments. This will, however,
defeat the point of being newbie friendly...]
Closes PR 12893.
The following packages were removed:
- combinator-parser
(see `asumu/combinator-parser` on PLaneT)
- tex2page
(see `asumu/tex2page` on PLaneT)
- test-box-recovery
The examples make up the majority of the front page, and it turns out
that google used some of these links in "sitelinks" in search result.
These links should be the main entry points, and we ended up having such
gems as "Printf" be there. They provide a way to "demote" URLS so they
won't show there, but doing that for one link means that another will
pop in (and there's a limit of a 100 such demotions). So add this in an
attempt to make it not consider them as things that can be used in the
sitelinks. This might be reverted if it doesn't help.
(Note that this is discouraged as a way to "sculpt pagerank", but the
purpose here is not to affect how they crawl the web pages and make page
reputation flow, but only to cover up for a missing feature that ends up
with horrible sitelinks. The pages are scanned anyway from the doc
pages.)
* The main page's title appears in search results, so use "The Racket
Language" instead of "Racket". Additional minor tweaks to a few more
titles to make them presentable as search results.
* Add a `#:description' keyword to make it easy to add it to pages. Add
such texts to the main page, downloads, community, learning, people,
and mailing list pages.
* Add a <meta name="robots" content="NOODP" /> to the front page, to
avoid getting the ODP (dmoz) blurb, hopefully the new and improved
description(s) will be used instead. (If not, this should be
reverted.)
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.
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.
Warning: I tried a bunch of things and it looks like it works, but I'm
not using bash regularly so there might be some problems in this.
Committing by request of the bashers.
It would still need some work to make it work as (I think) was intended.
For example _find_exe() should be used to find the current executable
when completing, but it's used at the toplevel.
* Add a reference from the community page to the bug reports page.
* Make it possible to subscribe to lists right from the community page.
Improve the email input boxes with placeholder text and a short
explanation on hovering.
The old implementation could cause deadlock by blocking on a semaphore
while waiting for the original place to run a callback, but a master
GC might be needed (and the blocked place wouldn't get the signal).
Beside fixing that problem, a potential memory leak is fixed in
calling an ffi funcition and having a Racket->C unmarshaling fail.
Also, the GC marking routine for a `place' value didn't reference the
place's underlying `place_obj' value.
The ActiveX part of MysterX is gone. The `ffi/com' re-imeplemtnation
provides only core COM support.
The "mysssink" DLL is still needed, and its source is still
in the tree, but it is downloaded in the same way as other
pre-built DLLs. The DLL no longer needs to be registered with
regsvr32.
(Otherwise having both installed can be confusing since the uninstaller
has the same name; also, it's good to make a reminder for people who
want the other one.)
Also, just use the platform string in the registry key uniformly.
Also add a comment about detecting Win64 if it's desirable in the
future.
Also, remove attempt for a smart use of `fmt' -- the problem is that now
"$platform" is not set, so the conditional didn't do anything. It would
be easy to get a conditional using `uname', but better to drop the whole
thing.
Indexing index pages is harmless, and also "nofollow" is appropriate for
public lists with lots of junk, advertising etc. We have nearly zero
spam, so following links in posts is fine.
* The darwin build on kauai (the machine is no longer maintained, and
has no cairo installed).
* The two debian builds (also no cairo).
* Remove comment from osx64 build (which is now done on Robby's
machine).
Previously, if a dispatched build failed the files from the previous
build would still get copied. This was an intentional feature, since
only the compiled binaries of these builds are used, and usually these
would work fine (with the zo files that were built on the main machine).
Now, the build directory is deleted when starting, which means that any
failure in a remote build means that the whole build will fail. This
turns out to be better since when there are problems, the previous
behavior could be very confusing. In addition, the racket setup itself
rarely fails, so this won't make a difference.
* Use `ssh' to copy the repo tgz, so it can also create the build
directory in a single connection.
* Use "racket" in the build materials directory name (since it's used in
random machines).
* Use `chcon' to make files accessible to the web server under selinux.
* "YYYY-MM-DD HH:MM" in log time strings (leave the one on the web page
as is).
* Uniform machine+platform labels in headers on dispatched builds. The
main build machine doesn't have them.
On dispatched builds the status is printed in their own logs in a
greppable way, and these lines are removed when these logs are displayed
as part of the main log.
This covers all of the html files in mailman's template directory, and
we should have a consistent look for all pages. (Including archived
messages.) Also tweak the front page to have a link to the mailman
"listinfo" page with the complete list of the hosted mailing lists.
Add a `resource/referrer' abstraction for referrers, on top of plain
resources. (When the referrer is `values', it just returns the plain
resource.) Also add `url-of' to replace `get-resource-path'.
Turns out that bash's regexps (using `=~') changed so that quoting them
matches a literal string, and it seems dangerous to rely on parsing
unquoted regexps. One way around this is to put the regexp in a
variable, but for the two simple uses that this script had, it's easy to
avoid regexps completely.
Contour and isosurface 'auto levels reorg
2D contours: z-min = z-max now makes empty plot instead of infinite loop
3D isosurfaces: d-min = d-max now makes empty plot instead of infinite loop
Fixed contracts and corner case on marching squares and cubes functions
Better selection box and point-label formatting
Increased timeout on extreme-bounds-tests.rkt