00:08:30  <dherman>where is v8::Integer::Cast defined?
00:08:48  <dherman>(I suspect I'm getting pwned by token-pasting macros again)
00:09:15  <aklein>it's in v8.h
00:09:18  <aklein>no macros involved
00:09:29  <dherman>ha
00:09:30  <aklein>it's not very interesting, though :)
00:09:31  <dherman>how'd I miss that
00:09:32  <dherman>thanks
00:09:48  <dherman>I'm having a terrible time figuring out what exactly Integer means
00:10:07  <dherman>i.e. what values are considered Integers
00:10:18  <dherman>there's no IsInteger() predicate
00:10:47  <aklein>it doesn't map to any particular type
00:12:10  <dherman>given that it exists, there must be some notion of when it's valid to convert a Number to an Integer
00:12:31  <aklein>IsInt32() and IsUint32() are the predicates that ask that question
00:12:50  <dherman>so it represents the union of int32 and uint32?
00:14:09  <dherman>{ x \in Z | x >= int32.MIN && x <= uint32.MAX }
00:15:30  <aklein>hmm, it looks like Integer is actually pretty specific
00:16:03  <aklein>I feel like it's misused in the API
00:16:23  <dherman>:'-(
00:16:27  <dherman>tell me?
00:18:07  <aklein>well, let me back up, why do you care about Integer to begin with?
00:18:53  <aklein>(the only thing in the API that has any reasonable use of Integer seems to me to be v8::Value::ToInteger)
00:18:54  * pringlescanquit (Quit: Leaving.)
00:19:02  <aklein>(which corresponds to the ECMAScript spec operation ToInteger)
00:19:17  <dherman>I guess I was under the impression that Integer was exposing some faster paths in the engine
00:19:23  <dherman>for dealing with numbers that happen to be integers
00:19:32  <dherman>if I'm mistaken, maybe I shouldn't be exposing any aspect of it to the neon api
00:19:59  <dherman>obvs I can create convenience api's for converting to/from Rust integers and JS numbers
00:20:31  <aklein>yeah, it doesn't correspond to our internal thing
00:20:34  * bradleymeckquit (Quit: bradleymeck)
00:20:38  <dherman>the internal thing == Smi ?
00:20:40  <aklein>yeah
00:20:45  <dherman>yeah I figured that much out
00:20:51  <dherman>what is the purpose of v8::Integer?
00:20:54  <aklein>they're 31 bit integers on 32 bit architectures, 32 bit integers on 64 bit architectures
00:21:31  <aklein>dherman: to expose the v8::Integer::Value() method, it looks like to me
00:21:33  <dherman>yeah so IOW you didn't want to expose that, since it's observable and non-portable
00:21:41  <aklein>yeah
00:21:47  <dherman>ok but this is what confuses me
00:21:52  <dherman>I get what v8::Integer::Value() does
00:21:53  <dherman>which is useful
00:21:54  <dherman>but then
00:22:04  <dherman>I can only use it if I know to begin with that something is an integer
00:22:05  <dherman>but for that
00:22:08  <dherman>I have to know what "integer" means :)
00:22:49  <dherman>there are multiple plausible definitions
00:23:53  <dherman>like, 2^53 + 2 is representable as a JS number, but it's not inside the range of contiguously representable integers
00:24:06  <dherman>so integer could mean "integer representable in IEEE754 double"
00:24:20  <dherman>or it could mean "integer in the maximum contiguous range of representable integers in IEEE754 double"
00:24:27  <dherman>or it could mean "integer in int32 U uint32"
00:25:00  <dherman>I guess an alternative option for me is to say, all we get is doubles, and you can convert those to ints in Rust
00:25:09  <aklein>I'd agree that this type is a bit sloppy
00:25:19  <aklein>all that Integer::Cast guarantees is that it's a Number
00:25:27  <dherman>yeah that confused me
00:25:33  <dherman>maybe I should just avoid it
00:25:35  <dherman>hm
00:26:19  <aklein>I kinda feel like there just shouldn't be Integer::Cast
00:26:20  <dherman>I guess it's not really providing much benefit
00:26:24  <dherman>yeah
00:26:59  <aklein>that way the only way to get one would to be to have it vended from the API, from e.g. Value::ToInteger()
00:27:08  <dherman>of course then it's clear what the domain of the type is
00:27:11  <dherman>int32 U uint32
00:27:21  <dherman>at which point you *could* have a Cast operation
00:27:30  <dherman>but it should use IsInt32 U IsUint32
00:27:31  <aklein>does ToInteger limit to 32 bits?
00:27:33  <aklein>I don't think it does
00:27:42  <aklein>(the ES abstract op)
00:27:49  <dherman>I don't remember
00:27:51  * dhermanlooks
00:28:29  <dherman>> Return the number value that is the same sign as number and whose magnitude is floor(abs(number)).
00:29:16  <dherman>I think floor/abs don't limit the domain
00:30:02  <dherman>Number.isInteger uses ToInteger directly
00:30:47  <dherman>yeah very large integers are considered integers
00:30:51  <dherman>e.g. 2^53
00:31:31  <dherman>I think the right thing for me to do is kill the use of v8::Integer
00:31:34  <dherman>thx for the help
00:36:34  * Venemoquit (Quit: Communi 3.5.0 - http://communi.github.com)
01:18:00  * ofrobotsquit (Quit: My Mac has gone to sleep. ZZZzzz…)
01:29:50  * pringlescanjoined
01:31:39  * plutoniixjoined
01:50:00  * pringlescanquit (Quit: Leaving.)
01:51:32  * plutoniixquit (Read error: Connection reset by peer)
01:53:25  * ofrobotsjoined
01:56:06  * Fishrock123quit (Quit: Leaving...)
02:00:49  * pringlescanjoined
02:07:53  * ofrobotsquit (Quit: My Mac has gone to sleep. ZZZzzz…)
02:51:11  * bobmcwjoined
02:52:02  * pringlescanquit (Quit: Leaving.)
02:56:23  * ofrobotsjoined
03:06:17  * ofrobotsquit (Quit: My Mac has gone to sleep. ZZZzzz…)
03:28:54  * bobmcwquit (Remote host closed the connection)
04:16:20  * xaxxon_joined
04:28:55  * bobmcwjoined
04:34:41  * ofrobotsjoined
04:38:17  * ofrobotsquit (Client Quit)
04:42:33  * ofrobotsjoined
04:43:32  * ofrobotsquit (Client Quit)
04:49:12  * bobmcwquit (Remote host closed the connection)
04:50:41  * bobmcwjoined
04:51:58  * bobmcwquit (Remote host closed the connection)
04:52:41  * ofrobotsjoined
05:19:30  * ofrobotsquit (Quit: My Mac has gone to sleep. ZZZzzz…)
05:22:01  * bradleymeckjoined
05:41:32  * ofrobotsjoined
05:44:21  * ofrobotsquit (Client Quit)
06:05:03  * thefourtheye___joined
06:19:17  * bradleymeckquit (Quit: bradleymeck)
06:48:42  * xaxxon_quit (Ping timeout: 260 seconds)
07:09:47  * plutoniixjoined
07:43:06  * rendarjoined
08:33:07  * plutoniixquit (Ping timeout: 260 seconds)
08:39:01  * plutoniixjoined
09:09:13  * bobmcwjoined
10:50:47  * plutoniixquit (Ping timeout: 260 seconds)
11:09:36  * plutoniixjoined
11:10:00  * bobmcwquit (Read error: Connection reset by peer)
11:10:13  * bobmcwjoined
11:15:50  * pringlescanjoined
11:29:09  * bobmcwquit (Read error: Connection reset by peer)
11:34:20  * plutoniixquit (Quit: จรลี จรลา)
11:34:32  * rhalffquit (Ping timeout: 260 seconds)
11:48:50  * rhalffjoined
12:03:32  * pringlescanquit (Quit: Leaving.)
13:28:45  * jugglinmikejoined
13:29:52  * ofrobotsjoined
14:12:57  * bradleymeckjoined
14:34:34  * jugglinmikequit (Ping timeout: 244 seconds)
14:36:12  * ofrobotsquit (Quit: My Mac has gone to sleep. ZZZzzz…)
14:38:12  * jugglinmikejoined
14:41:45  * JoWiejoined
14:47:00  * bradleymeckquit (Quit: bradleymeck)
14:47:59  * deavidquit (Ping timeout: 260 seconds)
14:49:25  * deavidjoined
14:55:10  * bradleymeckjoined
15:14:44  * bradleymeckquit (Quit: bradleymeck)
15:17:29  * jugglinmikequit (Quit: Leaving.)
15:17:36  * jugglinmike1joined
15:19:44  * rhalffquit (Ping timeout: 268 seconds)
15:30:12  * thefourtheye___quit (Quit: Connection closed for inactivity)
15:31:27  * bradleymeckjoined
15:31:38  * bradleymeckquit (Client Quit)
15:45:23  * ofrobotsjoined
15:48:47  * ofrobotsquit (Client Quit)
15:51:31  * rhalffjoined
16:02:27  * bradleymeckjoined
16:03:51  * ofrobotsjoined
16:06:56  * RT|Chatzillaquit (Quit: ChatZilla 0.9.86.1 [Firefox 2.0.0.22pre/2010030309])
16:17:37  * plutoniixjoined
16:21:31  <caitp>https://gist.github.com/caitp/59d1939d60d40906e8c0aa1ff61cca1a << much easier to understand error messages
16:21:44  <caitp>would it be worth moving that to cctest.h?
16:25:44  <caitp>and why does cctest do its own thing rather than use gtest
16:25:57  <caitp>since gtest tracks failures better, imo
16:26:04  <caitp>maybe it doesn't matter a lot
16:33:51  * rhalffquit (Ping timeout: 250 seconds)
16:41:19  * ofrobotsquit (Quit: My Mac has gone to sleep. ZZZzzz…)
16:50:09  * rhalffjoined
16:51:27  * ofrobotsjoined
16:59:43  * bnoordhuisjoined
17:09:31  * jugglinmike1changed nick to jugglinmike
17:11:10  * davijoined
17:11:10  * daviquit (Changing host)
17:11:10  * davijoined
17:19:29  * daviquit (Ping timeout: 276 seconds)
18:21:35  <aklein>I suspect v8 started before gtest was open source
18:22:03  <aklein>there would definitely be advantage to moving cctests to gtest, but I don't know who'd sign up for that work
18:24:39  <caitp>no major advantage, but its weird since gtest is pulled in anyways :p
18:55:03  * bradleymeckquit (Quit: bradleymeck)
19:02:58  * rhalffquit (Ping timeout: 268 seconds)
19:06:05  * bobmcwjoined
19:10:28  * JoWiequit (Quit: Connection closed for inactivity)
19:24:22  <aklein>maybe it's used by the TurboFan unittests?
19:24:33  <aklein>and wasm
19:35:43  * bobmcwquit (Remote host closed the connection)
19:44:32  * rendarquit (Ping timeout: 260 seconds)
19:50:44  * rendarjoined
19:52:28  * ofrobotsquit (Quit: My Mac has gone to sleep. ZZZzzz…)
19:56:57  * bradleymeckjoined
20:14:17  * rendarquit (Ping timeout: 260 seconds)
20:32:02  * davijoined
20:37:30  * daviquit (Ping timeout: 246 seconds)
20:52:03  * ofrobotsjoined
21:00:00  * pringlescanjoined
21:02:54  * pringlescanquit (Client Quit)
21:03:59  * pringlescanjoined
21:05:40  <caitp>do we have a way to serialize an AST for a specific function? that would be great
21:05:55  <caitp>or for all functions, even
21:06:27  <caitp>printing code isn't always that helpful
21:34:00  <bradleymeck>caitp: I assume you don't want esprima style AST
21:35:02  <caitp>I guess I didn't need to serialize the AST at all anyways, it was a scope issue, and we can already serialize those :>
21:35:22  <caitp>but yeah, just having the node names serialized in a hierarchical way would be awesome
21:36:13  <caitp>with some extras for things like variable proxies, number literals, etc
21:38:36  * pringlescanquit (Quit: Leaving.)
21:38:53  * pringlescanjoined
22:02:19  * bradleymeckquit (Quit: bradleymeck)
22:07:21  * bradleymeckjoined
22:07:27  <aklein>caitp: prettyprinter.cc has some code around this, I thought
22:07:33  <aklein>though I can't remember how to trigger it
22:08:01  <aklein>caitp: --print-ast?
22:08:07  <aklein>by default requires a debug build
22:08:50  <caitp>huh, that's a new one
22:09:11  <caitp>I often `d8 --help | grep print` and somehow have never caught that
22:10:27  <caitp>good to know :>
22:12:51  * seventhjoined
22:19:21  * pringlescanquit (Quit: Leaving.)
22:31:08  * RT|Chatzillajoined
22:39:23  * seventhquit (Remote host closed the connection)
22:49:34  * bnoordhuisquit (Ping timeout: 240 seconds)
23:04:50  * rhalffjoined
23:10:13  * stalledquit (Ping timeout: 252 seconds)
23:12:48  * bradleymeckquit (Quit: bradleymeck)
23:15:26  * seventhjoined
23:17:42  * pringlescanjoined
23:22:05  * ofrobotsquit (Quit: My Mac has gone to sleep. ZZZzzz…)
23:26:53  * stalledjoined
23:27:53  * ofrobotsjoined
23:39:25  * ofrobotsquit (Quit: My Mac has gone to sleep. ZZZzzz…)
23:40:52  * saperquit (Read error: Connection reset by peer)
23:40:58  * bradleymeckjoined
23:41:02  * saperjoined
23:52:04  * pringlescanquit (Quit: Leaving.)
23:52:09  * bradleymeckquit (Quit: bradleymeck)
23:56:21  * jugglinmikequit (Ping timeout: 250 seconds)