[petsc-dev] ugliness due to missing lapack routines
Jed Brown
jedbrown at mcs.anl.gov
Thu Feb 7 22:09:13 CST 2013
On Thu, Feb 7, 2013 at 7:35 PM, Barry Smith <bsmith at mcs.anl.gov> wrote:
>
> Yup, absolutely and not a problem since we write the implementations and
> only the interface is generated. Surely we would not write some generator
> that is so stupid that it would generate the same thing twice and then barf
> because it got confused? We have slightly higher standards than Babel.
>
Okay, but now the generator needs a global view and/or an understanding of
module dependencies. How will you express those dependencies? Here's a
compiler guy talking about how to design a module system for C.
http://llvm.org/devmtg/2012-11/Gregor-Modules.pdf
> > No, you're just changing the behavior of the code by annotating using
> comments. I.e., extending the language. It's not plain C because the
> "comments" are semantically significant and not even optional.
>
> I knew you would say that. Using comments would only be a temporary
> thing until the tools knew a bit about the class structure and could do
> everything automatically.
>
But not "automatically" in C because these semantics are not directly
expressible in C. Presumably you're going to add keywords/syntax to
communicate that structure. And now you're making a new programming
language.
> > HOW does it "understand" the semantics you are writing down? Is it
> through more annotation that you're going to put in the comments? Or magic
> names and a piece of code in the preprocessor that recognizes that name and
> pattern?
>
> No, based on dependencies it can figure out the types of the internal
> variables from the the type change to the argument thus doesn't need you to
> "mark" the variables with some "type" crap name.
>
1. Is your language going to have type inference too?
2. Somewhere we have to decide between static and dynamic typing. Will your
language have a JIT?
> Yes and that is part of the problem. We are dependent on these
> non-machine-manipulatable constructs in our code (yes, my fault). Hacks, if
> you will.
>
Sure, but what do you replace them with? Comments instructing the
preprocessor to perform the equivalent of macro expansion? How is that
machine-manipulatable? The manipulator needs to understand your comments to
do anything.
>
> Regardless, we are using code generation today. Why don't we at least
> do it honestly and have the generators separate from the data they use to
> do the generation and the location where the generated code goes? Now it is
> all in the same damn file!
>
I don't think that distributing the logic between more languages/files is
better in any way.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20130207/d37b02f1/attachment.html>
More information about the petsc-dev
mailing list