[#55794] how to run ruby tests (backporting fix for cve-2013-4073) — Jordi Massaguer Pla <jmassaguerpla@...>
Hi ruby core developers,
4 messages
2013/07/04
[#55799] Re: how to run ruby tests (backporting fix for cve-2013-4073)
— V咜 Ondruch <v.ondruch@...>
2013/07/04
Dne 4.7.2013 13:19, Jordi Massaguer Pla napsal(a):
[#55853] ruby 1.9.3 p448 breaks ABI — V咜 Ondruch <v.ondruch@...>
Hi,
13 messages
2013/07/08
[#55854] Re: ruby 1.9.3 p448 breaks ABI
— Yorick Peterse <yorickpeterse@...>
2013/07/08
Out of curiosity, does this tool take into account deprecated/internal
[#55860] Re: ruby 1.9.3 p448 breaks ABI
— V咜 Ondruch <v.ondruch@...>
2013/07/08
Dne 8.7.2013 17:03, Yorick Peterse napsal(a):
[#55861] Re: ruby 1.9.3 p448 breaks ABI
— KOSAKI Motohiro <kosaki.motohiro@...>
2013/07/08
(7/8/13 5:36 PM), V咜 Ondruch wrote:
[#55864] Re: ruby 1.9.3 p448 breaks ABI
— Jon <jon.forums@...>
2013/07/08
On Tue, 9 Jul 2013 06:50:16 +0900
[#55886] [ruby-trunk - Bug #8616][Open] Process.daemon messes up threads — "tenderlovemaking (Aaron Patterson)" <aaron@...>
10 messages
2013/07/09
[#55976] [ruby-trunk - Feature #8629][Open] Method#parameters should include the default value — "rosenfeld (Rodrigo Rosenfeld Rosas)" <rr.rosas@...>
13 messages
2013/07/12
[#56258] [ruby-trunk - Feature #8629] Method#parameters should include the default value
— "rosenfeld (Rodrigo Rosenfeld Rosas)" <rr.rosas@...>
2013/07/29
[#55984] [ruby-trunk - Bug #8630][Open] Transcoding high-bit bytes from ASCII-8BIT to a text encoding should be :invalid, not :undef — "headius (Charles Nutter)" <headius@...>
5 messages
2013/07/12
[#55986] Re: [ruby-trunk - Bug #8630][Open] Transcoding high-bit bytes from ASCII-8BIT to a text encoding should be :invalid, not :undef
— Tanaka Akira <akr@...>
2013/07/12
2013/7/13 headius (Charles Nutter) <headius@headius.com>:
[#55988] Next developer's meeting — Aaron Patterson <tenderlove@...>
Hi,
4 messages
2013/07/13
[#56001] [CommonRuby - Feature #8635][Open] attr_accessor with default block — "judofyr (Magnus Holm)" <judofyr@...>
5 messages
2013/07/14
[#56004] [ruby-trunk - Feature #8636][Open] Documentation hosting on ruby-lang.org — "zzak (Zachary Scott)" <e@...>
18 messages
2013/07/15
[#56005] [ruby-trunk - Feature #8637][Open] I18n documentation — "zzak (Zachary Scott)" <e@...>
5 messages
2013/07/15
[#56010] [ruby-trunk - Feature #8637] I18n documentation
— "zzak (Zachary Scott)" <e@...>
2013/07/15
[#56011] [ruby-trunk - Feature #8637] I18n documentation
— "kou (Kouhei Sutou)" <kou@...>
2013/07/15
[#56019] [ruby-trunk - Feature #8639][Open] Add Queue#each — "avdi (Avdi Grimm)" <avdi@...>
15 messages
2013/07/15
[#56020] [ruby-trunk - Feature #8639] Add Queue#each
— "rkh (Konstantin Haase)" <me@...>
2013/07/15
[#56029] Re: [ruby-trunk - Feature #8639][Open] Add Queue#each
— Alex Young <alex@...>
2013/07/15
On Tue, 2013-07-16 at 00:44 +0900, avdi (Avdi Grimm) wrote:
[#56027] [CommonRuby - Feature #8640][Open] Add Time#elapsed to return nanoseconds since creation — "tenderlovemaking (Aaron Patterson)" <aaron@...>
24 messages
2013/07/15
[#56068] [CommonRuby - Feature #8640] Add Time#elapsed to return nanoseconds since creation
— "phluid61 (Matthew Kerwin)" <matthew@...>
2013/07/17
[#56070] Re: [CommonRuby - Feature #8640] Add Time#elapsed to return nanoseconds since creation
— Aaron Patterson <tenderlove@...>
2013/07/18
On Thu, Jul 18, 2013 at 07:59:34AM +0900, phluid61 (Matthew Kerwin) wrote:
[#56037] [CommonRuby - Feature #8640] Add Time#elapsed to return nanoseconds since creation
— duerst (Martin Dürst) <duerst@...>
2013/07/16
[#56041] [CommonRuby - Feature #8643][Open] Add Binding.from_hash — "rosenfeld (Rodrigo Rosenfeld Rosas)" <rr.rosas@...>
26 messages
2013/07/16
[#56087] [ruby-trunk - Feature #8658][Open] Process.clock_gettime — "akr (Akira Tanaka)" <akr@...>
23 messages
2013/07/19
[#56092] [ruby-trunk - Feature #8658] Process.clock_gettime
— "akr (Akira Tanaka)" <akr@...>
2013/07/20
[#56132] Re: [ruby-trunk - Feature #8658] Process.clock_gettime
— KOSAKI Motohiro <kosaki.motohiro@...>
2013/07/23
(7/20/13 6:39 AM), akr (Akira Tanaka) wrote:
[#56135] Re: [ruby-trunk - Feature #8658] Process.clock_gettime
— Tanaka Akira <akr@...>
2013/07/24
2013/7/24 KOSAKI Motohiro <kosaki.motohiro@gmail.com>:
[#56096] [CommonRuby - Feature #8661][Open] Add option to print backstrace in reverse order(stack frames first & error last) — "gary4gar (Gaurish Sharma)" <gary4gar@...>
18 messages
2013/07/20
[#56103] Ruby Developer Meeting Japan 2013-07-27 — "NARUSE, Yui" <naruse@...>
Hi,
6 messages
2013/07/21
[#56228] [ruby-trunk - Bug #8697][Open] Fixnum complement operator issue — "torimus (Torimus GL)" <torimus.gl@...>
8 messages
2013/07/27
[#56247] [ruby-trunk - Feature #8700][Open] Integer#bitsize (actually Fixnum#bitsize and Bignum#bitsize) — "akr (Akira Tanaka)" <akr@...>
8 messages
2013/07/28
[#56270] [ruby-trunk - Feature #8707][Open] Hash#reverse_each — "Glass_saga (Masaki Matsushita)" <glass.saga@...>
8 messages
2013/07/30
[#56276] [ruby-trunk - Feature #8707][Feedback] Hash#reverse_each
— "matz (Yukihiro Matsumoto)" <matz@...>
2013/07/31
[ruby-core:56133] [ruby-trunk - Feature #8658] Process.clock_gettime
From:
"jonforums (Jon Forums)" <redmine@...>
Date:
2013-07-23 18:14:38 UTC
List:
ruby-core #56133
Issue #8658 has been updated by jonforums (Jon Forums).
Eregon (Benoit Daloze) wrote:
> akr (Akira Tanaka) wrote:
> > > While I appreciate Ruby is not always taking the lowest common denominator for functionality (fork, etc),
> > > we need a counterpart for Windows and OS X at least.
> >
> > Users of such OSs can contribute an emulation function for clock_gettime.
>
> A very poor one as mapping to Linux/UNIX constants would just confuse people.
> I do not think the UNIX API clock_gettime() for this is the most suitable,
> it does not abstract the functionality and the name/usage is not very ruby-like.
>
> I think FFI would be a good way if someone need direct access to that low-level C function (except for accessing the constants, that would not be handy).
>
> > > naruse gave a very useful link in #8096, http://www.python.org/dev/peps/pep-0418/ .
> > > I do not wish for a so large API, but I think we should have the timestamp functionality like time.time()
> > > and a precise performance counter like time.perf_counter().
> >
> > PEP 0418 mentions that python provide clock_gettime as time.clock_gettime.
> > PEP 0418 doesn't mean providing clock_gettime itself is bad idea.
>
> I believe providing a method which is only available in a quite restricted set of platforms is to be avoided.
> In Python it is simply not defined on non-supporting platforms.
>
It's great to see a focus on cross-platform impl issues :)
Has anyone spelunked libuv's awesomeness for inspiration on a nice cross-platform implementation style?
# general header niceness
https://github.com/joyent/libuv/blob/master/include/uv.h#L62-L67
https://github.com/joyent/libuv/blob/master/include/uv-unix.h
https://github.com/joyent/libuv/blob/master/include/uv-win.h
# common timer API
https://github.com/joyent/libuv/blob/master/include/uv.h#L1873-L1881
# internal platform specific header timer niceness
https://github.com/joyent/libuv/blob/master/src/unix/internal.h#L180-L181
# platform specific impl niceness
https://github.com/joyent/libuv/blob/master/src/win/util.c#L443-L465
https://github.com/joyent/libuv/blob/master/src/unix/core.c#L78-L80
https://github.com/joyent/libuv/blob/master/src/unix/linux-core.c#L245-L249
----------------------------------------
Feature #8658: Process.clock_gettime
https://bugs.ruby-lang.org/issues/8658#change-40627
Author: akr (Akira Tanaka)
Status: Open
Priority: Normal
Assignee:
Category:
Target version:
How about adding a new method, Process.clock_gettime(clk_id) ?
Recently there were two feature request for measuring time.
Feature #8640 https://bugs.ruby-lang.org/issues/8640
Feature #8096 https://bugs.ruby-lang.org/issues/8096
It seems they are somewhat different.
clock_gettime() function defined by POSIX is a good
candidate for providing as a method.
I think it can supports the both request.
Also, it has less possible design choices than the requests
because clock_gettime() is defined by POSIX.
People familiar to POSIX can learn the method more easily.
I wrote a patch to implement Process.clock_gettime.
This method can be used as follows.
% ./ruby -e 'p Process.clock_gettime(Process::CLOCK_MONOTONIC)'
2701692957811563
Several considerations:
I implemented the method as a module function of Process.
It is same as Process.times.
I expect clock_gettime is used mainly for measuring
time interval and wall clock time is not important.
So I didn't use Time.
The method returns a number of nanoseconds as an integer.
It is not so unexpected if user knows clock_gettime() in POSIX.
clock_gettime() returns it as struct timespec
which contains two fields: tv_sec and tv_nsec.
Although tv_sec is time_t, Time is not appropriate because
the origin (zero) can be other than the Epoch.
Actually CLOCK_MONOTONIC means elapsed time since
the system start-up time on Linux.
Also, I expect the result is subtracted in most case:
t1 = Process.clock_gettime(...)
...
t2 = Process.clock_gettime(...)
t = t2 - t1
So the result should be easy to subtract.
An array such as [sec, nsec] is difficult to subtract.
The result is an integer, not a float.
IEEE 754 double is not enough to represent the result
of clock_gettime(CLOCK_REALTIME).
It contains 19 digits in decimal now but IEEE 754 double
can represent only 15 digits.
On LP64 systems, Fixnum can represent 2**62-1.
So (2**62-1)/(365.25*24*60*60*1e9)=146.1 years are representable
without object allocation.
On ILP32 and LLP64 systems, Fixnum can represent 2**30-1.
So (2**30-1)/1e9=1.07 seconds are representable
without object allocation.
This means Bignum allocations are mostly required except
the origin is very recent.
clock_gettime() is defined by POSIX.
Linux, NetBSD, FreeBSD, OpenBSD has it, at least.
If clock_gettime() is not available,
an emulation layer for CLOCK_REALTIME is implementable
using gettimeofday().
(not implemented yet, though.)
Any comments?
--
http://bugs.ruby-lang.org/