The Racket repository
Go to file
Robby Findler 126c090579 special case any/c when it appears syntactically in the argument to ->
Skip calling the domain projection in that case and, if all of the
arguments are any/c then also skip putting the contract continuation mark

This appears to give about a 20% speed up on this program:

  #lang racket/base
  (require racket/contract/base)
  (define f
    (contract
     (-> any/c integer?)
     (λ (x) 1)
     'pos 'neg))
  (time
   (for ([x (in-range 4000000)])
     (f 1)))
2016-01-20 21:08:15 -06:00
pkgs special case any/c when it appears syntactically in the argument to -> 2016-01-20 21:08:15 -06:00
racket special case any/c when it appears syntactically in the argument to -> 2016-01-20 21:08:15 -06:00
.gitattributes Don't include git files in archives. 2010-05-12 01:46:05 -04:00
.gitignore Add *.orig, *.rej and *.core files to gitignore. 2015-11-06 10:25:13 -06:00
.mailmap mailmap updates & fixes. 2013-04-03 18:10:22 -04:00
.travis.yml Fix CI tests for match test move. 2015-12-30 10:39:45 -05:00
appveyor.yml Fix CI tests for match test move. 2015-12-30 10:39:45 -05:00
INSTALL.txt Windows code-signing and ".tgz" options for distro-build 2016-01-07 17:25:26 -07:00
Makefile Makefile: move SRC_CATALOG definition to ealier 2016-01-08 19:31:46 -07:00
README.txt update copyright from 2015 to 2016 2016-01-13 19:40:35 -07:00

This is the source code for the main Racket distribution.  See
"INSTALL.txt" for information on building Racket.

License
-------

Racket
Copyright (c) 2010-2016 PLT Design Inc.

Racket is distributed under the GNU Lesser General Public License
(LGPL).  This implies that you may 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 states
that you must release the source code for the modified software.  

See racket/src/COPYING_LESSER.txt for more information.