Mochabot log - CommonJS IRC channel: #commonjs on irc.freenode.net

2011-01-03:

[7:06] <eddyb> looking at Binary/*... most of them implement ByteString and ByteArray
[7:07] <eddyb> is there any reason to have ByteString along ByteArray?
[7:11] <eddyb> they're mostly compatible and actually ByteString looks to me like having a subset of ByteArray's methods and being immutable
[7:11] <eddyb> I like Binary/F, yet it's too simple...
[7:14] <eddyb> I'd take ByteArray from one of the implementations and make different versions of it (Byte, Short, Int, Float, Double, or (U)(Int|Float)(8|16|32|64) like WebGL's TypedArray)
[7:15] <ondras> the reason for having both string and array is the (im)mutability, as far as i recall
[7:15] <ondras> on the other hand, i chose binary/f for v8cgi due to its simplicity :)
[7:53] <eddyb> well, I definitely need Float/Double arrays for GL, and implementing them inside GL is too hackish
[7:55] <ondras> there's nothing wrong with that need, but it is definitely different from Binary stuff :)
[7:55] <eddyb> right... yet they belong together for obvious reasons
[7:56] <eddyb> you may need to access floats from a ByteArray/Buffer while reading a file
[7:57] <eddyb> or let's say the whole file is a bunch of doubles
[7:58] <ondras> hm, the Number is not sufficient?
[7:58] <ondras> js already has a floating point datatype, as opposed to a binary one
[7:58] <eddyb> how do you get a Number from a ByteArray?
[7:59] <eddyb> you don't :P
[7:59] <ondras> typeof(myByteArray[index]) == "number" ?
[8:00] <eddyb> but is it a double?
[8:00] <eddyb> it's actually uint8_t :|
[8:01] <eddyb> on v8, that's not even stored as a double, merely a Smi
[8:02] <eddyb> OOI, how do you find this descriptive format: https://github.com/eddyb/v8-gearbox/blob/master/src/modules/GL.gear ?
[8:03] <eddyb> I've seen a few implementations using macros all over the place, some others having huge code which was 90% not functionality-related :|
[8:08] <eddyb> some node.js guy replied after a while something like "pretty, but we already rule this stuff"
[8:10] <eddyb> I could convert your socket module in a few minutes... I suppose it took longer to write :)
[8:10] <eddyb> not to mention documentation and maintenance
[8:14] <eddyb> https://github.com/eddyb/v8-gearbox/blob/master/src/modules/Network.gear << sketchy implementation of sockets
[8:16] <ondras> :)
[8:17] <oberhamsi> eddyb, cool! didn't know about v8-gearbox
[8:17] <eddyb> ssshh
[8:17] <eddyb> I don't freakin' have documentation or wiki pages
[8:17] <eddyb> don't tell everyone until I have a stable release or something
[8:18] <oberhamsi> are you planning commonjs compatibility? ;)
[8:18] <eddyb> sure, as long as it doesn't make everything awful
[8:18] <oberhamsi> lol okay
[8:18] <ondras> hmm, the idea of v8 gearbox is nice
[8:19] <oberhamsi> would love v8 with decent commonjs... for the rare task that needs superspeed
[8:19] <eddyb> I've worked all my winter holiday writing an API filled with "C++ magic", debugging it and optimizing
[8:19] <ondras> oberhamsi: node/v8cgi not sufficien? :)
[8:19] <ondras> *sufficient
[8:19] <oberhamsi> ondras, should try node again.. last time it wasn't very commonjs
[8:20] <ondras> v8cgi is more commonjs than node .)
[8:20] <eddyb> v8-gearbox spins faster
[8:20] <ondras> but node is definitely more trendy
[8:20] <eddyb> I don't like it :P
[8:21] <oberhamsi> meh.. don't care about trends. i'm mostly a ringojs man but every now and then i peak into v8 and try stuff
[8:27] <eddyb> http://kwhq.net/gear/gearboxGL.png << a test I've just done
[8:29] <eddyb> a million triangles = 3(points/triangle)x(1(index)+3(vertex)+3(normal))x1M =21M doubles
[8:29] <eddyb> in half a second or so
[8:31] <eddyb> that's actually 160MB of doubles :|
[8:31] * eddyb faints
[8:35] <eddyb> actually, the index is an integer, half the size, and I only get 76MB of memory usage because of v8's Smi's
[8:35] <eddyb> (immediate small integer, that is)
[8:37] <eddyb> actually, that horrendous usage is caused by a bug, the terrain pieces stack up and the triangle count increases
[8:39] <eddyb> and I don't even have Value::to<double>() inlined
[8:39] <eddyb> I want my testcase to be added to commonjs
[8:41] * eddyb is awesome without trying
[9:55] <eddyb> so?
[9:55] <eddyb> what's up?
[10:14] <eddyb> ondras: btw, do you happen to have a channel dedicated to v8cgi?
[10:15] <eddyb> I have one, mainly for feeling proud whenever CIA starts spiting out commit messages :D
[10:20] <ondras> eddyb: i do not
[10:56] <eddyb> too bad. feel free to join #v8-gearbox
[18:07] <Wes> deanlandolt: around today parchance?
[20:14] <Wes> "4.6.1 Is an object which is referentially identical to the main module?s exports object. "
[20:14] <Wes> Is there a better way to say crap like that in JS land?
[20:14] <Wes> like "Is a freaking POINTER"!
[20:30] <deanlandolt> Wes: hey man
[20:30] <deanlandolt> can't you just "is a reference to"?
[20:30] <Wes> deanlandolt: hey
[20:31] <Wes> deanlandolt: And, hm, I think that *IS* better language
[20:31] * Wes sucks at this stuff
[20:40] <Wes> anybody know offhand what's different between Modules/1.1 and Modules/1.1.1?
[21:09] <Wes> I need a better name than "pluggable module provider" to describe a group of functions which can overlay on top of a commonjs environment and alter the way modules are loaded
[21:10] <Wes> alter - because we want to add new semantics (packages), different transports, etc

 

 

Logs by date :