![]() 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 |
||
---|---|---|
.. | ||
base64.scrbl | ||
cgi.scrbl | ||
common.rkt | ||
cookie.scrbl | ||
dns.scrbl | ||
ftp.scrbl | ||
head.scrbl | ||
imap.scrbl | ||
info.rkt | ||
mime.scrbl | ||
net.scrbl | ||
nntp.scrbl | ||
pop3.scrbl | ||
qp.scrbl | ||
sendmail.scrbl | ||
sendurl.scrbl | ||
smtp.scrbl | ||
ssl-tcp-unit.scrbl | ||
tcp-redirect.scrbl | ||
tcp.scrbl | ||
uri-codec.scrbl | ||
url.scrbl | ||
websocket.scrbl |