01:10
kosaki2 has joined #ruby-core
01:31
kosaki2 has quit [Remote host closed the connection]
01:32
kosaki2 has joined #ruby-core
01:36
kosaki2 has quit [Ping timeout: 246 seconds]
01:39
idkazuma has joined #ruby-core
01:44
idkazuma has quit [Ping timeout: 255 seconds]
01:45
nari has joined #ruby-core
01:53
nari has quit [Ping timeout: 240 seconds]
02:05
drbrain has quit [Ping timeout: 264 seconds]
02:16
Hanmac1 has joined #ruby-core
02:19
Hanmac has quit [Ping timeout: 264 seconds]
02:36
charliesome has joined #ruby-core
02:39
drbrain has joined #ruby-core
02:51
davidbalbert is now known as davidbalber|away
03:00
kosaki2 has joined #ruby-core
03:04
kosaki2 has quit [Ping timeout: 248 seconds]
03:09
nokada has quit [Remote host closed the connection]
03:14
knu has quit [Ping timeout: 256 seconds]
03:15
knu has joined #ruby-core
03:18
<
zzak >
mame1: or yusuke-san?
03:18
<
zzak >
i have question re ruby-core:52034
03:18
<
zzak >
i want to commit doc fixes
03:19
<
zzak >
should i commit to trunk, or ruby_2_0_0 branch?
03:19
<
_ko1 >
zzak: you need mame-san's approval
03:19
<
zzak >
what about tracepoint docs, we discussed earlier?
03:19
<
_ko1 >
commit to trunk and get approval.
03:20
<
zzak >
_ko1: also, おはよう!
03:21
<
_ko1 >
sorry I need to propose this doc issue erlier
03:21
<
_ko1 >
i'm writing Japanese article about TracePoint and i remember about that
03:25
<
zzak >
doc is ongoing task
03:26
nokada has joined #ruby-core
03:26
<
zzak >
_ko1: i want to read about tracepoint :)
03:26
<
_ko1 >
RubyVM advent calendar
03:28
<
_ko1 >
and I got specification problem
03:28
<
_ko1 >
TracePoint#enable with block should be affect on target thread only
03:28
<
_ko1 >
it is pecification bug.
03:28
<
_ko1 >
now, trace.enable{...} affect all of threads
03:29
<
_ko1 >
but it should be restricted to current thread only
03:29
<
zzak >
only with block?
03:29
<
_ko1 >
only with block.
03:29
<
_ko1 >
and only with in current thread
03:30
<
_ko1 >
created thread in the block "trace.enable{ ... Thread.new{...} ...}" can inherit tracing
03:30
knu has quit [Ping timeout: 257 seconds]
03:30
<
_ko1 >
but independent threads should not be affected
03:31
<
_ko1 >
I want to change spec but it is too late to discuss...
03:32
<
zzak >
i like your idea
03:32
<
zzak >
but i think its still early and change wont affect so many people
03:32
<
zzak >
noone knows tracepoint yet :)
03:33
<
_ko1 >
or bug fix patch release?
03:34
knu has joined #ruby-core
03:35
<
_ko1 >
expand TracePoint#enable is good idea
03:35
<
_ko1 >
enable(target_thread)
03:36
<
_ko1 >
enable() # all thread
03:36
<
zzak >
i think patch release
03:36
<
zzak >
sooner the better
03:36
<
_ko1 >
no compatibility issue
03:37
<
_ko1 >
thank you. i'll propose this extension
03:37
<
zzak >
double check with yusuke-san tho
03:41
<
zzak >
_ko1: I forgot to update Thread#set_trace_func
03:42
<
zzak >
this is also obsolete, right?
03:42
<
_ko1 >
I think so. but we don't have consensus
03:44
<
zzak >
it's same as set_trace_func() but given thread pointer
03:46
<
_ko1 >
thread pointer?
03:47
kosaki2 has joined #ruby-core
03:48
<
zzak >
set_trace_func uses rb_add_event_hook
03:48
<
zzak >
and Thread#set_trace_func uses rb_threadptr_add_event_hook
03:48
<
_ko1 >
thread is Thread#set_trace_func
03:48
<
zzak >
both use connect_event_hook
03:49
<
zzak >
rb_add_event_hook uses &GET_VM()->event_hooks and rb_threadptr_add_event_hook uses &th->event_hooks
03:51
<
zzak >
same implementation only one uses all threads and other uses target thread
03:52
<
zzak >
they are both obsolete imo
03:52
<
_ko1 >
obsolte C API?
03:52
<
_ko1 >
or set_trace_func/Thread#set_trace_func ?
03:53
<
_ko1 >
B means latter ?
03:53
<
_ko1 >
i agree with you
03:53
<
zzak >
you can reproduce these in tracepoint tho
03:54
<
zzak >
but i dont know how to use tracepoint on target thread
03:54
<
zzak >
_ko1: within enable block, right?
03:55
<
_ko1 >
zzak: exactly, we lack the API to specify thread
03:55
<
_ko1 >
enable(target_thread) or enable(target_thread) do...end
03:55
<
_ko1 >
will be fine
03:55
<
_ko1 >
and it has no compatibility issue
03:55
<
_ko1 >
(because it is expansion)
03:56
<
zzak >
target_thread already running?
03:56
<
_ko1 >
one problem is
03:56
<
_ko1 >
trace.enable(Thread.current) do ...; trace.enable; ... end
03:56
<
_ko1 >
what happen on this example
03:57
<
_ko1 >
(already enabled on thread, and enable on all of threads)
03:58
<
zzak >
what about, instead of Thread.current, you use thread_b?
03:59
kosaki2 has quit [Remote host closed the connection]
04:00
<
zzak >
_ko1: can you show me an example? starting a new thread, and then tracepoint an event on given thread
04:00
<
_ko1 >
we need consideration
04:01
<
zzak >
can we do this with current api?
04:01
<
_ko1 >
th = Thread.new{...}; trace.enable(th)
04:01
knu has quit [Ping timeout: 256 seconds]
04:04
carlosantonio has quit [Remote host closed the connection]
04:04
<
zzak >
_ko1: does TracePoint.new require block?
04:05
davidbalber|away is now known as davidbalbert
04:05
<
zzak >
ahh, i was doing TracePoint.new.enable {} is why
04:07
knu has joined #ruby-core
04:07
<
zzak >
it was mistake
04:07
<
_ko1 >
your question is enable should need block?
04:08
<
zzak >
my question is how to use tracepoint on target thread
04:08
<
zzak >
trace.enable(th) is unimplemented
04:09
<
_ko1 >
so we need feature request with a patch
04:10
<
_ko1 >
just now, no way to do it
04:11
<
zzak >
in that case, Thread#set_trace_func still preferred way to do this
04:13
<
_ko1 >
only way just now
04:13
<
_ko1 >
(except using C API)
04:16
<
_ko1 >
so I think it is too strong message that set_trace_func is obsolete
04:16
<
_ko1 >
*I* think so, but i'm not sure everyone sae
04:16
idkazuma has joined #ruby-core
04:17
<
_ko1 >
+ * See TracePoint@Events for more information.
04:17
<
_ko1 >
What means? > TracePoint@Events
04:17
<
_ko1 >
RDoc notation?
04:18
<
zzak >
rdoc label links
04:18
<
zzak >
A heading inside the documentation can be linked by following the class or method by an @ then the heading name. RDoc::Markup@Links will link to this section like this: Links at RDoc::Markup. Spaces in headings with multiple words must be escaped with + like RDoc::Markup@Escaping+Text+Markup. Punctuation and other special characters must be escaped like CGI.escape.
04:19
<
zzak >
i think Kernel#set_trace_func is obsolete
04:19
<
zzak >
meaning out of date
04:20
<
zzak >
its older api, and we have new api to do the same thing
04:20
<
_ko1 >
i agree with you
04:20
<
_ko1 >
almost same :)
04:20
<
zzak >
also, we can say obsolete
04:20
<
zzak >
and not mean deprecated
04:20
<
zzak >
because it still has purpose
04:21
<
zzak >
its not harmful in any way
04:21
<
zzak >
just old api
04:23
knu has quit [Ping timeout: 256 seconds]
04:23
knu has joined #ruby-core
04:23
<
zzak >
i think theres something wrong with github mirror
04:24
<
_ko1 >
i checked your patch and it's perfec
04:24
<
zzak >
_ko1: thank you!
04:24
<
_ko1 >
yes, github sync causes error
04:27
<
zzak >
there goes my 7 day commit streak :(
04:27
<
zzak >
27 commits in a week
04:29
<
evan >
something up with it?
04:30
<
_ko1 >
github/ruby doesn't update now
04:30
<
evan >
when did it stop?
04:30
<
_ko1 >
is not updated ?
04:30
<
_ko1 >
i'm not sure
04:31
<
evan >
I haven't checked in a while.
04:31
<
evan >
i'm looking now.
04:31
<
_ko1 >
thank you !!
04:34
<
evan >
here is the error:
04:34
<
evan >
r39168 = 810516ed20967a69b801b518ef2b2c0dc4184824 (refs/remotes/svn/trunk)
04:34
<
evan >
error: unable to push to unqualified destination: ruby_2_0_0
04:34
<
evan >
The destination refspec neither matches an existing ref on the remote nor
04:34
<
evan >
begins with refs/, and we are unable to guess a prefix based on the source ref.
04:34
<
evan >
error: failed to push some refs to 'git@github.com:ruby/ruby.git'
04:35
<
_ko1 >
shyouhei had said that we need some work because of creating 2_0_0 branch
04:36
<
_ko1 >
i'm not sure deitals.
04:36
<
_ko1 >
[ruby-core:52060] [ruby-trunk - Bug #7813][Open] github mirror missing ruby_2_0_0 branch
04:38
<
evan >
his script I run has a section commented out
04:38
<
evan >
that appears to initialize branches
04:38
<
evan >
i'll run it manually
04:48
charliesome has quit [Ping timeout: 246 seconds]
04:50
charliesome has joined #ruby-core
04:58
<
evan >
thats a bingo!
04:59
<
evan >
it's a weird edge case in git.
04:59
<
evan >
should be ready to go now.
05:27
kosaki2 has joined #ruby-core
05:35
<
_ko1 >
nice prompt > λ
05:35
<
charliesome >
cheers :p
05:35
<
_ko1 >
ah, you finished?
05:36
<
charliesome >
still need to make sure it hasn't broken anything
05:36
<
charliesome >
test it thouroughly
05:36
<
_ko1 >
difficult to test
05:37
<
charliesome >
yeah. i figure make test-all then the rails tests should do it
05:39
<
_ko1 >
we need
*how to test it*
05:39
<
_ko1 >
consideration
05:39
<
_ko1 >
error proof framework
05:39
<
charliesome >
for everything or this patch in particular?
05:40
<
charliesome >
sure thing
05:40
<
_ko1 >
maybe this bug is very rare
05:40
<
_ko1 >
bug is very rare
05:40
<
charliesome >
i have a concern that refinements may cause an issue with this
05:41
<
charliesome >
i don't know enough about how refinements are implemented to tell
05:42
<
charliesome >
also i had another idea
05:43
<
charliesome >
what if there was a rb_funcall_cache() that let you do method caching in C code
05:44
<
_ko1 >
there is global cache alredy
05:44
<
charliesome >
oh i wasn't aware
05:44
<
charliesome >
how does it work?
05:44
oscardelben has joined #ruby-core
05:44
<
_ko1 >
there is big table
05:45
<
charliesome >
so it still requires a hashtable lookup?
05:45
<
_ko1 >
key is [klass, id, vm state] and value is [method body]
05:47
<
_ko1 >
static struct cache_entry cache[CACHE_SIZE];
05:47
<
_ko1 >
in vm_method.c
05:48
<
_ko1 >
we need to consider about this table
05:48
<
_ko1 >
with your patch
05:48
<
charliesome >
i think it won't have an impact
05:49
<
charliesome >
for the same reason this patch works fine with inline caches in ruby methods
05:49
<
_ko1 >
i understand
05:49
<
charliesome >
the cache entry is only filled if the method exists
05:49
<
charliesome >
we increment state if the method redefines an existing method
05:50
<
charliesome >
however we do need to think about everything that may be impacted
05:52
<
_ko1 >
as i said, it seems difficult
05:52
<
_ko1 >
to proof crrect 'inherited' flag
05:52
<
charliesome >
at the moment i'm setting inherited flag in rb_class_boot
05:53
<
_ko1 >
how about module?
05:53
<
_ko1 >
included/extended/prepended
05:53
<
charliesome >
ah yes..
05:54
<
_ko1 >
and singleton method/classes
06:02
kosaki2 has quit [Remote host closed the connection]
06:23
kosaki2 has joined #ruby-core
06:47
kosaki2 has quit [Remote host closed the connection]
06:56
kosaki8 has quit [Ping timeout: 245 seconds]
07:03
oscardelben has quit [Quit: oscardelben]
07:25
nari has joined #ruby-core
07:26
davidbalbert is now known as davidbalber|away
07:28
Hanmac1 is now known as Hanmac
08:08
idkazuma has quit [Remote host closed the connection]
08:14
idkazuma has joined #ruby-core
08:17
nari has quit [Ping timeout: 255 seconds]
08:27
nari has joined #ruby-core
08:37
<
charliesome >
_ko1: rails boots 15% faster with my patch
08:50
nokada has quit [Remote host closed the connection]
09:07
nokada has joined #ruby-core
09:54
idkazuma has quit [Remote host closed the connection]
10:06
idkazuma has joined #ruby-core
10:10
idkazuma has quit [Ping timeout: 248 seconds]
10:26
knu has quit [Ping timeout: 256 seconds]
10:27
knu has joined #ruby-core
10:41
idkazuma has joined #ruby-core
11:19
marcandre has quit [Remote host closed the connection]
11:24
kosaki8 has joined #ruby-core
11:34
<
_ko1 >
charliesome: cool!!
11:55
idkazuma has quit [Remote host closed the connection]
11:56
kosaki8 has quit [Ping timeout: 246 seconds]
12:14
carlosantonio has joined #ruby-core
13:16
<
charliesome >
looks like RUBY_VERSION_NAME isn't set in makefiles generated by mkmf.rb, so c extensions in gems can't be compiled
13:16
<
charliesome >
anyone know anything about that?
14:42
kosaki2 has joined #ruby-core
14:43
kosaki8 has joined #ruby-core
15:01
kosaki2 has quit [Remote host closed the connection]
15:03
kosaki2 has joined #ruby-core
15:14
nari has quit [Ping timeout: 276 seconds]
15:16
carlosantonio has quit [Remote host closed the connection]
15:19
kosaki2 has quit [Remote host closed the connection]
15:28
marcandre has joined #ruby-core
15:40
kosaki8 has quit [Ping timeout: 256 seconds]
16:00
kosaki8 has joined #ruby-core
16:02
<
_ko1 >
we need to persude mame-san :)
16:02
<
_ko1 >
I add a reason
16:09
<
charliesome >
_ko1: my patch might be almost ready!
16:10
<
_ko1 >
we need reviewing
16:10
<
_ko1 >
could you make a ticket?
16:10
<
charliesome >
yes, sure
16:10
<
_ko1 >
nobu will verify your patch :)
16:10
<
charliesome >
we can't be too careful
16:11
carlosantonio has joined #ruby-core
16:11
<
_ko1 >
should we make an internal method vm_state?
16:11
<
_ko1 >
maybe you made
16:11
<
charliesome >
oh btw i think we should split the vm_state into a method_state and constant_state
16:12
<
_ko1 >
English question
16:12
<
charliesome >
right now 'class Foo; end' if Foo doesn't exist invalidates the cache
16:12
<
charliesome >
_ko1: sure!
16:12
<
_ko1 >
do you have any good name about vm_state?
16:12
<
charliesome >
i think vm_state is a good name
16:12
<
charliesome >
maybe vm_serial
16:12
<
charliesome >
vm_state_serial
16:13
<
_ko1 >
vm_state_serial
16:13
<
charliesome >
vm_state is fine IMO
16:13
<
_ko1 >
INC_VM_STATE_SERIAL
16:14
<
_ko1 >
everytime i have worry about such a name
16:14
<
charliesome >
_ko1: i added two methods in my patch, I just want to check that's ok
16:14
<
charliesome >
Class#subclassed?
16:14
<
charliesome >
RubyVM.state
16:14
<
charliesome >
the second could be very useful for performance profiling
16:15
<
_ko1 >
i think `state' is too short and introduce misunderstanding
16:15
<
charliesome >
cache_state ?
16:15
<
_ko1 >
so i want to ask the good name :)
16:15
<
_ko1 >
or Class#has_subclass?
16:15
carlosantonio has quit [Remote host closed the connection]
16:16
<
_ko1 >
method_cache_serial
16:16
<
charliesome >
i don't think including method is a good idea, because right now it is used for more than just methods
16:17
<
_ko1 >
how about this case?
16:19
<
_ko1 >
Module's method definition should increment state?
16:19
<
charliesome >
it should, let me check it
16:20
<
_ko1 >
All of Module's, I mean
16:20
<
charliesome >
oh i see
16:20
<
charliesome >
yes, perhaps it should
16:20
<
charliesome >
i don't see any easy solution
16:21
<
charliesome >
main use case is singleton methods on objects
16:21
<
charliesome >
OpenStruct, etc
16:22
<
charliesome >
_ko1: do you know how jruby solves this?
16:22
<
_ko1 >
JRuby tracking subclasses
16:23
<
_ko1 >
there is professional :)
16:23
<
charliesome >
_ko1: but in this case, M0 has no subclasses
16:23
<
charliesome >
so i wonder how jruby solves
16:23
<
_ko1 >
maybe tracking ICLASS
16:24
<
charliesome >
weakref from module to its iclasses?
16:25
<
_ko1 >
but it's my speculation
16:25
<
charliesome >
perhaps a module could hold a doubly linked list of weakrefs to iclasses
16:26
<
charliesome >
an iclass is unlinked when it is collected
16:26
<
charliesome >
maybe for future patch?
16:26
kosaki8 has quit [Quit: Leaving...]
16:26
<
lopex >
jruby uses WeakHashSet to subclasses
16:27
<
_ko1 >
it can be. but i think it is overspec IMO
16:31
<
charliesome >
ah, jruby uses WeakHashSet for module iclasses too /cc lopex
16:33
oscardelben has joined #ruby-core
16:46
carlosantonio has joined #ruby-core
17:09
carlosantonio has quit [Remote host closed the connection]
17:10
carlosantonio has joined #ruby-core
17:21
<
charliesome >
anyway, good night
17:22
carlosantonio has quit [Remote host closed the connection]
17:26
carlosantonio has joined #ruby-core
17:55
carlosantonio has quit [Remote host closed the connection]
18:09
knu has quit [Read error: Connection reset by peer]
18:18
oscardelben has quit [Quit: oscardelben]
18:31
<
injekt >
anyone have issues building 2.0.0-rc2 on osx?
18:33
<
drbrain >
injekt: I haven't
18:33
<
drbrain >
injekt: CC=clang ./configure --with-openssl-dir=/usr/local/Cellar/openssl/1.0.1c/
18:33
<
drbrain >
--program-suffix or --prefix if you want
18:33
<
injekt >
drbrain: hm ok, issue installing via ruby-build but building myself now to check
18:35
Hanmac has quit [Read error: Connection reset by peer]
18:35
Hanmac has joined #ruby-core
18:38
<
injekt >
drbrain: yeah same thing I get a segfault
18:39
<
injekt >
although it doesn't recognize the --with-openssl-dir option, but that seems unrelated
18:39
<
drbrain >
configure complains but it gets passed over to the openssl extension just fine
18:39
<
drbrain >
… presuming you have openssl installed via brew
18:39
<
injekt >
then it's certainly unrelated to the segfault
18:40
<
injekt >
I usually use that option though, hadn't noticed configure complain about it before
18:43
<
injekt >
it's when linking miniruby
18:43
<
drbrain >
can you paste a dump?
18:43
<
drbrain >
also, have you built ruby in that checkout before?
18:44
<
injekt >
i downloaded straight from the website in the end, rc1 was fine though, checking logs will paste
18:46
<
injekt >
not very useful
18:47
<
drbrain >
it's probably the next step following linking miniruby
18:48
<
drbrain >
you can edit uncommon.mk and set V = 1 to see where it is crashing
18:48
<
zzak >
what CC are you using?
18:48
<
drbrain >
zzak: clang, see line 2
18:49
<
injekt >
what version of clang did you compile with?
18:49
<
drbrain >
I have Apple LLVM version 4.2 (clang-425.0.24) (based on LLVM 3.2svn)
18:49
<
drbrain >
Target: x86_64-apple-darwin12.2.1
18:49
<
drbrain >
from Xcode 4.6
18:50
<
injekt >
Apple clang version 2.1 (tags/Apple/clang-163.7.1) (based on LLVM 3.0svn)
18:50
<
injekt >
Target: x86_64-apple-darwin12.2.0
18:50
<
injekt >
that'll be why
18:50
<
injekt >
it's my clang version, compiles fine on gcc
18:50
<
drbrain >
can you report it?
18:50
<
injekt >
no problem
18:59
davidbalber|away is now known as davidbalbert
19:25
<
nurse >
your Xcode seems too old (4.1?)
19:26
<
drbrain >
nurse: if so, we should say so in README or somewhere
19:26
<
injekt >
4.5 actually
19:27
<
injekt >
nonetheless, we should state it, because xcode isn't even 'old' I just didn't upgrade to the latest version
19:27
<
nurse >
if write the verssion in README, we must up to date it.
19:28
<
nurse >
Xcode 4.5's clang is clang-421.11.65
19:29
<
injekt >
then I guess my system was somewhat wonky
19:50
<
injekt >
nurse: yes
20:17
knu has joined #ruby-core
21:16
carlosantonio has joined #ruby-core
21:24
davidbalbert is now known as davidbalber|away
21:43
davidbalber|away is now known as davidbalbert
22:08
carlosantonio has quit [Remote host closed the connection]
22:16
carlosantonio has joined #ruby-core
22:25
carlosantonio has quit [Remote host closed the connection]
22:35
carlosantonio has joined #ruby-core
22:58
carlosantonio has quit [Remote host closed the connection]
23:16
idkazuma has joined #ruby-core
23:22
kosaki2 has joined #ruby-core
23:34
tenderlove has joined #ruby-core
23:38
kosaki2 has quit [Remote host closed the connection]
23:39
carlosantonio has joined #ruby-core
23:41
nokada has quit [Read error: Connection reset by peer]
23:42
nokada has joined #ruby-core
23:49
idkazuma has quit [Remote host closed the connection]