如何在Racket会话中重新加载修改后的模块?
在Racket REPL中重新加载修改后的模块
Racket默认会缓存已加载的模块,所以单纯重复执行(require "test.rkt")不会读取修改后的文件,enter!也只是进入模块命名空间,不会刷新模块内容。要让(test)打印bar,可以用以下几种方法:
强制重新加载指定模块:
使用require的#:reload参数,让Racket重新读取并编译修改后的文件:(require "test.rkt" #:reload)强制重新加载模块及其所有依赖:
如果你的模块依赖其他也修改过的子模块,用#:reload-all参数彻底刷新整个依赖链:(require "test.rkt" #:reload-all)清除编译缓存后重新加载:
如果遇到编译缓存残留的问题,先清除缓存再重新加载:(clear-compiled) (require "test.rkt" #:reload)
执行以上任意一种操作后,再运行(test)就会打印bar了。
内容的提问来源于stack exchange,提问作者user1785730
相关产品推荐
相关产品推荐

