<< Back to previous view

[CLJ-31] GC Issue 27: Disallow recur across try Created: 17/Jun/09  Updated: 18/Dec/10  Resolved: 17/Dec/10

Status: Closed
Project: Clojure
Component/s: None
Affects Version/s: None
Fix Version/s: Release 1.3

Type: Defect Priority: Major
Reporter: Assembla Importer Assignee: Kevin Downey
Resolution: Completed Votes: 0
Labels: None

Attachments: File 31-recur-across-try3.diff    
Approval: Ok

 Description   
Reported by richhickey, Jan 01, 2009
Right now will allow:

(loop [x 42]
  (when (pos? x)
    (binding [*out* *out*]
      (recur (dec x)))))

but the recur doesn't (can't) really happen in the scope of the binding


 Comments   
Comment by Assembla Importer [ 26/Oct/10 12:30 AM ]

Converted from http://www.assembla.com/spaces/clojure/tickets/31
Attachments:
31-recur-across-try.diff - https://www.assembla.com/spaces/clojure/documents/aeZrIo4kWr352reJe5cbCb/download/aeZrIo4kWr352reJe5cbCb
31-recur-across-try2.diff - https://www.assembla.com/spaces/clojure/documents/cffLE64syr369QeJe5cbLA/download/cffLE64syr369QeJe5cbLA

Comment by Assembla Importer [ 26/Oct/10 12:30 AM ]

richhickey said: Updating tickets (#8, #19, #30, #31, #126, #17, #42, #47, #50, #61, #64, #69, #71, #77, #79, #84, #87, #89, #96, #99, #103, #107, #112, #113, #114, #115, #118, #119, #121, #122, #124)

Comment by Assembla Importer [ 26/Oct/10 12:30 AM ]

hiredman said: [file:aeZrIo4kWr352reJe5cbCb]: patch to disallow recur across try

Comment by Assembla Importer [ 26/Oct/10 12:30 AM ]

hiredman said: [file:cffLE64syr369QeJe5cbLA]: try #2, patch to disallow recur across try

Comment by Assembla Importer [ 26/Oct/10 12:30 AM ]

hiredman said: did a try one, realized it didn't work and my tests were wrong, try 2 seems to actually work

Comment by Stuart Halloway [ 30/Oct/10 11:29 AM ]

Patch does two (related) things:

  • throws compile-time exception if you recur across try
  • throws compile-time exception if you recur across dynamic binding

Rich: is this the desired behavior?

Comment by Rich Hickey [ 30/Oct/10 2:44 PM ]

It would be nice if the tests confirmed ok things still work, e.g. a full loop/recur inside a try etc

Comment by Kevin Downey [ 02/Nov/10 3:23 PM ]

well, dynamic bindings are a try/finally pushing and popping the bindings

Comment by Kevin Downey [ 19/Nov/10 9:46 PM ]

try #3 at the patch, now with some tests to check that things that are ok to do are still possible

Generated at Fri Sep 19 05:04:08 CDT 2014 using JIRA 4.4#649-r158309.