00:19:44  * rom1504quit (Quit: Changing server)
01:14:33  * xiinotulpchanged nick to plutoniix
01:52:11  * watildejoined
01:55:37  * watildequit (Remote host closed the connection)
02:10:42  * watildejoined
02:13:09  * watildequit (Remote host closed the connection)
02:40:41  * ofrobotsjoined
02:43:36  * watildejoined
02:51:11  * watildequit (Ping timeout: 264 seconds)
03:00:15  * xaxxonjoined
03:00:47  <xaxxon>any way to share a single object template as the instance template of multiple function templates?
03:03:19  <xaxxon>I want to allow multiple c++ constructors to be called for the same type e.g. Point() and Point(int,int) but that seems to require two function templates but I want the exposed object to be identical regardless of which is called
03:03:54  <xaxxon>and Point(double,double)
03:05:53  <xaxxon>I tried creating a single ObjectTemplate and assigning it to the return of Instancetemplate(), but that doesn't seem to do anything. I'm guessing it just changes what the Local is referring to, not what's actually inside the function template
03:11:41  * bobmcwjoined
03:17:39  * bobmcwquit (Ping timeout: 245 seconds)
03:26:20  <xaxxon>I'm just creating multiple functiontemplates and then adding accessors or functiontemplates to every one of them whenever I want to add something... it's annoying but it seems to work.
03:53:41  * esasjoined
04:17:57  <xaxxon>oops
04:19:39  * JoWiequit (Quit: Connection closed for inactivity)
04:24:11  * ofrobotsquit (Quit: My Mac has gone to sleep. ZZZzzz…)
04:30:45  * ofrobotsjoined
04:42:29  * RT|Chatzillaquit (Read error: Connection reset by peer)
04:43:19  * RT|Chatzillajoined
04:49:00  * watildejoined
04:49:55  * ofrobotsquit (Quit: My Mac has gone to sleep. ZZZzzz…)
04:54:08  * watildequit (Ping timeout: 272 seconds)
05:04:52  * ofrobotsjoined
06:11:17  * ofrobotsquit (Quit: My Mac has gone to sleep. ZZZzzz…)
07:14:44  * bobmcwjoined
07:20:35  * bobmcwquit (Ping timeout: 264 seconds)
07:33:46  * bnoordhuisjoined
07:38:11  * bnoordhuisquit (Ping timeout: 265 seconds)
07:57:37  * jugglinmikequit (Ping timeout: 250 seconds)
08:09:27  * watildejoined
08:14:04  * watildequit (Ping timeout: 250 seconds)
08:39:35  * watildejoined
08:52:06  * esasquit (Ping timeout: 240 seconds)
08:57:55  * xaxxonquit (Quit: Leaving)
10:47:54  * watildequit (Remote host closed the connection)
10:50:11  * watildejoined
11:40:46  * watildequit (Remote host closed the connection)
11:41:21  * watildejoined
11:45:18  * watildequit (Remote host closed the connection)
13:04:47  * bobmcwjoined
13:10:09  * bobmcwquit (Ping timeout: 245 seconds)
15:25:24  * C-Manjoined
16:08:48  * bobmcwjoined
16:13:23  * bobmcwquit (Ping timeout: 264 seconds)
16:35:09  * ncthom91joined
16:37:40  * ncthom91quit (Read error: Connection reset by peer)
16:38:08  * ncthom91joined
16:38:09  * JoWiejoined
16:38:28  * ofrobotsjoined
17:01:42  * ncthom91quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
17:18:57  * RT|Chatzillaquit (Quit: ChatZilla 0.9.86.1 [Firefox 2.0.0.22pre/2009081014])
17:36:15  * ofrobotsquit (Quit: My Mac has gone to sleep. ZZZzzz…)
17:56:04  * bnoordhuisjoined
18:00:48  * C-Manquit (Quit: Connection reset by beer)
18:03:03  * C-Manjoined
18:19:16  * mostynbjoined
18:38:54  * ncthom91joined
18:51:57  * jugglinmikejoined
18:58:39  * mostynbquit (Quit: Leaving)
19:25:07  * ncthom91quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
19:50:31  * bnoordhuisquit (Ping timeout: 260 seconds)
20:16:49  * bnoordhuisjoined
20:25:46  * bnoordhuisquit (Ping timeout: 272 seconds)
21:09:19  <phpnode>hello, does anyone know how v8 deals with colliding hashes in Map and Set? Skimming through https://github.com/v8/v8/blob/master/src/js/collection.js it appears that it doesn't handle them
21:09:58  <phpnode>which makes me curious about the implementation of GenericHash(), but I can't find the source for it, does anyone have any hints on where I should start looking?
21:11:56  * bobmcwjoined
21:16:15  * bobmcwquit (Ping timeout: 240 seconds)
21:29:10  <saper>phpnode: isn't that in the C++ code?
21:29:32  * watildejoined
21:31:10  <phpnode>saper: it will be yes, but I can only find a single reference to that when searching on github and it's in a header file without any implementation code
21:31:42  <saper>phpnode: https://github.com/v8/v8/blob/master/src/hashmap.h maybe? (just guessing)
21:32:04  <saper>that's C++ - you have sometimes actual code in the "header" file
21:33:04  <phpnode>saper: thanks, i don't think that is specifically what i was looking for but can probably give me the answers I need, reading now :)
21:35:20  <saper>https://github.com/v8/v8/blob/master/src/hashmap.h#L254 this looks interesting
21:35:36  <phpnode>ha, yes just reading that exact line
21:35:46  <phpnode>it does compare the keys, that's all i needed to know :)
21:40:21  <saper>it seems to me that hash and capacity are used to provide faster jump in the key table, if that does not work it continues with linear search
21:43:21  <saper>should the capacity bits were not enough, Resize() will increase the map with a double capacity
21:49:58  <phpnode>ok so it's not storing a pointer to an "overflow" node in the case of a collision, it just literally inserts into the next available array slot, or resizes if needbe
21:52:41  <phpnode>in my implementation i spill collisions into an unbalanced tree, i wonder whether it's worth it
21:53:58  * xiinotulpjoined
21:56:55  * plutoniixquit (Ping timeout: 240 seconds)
21:59:15  * jugglinmikequit (Ping timeout: 240 seconds)
22:12:32  <saper>phpnode: somehow v8 way feels incomplete, but can be pretty fast
22:12:45  <saper>phpnode: I don't think I understand fully how it works
22:13:17  <saper>it resizes on 80% capacity, not on the slow overflow
22:28:24  <phpnode>sure but same effect
22:29:07  <saper>phpnode: can I overflow a single slow with collisions until the expansion happens?
22:30:57  <phpnode>yes LookupOrInsert will do that by the looks of things
22:47:27  <saper>aren't capacity_ and occupancy_ per-hash and not per-Entry?
22:48:02  <phpnode>yes
22:49:55  <saper>so if I have a colliding entry, and I insert 2^capacity colliding entries into a map_, do I overflow the space for that single hash?
22:51:57  <saper>or doesn't it really matter, because the key is always chacked anyway, so I'll be only suboptimal in that case
22:52:03  <phpnode>no because if any individual insert causes the occupancy rate to exceed 80% it will resize the backing array, so there's no way to overflow (without allocating more than Math.pow(2, 32) elements which is not allowed anyway)
22:52:33  <phpnode>it just causes extremely awful performance
22:54:20  <phpnode>in practice though it sounds like the reduced complexity is worth the tradeoff, unless you're actively being attacked
22:54:58  <saper>I think "hash != p->hash || " is just a performance improvement - that's what it makes it a hash table after all
22:55:30  <saper>so if the hash does not match, it just tries the next slot, if the hash matches (collision?) but the value does not, - next slot again
22:56:12  <saper>got it
22:56:30  <phpnode>yes so a hash collision is treated identically to an index collision, which is pretty nice
22:56:31  <saper>your performance depenends really on how good you hash function is
22:56:50  <saper>I like the trick
22:57:19  <saper>and line 254 goes down probably only to few lines of the machine code
22:57:30  <phpnode>probably a lot cache friendlier too
23:04:22  <saper>there is v8::internal::HashTabl
23:04:23  <saper>there is v8::internal::HashTable
23:05:47  <saper>https://github.com/v8/v8/blob/97def8070cbb979419c041c3732d5e11779f79da/src/objects-inl.h
23:15:52  <saper>ZoneAllocationPolicy is one concerete implementation of that in my node
23:20:00  <saper>wow, a whole object module where it is used (modules.o) is 4984 bytes on my platform (amd64 FreeBSD)
23:34:30  <saper>phpnode: https://gist.github.com/saper/887019521e9d330b5745#L27-L38 seems to be https://github.com/v8/v8/blob/master/src/hashmap.h#L254 in assembly
23:34:35  * watildequit (Remote host closed the connection)
23:35:26  <saper>so comparing a hash at 50: 44 39 7b 10 cmp %r15d,0x10(%rbx) lets us avoid an expensive key match function call at 5a: 41 ff 55 00 callq *0x0(%r13)
23:43:11  * watildejoined
23:44:12  * watildequit (Remote host closed the connection)
23:46:54  * bnoordhuisjoined
23:51:55  * bnoordhuisquit (Ping timeout: 260 seconds)
23:55:57  * trungl-bot`joined
23:58:12  * RT|Chatzillajoined
23:58:24  * watildejoined
23:59:09  * s1wjoined
23:59:19  * dagobert______joined
23:59:33  * s1wchanged nick to Guest5401