<br><br><div class="gmail_quote">On Tue, Mar 29, 2011 at 12:47 PM, Guido van Rossum <span dir="ltr"><<a href="mailto:guido@python.org">guido@python.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">On Tue, Mar 29, 2011 at 11:30 AM, Eric Snow <<a href="mailto:ericsnowcurrently@gmail.com">ericsnowcurrently@gmail.com</a>> wrote:<br>
> Certainly neither the new builtins nor the "pure" Python extrapolations<br>
> would be portable.  And I wasn't suggesting that they be exposed in the<br>
> builtins module, but rather in their own module.  By nature they would be<br>
> implementation specific.  However, they would be as insightful as poking<br>
> around the C-API is (which I found to be very), but in Python.<br>
> As far as Cython goes, I am not terribly familiar with it.  However, I think<br>
> it is a sort of opposite.  Cython seems to push Python down into C.  The<br>
> C-API builtins would push the C into Python (that doesn't sound good).<br>
> Regardless, I think doing this would take too much work to be worth it.  But<br>
> I did want to get the idea out there.  I starting thinking about this when I<br>
> was messing around with exec_closure.    While it has proven superfluous,<br>
> working on it exposed me to all the pieces in the C-API that do not have<br>
> counterparts in Python.  Things like cell objects.  There are things in<br>
> there that you can emulate, but not in an explicit way (like<br>
> PyEval_EvalCodeEx).<br>
> It seems like as time has gone by, more of the internals have been exposed,<br>
> like the AST module, the types module, metaclasses, the dis module, and<br>
> others.  Certainly these are not run-of-the-mill modules, and neither would<br>
> this be.  Those others have come about as needs have presented.  I expect<br>
> that will continue to be the case.  The idea here was to skip to the chase<br>
> and just expose the whole API.<br>
<br>
</div>Well people already do this using ctypes...<br>
<div class="im"><br></div></blockquote><div>Haven't used them myself yet.  So you can use them to expose all of the C-API?  Cool!</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">
> One of my key questions is, what are the dangers in doing so?  Security?<br>
>  Risk of fostering hacks?  More people relying on implementation specific<br>
> details?  Enabling code that is incongrous with the Python vision?  These<br>
> are questions to which I am trying to find answers as I dive into the<br>
> python-dev world.  I appreciate the feedback by the way!<br>
<br>
</div>Any or all of the above, probably, depending on the specific API<br>
you're considering...<br>
<br></blockquote><div>I figured as much. :(  Unless I have missed a doc somewhere, it seems like it is a process of time to get a feel for what belongs in Python and what doesn't.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

You seem to have ignored my suggestion to think about how this would<br>
work in other Python interpreters.<br>
<br></blockquote><div>I really am not sure.  It seems like there are already several modules in the stdlib that are implementation specific, like dis.  This would fall in that category.  But maybe we are trying to lock or eliminate that category?</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Also many of the C APIs have subtle reference count behavior -- you<br>
don't want to have to worry about refcounting bugs *in your Python<br>
code*.<br>
<font color="#888888"><br></font></blockquote><div>That is one that I definitely hadn't thought about.  I am totally with you on that.  Chalk that up to one more obstacle, though I suppose you would have to deal with it with a ctypes approach as well. </div>
<div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><font color="#888888">
--<br>
</font><div><div></div><div class="h5">--Guido van Rossum (<a href="http://python.org/~guido" target="_blank">python.org/~guido</a>)<br>
</div></div></blockquote></div><br><div>I don't want this discussion to be an abuse of people's time to the benefit of my understanding, but I am finding these threads to be very insightful.  So, thanks!</div><div>
<br></div><div>-eric</div>