On Mon, Mar 17, 2014 at 12:06 PM, Garth N. Wells <[email protected]> wrote:
> > > On Mon, 17 Mar, 2014 at 10:56 AM, Johan Hake <[email protected]> wrote: > >> SWIG 3.0 was just released with some backward incompatible changes to the >> bool typemap. >> Previously the typemap just checked if a Python object could be evaluated >> as a bool. Several different classes implement such conversion also dolfin >> making: >> >> info(mesh, >> >> FunctionSpace(mesh, "CG", 1)) >> >> perfectly valid. >> > > What should the above do? Just an example of lazy conversion that previously worked, as bool(FunctionSpace(mesh, "CG", 1)) returns True. > Now one can only pass var for which: >> >> isinstance(var, bool) >> >> return True. >> >> As a general comment I think this is good, but it also make other more >> handy user cases fails, like numpy.bool_ and python int. The former is used >> in the inside method of SubDomain (x[0]<0.5) and the latter in a typical >> call to info(parameters, 1). >> >> I suggest we extend the typemap for SWIG 3.0 to also include numpy.bool_ >> but I am reluctant to make info(parameters, 1) work. Users could easily >> update there practice to write info(parameters, True) >> Any comments? >> > > > I agree with your suggestion. I think info(parameters, 1) is bad practice, > so it's fine if it now fails. Related, I recently fixed C++ compile > failures with clang where DOLFIN was lazy and used implicit interger/bool > casting. We should be more careful. > Ok, lets wait a few moments and see what others says. I did implemented this fix locally and it triggered some easily fixed errors, due to sloppy implementation in some places. Johan Garth > > > Johan >> >> > >
_______________________________________________ fenics mailing list [email protected] http://fenicsproject.org/mailman/listinfo/fenics
