On 2月7日, 下午7时10分, "Diez B. Roggisch" <de...@nospam.web.de> wrote:
> Terry schrieb:
>
> > On 2月7日, 下午3时36分, "Martin v. Löwis" <mar...@v.loewis.de> wrote:
> >>> Does that say something about the code quality of Python3.0?
> >> Not necessarily. IIUC, copying a single file with 2000 lines
> >> completely could already account for that increase.
>
> >> It would be interesting to see what specific files have gained
> >> large numbers of additional files, compared to 2.5.
>
> >> Regards,
> >> Martin
>
> > But the duplication are always not very big, from about 100 lines
> > (rare) to less the 5 lines. As you can see the Rate30 is much bigger
> > than Rate60, that means there are a lot of small duplications.
>
> Do you by any chance have a few examples of these? There is a lot of
> idiomatic code in python to e.g. acquire and release the GIL or doing
> refcount-stuff. If that happens to be done with rather generic names as
> arguments, I can well imagine that as being the cause.
>
> Diez

Example 1:
Found a 64 line (153 tokens) duplication in the following files:
Starting at line 73 of D:\DOWNLOADS\Python-3.0\Python\thread_pth.h
Starting at line 222 of D:\DOWNLOADS\Python-3.0\Python
\thread_pthread.h

        return (long) threadid;
#else
        return (long) *(long *) &threadid;
#endif
}

static void
do_PyThread_exit_thread(int no_cleanup)
{
        dprintf(("PyThread_exit_thread called\n"));
        if (!initialized) {
                if (no_cleanup)
                        _exit(0);
                else
                        exit(0);
        }
}

void
PyThread_exit_thread(void)
{
        do_PyThread_exit_thread(0);
}

void
PyThread__exit_thread(void)
{
        do_PyThread_exit_thread(1);
}

#ifndef NO_EXIT_PROG
static void
do_PyThread_exit_prog(int status, int no_cleanup)
{
        dprintf(("PyThread_exit_prog(%d) called\n", status));
        if (!initialized)
                if (no_cleanup)
                        _exit(status);
                else
                        exit(status);
}

void
PyThread_exit_prog(int status)
{
        do_PyThread_exit_prog(status, 0);
}

void
PyThread__exit_prog(int status)
{
        do_PyThread_exit_prog(status, 1);
}
#endif /* NO_EXIT_PROG */

#ifdef USE_SEMAPHORES

/*
 * Lock support.
 */

PyThread_type_lock
PyThread_allocate_lock(void)
{

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to