From tom at livelogix.com Wed Sep 1 02:00:43 2004 From: tom at livelogix.com (Tom Locke) Date: Wed, 1 Sep 2004 11:30:43 +0530 Subject: [IPython-dev] RE: [IPython-user] ANN: IPython 0.6.3 is out, with matplotlib support. In-Reply-To: <41354DB1.8090904@colorado.edu> Message-ID: <001101c48fe9$07a8a020$293e0b3d@tompc> > I'd be > especially interested in one that doesn't require constant polling, that > approach is just not acceptable in production code. I can't simply take > all of the CPU because someone is running a prompt :) Busy polling doesn't mean taking *all* of the CPU. It all depends just how busy it is. By inserting a time.sleep() into the polling loop, CPU usage could be entirely negligible, while still maintaining responsiveness in the GUI app. In fact, I don't think it's possible (in a single threaded environment) to dispatch events from two distinct event queues without polling. To make this work on Linux (and other platforms), you need to do the same trick with the 'real' readline. readline defines a global variable rl_event_hook. A function pointer that gets called at the right place in the readline input loop. Python sets this to PyOS_InputHook(), which is in fact EventHook() from _tkinter.c EventHook loops around, dispatching events to Tk, whilst keeping an eye on stdin. When stdin is ready, is just returns so that readline can do its bit. What is needed, is for Wx and/or Gtk to define their own EventHook and attach it to rl_event_hook when the Wx/Gtk module is initialized. Seems to me this is a Wx/GTK issue more than an IPython issue (I assume these GUI libraries block the regular Python prompt too?). I guess it could be done entirely in Python using ctypes?? Tom. From Fernando.Perez at colorado.edu Thu Sep 16 17:01:42 2004 From: Fernando.Perez at colorado.edu (Fernando Perez) Date: Thu, 16 Sep 2004 15:01:42 -0600 Subject: [IPython-dev] Good news (I think) for Windows users: ctypes 0.9.1 is out Message-ID: <4149FF36.6000306@colorado.edu> Hi all, I just saw this snippet from the ctypes 0.9.1 announcement: The _ctypes.call_function function, although private and deprecated, has been put back in - it is used by Gary Bishop's readline module. Could any Windows user confirm that under windows, ipython+ctypes(0.9.1)+readline is working again normally? This would be excellent news indeed, and I could remove the nasty warning on the webpage about this problem. Cheers, f From Fernando.Perez at colorado.edu Thu Sep 16 19:05:57 2004 From: Fernando.Perez at colorado.edu (Fernando Perez) Date: Thu, 16 Sep 2004 17:05:57 -0600 Subject: [IPython-dev] Re: [IPython-user] Good news (I think) for Windows users: ctypes 0.9.1 is out In-Reply-To: <414A13AA.7090307@cornell.edu> References: <4149FF36.6000306@colorado.edu> <414A13AA.7090307@cornell.edu> Message-ID: <414A1C55.5040001@colorado.edu> Darren Dale wrote: > Hi Fernando, > > I am using Python 2.3.4 on winXP. I uninstalled ctypes-0.6.3, installed > 0.9.1, and was able to start IPython (a big improvement over > ctypes-0.9.0). I checked some of the autocomplete functionality, and it > appears to be working. I dont know if I will get a chance to do a more > thorough check... I am gleefully migrating to Gentoo. Great, this is confirmation enough. So all windows users of ipython, upgrade ctypes and rejoice! Thanks for the info, I'll update the webpage accordingly. Cheers, f From thorsten at thorstenkampe.de Thu Sep 16 19:28:33 2004 From: thorsten at thorstenkampe.de (Thorsten Kampe) Date: Fri, 17 Sep 2004 01:28:33 +0200 Subject: [IPython-dev] Re: Good news (I think) for Windows users: ctypes 0.9.1 is out References: <4149FF36.6000306@colorado.edu> Message-ID: * Fernando Perez (2004-09-16 23:01 +0200) > I just saw this snippet from the ctypes 0.9.1 announcement: > > The _ctypes.call_function function, although private and > deprecated, has been put back in - it is used by Gary Bishop's > readline module. > > Could any Windows user confirm that under windows, > ipython+ctypes(0.9.1)+readline is working again normally? This would be > excellent news indeed, and I could remove the nasty warning on the webpage > about this problem. I works again. T. From Fernando.Perez at colorado.edu Mon Sep 20 14:56:43 2004 From: Fernando.Perez at colorado.edu (Fernando Perez) Date: Mon, 20 Sep 2004 12:56:43 -0600 Subject: [IPython-dev] Re: ipython gui idea (all to be credited to win32 readline suckage In-Reply-To: References: Message-ID: <414F27EB.5090601@colorado.edu> Hi, [note that the ipython lists auto-discard non-subscriber posts by default. Sorry but this is the only way to keep spam under control. I encourage you to subscribe, the volume of postings is quite low] ipython-dev-bounces at scipy.net wrote: > The attached message has been automatically discarded. > > > ------------------------------------------------------------------------ > > Subject: > ipython gui idea (all to be credited to win32 readline suckage > From: > Leonardo Santagada > Date: > Fri, 17 Sep 2004 19:20:20 -0300 > To: > ipython-dev at scipy.net > > To: > ipython-dev at scipy.net > > > How dificult would be to make ipython a full wxpython or tk program? I > want to do a gui in the lines of Py Crust, would that be feasible? Or > maybe reinplement readline in pure python, because my windows version > don't let me type "/". I don't really want to fix it because in > windows a console windows will always be ugly as hell and only have 80 > colluns I think. Would someone be interested in that? > > ps. i didn't subscribe to this list yet, so please send your answers > to my email also. > > thanks in advance, Such a work is starting already. I suspect for someone who doesn't know the ipython codebase it would be quite time-consuming, since the code is very badly organized. But I know my way around that mess, so hopefully it won't be too bad. And precisely what I'm doing is organizing it better for the future. I've only barely started, as firt I need to tie up a few loose ends with matplotlib support. but that is almost finished. Best, f From ariciputi at pito.com Thu Sep 23 13:34:54 2004 From: ariciputi at pito.com (Andrea Riciputi) Date: Thu, 23 Sep 2004 19:34:54 +0200 Subject: [IPython-dev] A possible bug. Message-ID: Hi, I've found what I think is a bug. If I try to hit tab to complete a module object or attribute I get the following traceback. HTH to fix this problem. Cheers, Andrea. In [17]: h.text(x1, y1, r"$\gamma = 0$", [pyx.te Completion attempt raised an exception! Traceback (most recent call last): File "/sw/src/root-ipython-py23-0.6.2-1/sw/lib/python2.3/site-packages/ IPython/iplib.py", line 275, in compl ete File "/sw/src/root-ipython-py23-0.6.2-1/sw/lib/python2.3/site-packages/ IPython/iplib.py", line 244, in pytho n_matches File "/sw/src/root-ipython-py23-0.6.2-1/sw/lib/python2.3/site-packages/ IPython/FlexCompleter.py", line 176, in attr_matches File "", line 1 [pyx ^ SyntaxError: unexpected EOF while parsing From Fernando.Perez at colorado.edu Thu Sep 23 15:43:19 2004 From: Fernando.Perez at colorado.edu (Fernando Perez) Date: Thu, 23 Sep 2004 13:43:19 -0600 Subject: [IPython-dev] A possible bug. In-Reply-To: References: Message-ID: <41532757.2080106@colorado.edu> Andrea Riciputi wrote: > Hi, > I've found what I think is a bug. If I try to hit tab to complete a > module object or attribute I get the following traceback. HTH to fix > this problem. I suppressed the nasty output in 0.6.3, but readline still doesn't properly if you try: [modulename.foo However, doing: [ modulename.foo ^^^ -> Note the space works. It has to do with how readline splits the line in pieces for evaluation purposes. I'll see if I can make readline complete that kind of syntax, but no promises. At least current ipython simply doesn't complete in that case, instead of spitting out that scary-looking traceback. Thanks for the report, f From Fernando.Perez at colorado.edu Mon Sep 27 21:24:00 2004 From: Fernando.Perez at colorado.edu (Fernando Perez) Date: Mon, 27 Sep 2004 19:24:00 -0600 Subject: [IPython-dev] A possible bug. In-Reply-To: <41532757.2080106@colorado.edu> References: <41532757.2080106@colorado.edu> Message-ID: <4158BD30.1090108@colorado.edu> Fernando Perez schrieb: > Andrea Riciputi wrote: > >>Hi, >>I've found what I think is a bug. If I try to hit tab to complete a >>module object or attribute I get the following traceback. HTH to fix >>this problem. > > > I suppressed the nasty output in 0.6.3, but readline still doesn't properly if > you try: > > [modulename.foo > > However, doing: > > [ modulename.foo > ^^^ -> Note the space > > works. It has to do with how readline splits the line in pieces for > evaluation purposes. I'll see if I can make readline complete that kind of > syntax, but no promises. At least current ipython simply doesn't complete in > that case, instead of spitting out that scary-looking traceback. Ok, I did a bit of work on this one, and here's what I found. You can get ipython to complete [modname. expressions, simply by setting in your ipythonrc file: readline_remove_delims '"-/~ The current default value is: readline_remove_delims '"[]{}-/~ Here's what happens: if you HAVE []{} in remove_delims, then you can do: In [1]: []. [].append [].extend [].insert [].remove [].sort [].count [].index [].pop [].reverse However, it breaks the completion for [modname., since now '[' is considered part of the expression to be completed. In retrospect, I think it's better to _allow_ [modname. to work correctly, at the expense of killing []., since a list comprehension is more common than typing TAB on the naked [] list constructor. The argument may not be as strong for {}, since dict comprehensions don't exist, but I may change the default for both just to keep the interface uniform. Unless I hear anyone complain, I'll then update things so that the new default will be: readline_remove_delims '"-/~ Cheers, f From Fernando.Perez at colorado.edu Wed Sep 29 02:42:47 2004 From: Fernando.Perez at colorado.edu (Fernando Perez) Date: Wed, 29 Sep 2004 00:42:47 -0600 Subject: [IPython-dev] IPython 0.6.4.rc1 ready Message-ID: <415A5967.5010901@colorado.edu> Hi folks, just a heads-up to let you know that I've put up a release candidate for 0.6.4 at: http://ipython.scipy.org/dist/testing/IPython-0.6.4.rc1.tar.gz This includes most importantly, fixes related to proper matplotlib support. There are also a fair amount of other minor changes. CVS is currently in sync with this codebase. I expect to actually put out a 0.6.5 release in a few weeks, because I'll be forced to change the @magic escape from @ to something else, due to the new @decorator syntax. But while this is an easy change to make, it's also very time consuming as I need to track that thing down in a zillion places (yes, my bad: it's hardcoded in multiple locations, and the docs need fixing). I also will solicit user feedback when selecting the new escape. Since I don't want to delay these fixes (esp. the matplotlib support, which is coordinated with matplotlib 0.63), 0.6.4 will come out still using @. Let me know of any problems you run into (or not). Best, f From Fernando.Perez at colorado.edu Wed Sep 29 03:01:00 2004 From: Fernando.Perez at colorado.edu (Fernando Perez) Date: Wed, 29 Sep 2004 01:01:00 -0600 Subject: [IPython-dev] I need feedback: new escape for @magics? Message-ID: <415A5DAC.4080304@colorado.edu> Hi all, while I'm almost ready to release ipython 0.6.4, I will have to wait a bit before starting the 'big cleanup' (yes, it's finally coming :) because I need to address the issue of @ being part of python's syntax as of python 2.4. This means that I'll release 0.6.4 with @, and once I'm done with changing this I'll release 0.6.5, and _then_ I can start overhauling the internals. I don't want to delay 0.6.4 on this issue because it contains important matplotlib-related fixes, and the @ change will be time-consuming. For those of you who don't read python-dev or comp.lang.python, a micro-summary is: Guido introduced a new syntax into the language for function decorators, using the @ character: @classmethod def foo(): ... is now valid python syntax. This PEP discusses the topic in detail: http://www.python.org/peps/pep-0318.html Guido was quite gracious in taking my input into account, but ultimately the decision was made to use the @ character for decorators, so IPython must adapt by changing the @magic escape. I'd like to solicit feedback on what to use; I obviously want to make this change ONLY ONCE, since it's perfectly wasted time in my book. My current candidate is '/', which somebody (can't remember who or where) suggested. I like it because it's a binary operator, so /magic foo bar can never be valid python syntax as a first line (magics can only occur on single lines, not on continuation lines). This makes it pretty future-proof. It's also an easy to type character, and guaranteed to exist on all international keyboards (since it's the division operator). Currently ipython uses / as an autocall escape, but that's a minor and obscure enough use that I'm willing to sacrifice it. I'll either remove the feature altogether or (if someone complains) reassign it to some other escape. So I'd like to hear from all of you on suggestions on this. Even a simple +1 vote is welcome, so at least I know that you agree. If you disagree, please take the time to suggest an alternative, along with a short justification for it. Also, please comment on whether you are OK with removing explicitly escaped autocalling or if you want me to keep the feature, assigning it to a different escape. Thanks in advance to all. Best, Fernando. From jdhunter at ace.bsd.uchicago.edu Wed Sep 29 08:35:02 2004 From: jdhunter at ace.bsd.uchicago.edu (John Hunter) Date: Wed, 29 Sep 2004 07:35:02 -0500 Subject: [IPython-dev] I need feedback: new escape for @magics? In-Reply-To: <415A5DAC.4080304@colorado.edu> (Fernando Perez's message of "Wed, 29 Sep 2004 01:01:00 -0600") References: <415A5DAC.4080304@colorado.edu> Message-ID: >>>>> "Fernando" == Fernando Perez writes: Fernando> My current candidate is '/', which somebody (can't Fernando> remember who or where) suggested. I like it because Fernando> it's a binary operator, so Fernando> /magic foo bar I'm an ipython newbie, so this may be totally offbase, but might this conflict in pysh mode? jdhunter at peds-pc311[matplotlib]|6> /bin/ls API_CHANGES INSTALL NUMARRAY_ISSUES docs license src JDH From prabhu at aero.iitm.ernet.in Wed Sep 29 13:16:03 2004 From: prabhu at aero.iitm.ernet.in (Prabhu Ramachandran) Date: Wed, 29 Sep 2004 22:46:03 +0530 Subject: [IPython-user] Re: [IPython-dev] I need feedback: new escape for @magics? In-Reply-To: References: <415A5DAC.4080304@colorado.edu> Message-ID: <16730.60883.951754.654969@monster.linux.in> >>>>> "JH" == John Hunter writes: >>>>> "Fernando" == Fernando Perez writes: Fernando> My current candidate is '/', which somebody (can't Fernando> remember who or where) suggested. I like it because Fernando> it's a binary operator, so Fernando> /magic foo bar JH> I'm an ipython newbie, so this may be totally offbase, but JH> might this conflict in pysh mode? My thoughts exactly. If there isn't a problem with specifying a full path to a file name then I guess '/' is ok. cheers, prabhu From Fernando.Perez at colorado.edu Wed Sep 29 13:25:25 2004 From: Fernando.Perez at colorado.edu (Fernando Perez) Date: Wed, 29 Sep 2004 11:25:25 -0600 Subject: [IPython-user] Re: [IPython-dev] I need feedback: new escape for @magics? In-Reply-To: <16730.60883.951754.654969@monster.linux.in> References: <415A5DAC.4080304@colorado.edu> <16730.60883.951754.654969@monster.linux.in> Message-ID: <415AF005.3080301@colorado.edu> Prabhu Ramachandran schrieb: >>>>>>"JH" == John Hunter writes: > > >>>>>>"Fernando" == Fernando Perez writes: > > Fernando> My current candidate is '/', which somebody (can't > Fernando> remember who or where) suggested. I like it because > Fernando> it's a binary operator, so > > Fernando> /magic foo bar > > JH> I'm an ipython newbie, so this may be totally offbase, but > JH> might this conflict in pysh mode? > > My thoughts exactly. If there isn't a problem with specifying a full > path to a file name then I guess '/' is ok. Yes, this one is a problem. Bummer. I could make the code work in the following manner: /anything/with/slashes/in/it -> works like pysh currently does /something_with_no_slashes -> considered a magic This would only leave the rather rare case of trying to run a naked command from the root directory out. This can certainly work, however the non-orthogonality of it bothers me a bit. I don't like users having to remember funny special cases of this nature. I feel it's a cleaner design to have _one_ special character for magics, which works uniformly across all ipython configurations. Hmmm... I'm not too sure what to do here. Here are a few more ideas just thrown in to see how they feel: %magic -> I kind of like this one... .magic -> not bad, but hard to see in the manuals, and I worry that some day the python syntax might allow naked attribute access *magic ... All these look distinctly less appealing to me ]magic |magic )magic >magic Feedback most welcome... Best, f From Fernando.Perez at colorado.edu Wed Sep 29 13:36:57 2004 From: Fernando.Perez at colorado.edu (Fernando Perez) Date: Wed, 29 Sep 2004 11:36:57 -0600 Subject: [IPython-user] Re: [IPython-dev] I need feedback: new escapefor @magics? In-Reply-To: References: Message-ID: <415AF2B9.5040405@colorado.edu> Robin Siebler schrieb: > How about using another mostly unused key like ~ or an ALT+NUMPAD code? ~ is not mostly unused under unix environments, quite the opposite :) Besides, it's a valid unary operator, so this is already perfectly correct python code: >>> x=1 >>> ~x -2 I must choose something which is invalid python syntax _forever_, hence the appeal of binary ops, or something like a closing bracket as the first character. I need the sequence to be, by definition, invalid python. Alt+numpad is not a good idea: laptops don't have separate numpads, and I don't even want to get into keyboard event handling across platforms. There may be a unified way to get such codes under windows, but it's certainly not the case across Linux, Solaris, AIX, mac OSX, ... Cheers, f From Fernando.Perez at colorado.edu Thu Sep 30 01:05:23 2004 From: Fernando.Perez at colorado.edu (Fernando Perez) Date: Wed, 29 Sep 2004 23:05:23 -0600 Subject: [IPython-user] Re: [IPython-dev] I need feedback: new escape for @magics? In-Reply-To: References: <415A5DAC.4080304@colorado.edu> <16730.60883.951754.654969@monster.linux.in> <415AF005.3080301@colorado.edu> Message-ID: <415B9413.2010000@colorado.edu> Daishi Harada wrote: > Hi Fernando, > > I would propose ':'. > > I believe it is currently used for only compound statements > and dict items (in Python). I'm not enough of a shell > power-user to know if it has any possible meanings as an > initial character there. > > As an added advantage, I think most *nix users will have > natural associations of ':' as a command prefix from vi. I actually like this, b/c of the vi association (regardless of my personal opinion of vi, which you don't really want to hear :) So to wrap up this discussion, my candidate list right now would be: 1. :magic 2. %magic 3. &magic What do people think? If I don't hear any arguments against, I'll leave the choice with option 1. Best, f From pythondev-dang at lazytwinacres.net Thu Sep 30 05:47:05 2004 From: pythondev-dang at lazytwinacres.net (Daniel 'Dang' Griffith) Date: Thu, 30 Sep 2004 05:47:05 -0400 Subject: [IPython-user] Re: [IPython-dev] I need feedback: new escape for @magics? In-Reply-To: <415B9413.2010000@colorado.edu> References: <415A5DAC.4080304@colorado.edu> <16730.60883.951754.654969@monster.linux.in> <415AF005.3080301@colorado.edu> <415B9413.2010000@colorado.edu> Message-ID: <415BD619.4040704@lazytwinacres.net> Fernando Perez wrote: > Daishi Harada wrote: > >> Hi Fernando, >> >> I would propose ':'. >> >> I believe it is currently used for only compound statements >> and dict items (in Python). I'm not enough of a shell >> power-user to know if it has any possible meanings as an >> initial character there. >> >> As an added advantage, I think most *nix users will have >> natural associations of ':' as a command prefix from vi. > > > I actually like this, b/c of the vi association (regardless of my > personal opinion of vi, which you don't really want to hear :) > > So to wrap up this discussion, my candidate list right now would be: > > 1. :magic +1. > 2. %magic +0. > 3. &magic -0. > > What do people think? If I don't hear any arguments against, I'll > leave the choice with option 1. > --dang From a.schmolck at gmx.net Thu Sep 30 06:51:13 2004 From: a.schmolck at gmx.net (Alexander Schmolck) Date: Thu, 30 Sep 2004 11:51:13 +0100 Subject: [IPython-user] Re: [IPython-dev] I need feedback: new escape for @magics? In-Reply-To: <415B9413.2010000@colorado.edu> (Fernando Perez's message of "Wed, 29 Sep 2004 23:05:23 -0600") References: <415A5DAC.4080304@colorado.edu> <16730.60883.951754.654969@monster.linux.in> <415AF005.3080301@colorado.edu> <415B9413.2010000@colorado.edu> Message-ID: Fernando Perez writes: > Daishi Harada wrote: >> Hi Fernando, >> I would propose ':'. >> I believe it is currently used for only compound statements >> and dict items (in Python). I'm not enough of a shell >> power-user to know if it has any possible meanings as an >> initial character there. >> As an added advantage, I think most *nix users will have >> natural associations of ':' as a command prefix from vi. > > I actually like this, b/c of the vi association (regardless of my personal > opinion of vi, which you don't really want to hear :) > > So to wrap up this discussion, my candidate list right now would be: > > 1. :magic > 2. %magic > 3. &magic > > What do people think? If I don't hear any arguments against, I'll leave the > choice with option 1. I think ':' is too good for the purpose (it's much easier to type then the rest, which seems a waste given that I suspect that almost no-one will ever type it -- I at least normally find no need to explicitly prefix the magic methods). So I'd rather save it for the future and go with % (or &) instead. 'as From prabhu at aero.iitm.ernet.in Thu Sep 30 08:40:28 2004 From: prabhu at aero.iitm.ernet.in (Prabhu Ramachandran) Date: Thu, 30 Sep 2004 18:10:28 +0530 Subject: [IPython-user] Re: [IPython-dev] I need feedback: new escape for @magics? In-Reply-To: References: <415A5DAC.4080304@colorado.edu> <16730.60883.951754.654969@monster.linux.in> <415AF005.3080301@colorado.edu> <415B9413.2010000@colorado.edu> Message-ID: <16731.65212.19918.269382@monster.linux.in> >>>>> "AS" == Alexander Schmolck writes: >> What do people think? If I don't hear any arguments against, >> I'll leave the choice with option 1. AS> I think ':' is too good for the purpose (it's much easier to AS> type then the rest, which seems a waste given that I suspect AS> that almost no-one will ever type it -- I at least normally AS> find no need to explicitly prefix the magic methods). So I'd AS> rather save it for the future and go with % (or &) instead. That is an excellent point. I've also never really needed to type '@' to prefix any of the magic. cheers, prabhu From pythondev-dang at lazytwinacres.net Thu Sep 30 12:13:57 2004 From: pythondev-dang at lazytwinacres.net (Daniel 'Dang' Griffith) Date: Thu, 30 Sep 2004 21:13:57 +0500 Subject: [IPython-user] Re: [IPython-dev] I need feedback: new escape for @magics? Message-ID: <20040930161403.17617.qmail@server265.com> > From: Prabhu Ramachandran > Subject: Re: [IPython-user] Re: [IPython-dev] I need feedback: new escape for @magics? > Sent: 30 Sep 2004 17:40:28 > > That is an excellent point. I've also never really needed to type '@' > to prefix any of the magic. Me either, other than to see how it works. As such, I retract my vote, and am +0 on the whole thing. I think Fernando should try to make the escaped-magic (oh no, my magic's gotten loose again!) users happy. Other than the suggestions that are valid syntax, i.e., "+", "-" and "@", none seem difficult to use. I kinda like the ` and / ideas, but I don't like typing shifted characters unnecessarily--but on the rare occasion I'd use escaped magic, I'd probably spend more time looking up what the escape character is than I would typing it. In other words, I'm +0 on the whole thing. --dang From Fernando.Perez at colorado.edu Thu Sep 30 12:46:55 2004 From: Fernando.Perez at colorado.edu (Fernando Perez) Date: Thu, 30 Sep 2004 10:46:55 -0600 Subject: [IPython-user] Re: [IPython-dev] I need feedback: new escape for @magics? In-Reply-To: <16731.65212.19918.269382@monster.linux.in> References: <415A5DAC.4080304@colorado.edu> <16730.60883.951754.654969@monster.linux.in> <415AF005.3080301@colorado.edu> <415B9413.2010000@colorado.edu> <16731.65212.19918.269382@monster.linux.in> Message-ID: <415C387F.7040707@colorado.edu> Prabhu Ramachandran schrieb: >>>>>>"AS" == Alexander Schmolck writes: > > > >> What do people think? If I don't hear any arguments against, > >> I'll leave the choice with option 1. > > AS> I think ':' is too good for the purpose (it's much easier to > AS> type then the rest, which seems a waste given that I suspect > AS> that almost no-one will ever type it -- I at least normally > AS> find no need to explicitly prefix the magic methods). So I'd > AS> rather save it for the future and go with % (or &) instead. > > That is an excellent point. I've also never really needed to type '@' > to prefix any of the magic. OK, I'll go along with '%' then, and leave ':' aside for some as-yet-undecided future use. It is true that explicit magic escaping should almost never be necessary, so a good character shouldn't be wasted on it. Again, I really appreciate the feedback from everyone on this. It's a relatively minor point, but I'd rather not make a decision that later feels like a wart. Regards, f.