[racket-dev] Where might I find undocumented un-greppable primitives?
When you use the macro stepper on
#lang racket
(open-input-file "x")
then you can click on an identifier such as `open-input-file6'. The
"apparent identifier binding" information in the right panel says that
it comes from "kw-file.rkt" in `racket/base/private'.
In particular, it turns out to be bound by the expansion of `(define
(open-input-file ....) ....)', which expands to several bindings to
handle keyword arguments.
If you're writing a program that expands programs, you can use
`identifier-binding' to get the kind of information about an
identifier's binding that the macro stepper shows.
At Wed, 24 Oct 2012 15:46:19 -0400 (EDT), "J. Ian Johnson" wrote:
> (open-input-file file-name)
> =maacrooooos=>
> (let ((file-name1 file-name))
> (if (variable-reference-constant? open-input-file6)
> (open-input-file4 '#f '#f file-name1)
> (open-input-file6 file-name1)))
>
> These identifiers are nowhere. I imagine these will be the first of many crazy
> things I'll run into during my implementation.
>
> What/where are they? I'm trying to make a sound analysis/small step semantics
> here.
> Thanks,
> -Ian
> _________________________
> Racket Developers list:
> http://lists.racket-lang.org/dev