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

2009-11-08:

[17:14] <veged> anybody build v8cgi from trunk recently?
[17:15] <veged> perhaps I have the same problem with build on mac as tlrobinson here -- http://helma.zumbrunn.com/mochabot/2009-10-01
[17:22] <ashb> ondras: ^^
[17:40] <veged> ondras: is it possible to build v8cgi on macosx now, or work still progress?
[17:46] <ondras> WELL
[17:46] <ondras> well
[17:46] <ondras> sry caps
[17:46] <ondras> some people report that it _is_ possible
[17:46] <ondras> but I do not exactly know how :)
[17:47] <ondras> on some macs, it works
[17:47] <ondras> on others, it does not compile
[17:47] <ondras> and on others, it compiles but refuses to run :)
[17:47] <veged> from source or with custom SConstruct ?
[17:47] <ondras> both
[17:47] <ondras> what is your status?
[17:48] <veged> g++ -o v8cgi src/js_common.o src/js_system.o src/js_io.o src/js_cache.o
[17:48] <veged> ups
[17:48] <veged> so http://code.google.com/p/v8cgi/issues/detail?id=37
[17:48] <veged> here details for build from source
[17:49] <veged> i try all arch variants of build libv8
[17:49] <veged> all the same
[17:50] <veged> with custom SConstruct from http://pastie.org/638060
[17:51] <veged> i have less undefined symbols
[17:51] <veged> 3 in fact: v8::Object::CheckedGetInternalField(int), v8::internal::Internals::kJSObjectType, v8::HandleScope::CreateHandle(v8::internal::Object*)
[17:52] <ondras> hmm
[17:54] <ondras> do you use the -undefined dynamic_lookup flag?
[18:10] <veged> it seems no, because i don't know about this flag
[18:10] <veged> =)
[18:12] <veged> it must be in SConstruct?
[18:13] <ondras> it surely is in sconstruct
[18:13] <ondras> do you use current svn revision?
[18:19] <veged> yep
[18:19] <veged> 663
[18:20] <ondras> if env["os"] == "darwin":
[18:20] <ondras> env.Append(
[18:20] <ondras> SHLINKFLAGS = "-undefined dynamic_lookup",
[18:20] <ondras> CPPDEFINES = ["DSO_EXT=so"]
[18:20] <ondras> )
[18:20] <ondras> # if
[18:20] <ondras> so you should be using that flag
[18:20] <ondras> can you please verify that?
[18:21] <veged> yes, wait plz
[18:21] <MisterN> doesn't v8cgi have its own irc channel?
[18:23] <ondras> no
[18:23] <ondras> people come to talk about v8cgi cca once per 10 days
[18:24] <ondras> i don't see a dedicated irc channel as a superb option :)
[18:24] <veged> SConstruct line 134 -- it's here
[18:24] <MisterN> ondras: it seems to me that v8cgi is more popular than flusspferd, and the flusspferd channel is used pretty much.
[18:25] <ondras> MisterN: I would like to believe that is true (v8cgi more popular)...
[18:26] <MisterN> ondras: most people seem to think "wow v8 is cool i like to use that"
[18:26] <MisterN> so they are led to v8 plain, or maybe v8cgi or v8-juice
[18:31] <ondras> veged: and is that used in compilation?
[18:31] <ondras> MisterN: okay, should I read your comment as "please discuss v8cgi stuff elsewhere", or plainly as a suggestion? :)
[18:32] <MisterN> ondras: a suggestion
[18:32] <veged> how can i check that?
[18:32] <MisterN> ondras: i think setting up a channel is easy enough given you're on freenode anyways
[18:33] <veged> g++ -o v8cgi src/js_common.o src/js_system.o src/js_io.o src/js_cache.o src/js_gc.o src/js_app.o src/js_path.o src/v8cgi.o -L/Users/veged/Downloads/v8 -lv8 -lv8
[18:33] <veged> i don't see anything similar
[18:34] <veged> why CPPDEFINES = ["DSO_EXT=so"] but not CPPDEFINES = ["DSO_EXT=dylib"]?
[18:34] <veged> i have ../v8/libv8.dylib
[18:34] <ondras> hmm, that is other (unrelated) question
[18:36] <ondras> nevertheless
[18:36] <ondras> that flag should be used in compilation phase
[18:36] <ondras> not linking
[18:37] <ondras> MisterN: yeah, I know.. I just hate channels where people idle for X days without saying anything
[18:37] <MisterN> ondras: are you the only v8cgi dev?
[18:37] <MisterN> ondras: in #flusspferd we like to discuss dev questions
[18:38] <ondras> MisterN: basically, yes
[18:38] <veged> scons say: scons: Building targets ... && g++ -o v8cgi src/js_common.o src/js_system.o src/js_io.o src/js_cache.o src/js_gc.o src/js_app.o src/js_path.o src/v8cgi.o -L/Users/veged/Downloads/v8 -lv8 -lv8
[18:38] <veged> after that exit
[18:38] <veged> with "Undefined symbols:"
[18:39] <ondras> nono
[18:39] <ondras> you skip the compilation phase
[18:39] <ondras> your sources are already compiled
[18:39] <ondras> so scons do not re-compile them
[18:39] <ondras> try scons -c to remove those .o files
[18:39] <ondras> that would force scons to recompile them
[18:39] <veged> scons --clean ?
[18:39] <veged> ok
[18:39] <ondras> scons -c
[18:40] <ondras> maybe --clean works as well
[18:41] <veged> g++ -o lib/process.dylib -dynamiclib -undefined dynamic_lookup src/lib/process/js_process.os -L/Users/veged/Downloads/v8 -lv8 -lv8
[18:41] <veged> here it is
[18:47] <veged> but still the same errors
[18:49] <veged> scons: Building targets ...
[18:50] <veged> g++ -o src/lib/process/js_process.os -c -Wall -O3 -fPIC -DHAVE_MMAN_H -DHAVE_SLEEP -DCONFIG_PATH=/etc/v8cgi.conf -Ddarwin -DDSO_EXT=so -DREUSE_CONTEXT -Isrc -I/Users/veged/Downloads/v8/include src/lib/process/js_process.cc
[18:50] <veged> g++ -o lib/process.dylib -dynamiclib -undefined dynamic_lookup src/lib/process/js_process.os -L/Users/veged/Downloads/v8 -lv8 -lv8
[18:50] <veged> g++ -o src/js_app.o -c -Wall -O3 -DHAVE_MMAN_H -DHAVE_SLEEP -DCONFIG_PATH=/etc/v8cgi.conf -Ddarwin -DDSO_EXT=so -DREUSE_CONTEXT -Isrc -I/Users/veged/Downloads/v8/include src/js_app.cc
[18:50] <ondras> hmm
[18:50] <ondras> sorry, I have no idea how to fix this :/
[18:51] <ondras> have you recompiled a recent v8?
[18:52] <veged> yes
[18:52] <veged> Revision: 3239
[18:52] <veged> scons arch=x64 library=shared
[18:53] <veged> libv8.dylib
[18:57] <ondras> hmm
[18:57] <ondras> 64bit and macosx
[18:57] <ondras> I am not aware of anyone successful with this combination
[18:58] <ondras> but if you somehow manage to get it going, you will have my congratulations ;)
[19:01] <veged> with 32bit i have message from scons about wrong arch
[19:06] <ondras> hm, I don't even know anyone skilled enough with osx to solve this
[19:07] <veged> where use lib/process.dylib?
[19:07] <veged> it builds with -undefined dynamic_lookup
[19:07] <veged> but i cant see its use
[19:10] <ondras> files in lib/ are JS modules
[19:10] <ondras> think of them as code libraries (i.e. php extensions)
[19:11] <ondras> none of them is necessary to run v8cgi, they just offer additional functionality
[20:05] <veged> okay, now channel ontopic question =) assume i have some js functionality with pollution to prototypes of global objects, such as Array, String etc. How can i pack it in secure module?
[20:06] <veged> with minimal changes, at ideal without changes
[20:07] <ondras> this is implementation dependent
[20:07] <ondras> in secured environment, you don't modify global objects, because your module have its own set of them
[20:08] <ondras> in non-secured environmen, you always change global objects, which are shared amongst all modules
[20:08] <veged> and what cases as of today?
[20:08] <ondras> (v8cgi uses the non-secured approach)
[20:08] <veged> ok
[20:09] <ondras> therefore, you are encouraged not to modify global prototypes :)
[20:09] <ondras> or at least to discuss it prior to commencing work :)
[20:12] <veged> is any way to change v8cgi approach?
[20:12] <veged> to secure?
[20:15] <ondras> maybe
[21:10] <BryanWB> evilstreak: ;) sorry to ask u another tdd question
[21:10] <BryanWB> evilstreak: how do i avoid getting bogged down in small details while writing my tests before my actual code?
[21:43] <evilstreak> don't know :/ not that experienced with TDD
[21:44] <evilstreak> write enough tests to outline the functionality you need and no more
[21:44] <evilstreak> don't engineer in extra stuff because you think you might need it later, just keep it simple
[21:45] <inimino> being forced to consider details and edge cases before you write code is one of the main argued benefits of TDD
[21:52] <evilstreak> edge cases yes, overengineering no

 

 

Logs by date :