[phobos] phobos commit, revision 1837

Michel Fortin michel.fortin at michelf.com
Thu Aug 12 04:04:17 PDT 2010


Le 2010-08-12 à 4:37, dsource.org a écrit :

> phobos commit, revision 1837
> 
> 
> user: Don Clugston
> 
> msg:
> Some functions need to be public. Revealed by patch to bug 314.
> 
> http://www.dsource.org/projects/phobos/changeset/1837

From the changelog:

---
public // These functions are accessed by mixed-in code
{
	import std.c.stdlib : calloc, realloc, free;
	import core.exception : onOutOfMemoryError;
}
---

Is it reasonable to have to import publicly everything you need for every mixin in every module? Won't this pollute the global namespace? And won't this break a selective import like this one?

---
import std.signal : Signal;
---

Perhaps import could be added directly in the template instead:

---
template Signal(T1...)
{
	import std.c.stdlib : calloc, realloc, free;
	import core.exception : onOutOfMemoryError;
	...
}
---

This is a working but undocumented feature (perhaps it's an accident that it works), see:
<http://d.puremagic.com/issues/show_bug.cgi?id=2179>

From my limited testing however, it seems that this import always import the symbols publicly. :-(

-- 
Michel Fortin
michel.fortin at michelf.com
http://michelf.com/





More information about the phobos mailing list