Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×

Comment Article author shouldn't embellish (Score 4, Informative) 683

Unlike traditional nuclear reactors the new micro reactor uses no control rods to initiate the reaction.

Anyone who knows anything about nuclear reactors knows that control rods certainly do not initiate reactions. They regulate or halt it by absorbing the neutrons that cause it. Maybe the author at "Next energy news" should become a bit more familiar with his/her subject before writing about it.

Comment Re:Python and D (Score 1) 570

There's no way that I can see to do this automatically.

The concern is this (reposted here so people don't have to dig through Pyd's docs):

class Foo {
    void bar() { writefln("Foo.bar"); }
}

void func(Foo f) { f.bar(); }

When we wrap this class and this function with Pyd (or Boost.Python), we can subclass Foo with a Python class:

class PyClass(Foo):
    def bar(self):
        print "PyClass.bar"

The behavior we want is:

>>> o = PyClass()
>>> func(o)
PyClass.bar

However, there's no way to get the D function to polymorphically call the Python subclass's method without user intervention. I cannot generate the required wrapper with templates alone. Therefore, users must write thin wrapper classes in D, and expose the wrappers to Python:

class FooWrap : Foo {
    mixin OverloadShim;
    void bar() {
        get_overload(&super.bar, "bar");
    }
}

get_overload performs a bit of magic, checking if the current object is an actual instance of FooWrap or a Python subclass, and calling the proper method as appropriate.

In the dim and distant future, I may be able to generate code like this in a SWIG-like fashion. D is remarkably easy to parse (perhaps one of the language's strongest advantages over C++), and I have almost completed a D parser written in Python (using Pyparsing). Since Pyd's build utility is written in Python, doing this kind of trickery shouldn't prove too difficult.

Slashdot Top Deals

"Experience has proved that some people indeed know everything." -- Russell Baker

Working...