[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

check-topodefs available plus sample output

From: Thien-Thi Nguyen
Subject: check-topodefs available plus sample output
Date: Thu, 06 Sep 2007 11:26:31 +0200


ttn-do 280 <>
has check-topodefs (usage info appended).

here is an example run:
  $ ttn-do check-topodefs boot-9.scm
  boot-9.scm:57:: (provide) unspecified
  boot-9.scm:70:: (object->string) with-output-to-string
  boot-9.scm:227:: (make-hash-table) error
  boot-9.scm:343:: (read:uniform-vector) error
  boot-9.scm:357:: (read:array) error
  boot-9.scm:386:: (symbol->keyword) symbol symbol-append
  boot-9.scm:406:: (record-type-vtable) record-type-name
  boot-9.scm:419:: (make-record-type) make-list symbol-append iota
  boot-9.scm:445:: (record-type-name) error
  boot-9.scm:450:: (record-type-fields) error
  boot-9.scm:467:: (record-accessor) list-index record-type-descriptor error
  boot-9.scm:474:: (record-modifier) list-index record-type-descriptor error
  boot-9.scm:484:: (record-type-descriptor) error
  boot-9.scm:530:: (*values-rtd*) values
  boot-9.scm:730:: (error) save-stack
  boot-9.scm:860:: (load-user-init) false-if-exception
  boot-9.scm:2237:: (default-lazy-handler) save-stack lazy-handler-dispatch
  boot-9.scm:2262:: (error-catching-loop) quit has-shown-debugger-hint? 
handle-system-error stack-saved?
  boot-9.scm:2743:: (top-repl) exit-hook
intention of check-topodefs is to check "inverted root layout", useful
for scripts and, in the case of boot-9.scm, prep for translation to C.

btw, the "::" is placeholder for column number, if/when such info
becomes available.  using only one colon gives ugly results in an emacs
22 *compilation* buffer (w/ default settings -- insert geezer rant re
increased font lock complexity here).


Usage: check-topodefs [options] FILE...

Scan each FILE for definitions and check that "usages" of those
definitions (i.e., simple references to the name of the definition)
do not occur in forms prior the definition.  When this is not the
case, display to stderr:


where USAGE-TOP-LEVEL is the name of the form (if deducible) where
the definition of LATER is used, and FILENAME:LINE is its location.
Options are:

  -I, --ignore NAME  -- In addition to `define-module' and
                        `use-modules', ignore NAME, as well.

  -D, --defkey NAME  -- Consider NAME a definition form, as well.
                        The list of standard definition forms are:
                          define     define-public,
                          define*    define*-public,
                          defmacro   defmacro-public,
                          defmacro*  defmacro*-public

  -v, --verbose      -- Display progress and scan information.

Note that both `-I' and `-D' add to their respective lists; there is
presently no way to specify that an item be removed.  Also, both `-I'
and `-D' can be given multiply; their args accumulate.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]