1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
Echanges avec Martin Loewis concerant les évolutions de Python et Tkinter
liés au wrapper python <-> ivy
Date: Sun, 13 Jul 2003 18:49:35 +0200
From: =?ISO-8859-1?Q?=22Martin_v=2E_L=F6wis=22?= <martin@v.loewis.de>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de-AT; rv:1.4) Gecko/20030624
X-Accept-Language: de, en-us, en
To: Didier PAVET <pavet@ath.cena.fr>
Subject: Re: a request / tkinter (ENTER_TCL ENTER_PYTHON macro)
In-Reply-To: <200307100715.JAA18790@basilic.dev.ath.cena.fr>
Content-Type: text/plain; charset=us-ascii; format=flowed
X-Seen: false
X-ID: rfGYOMZcgeZyNlhDQlB5laNXLu1X06U3wOOZDJ0mi2oMCVtqUb+aQc@t-dialin.net
Didier PAVET wrote:
> Have you allready heard some request in that sens ?
Dear Didier,
Yes, this is a SourceForge feature request, see
http://python.org/sf/539907
> Does it stand sensible that this patch could be integrated in Python/Tkinter
> distribution and are you the right man to do that ?
In some form, yes, certainly. Merely copying the macros into a header
file is not sufficient though: the code has been become much more
complex since 2.1, as we now also need to support multi-threaded Tcl
installations.
Also, in general, you cannot access C variables across different
Python extension modules. Instead, you need to expose a CObject of some
kind. Instead of having that C object refer to the Tcl lock, I'd rather
provide access to some higher-level function pointers which can take
into account the various Tcl installations.
I'd encourage you to work on this for Python 2.4. Please make either
Python 2.3 or the Python CVS your starting point, and please submit
unified diffs to sf.net/projects/python when you are done.
If you have any questions about this approach, don#t hesitate to ask.
Regards,
Martin
Date: 10 Jul 2003 09:07:08 +0200
From: Didier PAVET <pavet@ath.cena.fr>
To: martin@v.loewis.de
Subject: a request / tkinter (ENTER_TCL ENTER_PYTHON macro)
Martin,
First of all, thank you for the job to maintain and upgrade python's stuff.
My organisation (french R&D center for air navigation) currently benefits from
python , tkinter material to build prototype, mock-up and so all.
I have a request concerning _tkinter.h and _tkinter.c . In fact, in order to
build a python wrapper to an in-house middleware library built in C, I have
faced a problem with macro which aim at protecting interaction between tcl/tk
mainloop, thread and so on . I mean these macro ;
ENTER_TCL
LEAVE_TCL
ENTER_PYTHON
LEAVE_PYTHON
For the moment, these macros are private to _tkinter module and so defined in
_tkinter.c. My need is to be capable from an external python module (in fact
my wrapper) to use (and so to share the data) these macros.
I have allready carried out a solution patching Python 2.1.3 distribution and
packing my library to verify that it works . The solution is to externalize
and put the macros definition in the header _tkinter.h and allow external
access to lock as tcl_lock, tcl_state .
2 requests :
Have you allready heard some request in that sens ?
Does it stand sensible that this patch could be integrated in Python/Tkinter
distribution and are you the right man to do that ?
Many thanks in advance for your help; it is clear for me that a positive
answer would avoid me to deliver my wrapper with a patched version of
Tkinter (solution which is pretty not handy).
I just attached as a tar file my version of _tkinter.h and _tkinter.c derived
from Python 2.1.3 (debian woody stable version).
Didier
--
Didier PAVET Centre d'Etudes de La Navigation Aerienne / (Chef division ICS)
Office location Phone: (33 1) 69 57 68 89 - Fax: (33 1) 69 57 68 52
B1608 b025 ou 01 69 57 68 89 ou 01 69 57 68 52
E-mail: pavet@ath.cena.fr WWW: http://www.ath.cena.fr/~pavet
Note : the middleware, target of my wrapper is Ivy;
have a look at
http://www.tls.cena.fr/products/ivy/ or
http://freshmeat.net/projects/ivy/
|