We're updating the issue view to help you get more done. 

When load-lib fails, a namespace is still created

Description

When requiring a namespace that doesn't compile, a namespace is still created. The attached patch removes the namespace on failure if the namespace wasn't already present on entry to load-lib. See the test case in the patch for repro instructions.

This is obviously a subset of having atomic loads. Would a step further in this direction, e.g. using a swapable state object within clojure.lang.Namespace be of interest?

Environment

None

Status

Assignee

Unassigned

Reporter

Hugo Duncan

Labels

None

Approval

Ok

Patch

Code and Test

Fix versions

Affects versions

Release 1.4
Release 1.3

Priority

Major