Re: Error compiling procedure already compiled [message #34330 is a reply to message #34322] |
Wed, 05 March 2003 18:34   |
psisquared01
Messages: 7 Registered: December 2002
|
Junior Member |
|
|
JD Smith <jdsmith@as.arizona.edu> wrote:
> On Tue, 04 Mar 2003 21:14:58 -0700, Rob wrote:
>
>> Okay, so I jumped the gun. Apparently whenever the routine info is
>> updated I can no longer compile without recieving the error. The line
>> about routine info in my .emacs just caused IDLWAVE to perform the
>> updated more frequently, so that's why I thought it was fixed...routine
>> info just hadn't been updated yet. Below is another copy of the error
>> message. As you can see, after routine info is updated, a temp file is
>> written, and following compiling and .run'ing I recieve the Routine Info
>> warning. Any suggestions what I can do to fix this?
>>
>> Scanning all buffers...
>> Routine info updated: buffer(3) compiled(0) catalog(591) system(1324)
>> Querying the shell
>> Wrote /tmp/idltemp19963iX
>> Finishing initialization in idle time...done Routine info updated:
>> buffer(3) compiled(0) catalog(591) system(1324) (No changes need to be
>> saved)
>> Routine Info warning: No match for END line in
>>>> >
>> RESTORE, '/tmp/idltemp1996CFV' & idlwave_routine_info % RESTORE:
>> Procedure IDLWAVE_ROUTINE_INFO can't be restored while active. %
>> RESTORE: Procedure IDLWAVE_PRINT_INFO_ENTRY can't be restored while
>> active.
>>>> >BEGIN OF IDLWAVE ROUTINE INFO ("<@>" IS THE SEPARATOR)
>> % ROUTINE_INFO: String expression required in this context: NAME. %
>> Execution halted at: IDLWAVE_PRINT_INFO_ENTRY % IDLWAVE_ROUTINE_INFO %
>> IDLWAVE_PRINT_INFO_ENTRY %
>> IDLWAVE_ROUTINE_INFO % $MAIN$
>> IDL>
>> <<<
>>
>
> This is a sign that IDLWAVE is getting out of sync with the IDL
> process. It's looking for a terminated block of output to parse, in
> this case to learn about all the routines IDL knows about. I can
> think of a few possibilities:
>
> 1. A read/write lag with comint, the mode which interacts with the IDL
> shell. Newer versions of IDLWAVE deal with this a bit better.
>
> 2. Something specific to your environment in the output of your
> routine_info is confusing IDLWAVE. Seems unlikely, but possible.
>
> 3. You've changed your "IDL> " prompt to something else without
> telling IDLWAVE about it (e.g. if you're using ENVI).
>
> Can you tell me what version of Emacs, IDL, and IDLWAVE (see
> *Messages*) you are using? And, if you can get it to repeat and have
> a recent IDLWAVE, check the menu box Debug->Show Commands->Everything,
> generate the error, and mail me the dump of info you find in the shell
> buffer.
>
> JD
Thanks for the tips, JD. Before I started I installed IDLWAVE 4.1.6 from
www.idlwave.org.
In response to 1. above, is 4.1.6 the the latest version? I've seen
reference to a version 4.6, but I didn't see anything later than 4.1.6
on the website. Also, strangely, I don't see a Debug->Show
Commands->Everything option in my Debug menu???
In response to 3, I haven't changed my IDL prompt, don't even know how
yet...and I'm not using ENVI.
I'm using IDL 5.6 on OS X with the Aqua version of Emacs 21.3.50.6 and
am using Apples latest beta X11 version 0.2.1(Xfree86 4.2.1). Below is
my .emacs and .tcshrc. If you can think of anything to try I'd really
appreciate it!
.Emacs file:
(setq load-path (cons "~/elisp/info" load-path))
(setq load-path (cons "~/elisp/site-lisp" load-path))
(if (equal default-directory "/") (setq default-directory "~/"))
;; Use the option key for META
(setq mac-command-key-is-meta nil)
(autoload 'idlwave-mode "idlwave" "IDLWAVE Mode" t)
(autoload 'idlwave-shell "idlw-shell" "IDLWAVE Shell" t)
(setq auto-mode-alist (cons '("\\.pro\\'" . idlwave-mode)
auto-mode-alist))
;(setq idlwave-help-directory "/usr/share/emacs/site-lisp")
;(setq idlwave-help-directory "/usr/etc")
(setq idlwave-help-directory "~/elisp/etc")
;; Turn on syntax highlighting for IDL MODE. If not using
;; Global Font-Lock, turn this on
(add-hook 'idlwave-mode-hook 'turn-on-font-lock)
(add-hook 'idlwave-mode-hook
'(lambda ()
(define-key idlwave-mode-map
[(control meta z)] 'idlwave-complete)
))
;; Change the indentation preferences
(setq idlwave-main-block-indent 2 ; default 0
idlwave-block-indent 3 ; default 4
idlwave-end-offset -3) ; default -4
;; Start autoloading routine info after 2 idle seconds
;(setq idlwave-init-rinfo-when-idle-after 2)
;; Pad some operators with spaces
(setq idlwave-do-actions t
idlwave-surround-by-blank t)
;; Automatically start the shell when needed
(setq idlwave-shell-automatic-start t)
;; Bind debugging commands with CONTROL and SHIFT modifiers
;(setq idlwave-shell-debug-modifiers '(control shift))
;; Bind idlwave-complete to ESC TAB, which also works for Meta-Tab when
;; Meta is set to Option
; (add-hook 'idlwave-mode-hook
; (lambda ()
; (define-key idlwave-mode-map "\M-\C-i" 'idlwave-complete)))
;; Bind idlwave-complete to meta-tab
(add-hook 'idlwave-mode-hook
(lambda ()
(define-key idlwave-mode-map "\M-\t" 'idlwave-complete)))
;; For some reason the version of emacs 21.3.50 has the 2nd and 3rd
;; buttons reversed. The following corrects this.
(setq mac-wheel-button-is-mouse-2 t)
;; Reserved words are auto converted to upper case
(setq idlwave-reserved-word-upcase t)
;; First for the source buffer
;(add-hook 'idlwave-mode-hook
;(lambda ()
;(local-set-key [f5] 'idlwave-shell-break-here)
;(local-set-key [f6] 'idlwave-shell-clear-current-bp)
;(local-set-key [f7] 'idlwave-shell-cont)
;(local-set-key [f8] 'idlwave-shell-clear-all-bp)))
;; Then for the shell buffer
;(add-hook 'idlwave-shell-mode-hook
;(lambda ()
;(local-set-key [f5] 'idlwave-shell-break-here)
;(local-set-key [f6] 'idlwave-shell-clear-current-bp)
;(local-set-key [f7] 'idlwave-shell-cont)
;(local-set-key [f8] 'idlwave-shell-clear-all-bp)))
.tcshrc File:
source /sw/bin/init.csh
if ( ! $?DISPLAY ) then
setenv DISPLAY :0.0
endif
source /Applications/idl_5.6/bin/idl_setup
setenv EKV_PATH /Users/rcohen/Work/EKV_STUFF
setenv IDL_DLM_PATH
"<IDL_DEFAULT>:/Users/rcohen/Work/EKV_STUFF/bin:/Applications/id
l_5.6/bin/bin.darwin.ppc"
setenv NMLLIB /Users/rcohen/Work/EKV_STUFF/NML
setenv IDL_PATH
"<IDL_DEFAULT>:/Users/rcohen/Work/EKV_STUFF/idl_lib51:/Users/rcohen/
Work/EKV_STUFF/X3HDL5/Production51"
setenv IDL_STARTUP /Users/rcohen/Work/EKV_STUFF/idl_lib51/usrinit.pro
if ($?PATH) then
setenv PATH
" ${PATH}:/Users/rcohen/Work/EKV_STUFF:/Applications/idl_5.6/b in/bin.da
rwin.ppc"
else
setenv PATH
" /Users/rcohen/Work/EKV_STUFF:/Applications/idl_5.6/bin/bin.d arwin.ppc
"
endif
|
|
|