>
>
> Are there other pitfalls to auto-merging in user-space-only?  
>
>
>>>
Tom, 
 
The problem with auto merging in user code (as I see it)

module a
export f
f(x) = 4
f(x::Int)=5

user code:

using a
f(5) # gives 5 fine
f(6.0)+1 # gives 5 fine
f(5.0)  # gives 4, fine

now another module:

module b # totally separate from a, a and b have nothing in common except 
both use the verb f
export f
f(x::Float64) = "four"

user code:

using a,b # assuming methods of f() are auto-merged in user space

# existing code

f(5) # still gives 5, ok
f(6.0)+1 # can't add string and int, at least this breaks noisily 
f(5.0) # "four"?, existing code is silently changed :(

Consider also how much more complex the problem becomes if f() is generic, 
how many f{T}(x::T) exist and have to be merged? Don't know, depends on 
usage.
 

Reply via email to