잠시 동안 치킨 계획에서 놀고 있었지만 이상한 것을 발견했습니다. 다음과 같은 간단한 소스 파일이 있다고 가정 해 보겠습니다.치킨 계획 : 로딩 또는 컴파일시 누락 된 경고/오류 메시지
(define (f x)
(g x))
이것이 작동하지 않는다는 것은 명백합니다. 알고 좋은
Note: the following toplevel variables are referenced but unbound:
g (in f)
: 나는 csi
을 시작하면 수동으로 나는 다음과 같은 메시지를 얻을이 함수의 정의를 입력! 큰 프로그램에서 오타를 찾는 것은 실행하기 전에 좋습니다.
(load "test.scm")
출력 : : 또한 좋은
; loading test.scm ...
Note: the following toplevel variables are referenced but unbound:
g (in f)
자, 다시 csi
를 시작하고 load
에 파일을 해보자. 이제 해당 파일과 함께 csi
을 시작해 봅시다!
$ csi test.scm
CHICKEN
(c) 2008-2015, The CHICKEN Team
(c) 2000-2007, Felix L. Winkelmann
Version 4.10.0 (rev b259631)
linux-unix-gnu-x86-64 [ 64bit manyargs dload ptables ]
compiled 2015-08-04 on yves.more-magic.net (Linux)
; loading test.scm ...
#;1>
어 ... 오류 메시지는 어디로 갔습니까? 왜 거기 있지 않니? 좋아, 아마도 실제로 컴파일하려고하면 불평 할 것이다. ...
$ csc test.scm
$
아니요. 심지어 파일의 끝에 (f 2)
줄을 추가하더라도 (f
- 함수가 멀리 떨어져있는 것을 피하기 위해) 나는 여전히 얻지 못합니다. 일종의 오류 메시지 또는 경고입니다.
왜? 어떻게 통역사 (또는 적어도 수동 load
부분)는이 문제를 즉시 알 수 있지만 컴파일러는이를 알 수 없습니까? 재미있게도 컴파일러에 대한 인수는 -no-warnings
입니다. 예상대로 아무런 경고도 없으므로 아무것도하지 않습니다.
무엇이 누락 되었습니까? 어떻게 해결할 수 있습니까? 고정 할 수 있습니까? 아니면 실제로 자신의 프로그램을 컴파일하기 전에 수동으로 load
모든 관련 파일을 수동으로 csi
에 만들어야합니까?
감사합니다. – cronotk