[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