Login | Register For Free | Help
Search for: (Advanced)

Mailing List Archive: Python: Dev
an alternative to embedding policy in PEP 418 (was: PEP 418: Add monotonic clock)
 

Index | Next | Previous | View Flat


cs at zip

Apr 1, 2012, 5:43 PM


Views: 323
Permalink
an alternative to embedding policy in PEP 418 (was: PEP 418: Add monotonic clock)

On 28Mar2012 23:40, Victor Stinner <victor.stinner [at] gmail> wrote:
| > Does this primarily give a high resolution clock, or primarily a
| > monotonic clock? That's not clear from either the name, or the PEP.
|
| I expect a better resolution from time.monotonic() than time.time(). I
| don't have exact numbers right now, but I began to document each OS
| clock in the PEP.

I wish to raise an alternative to these set-in-stone policy-in-the-library
choices, and an alternative to any proposal that does fallback in a function
whose name suggests otherwise.

Off in another thread on PEP 418 I suggested a cleaner approach to
offering clocks to the user: let the user ask!

My (just two!) posts on this are here:

http://www.mail-archive.com/python-dev [at] python/msg66174.html
http://www.mail-archive.com/python-dev [at] python/msg66179.html

The second post is more important as it fleshes out my reasons for
considering this appraoch better.

I've just finished sketching out a skeleton here:

https://bitbucket.org/cameron_simpson/css/src/fb476fcdcfce/lib/python/cs/clockutils.py

In short:

- take Victor's hard work on system clocks and classifying thm by
feature set

- tabulate access to them in a list of clock objects

- base access class goes (example user call):

# get a clock object - often a singleton under the hood
T = get_clock(T_MONOTONIC|T_HIRES) or get_clock(T_STEADY|T_HIRES)
# what kind of clock did I get?
print T.flags
# get the current time
now = T.now

- offer monotonic() and/or steady() etc as convenience functions
calling get_clock() in a fashion like the above example

- don't try to guess the user's use case ahead of time

This removes policy from the library functions and makes it both simple
and obvious in the user's calling code, and also makes it possible for
the user to inspect the clock and find out what quality/flavour of clock
they got.

Please have a glance through the code, especially the top and botth bits;
it is only 89 lines long and includes (presently) just a simple object for
time.time() and (importantly for the bikeshedding) an example synthetic
clock to give a monotonic caching clock from another non-monotonic clock
(default, again, time.time() in this prototype).

Suitably fleshed out with access to the various system clocks, this can
offer all the current bikeshedding in a simple interface and without
constraining user choices to "what we thought of, or what we thought
likely".

Cheers,
--
Cameron Simpson <cs [at] zip> DoD#743
http://www.cskk.ezoshosting.com/cs/

Availability: Samples Q1/97
Volume H2/97
So, it's vapor right now, but if you want to sell vapor in 1997 you
better had damn fast vapor then...
- Burkhard Neidecker-Lutz on the DEC Alpha 21264, October 1996
_______________________________________________
Python-Dev mailing list
Python-Dev [at] python
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: http://mail.python.org/mailman/options/python-dev/list-python-dev%40lists.gossamer-threads.com

Subject User Time
an alternative to embedding policy in PEP 418 (was: PEP 418: Add monotonic clock) cs at zip Apr 1, 2012, 5:43 PM
    Re: an alternative to embedding policy in PEP 418 (was: PEP 418: Add monotonic clock) victor.stinner at gmail Apr 2, 2012, 4:37 AM
    Re: an alternative to embedding policy in PEP 418 (was: PEP 418: Add monotonic clock) cs at zip Apr 2, 2012, 2:38 PM
        Re: an alternative to embedding policy in PEP 418 (was: PEP 418: Add monotonic clock) cs at zip Apr 2, 2012, 2:51 PM
            Re: an alternative to embedding policy in PEP 418 (was: PEP 418: Add monotonic clock) cs at zip Apr 2, 2012, 3:05 PM
        Re: an alternative to embedding policy in PEP 418 (was: PEP 418: Add monotonic clock) cs at zip Apr 2, 2012, 3:44 PM
        Re: an alternative to embedding policy in PEP 418 (was: PEP 418: Add monotonic clock) regebro at gmail Apr 2, 2012, 10:51 PM
        Re: an alternative to embedding policy in PEP 418 (was: PEP 418: Add monotonic clock) victor.stinner at gmail Apr 3, 2012, 4:45 PM
    Re: an alternative to embedding policy in PEP 418 (was: PEP 418: Add monotonic clock) cs at zip Apr 2, 2012, 11:03 PM
        Re: an alternative to embedding policy in PEP 418 (was: PEP 418: Add monotonic clock) breamoreboy at yahoo Apr 3, 2012, 1:03 AM
            Re: an alternative to embedding policy in PEP 418 (was: PEP 418: Add monotonic clock) cs at zip Apr 3, 2012, 1:43 AM
                Re: an alternative to embedding policy in PEP 418 (was: PEP 418: Add monotonic clock) greg.ewing at canterbury Apr 3, 2012, 5:04 PM
                    Re: an alternative to embedding policy in PEP 418 (was: PEP 418: Add monotonic clock) breamoreboy at yahoo Apr 3, 2012, 5:18 PM
        Re: an alternative to embedding policy in PEP 418 (was: PEP 418: Add monotonic clock) regebro at gmail Apr 3, 2012, 7:09 AM
    Re: an alternative to embedding policy in PEP 418 (was: PEP 418: Add monotonic clock) ethan at stoneleaf Apr 3, 2012, 9:07 AM
        Re: an alternative to embedding policy in PEP 418 (was: PEP 418: Add monotonic clock) cs at zip Apr 3, 2012, 2:42 PM
            Re: an alternative to embedding policy in PEP 418 (was: PEP 418: Add monotonic clock) ethan at stoneleaf Apr 3, 2012, 3:08 PM
                Re: an alternative to embedding policy in PEP 418 (was: PEP 418: Add monotonic clock) cs at zip Apr 3, 2012, 4:38 PM
                    Re: an alternative to embedding policy in PEP 418 (was: PEP 418: Add monotonic clock) ncoghlan at gmail Apr 3, 2012, 4:46 PM
        Re: an alternative to embedding policy in PEP 418 (was: PEP 418: Add monotonic clock) regebro at gmail Apr 4, 2012, 8:47 AM
    Re: an alternative to embedding policy in PEP 418 (was: PEP 418: Add monotonic clock) cs at zip Apr 3, 2012, 7:46 PM
    Re: an alternative to embedding policy in PEP 418 (was: PEP 418: Add monotonic clock) p.f.moore at gmail Apr 4, 2012, 1:21 AM
    Re: an alternative to embedding policy in PEP 418 (was: PEP 418: Add monotonic clock) ethan at stoneleaf Apr 4, 2012, 9:18 AM
        Re: an alternative to embedding policy in PEP 418 (was: PEP 418: Add monotonic clock) g.brandl at gmx Apr 4, 2012, 10:47 AM
            Re: an alternative to embedding policy in PEP 418 (was: PEP 418: Add monotonic clock) ethan at stoneleaf Apr 4, 2012, 11:06 AM
            Re: an alternative to embedding policy in PEP 418 (was: PEP 418: Add monotonic clock) cs at zip Apr 4, 2012, 3:06 PM
    Re: an alternative to embedding policy in PEP 418 (was: PEP 418: Add monotonic clock) phd at phdru Apr 4, 2012, 10:44 AM
        Re: an alternative to embedding policy in PEP 418 (was: PEP 418: Add monotonic clock) ethan at stoneleaf Apr 4, 2012, 11:03 AM
            Re: an alternative to embedding policy in PEP 418 (was: PEP 418: Add monotonic clock) phd at phdru Apr 4, 2012, 12:24 PM
                Re: an alternative to embedding policy in PEP 418 (was: PEP 418: Add monotonic clock) ethan at stoneleaf Apr 4, 2012, 12:52 PM
                    Re: an alternative to embedding policy in PEP 418 (was: PEP 418: Add monotonic clock) phd at phdru Apr 4, 2012, 4:05 PM
                        Re: an alternative to embedding policy in PEP 418 (was: PEP 418: Add monotonic clock) stephen at xemacs Apr 5, 2012, 6:06 AM
                        Re: an alternative to embedding policy in PEP 418 (was: PEP 418: Add monotonic clock) ethan at stoneleaf Apr 5, 2012, 11:56 AM
                            Re: an alternative to embedding policy in PEP 418 (was: PEP 418: Add monotonic clock) phd at phdru Apr 5, 2012, 1:15 PM
                                Re: an alternative to embedding policy in PEP 418 (was: PEP 418: Add monotonic clock) ethan at stoneleaf Apr 5, 2012, 1:49 PM
                                Re: an alternative to embedding policy in PEP 418 (was: PEP 418: Add monotonic clock) cs at zip Apr 5, 2012, 3:08 PM
                        Re: an alternative to embedding policy in PEP 418 (was: PEP 418: Add monotonic clock) cs at zip Apr 5, 2012, 3:05 PM
                Re: an alternative to embedding policy in PEP 418 steve at pearwood Apr 4, 2012, 3:50 PM
                    Re: an alternative to embedding policy in PEP 418 cs at zip Apr 4, 2012, 4:14 PM
                        Re: an alternative to embedding policy in PEP 418 steve at pearwood Apr 6, 2012, 3:25 AM
                            Re: an alternative to embedding policy in PEP 418 cs at zip Apr 6, 2012, 4:11 PM
                                Re: an alternative to embedding policy in PEP 418 v+python at g Apr 6, 2012, 5:30 PM
                                    Re: an alternative to embedding policy in PEP 418 cs at zip Apr 6, 2012, 9:22 PM
    Re: an alternative to embedding policy in PEP 418 (was: PEP 418: Add monotonic clock) phd at phdru Apr 5, 2012, 6:34 AM
        Re: an alternative to embedding policy in PEP 418 (was: PEP 418: Add monotonic clock) stephen at xemacs Apr 5, 2012, 7:45 AM
    Re: an alternative to embedding policy in PEP 418 (was: PEP 418: Add monotonic clock) phd at phdru Apr 5, 2012, 8:22 AM
        Re: an alternative to embedding policy in PEP 418 (was: PEP 418: Add monotonic clock) rdmurray at bitdance Apr 5, 2012, 8:38 AM
            Re: an alternative to embedding policy in PEP 418 (was: PEP 418: Add monotonic clock) phd at phdru Apr 5, 2012, 9:02 AM
        Re: an alternative to embedding policy in PEP 418 (was: PEP 418: Add monotonic clock) phd at phdru Apr 5, 2012, 9:01 AM
        Re: an alternative to embedding policy in PEP 418 (was: PEP 418: Add monotonic clock) stephen at xemacs Apr 5, 2012, 7:57 PM
    Re: an alternative to embedding policy in PEP 418 (was: PEP 418: Add monotonic clock) murman at gmail Apr 6, 2012, 4:31 AM

  Index | Next | Previous | View Flat
 
 


Interested in having your list archived? Contact Gossamer Threads
 
  Web Applications & Managed Hosting Powered by Gossamer Threads Inc.