Hi Nilima - At this point I plan to start migrating our code forward to the latest google source next week. Depending on what bugs get either fixed or uncovered this week, that might get delayed by a bit. But I am hoping to start soon.
I don't have any suggestion about the size. v8 aims for high performance, and it does use significant resources to achieve that. thanks, paul On Jul 28, 2010, at 6:57 AM, Nilima Chavan wrote: > Was able to get compiling for Mips after playing with some compilation flags. > But still I do need to port for source code portion. > > One question, When you are planning to sync up with Google's v8 source code. > Since now I can see there are some code in Google's v8 source code which is > different than yours. > Or do I need to integrate your MIPs code with Google's v8 source code? > > Thanks & Regards, > Nilima > > On Fri, Jul 16, 2010 at 4:06 PM, Nilima Chavan <[email protected]> > wrote: > Hi Paul, > > Thanks again. > I will definetly consider the option of porting this to mips Big-endian > architecture. > But only thing worrying me now is the size of v8 library which is around 5 MB > after removing debug option. > Such a big size is not suitable for the embedded devices. > Have you also seen the same observation in terms of library size. > Is there any way to optimize this? > > Thanks & Regards, > Nilima > > > > > On Thu, Jul 15, 2010 at 9:35 AM, Paul Lind <[email protected]> wrote: > Hi Nilima - > > It is hard to estimate the time/complexity for this. There are a few known > areas that require code-generation fixes for big-endian. Search for 'endian' > in src/mips/codegen-mips.cc. Fixing those should take a few days or a week. > > But as I said before I do not think that v8 has ever been run big-endian. > That means there are likely to be problems that will only be uncovered by > trying it and debugging. Very hard to predict the time for that. I would > guess a month if you know v8, and another month or two if you are starting > from scratch. > > One issue is that v8 is partly implemented in javascript (the native > functions), and if the natives do not compile and run, then you cannot even > bring up the shell. It is hard to get the system bootstrapped to the state > you can debug. Alexandre wrote a nice "simplified shell" that can come up > without compiling the natives. I was going to remove that stuff, but it may > be useful when trying big-endian. > > Take a look at src/mips/test-mips.cc, src/mips/test-interface-mips.cc & h, > and compile_mips-test.sh, and the flag "disable_native_files" in > src/flag-definitions.h > > > I'd just suggest you jump in and give it a try. Maybe it will come up without > too much trouble. > > Per your other questions: the test-suites are very complete, and the wiki > pages shows how to run them. Please note that v8mips is not passing all the > tests yet ... we're workin on it. The status page shows our results. > > I would guess that we have 3 months of other activity before we would start > working on big-endian. We still need to pass 100% of tests, improve our > performance, bring our codebase up to current google codebase, and integrate > with Chrome. As well as re-start the submission process of our code back to > google. > > Anyway, I hope that you have the interest to jump in and contribute. It is a > great project, and a lot of fun. If so, we can work out how best to > collaborate on the github codebase. It might be easiest to just fork the > project and start. We can merge it back later. > > If anyone from the google v8 team has made it this far into this long reply, > we sure would love to get your feedback on possible big-endian issues...... > > thanks., > > paul > > > > > On Jul 14, 2010, at 2:07 AM, Nilima Chavan wrote: > >> Hi Paul, >> >> Now I am clear about the target thing. >> We were using the mips toolchain which was for Big endian to do the >> compilation. And as you have specified Big endian MIPs porting is not yet >> supported, we were getting compilation errors. >> After I used mips toolchain which was little endian, compilation was >> successful. >> >> We need v8 for our Big endian Targets only. >> >> Since you know the code better, can you please provides us following >> information for porting the same mips code to support Big endian. >> 1. Complexity >> 2. Efforts >> 3. Testing required ( I think we can get this from your web site ) >> 4. When you have planned for Big endian porting ( This is required just for >> information ) >> >> Thanks & Regards, >> Nilima >> >> >> On Wed, Jul 14, 2010 at 11:19 AM, Nilima Chavan <[email protected]> >> wrote: >> Hi Paul, >> >> Thanks for your detailed response. >> But now I am bit confused about what do you mean by target. >> >> Here is my build procedure: >> I am building on Linux x86 machine with following environment variables set: >> export CCPATH=/opt/kenati/mips-kenati-linux-uclibc/bin >> export CC=$CCPATH/gcc >> export CXX=$CCPATH/g++ >> export LD=$CCPATH/ld >> export AR=$CCPATH/ar >> export RANLIB=$CCPATH/ranlib >> >> Build command: >> >> scons arch=mips mode=debug library=static sample=shell -j4 >> >> Output: >> libv8.a is getting compiled. >> But giving endianness errors for shell. >> >> So I have question here, I am going to use libv8.a with v8cgi and apache. So >> can I survive currently with just v8 library build. I do not require shell >> at this point of time. >> >> Thanks & Regards, >> Nilima >> >> >> On Tue, Jul 13, 2010 at 11:32 PM, paul lind <[email protected]> wrote: >> Hi Nilima - >> >> I'll try to answer your questions: >> >> 1. Alexandre is correct, you must make sure you are using the >> 'integration' branch (it is the default). >> >> 2. Per your command, you built libv8 for arch=mips, but you are trying >> to build your shell for the simulator (simulator=mips). You cannot mix >> the two. The simulator for local testing on your x86 development >> platform, but if you want to build the shell for your target, you must >> use a line like: >> >> scons arch=mips mode=debug library=static sample=shell -j4 >> >> (note that I left out regexp=interpreted. That is no longer needed, >> since we now have the native regular expression compiler working. I >> have updated the wiki page >> http://wiki.github.com/paul99/v8mips/building-v8mips) >> >> 3. I see from your build log that it appears that your target is beg- >> endian. That is unfortunately, as v8mips does not currently support >> big-endian targets. That will get done eventually, but it is low on >> our priority list. Is there any way your target can be run in little- >> endian mode? (the mips cores are configurable, some target boards are >> configurable, some are fixed). >> >> I know for a fact there are places in the generated code where we make >> little-endian assumptions (we have commented these), but I suspect >> that there will be more issues, as to my knowledge the whole of v8 has >> never been run on a big-endian target. >> >> 4. I also see that you are using uclibc. I do not know if that will >> work, as it has not been tried. We have been using a mips Linux distro >> with full glibc (both Debian and Timesys). We are now porting to >> Android, which uses bionic. >> >> 5. The issue you fixed with mcontext.gpregs is just used when >> profiling. I have only tried that on Linux 2.6. It is possibly you >> just have a problem with kernel-headers, or it may be that your kernel >> does not support. In any cause, it will not impact regular operation >> of v8, just the profiling option (--prof option to shell). >> >> I hope this helps, >> >> paul >> >> On Jul 13, 2:57 am, Alexandre Rames <[email protected]> wrote: >> > Hi, >> > >> > It has been some time I haven't build it. >> > There is something weird with the endianness here. The MIPS build should >> > use >> > the -EL option to build for little endian. >> > >> > Did you follow the instructions >> > here<http://wiki.github.com/paul99/v8mips/building-v8mips> >> > ? >> > Also you should try to build the "integration" branch. This branch should >> > always compile and work (kind of dev branch). >> > >> > Alexandre >> > >> > On Mon, Jul 12, 2010 at 3:26 PM, Nilima Chavan >> > <[email protected]>wrote: >> > >> > >> > >> > > Finally i was able to build the libv8.a successfully with following >> > > command line: >> > > scons arch=mips mode=debug regexp=interpreted library=static >> > >> > > Have done following changes in platform-linux.cc >> > > #elif V8_HOST_ARCH_MIPS >> > > sample.pc = reinterpret_cast<Address>(mcontext.gpregs[35]); >> > > sample.sp = reinterpret_cast<Address>(mcontext.gpregs[29]); >> > > sample.fp = reinterpret_cast<Address>(mcontext.gpregs[30]); >> > > #endif >> > >> > > But still I am not able to build shell with following command: >> > > scons mode=debug simulator=mips regexp=interpreted sample=shell -j4 >> > >> > > It is giving following kind of error: >> > > /opt/kenati/lib/gcc/mips-kenati-linux-uclibc/3.4.3/../../../../mips- >> > > kenati-linux-uclibc/bin/ld: /opt/kenati/lib/gcc/mips-kenati-linux- >> > > uclibc/3.4.3/../../../../mips-kenati-linux-uclibc/lib/crt1.o: compiled >> > > for a big endian system and target is little endian >> > > /opt/kenati/lib/gcc/mips-kenati-linux-uclibc/3.4.3/../../../../mips- >> > > kenati-linux-uclibc/bin/ld: /opt/kenati/lib/gcc/mips-kenati-linux- >> > > uclibc/3.4.3/../../../../mips-kenati-linux-uclibc/lib/crt1.o: >> > > endianness incompatible with that of the selected emulation >> > > /opt/kenati/lib/gcc/mips-kenati-linux-uclibc/3.4.3/../../../../mips- >> > > kenati-linux-uclibc/bin/ld: failed to merge target specific data of >> > > file /opt/kenati/lib/gcc/mips-kenati-linux-uclibc/3.4.3/../../../../ >> > > mips-kenati-linux-uclibc/lib/crt1.o >> > >> > > Please let me know if I need to any kind of environment settings for >> > > this too. >> > >> > > Thanks & Regards, >> > > Nilima >> > >> > > On Jul 12, 5:57 pm, Nilima Chavan <[email protected]> wrote: >> > > > Thanks for the info Alexandre. >> > >> > > > I have downloaded v8 sources from github. >> > > > But when I tried to build those sources for mips platform its giving >> > > > compilation error. >> > > > I am building the source code on UBuntu 8 (Linux 2.6.24-16-generic #1 >> > > > SMP Thu Apr 10 13:23:42 UTC 2008 i686 GNU/Linux). >> > >> > > > Environment variables are as below: >> > > > AR=/opt/kenati/bin/mips_sfp-uclibc-ar >> > > > LD=/opt/kenati/bin/mips_sfp-uclibc-ld >> > > > CXX=/opt/kenati/bin/mips_sfp-uclibc-g++ >> > > > CC=/opt/kenati/bin/mips_sfp-uclibc-gcc >> > > > RANLIB=/opt/kenati/bin/mips_sfp-uclibc-ranlib >> > >> > > > Compilation Error: >> > > > opt/kenati/bin/mips_sfp-uclibc-g++ -o obj/release/platform-linux.o -c - >> > > > Wall -Werror -W -Wno-unused-parameter -Wnon-virtual-dtor -pedantic -EL >> > > > -mips32r2 -Wa,-mips32r2 -fno-inline -mhard-float -O3 -fomit-frame- >> > > > pointer -fdata-sections -ffunction-sections -ansi -fno-strict-aliasing >> > > > -fno-rtti -fno-exceptions -Wall -Werror -W -Wno-unused-parameter -Wnon- >> > > > virtual-dtor -pedantic -EL -mips32r2 -Wa,-mips32r2 -fno-inline -mhard- >> > > > float -O3 -fomit-frame-pointer -fdata-sections -ffunction-sections - >> > > > ansi -fno-strict-aliasing -DV8_TARGET_ARCH_MIPS - >> > > > DENABLE_DEBUGGER_SUPPORT -DENABLE_LOGGING_AND_PROFILING -Isrc src/ >> > > > platform-linux.cc >> > >> > > > src/platform-linux.cc: In function `void >> > > > v8::internal::ProfilerSignalHandler(int, siginfo_t*, void*)': >> > > > src/platform-linux.cc:828: error: 'struct mcontext_t' has no member >> > > > named 'pc' >> > > > src/platform-linux.cc:829: error: 'struct mcontext_t' has no member >> > > > named 'gregs' >> > > > src/platform-linux.cc:830: error: 'struct mcontext_t' has no member >> > > > named 'gregs' >> > > > scons: *** [obj/release/platform-linux.o] Error 1 >> > > > scons: building terminated because of errors. >> > >> > > > Can anybody from your side help me on this? >> > > > Thanks & Regards, >> > > > Nilima >> > >> > > > On Jul 9, 6:39 pm, Alexandre Rames <[email protected]> wrote: >> > >> > > > > Hi, >> > >> > > > > You can find the v8 MIPS repository with the latest code on github: >> > >http://github.com/paul99/v8mips >> > >> > > > > <http://github.com/paul99/v8mips>Alexandre >> > >> > > > > On Fri, Jul 9, 2010 at 1:02 PM, Nilima Chavan >> > > > > <[email protected] >> > > >wrote: >> > >> > > > > > So we can not use v8 JavaScript engine on MIPs platform? >> > > > > > Does anybody working on this. Since I see mips directory under >> > > > > > Sources. Even SConstruct provides a way to select the architecture >> > > > > > as >> > > > > > "mips". >> > > > > > If yes can you let us know when the work is expected to get over. >> > >> > > > > > Thanks & Regards, >> > > > > > Nilima >> > >> > > > > > On Jul 9, 1:41 am, Erik Corry <[email protected]> wrote: >> > > > > > > The MIPS port isn't done. It doesn't work. >> > >> > > > > > > Den 8. jul. 2010 14.12 skrev Nilima Chavan < >> > > [email protected]>: >> > >> > > > > > > > When I am trying to build v8 for MIP platform, I am getting >> > > following >> > > > > > > > errors: >> > > > > > > > $ scons simulator=mips >> > >> > > > > > > > In file included from src/virtual-frame.h:41, >> > > > > > > > from src/virtual-frame-inl.h:31, >> > > > > > > > from src/codegen.cc:41: >> > > > > > > > src/mips/virtual-frame-mips.h:74: error: 'NumberInfo' has not >> > > been >> > > > > > > > declared >> > > > > > > > src/mips/virtual-frame-mips.h:366: error: 'NumberInfo' has not >> > > been >> > > > > > > > declared >> > > > > > > > src/mips/virtual-frame-mips.h:390: error: 'NumberInfo' has not >> > > been >> > > > > > > > declared >> > > > > > > > src/mips/virtual-frame-mips.h:391: error: 'NumberInfo' has not >> > > been >> > > > > > > > declared >> > > > > > > > src/mips/virtual-frame-mips.h:74: error: 'NumberInfo' has not >> > > been >> > > > > > > > declared >> > > > > > > > src/mips/virtual-frame-mips.h:366: error: 'NumberInfo' has not >> > > been >> > > > > > > > declared >> > > > > > > > In file included from src/virtual-frame-inl.h:36, >> > > > > > > > from src/codegen.cc:41: >> > > > > > > > src/virtual-frame-light-inl.h: In constructor >> > > > > > > > 'v8::internal::VirtualFrame::VirtualFrame()': >> > > > > > > > src/virtual-frame-light-inl.h:41: error: class >> > > > > > > > 'v8::internal::VirtualFrame' does not have any field named >> > > > > > > > 'element_count_' >> > > > > > > > src/virtual-frame-light-inl.h:42: error: class >> > > > > > > > 'v8::internal::VirtualFrame' does not have any field named >> > > > > > > > 'top_of_stack_state_' >> > > > > > > > src/virtual-frame-light-inl.h:42: error: 'NO_TOS_REGISTERS' was >> > > not >> > > > > > > > declared in this scope >> > > > > > > > src/virtual-frame-light-inl.h:43: error: class >> > > > > > > > 'v8::internal::VirtualFrame' does not have any field named >> > > > > > > > 'register_allocation_map_' >> > > > > > > > src/virtual-frame-light-inl.h:43: error: no matching function >> > > > > > > > for >> > > call >> > > > > > > > to >> > > 'v8::internal::ZoneList<v8::internal::FrameElement>::ZoneList()' >> > > > > > > > src/zone.h:170: note: candidates are: >> > > > > > > > v8::internal::ZoneList<T>::ZoneList(int) [with T = >> > > > > > > > v8::internal::FrameElement] >> > > > > > > > src/zone.h:166: note: >> > >> > > v8::internal::ZoneList<v8::internal::FrameElement>::ZoneList(const >> > > > > > > > v8::internal::ZoneList<v8::internal::FrameElement>&) >> > > > > > > > src/virtual-frame-light-inl.h: In constructor >> > >> > > 'v8::internal::VirtualFrame::VirtualFrame(v8::internal::VirtualFrame*)': >> > > > > > > > src/virtual-frame-light-inl.h:48: error: class >> > > > > > > > 'v8::internal::VirtualFrame' does not have any field named >> > > > > > > > 'element_count_' >> > > > > > > > src/virtual-frame-light-inl.h:49: error: class >> > > > > > > > 'v8::internal::VirtualFrame' does not have any field named >> > > > > > > > 'top_of_stack_state_' >> > > > > > > > src/virtual-frame-light-inl.h:49: error: 'class >> > > > > > > > v8::internal::VirtualFrame' has no member named >> > > 'top_of_stack_state_' >> > > > > > > > src/virtual-frame-light-inl.h:50: error: class >> > > > > > > > 'v8::internal::VirtualFrame' does not have any field named >> > > > > > > > 'register_allocation_map_' >> > > > > > > > src/virtual-frame-light-inl.h:50: error: 'class >> > > > > > > > v8::internal::VirtualFrame' has no member named >> > > > > > > > 'register_allocation_map_' >> > > > > > > > src/virtual-frame-light-inl.h:50: error: no matching function >> > > > > > > > for >> > > call >> > > > > > > > to >> > > 'v8::internal::ZoneList<v8::internal::FrameElement>::ZoneList()' >> > > > > > > > src/zone.h:170: note: candidates are: >> > > > > > > > v8::internal::ZoneList<T>::ZoneList(int) [with T = >> > > > > > > > v8::internal::FrameElement] >> > > > > > > > src/zone.h:166: note: >> > >> > > v8::internal::ZoneList<v8::internal::FrameElement>::ZoneList(const >> > > > > > > > v8::internal::ZoneList<v8::internal::FrameElement>&) >> > > > > > > > src/virtual-frame-light-inl.h: In member function 'bool >> > > > > > > > v8::internal::VirtualFrame::Equals(v8::internal::VirtualFrame*)': >> > > > > > > > src/virtual-frame-light-inl.h:55: error: 'top_of_stack_state_' >> > > was not >> > > > > > > > declared in this scope >> > > > > > > > src/virtual-frame-light-inl.h:55: error: 'class >> > > > > > > > v8::internal::VirtualFrame' has no member named >> > > 'top_of_stack_state_' >> > > > > > > > src/virtual-frame-light-inl.h:56: error: >> > > 'register_allocation_map_' >> > > > > > > > was not declared in this scope >> > > > > > > > src/virtual-frame-light-inl.h:56: error: 'class >> > > > > > > > v8::internal::VirtualFrame' has no member named >> > > > > > > > 'register_allocation_map_' >> > > > > > > > src/codegen.cc: At global scope: >> > > > > > > > src/codegen.cc:325: error: 'GenerateCallFunction' is not a >> > > > > > > > member >> > > of >> > > > > > > > 'v8::internal::CodeGenerator' >> > > > > > > > src/codegen.cc:325: error: 'GenerateRegExpConstructResult' is >> > > > > > > > not >> > > a >> > > > > > > > member of 'v8::internal::CodeGenerator' >> > > > > > > > src/codegen.cc:325: error: 'GenerateGetFromCache' is not a >> > > > > > > > member >> > > of >> > > > > > > > 'v8::internal::CodeGenerator' >> > > > > > > > src/codegen.cc:325: error: 'GenerateSwapElements' is not a >> > > > > > > > member >> > > of >> > > > > > > > 'v8::internal::CodeGenerator' >> > > > > > > > cc1plus: warnings being treated as errors >> > > > > > > > src/mips/virtual-frame-mips.h:486: warning: inline function >> > > > > > > > 'void >> > > > > > > > v8::internal::VirtualFrame::PushFrameSlotAt(int)' used but >> > > > > > > > never >> > > > > > > > defined... >> > >> > read more » >> >> -- >> v8-users mailing list >> [email protected] >> http://groups.google.com/group/v8-users >> >> >> >> -- >> v8-users mailing list >> [email protected] >> http://groups.google.com/group/v8-users > > > > > -- > v8-users mailing list > [email protected] > http://groups.google.com/group/v8-users -- v8-users mailing list [email protected] http://groups.google.com/group/v8-users
