<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel rdf:about="http://blog.gmane.org/gmane.comp.python.cython.devel">
    <title>gmane.comp.python.cython.devel</title>
    <link>http://blog.gmane.org/gmane.comp.python.cython.devel</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.python.cython.devel/14905"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.python.cython.devel/14904"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.python.cython.devel/14903"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.python.cython.devel/14902"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.python.cython.devel/14901"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.python.cython.devel/14900"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.python.cython.devel/14899"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.python.cython.devel/14898"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.python.cython.devel/14895"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.python.cython.devel/14894"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.python.cython.devel/14893"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.python.cython.devel/14891"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.python.cython.devel/14889"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.python.cython.devel/14887"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.python.cython.devel/14886"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.python.cython.devel/14885"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.python.cython.devel/14884"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.python.cython.devel/14883"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.python.cython.devel/14882"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.python.cython.devel/14881"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.python.cython.devel/14905">
    <title>Re: [Cython] CF based type inference</title>
    <link>http://permalink.gmane.org/gmane.comp.python.cython.devel/14905</link>
    <description>&lt;pre&gt;2013/5/21 mark florisson &amp;lt;markflorisson88-Re5JQEeQqe8AvxtiuMwx3w&amp;lt; at &amp;gt;public.gmane.org&amp;gt;

x will be of object type here.


As well as here. Can it raise exception or not doesn't matter here since
typeof() returns type of entry and it's calculated at compile time.


&lt;/pre&gt;</description>
    <dc:creator>Vitja Makarov</dc:creator>
    <dc:date>2013-05-21T13:49:45</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.python.cython.devel/14904">
    <title>Re: [Cython] CF based type inference</title>
    <link>http://permalink.gmane.org/gmane.comp.python.cython.devel/14904</link>
    <description>&lt;pre&gt;
Sure, e.g.

    if cond:
        x = 2
    else:
        x = "hello"
    use(x)

A tricky one is this:

    try:
        x = f() # let's say 'double'
        x = g() # let's say 'string'
    finally:
        print typeof(x) # what does this print if 'f' can raise an exception?

&lt;/pre&gt;</description>
    <dc:creator>mark florisson</dc:creator>
    <dc:date>2013-05-21T13:45:29</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.python.cython.devel/14903">
    <title>Re: [Cython] CF based type inference</title>
    <link>http://permalink.gmane.org/gmane.comp.python.cython.devel/14903</link>
    <description>&lt;pre&gt;2013/5/21 mark florisson &amp;lt;markflorisson88-Re5JQEeQqe8AvxtiuMwx3w&amp;lt; at &amp;gt;public.gmane.org&amp;gt;



Can you provide example please? And yes if type cannot be inferred it
fallback to object.



&lt;/pre&gt;</description>
    <dc:creator>Vitja Makarov</dc:creator>
    <dc:date>2013-05-21T13:41:46</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.python.cython.devel/14902">
    <title>Re: [Cython] CF based type inference</title>
    <link>http://permalink.gmane.org/gmane.comp.python.cython.devel/14902</link>
    <description>&lt;pre&gt;
Ok, so I assume it promotes the incoming types (all reaching
definitions)? If N == 0, then when using objects you get an int,
otherwise a double. What happens when the reaching types cannot be
promoted together? Do you fall back to object?

&lt;/pre&gt;</description>
    <dc:creator>mark florisson</dc:creator>
    <dc:date>2013-05-21T13:32:16</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.python.cython.devel/14901">
    <title>Re: [Cython] CF based type inference</title>
    <link>http://permalink.gmane.org/gmane.comp.python.cython.devel/14901</link>
    <description>&lt;pre&gt;2013/5/21 mark florisson &amp;lt;markflorisson88-Re5JQEeQqe8AvxtiuMwx3w&amp;lt; at &amp;gt;public.gmane.org&amp;gt;



Hi Mark,

Nothing changed in your example old algorithm was able to handle this
"simple" kind of cycles as well as new one:

def foo(int N):
    x = 0
    for i in range(N):
        x += 0.2 * i
    print typeof(x)

So this function (not that N is an integer here) will print 'dobule'.

With new algorithm we can go further:

def foo(int N):
    x = 1
    y = 0
    for i in range(N):
        x = x * 0.1 + y * 0.2
        y = x * 0.3 + y * 0.4
    print typeof(x), typeof(y)

Here both x and y will be inferred as double


&lt;/pre&gt;</description>
    <dc:creator>Vitja Makarov</dc:creator>
    <dc:date>2013-05-21T13:14:48</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.python.cython.devel/14900">
    <title>Re: [Cython] CF based type inference</title>
    <link>http://permalink.gmane.org/gmane.comp.python.cython.devel/14900</link>
    <description>&lt;pre&gt;
Hey Vitja,

Cool! How do you want to handle variable merge at control flow joins?
Would you promote (backwards incompatible), use a union type, or
object? E.g. what does this result in:

    x = 0
    for i in range(N):
        x += 0.2 * i
    print typeof(x)
&lt;/pre&gt;</description>
    <dc:creator>mark florisson</dc:creator>
    <dc:date>2013-05-21T11:39:06</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.python.cython.devel/14899">
    <title>[Cython] CF based type inference</title>
    <link>http://permalink.gmane.org/gmane.comp.python.cython.devel/14899</link>
    <description>&lt;pre&gt;Hi!

Recently I've started work on new type inference engine. Now it's almost
ready and I want to discuss it.

It works like this: first infer type for each assignment then for whole
entry. It has some advantages over previous algorithm:
 - it handles assignment cycles, see test_swap() for example
 - it can infer type using info about assignments on the whole entry:

a = 1
b = a
a = "str"

a is python object and b is integer.

Here are testcases that show some new cases it can solve:
https://github.com/vitek/cython
/blob/_type_inference_new/tests/run/type_inference_new.pyx

Here is branch for it https://github.com/vitek/cython
/tree/_type_inference_new

&lt;/pre&gt;</description>
    <dc:creator>Vitja Makarov</dc:creator>
    <dc:date>2013-05-21T10:26:35</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.python.cython.devel/14898">
    <title>Re: [Cython] [cython-users] Re: Cython Typed Memoryviews versus Cython+Numpy Speed ups</title>
    <link>http://permalink.gmane.org/gmane.comp.python.cython.devel/14898</link>
    <description>&lt;pre&gt;
I think so, but I'm not sure. If so, +1 to making this a transformation.
&lt;/pre&gt;</description>
    <dc:creator>Robert Bradshaw</dc:creator>
    <dc:date>2013-05-17T05:03:54</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.python.cython.devel/14895">
    <title>Re: [Cython] nogil doesn't seem to work when defined on extern cpp functions</title>
    <link>http://permalink.gmane.org/gmane.comp.python.cython.devel/14895</link>
    <description>&lt;pre&gt;
The nogil declaration doesn't work that way. Declaring a
function as nogil just says that it's safe to call it
without the GIL -- it doesn't actually cause the GIL to
be released. You need a 'with nogil' block to do that.

&lt;/pre&gt;</description>
    <dc:creator>Greg Ewing</dc:creator>
    <dc:date>2013-05-08T22:56:08</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.python.cython.devel/14894">
    <title>Re: [Cython] Cython 0.19.1 release candidate</title>
    <link>http://permalink.gmane.org/gmane.comp.python.cython.devel/14894</link>
    <description>&lt;pre&gt;Robert Bradshaw, 08.05.2013 21:00:

Done.

Stefan

&lt;/pre&gt;</description>
    <dc:creator>Stefan Behnel</dc:creator>
    <dc:date>2013-05-08T19:12:28</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.python.cython.devel/14893">
    <title>Re: [Cython] Cython 0.19.1 release candidate</title>
    <link>http://permalink.gmane.org/gmane.comp.python.cython.devel/14893</link>
    <description>&lt;pre&gt;It'd be nice to pull in
https://github.com/cython/cython/commit/5574592e569e0cce5f1277b6f0c441d6d19122b5
as well.

On Wed, May 8, 2013 at 7:25 AM, Stefan Behnel &amp;lt;stefan_ml-KjMAwuNBv5izQB+pC5nmwQ&amp;lt; at &amp;gt;public.gmane.org&amp;gt; wrote:
&lt;/pre&gt;</description>
    <dc:creator>Robert Bradshaw</dc:creator>
    <dc:date>2013-05-08T19:00:29</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.python.cython.devel/14891">
    <title>Re: [Cython] nogil doesn't seem to work when defined on extern cpp functions</title>
    <link>http://permalink.gmane.org/gmane.comp.python.cython.devel/14891</link>
    <description>&lt;pre&gt;Hi,

this question is better suited for the cython-users mailing list.

Ryan Pessa, 08.05.2013 20:09:

Declarations won't implicitly free the GIL for you. They just state that
the function doesn't need the GIL and can thus be called safely from within
a "nogil" block. Freeing the GIL is an explicit operation that is left to
the user.

Otherwise, you'd end up with ambiguous code semantics. Imaging you'd call
two functions in a row that are both declared nogil - should Cython lock
the GIL in between or not?

Stefan

&lt;/pre&gt;</description>
    <dc:creator>Stefan Behnel</dc:creator>
    <dc:date>2013-05-08T18:48:29</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.python.cython.devel/14889">
    <title>[Cython] nogil doesn't seem to work when defined on extern cppfunctions</title>
    <link>http://permalink.gmane.org/gmane.comp.python.cython.devel/14889</link>
    <description>&lt;pre&gt;Hello,

I ran into an interesting problem today. It doesn't seem like Cython
respects the `nogil` statement on extern cpp functions. I am trying to use
a blocking I/O function, and am running it in secondary thread so I can use
another library function to cancel it.

I have tried it both on the `extern` line:
    cdef extern from "digitalpersona/dpfp_api.h" nogil:
        uint32_t DPFPGetEvent(dp_uid_t* pDevUID, dp_device_event_t**
ppEvent, uint32_t uTimeoutMsec)
and on the function itself:
    cdef extern from "digitalpersona/dpfp_api.h" nogil:
        uint32_t DPFPGetEvent(dp_uid_t* pDevUID, dp_device_event_t**
ppEvent, uint32_t uTimeoutMsec) nogil

Either way, this statement still blocks other threads:
    res = dpfp_api.DPFPGetEvent(pIdDev, &amp;amp;pEvent,
dpfp_api.DP_TIMEOUT_INFINITE)
While this statement does not:
    with nogil:
        res = dpfp_api.DPFPGetEvent(pIdDev, &amp;amp;pEvent,
dpfp_api.DP_TIMEOUT_INFINITE)
All variables used (res, pIdDev, pEvent) are C variables.

Obviously this is not a huge issue, as I can bypass the GIL using `with
nogil`. But I figured it would be a good idea to report it anyway.

Ryan Pessa
AerisPOS Project Manager / Developer
Essential Elements &amp;lt;http://www.essential-elements.net/&amp;gt; |
AerisPOS&amp;lt;http://www.aerispos.com/&amp;gt;
&lt;/pre&gt;</description>
    <dc:creator>Ryan Pessa</dc:creator>
    <dc:date>2013-05-08T18:09:14</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.python.cython.devel/14887">
    <title>Re: [Cython] Generated C++ code incompatible with Clang</title>
    <link>http://permalink.gmane.org/gmane.comp.python.cython.devel/14887</link>
    <description>&lt;pre&gt;It's not a big problem, but it'll be an ugly and invasive amount of
bookkeeping to manage these top-level typedefs per type deletion.

On Tue, May 7, 2013 at 1:38 PM, Hannes Röst
&amp;lt;hroest_nospam2333&amp;lt; at &amp;gt;quantentunnel.de&amp;gt; wrote:
_______________________________________________
cython-devel mailing list
cython-devel&amp;lt; at &amp;gt;python.org
http://mail.python.org/mailman/listinfo/cython-devel
&lt;/pre&gt;</description>
    <dc:creator>Robert Bradshaw</dc:creator>
    <dc:date>2013-05-07T20:55:28</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.python.cython.devel/14886">
    <title>Re: [Cython] Generated C++ code incompatible with Clang</title>
    <link>http://permalink.gmane.org/gmane.comp.python.cython.devel/14886</link>
    <description>&lt;pre&gt;Hi Robert

After some internal discussion, we have not found an obvious way to not
have the extra typedef. Is this a big problem?

Maybe there are other people on the list that are more fluent in C++ and
could think of a way to do it?

Greetings

Hannes

On 30 April 2013 07:48, Robert Bradshaw &amp;lt;robertwb-Re5JQEeQqe8AvxtiuMwx3w&amp;lt; at &amp;gt;public.gmane.org&amp;gt; wrote:

&lt;/pre&gt;</description>
    <dc:creator>Hannes Röst</dc:creator>
    <dc:date>2013-05-07T20:38:38</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.python.cython.devel/14885">
    <title>Re: [Cython] [cython] Order cdef classes by inheritance before generating the code. (#223)</title>
    <link>http://permalink.gmane.org/gmane.comp.python.cython.devel/14885</link>
    <description>&lt;pre&gt;Nikita Nemkin, 05.05.2013 16:13:

Luckily, this broke the Sage build, by running into an infinite loop while
sorting.

https://sage.math.washington.edu:8091/hudson/job/sage-build/1778/

We clearly need more tests for extension type hierarchies spread across
multiple modules.

Stefan

&lt;/pre&gt;</description>
    <dc:creator>Stefan Behnel</dc:creator>
    <dc:date>2013-05-06T19:26:08</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.python.cython.devel/14884">
    <title>Re: [Cython] [cython] Hide Cython utility classes (like memoryview) from Python level module scope. (#222)</title>
    <link>http://permalink.gmane.org/gmane.comp.python.cython.devel/14884</link>
    <description>&lt;pre&gt;Nikita Nemkin, 05.05.2013 14:26:

Ah, yes. It's way more complex for classes than for, say, lambda functions
(and even those have a fake name).

Anyway, given how easy it is to declare utility code &amp;lt; at &amp;gt;internal to get this
fixed, I think it's not worth looking for a different solution.

I merged your pull request.

Stefan

&lt;/pre&gt;</description>
    <dc:creator>Stefan Behnel</dc:creator>
    <dc:date>2013-05-05T12:40:40</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.python.cython.devel/14883">
    <title>Re: [Cython] [cython] Hide Cython utility classes (like memoryview) from Python level module scope. (#222)</title>
    <link>http://permalink.gmane.org/gmane.comp.python.cython.devel/14883</link>
    <description>&lt;pre&gt;On Sun, 05 May 2013 17:03:54 +0600, Stefan Behnel &amp;lt;stefan_ml-KjMAwuNBv5izQB+pC5nmwQ&amp;lt; at &amp;gt;public.gmane.org&amp;gt;  
wrote:


entry.name serves for general identification and bookkeeping, not just
to provide a python level name. Non-null entry name is a very useful
invariant, I'd rather not break it for something trivial like name hiding.

All codegen algorithms will have to worry about (class) entries with null
names afterwards. Even if it works currently, it may break in the future.

Anyway, just setting entry.name to None does not work, because it is not
the only place to get a python name (and of course it's never checked for  
None).
For example, module init code uses ClassScope.class_name. Some other code
may use entry.type.name etc...


Best regards,
Nikita Nemkin
&lt;/pre&gt;</description>
    <dc:creator>Nikita Nemkin</dc:creator>
    <dc:date>2013-05-05T12:26:28</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.python.cython.devel/14882">
    <title>Re: [Cython] [cython] Hide Cython utility classes (like memoryview) from Python level module scope. (#222)</title>
    <link>http://permalink.gmane.org/gmane.comp.python.cython.devel/14882</link>
    <description>&lt;pre&gt;Nikita Nemkin, 04.05.2013 19:52:

I wonder why utility classes actually need a Python name. Can't they just
live with None as "name"? All they should really need is their cname and a
properly analysed entry stored in the right places, so deleting their
Python visible name when merging them into the main module should fix this.

Stefan

&lt;/pre&gt;</description>
    <dc:creator>Stefan Behnel</dc:creator>
    <dc:date>2013-05-05T11:03:54</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.python.cython.devel/14881">
    <title>Re: [Cython] any more fixes for 0.19.1 ?</title>
    <link>http://permalink.gmane.org/gmane.comp.python.cython.devel/14881</link>
    <description>&lt;pre&gt;Nikita Nemkin, 04.05.2013 16:28:

I'm not sure what the exact problem is here, but in general, I'd say that
they should be declared in the CythonScope only, and not leak into the
module scope at all. Mark would know more details on this one.

Stefan

&lt;/pre&gt;</description>
    <dc:creator>Stefan Behnel</dc:creator>
    <dc:date>2013-05-04T17:21:26</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.python.cython.devel/14880">
    <title>Re: [Cython] any more fixes for 0.19.1 ?</title>
    <link>http://permalink.gmane.org/gmane.comp.python.cython.devel/14880</link>
    <description>&lt;pre&gt;On Fri, 03 May 2013 19:49:19 +0600, Stefan Behnel &amp;lt;stefan_ml-KjMAwuNBv5izQB+pC5nmwQ&amp;lt; at &amp;gt;public.gmane.org&amp;gt;  
wrote:


I'm working on this one and I need an opinion: should utility
classes be made internal by default or should they use
&amp;lt; at &amp;gt;cython.internal explicitly?


Best regards,
Nikita Nemkin
&lt;/pre&gt;</description>
    <dc:creator>Nikita Nemkin</dc:creator>
    <dc:date>2013-05-04T14:28:13</dc:date>
  </item>
  <textinput rdf:about="http://search.gmane.org/?group=$group=gmane.comp.python.cython.devel">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.comp.python.cython.devel</link>
  </textinput>
</rdf:RDF>
