The Racket repository
![]() the errors that would be signalled by the body. also, remove url-regexp from the exports (it was only recently added) I believe this eliminates two of Eli's concerns: - the contract is no longer so painful to read - the performance is more reasonable. Specifically, for the performance, here are the times I see to call string->url on "http://www.racket-lang.org": no contract: any/c cpu time: 564 real time: 566 gc time: 3 weak contract: (-> (or/c string? bytes?) url?) cpu time: 590 real time: 590 gc time: 3 strong, regexp-based contract: (-> (or/c (not/c #rx"^([^:/?#]*):") #rx"^[a-zA-Z][a-zA-Z0-9+.-]*:") url?) cpu time: 632 real time: 633 gc time: 5 This appears to be about a 10% slowdown for the regexp-based contract over the weaker contract. related to PR 12652 |
||
---|---|---|
collects | ||
doc | ||
man/man1 | ||
src | ||
.gitattributes | ||
.gitignore | ||
.mailmap | ||
README |
The Racket programming language =============================== Important executables: * DrRacket: Racket's integrated development environment (start here!). * Racket: the main command-line entry point for running racket programs and scripts. * GRacket: the GUI-mode Racket executable. * raco: Racket's command-line toolset. More Information ---------------- Racket comes with extensive documentation: use DrRacket's `Help' menu, or run `raco docs'. Also, visit us at http://racket-lang.org/ for more Racket resources. Instructions for building Racket from source are in src/README. License ------- Racket Copyright (c) 2010-2012 PLT Scheme Inc. Racket is distributed under the GNU Lesser General Public License (LGPL). This means that you can link Racket into proprietary applications, provided you follow the rules stated in the LGPL. You can also modify Racket; if you distribute a modified version, you must distribute it under the terms of the LGPL, which in particular means that you must release the source code for the modified software. See doc/release-notes/COPYING.txt for more information.