Login | Register For Free | Help
Search for: (Advanced)

Mailing List Archive: Interchange: users

Cautious eval error handling

 

 

Interchange users RSS feed   Index | Next | Previous | View Threaded


jon at endpoint

Aug 22, 2009, 6:09 PM

Post #1 of 1 (465 views)
Permalink
Cautious eval error handling

Interchange users,

A few months ago I had an adventure tracking down a very obscure bug in
Interchange that was caused by a check for $@ too long after an eval was
called. The biggest reason it was hard to find was that even a logging
command had an eval that reset $@, making later checks fail. The fix was
here:

http://git.icdevgroup.org/?p=interchange.git;a=commitdiff;h=9f9d7c578da699776722641ec3c1edd4b51f3a99

That reinforces that it's good hygiene to only check $@ immediately after
the routine that sets it. And any routine expected to set it should
guarantee that it's cleared when there's no error.

I decided it would be good to go through the whole Interchange codebase
looking for any potential problems, and clean them up to save
troubleshooting and unexpected corner case failures later.

I'm only about halfway through and am committing most changes separately
so that they're small and have per-case explanations. I've pushed the work
so far to a new GitHub branch:

http://github.com/jonjensen/interchange/commits/cautious-eval-errors/

Many of the changes should make no difference at all right now, but could
prevent later problems and/or clarify the intent of the code.

Others change the way code checks for errors, trying to avoid $@. So far
the only functions I think are valid for setting $@ are eval, Safe's
reval, and Interchange's string_to_ref. When I come across others I'm
trying to have Interchange use the return code & whatever API exists
rather than rely on $@.

I'd appreciate any feedback or offers to help review & test, if any of you
is interested.

Thanks,
Jon

--
Jon Jensen
End Point Corporation
http://www.endpoint.com/

_______________________________________________
interchange-users mailing list
interchange-users [at] icdevgroup
http://www.icdevgroup.org/mailman/listinfo/interchange-users

Interchange users RSS feed   Index | Next | Previous | View Threaded
 
 


Interested in having your list archived? Contact Gossamer Threads
 
  Web Applications & Managed Hosting Powered by Gossamer Threads Inc.