Re: [chromium-dev] Re: Building chromium for arm--erroring out

2009-12-14 Thread Erik Corry
2009/12/14 Sofia Tahseen sofia.tahs...@gmail.com

 Hi Antoine,

 I did exactly what you said-- not set armv7=1 in gyp_defines.

 export GYP_DEFINES=target_arch=arm
 sysroot=~/x-tools/arm-unknown-linux-gnueabi/arm-unknown-linux-gnueabi/sys-root
 disable_nacl=1 use_system_ffmpeg=1

 I rebuilt chromium.

 And then I reset my kernel so that it does not use NEON.

 This does not help and the browser keeps crashing again even though I do
 not set armv7=1 in gyp_defines. So is there a way to disable neon settings
 on chromium browser and make chromium working on a hardware that does not
 support NEON?


Is it still crashing in S32A_Opaque_BlitRow32_neon ?


 Thanks,
 Sofia



 On Fri, Dec 11, 2009 at 5:39 PM, Antoine Labour pi...@chromium.orgwrote:



 On Fri, Dec 11, 2009 at 3:28 PM, Sofia Tahseen 
 sofia.tahs...@gmail.comwrote:

 Hi Joel/Erik/All,

 I don't think armv5 is an issue. Reason being I used the jaunty armv5
 libraries to build chrome.

 I tried to debug the issue with gdb.
 gdb chrome
 GNU gdb 6.8-debian
 Copyright (C) 2008 Free Software Foundation, Inc.
 License GPLv3+: GNU GPL version 3 or later 
 http://gnu.org/licenses/gpl.html
 This is free software: you are free to change and redistribute it.
 There is NO WARRANTY, to the extent permitted by law.  Type show
 copying
 and show warranty for details.
 This GDB was configured as arm-linux-gnueabi...

 (gdb)
 (gdb) run
 Starting program: /home/adas/Release/chrome
 [Thread debugging using libthread_db enabled]
 [New Thread 0x4112ac80 (LWP 9722)]
 [New Thread 0x41d49440 (LWP 9727)]
 [New Thread 0x42549440 (LWP 9728)]
 [New Thread 0x42d49440 (LWP 9729)]
 [New Thread 0x43549440 (LWP 9730)]
 [New Thread 0x43d49440 (LWP 9731)]
 [New Thread 0x44549440 (LWP 9732)]
 [New Thread 0x44d49440 (LWP 9733)]
 [New Thread 0x44d69440 (LWP 9734)]
 [New Thread 0x458ff440 (LWP 9738)]
 [New Thread 0x460ff440 (LWP 9739)]
 [Thread 0x460ff440 (LWP 9739) exited]

 Program received signal SIGILL, Illegal instruction.
 [Switching to Thread 0x4112ac80 (LWP 9722)]
 0x0081caec in S32A_Opaque_BlitRow32_neon ()
 Current language:  auto; currently asm


 The error S32A_Opaque_BlitRow32_neon () had to do something with the
 floating point setting of the kernel. I checked my kernel configuration and
 neon was not set. So I set it and it rebuild my kernel and booted my jaunty.
 Now it works perfectly...without any crashes.

 Key : In order to run chromium we need to set the neon in the kernel
 configuration.


 Note, if you don't set armv7=1 when you build chromium, it shouldn't use
 the NEON paths, so you shouldn't run into that problem. But it's better to
 enable it in the kernel if your hardware supports it.

 Antoine


 Regards,
 Sofia


 On Fri, Dec 11, 2009 at 2:27 AM, Erik Corry erik.co...@gmail.comwrote:

 2009/12/10 Sofia Tahseen sofia.tahs...@gmail.com:
  You are so right, Joel... I corrected my .so and now I could build the
  chrome browser ...finally!!  I copied the whole /src/out/Release
 directory
  to my jaunty on the BeagleBoard(256MB RAM). I try to launch chrome
 through:
  ./chrome
  It starts up chrome, and then immediately kills chrome. I get an
 Illegal
  Instruction. I restart and I can now see chrome as shown in the
 attachment
  but I cannot browse. When I reload the page, it again kills chrome
 saying
  Illegal instruction. Has anyone seen this before? I have my proxy
 settings
  set too..

 This could be anything, but it might be this bug in some versions of
 gcc:  http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39604

 If that's it then adding -fno-tree-sink to the flags used for V8 will
 help.  It's a bug that only shows up on ARM and only on some versions
 of gcc.



  Any help is highly appreciated.
  Thanks,
  Sofia
 
  On Wed, Dec 9, 2009 at 6:00 PM, Joel Stanley j...@chromium.org
 wrote:
 
  On Thu, Dec 10, 2009 at 05:14, Sofia Tahseen 
 sofia.tahs...@gmail.com
  wrote:
 
  
  
 /home/adas/0_Data/0_Lin/091203_Chromium_OS/toolchain/arm-2009q1/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.3/../../../../arm-none-linux-gnueabi/bin/ld:
   skipping incompatible
  
  
 /home/adas/x-tools/arm-unknown-linux-gnueabi/arm-unknown-linux-gnueabi/sys-root/usr/lib/librt.so
   when searching for -lrt
 
  The errors are indicative of trying to link against libraries from a
  different platform.  To confirm: check the output of
 
   $ 'file
 
 /home/adas/x-tools/arm-unknown-linux-gnueabi/arm-unknown-linux-gnueabi/sys-root/usr/lib/librt.so
 
  I suspect it will tell you it's a symbolic link to /lib/librt.so.1,
  which itself is a symbolic link to
  /lib/librt-2.10.2.so - note these paths are relative to /, not to
 your
  sysroot directory.
 
  You have two slightly solutions
   - adjust the symlinks in sys-root/usr/lib so they point to the files
  in sys-root//lib
   - replace the smymlinks with the actual libraries, ie copy files
 from
  sys-root/lib to sys-root/usr/lib
 
  I would be happy to hear a neater solution for this, but the above
  worked for me.
 
  Cheers,
 
  Joel

Re: [chromium-dev] Re: Building chromium for arm--erroring out

2009-12-11 Thread Erik Corry
2009/12/10 Sofia Tahseen sofia.tahs...@gmail.com:
 You are so right, Joel... I corrected my .so and now I could build the
 chrome browser ...finally!!  I copied the whole /src/out/Release directory
 to my jaunty on the BeagleBoard(256MB RAM). I try to launch chrome through:
 ./chrome
 It starts up chrome, and then immediately kills chrome. I get an Illegal
 Instruction. I restart and I can now see chrome as shown in the attachment
 but I cannot browse. When I reload the page, it again kills chrome saying
 Illegal instruction. Has anyone seen this before? I have my proxy settings
 set too..

This could be anything, but it might be this bug in some versions of
gcc:  http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39604

If that's it then adding -fno-tree-sink to the flags used for V8 will
help.  It's a bug that only shows up on ARM and only on some versions
of gcc.



 Any help is highly appreciated.
 Thanks,
 Sofia

 On Wed, Dec 9, 2009 at 6:00 PM, Joel Stanley j...@chromium.org wrote:

 On Thu, Dec 10, 2009 at 05:14, Sofia Tahseen sofia.tahs...@gmail.com
 wrote:

 
  /home/adas/0_Data/0_Lin/091203_Chromium_OS/toolchain/arm-2009q1/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.3/../../../../arm-none-linux-gnueabi/bin/ld:
  skipping incompatible
 
  /home/adas/x-tools/arm-unknown-linux-gnueabi/arm-unknown-linux-gnueabi/sys-root/usr/lib/librt.so
  when searching for -lrt

 The errors are indicative of trying to link against libraries from a
 different platform.  To confirm: check the output of

  $ 'file
 /home/adas/x-tools/arm-unknown-linux-gnueabi/arm-unknown-linux-gnueabi/sys-root/usr/lib/librt.so

 I suspect it will tell you it's a symbolic link to /lib/librt.so.1,
 which itself is a symbolic link to
 /lib/librt-2.10.2.so - note these paths are relative to /, not to your
 sysroot directory.

 You have two slightly solutions
  - adjust the symlinks in sys-root/usr/lib so they point to the files
 in sys-root//lib
  - replace the smymlinks with the actual libraries, ie copy files from
 sys-root/lib to sys-root/usr/lib

 I would be happy to hear a neater solution for this, but the above
 worked for me.

 Cheers,

 Joel

 --
 Chromium Developers mailing list: chromium-dev@googlegroups.com
 View archives, change email options, or unsubscribe:
 http://groups.google.com/group/chromium-dev

-- 
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-dev


Re: [chromium-dev] Re: enabling javascript strict warnings and errors?

2009-12-06 Thread Erik Corry
2009/12/5 nachumk nach...@gmail.com:
 On Dec 5, 3:48 pm, Erik Corry erik.co...@gmail.com wrote:
 2009/12/5 nachumk nach...@gmail.com:

  Hi,

  I'm using Chrome 4.0.249.25.

  Is there a way to enable chrome's javascript to be more verbose and
  to
  break on errors such as an undeclared variable (i don't want to
  implicity declare them)?

 Not in Chrome.

 You might want to look into the JS 
 compilerhttp://closure-compiler.appspot.com/homehttp://googlecode.blogspot.com/2009/11/introducing-closure-tools.html





  Thanx,
  nachum

  --
  Chromium Developers mailing list: chromium-dev@googlegroups.com
  View archives, change email options, or unsubscribe:
     http://groups.google.com/group/chromium-dev

 Thanx for the quick response. Do you know what flags can be used with
 chrome's startup switch js-flags, or where that documentation exists?

Here are the ones supported by the standalone V8 shell.  Not all of
them will work in Google Chrome.  Some of them will cause your browser
to be incompatible, slower, insecure or crashy.  For the boolean ones
you insert no (without a dash or underscore) after the double dash
to indicate they should be false.

  --debug_code (generate extra code (comments, assertions) for debugging)
type: bool  default: false
  --emit_branch_hints (emit branch hints)
type: bool  default: false
  --push_pop_elimination (eliminate redundant push/pops in assembly code)
type: bool  default: true
  --print_push_pop_elimination (print elimination of redundant
push/pops in assembly code)
type: bool  default: false
  --expose_natives_as (expose natives in global object)
type: string  default: NULL
  --expose_debug_as (expose debug in global object)
type: string  default: NULL
  --natives_file (alternative natives file)
type: string  default: NULL
  --expose_gc (expose gc extension)
type: bool  default: false
  --stack_trace_limit (number of stack frames to capture)
type: int  default: 10
  --inline_new (use fast inline allocation)
type: bool  default: true
  --stack_trace_on_abort (print a stack trace if an assertion failure occurs)
type: bool  default: true
  --trace (trace function calls)
type: bool  default: false
  --defer_negation (defer negation operation)
type: bool  default: true
  --check_stack (check stack for overflow, interrupt, breakpoint)
type: bool  default: true
  --lazy (use lazy compilation)
type: bool  default: true
  --debug_info (add debug information to compiled functions)
type: bool  default: true
  --strict (strict error checking)
type: bool  default: false
  --min_preparse_length (Minimum length for automatic enable preparsing)
type: int  default: 1024
  --compilation_cache (enable compilation cache)
type: bool  default: true
  --remote_debugging (enable remote debugging)
type: bool  default: false
  --trace_debug_json (trace debugging JSON request/response)
type: bool  default: false
  --debugger_auto_break (automatically set the debug break flag when
debugger commands are in the queue (experimental))
type: bool  default: false
  --max_stack_trace_source_length (maximum length of function source
code printed in a stack trace.)
type: int  default: 300
  --new_space_size (size of (each semispace in) the new generation)
type: int  default: 0
  --old_space_size (size of the old generation)
type: int  default: 0
  --gc_global (always perform global GCs)
type: bool  default: false
  --gc_interval (garbage collect after n allocations)
type: int  default: -1
  --trace_gc (print one trace line following each garbage collection)
type: bool  default: false
  --trace_gc_verbose (print more details following each garbage collection)
type: bool  default: false
  --collect_maps (garbage collect maps from which no objects can be reached)
type: bool  default: true
  --use_idle_notification (Use idle notification to reduce memory footprint.)
type: bool  default: true
  --use_ic (use inline caching)
type: bool  default: true
  --native_code_counters (generate extra code for manipulating stats counters)
type: bool  default: false
  --always_compact (Perform compaction on every full GC)
type: bool  default: false
  --never_compact (Never perform compaction on full GC - testing only)
type: bool  default: false
  --cleanup_ics_at_gc (Flush inline caches prior to mark compact collection.)
type: bool  default: true
  --cleanup_caches_in_maps_at_gc (Flush code caches in maps during
mark compact cycle.)
type: bool  default: true
  --canonicalize_object_literal_maps (Canonicalize maps for object literals.)
type: bool  default: true
  --h (print this message)
type: bool  default: false
  --allow_natives_syntax (allow natives syntax)
type: bool  default: false
  --optimize_ast

Re: [chromium-dev] enabling javascript strict warnings and errors?

2009-12-05 Thread Erik Corry
2009/12/5 nachumk nach...@gmail.com:
 Hi,

 I'm using Chrome 4.0.249.25.

 Is there a way to enable chrome's javascript to be more verbose and
 to
 break on errors such as an undeclared variable (i don't want to
 implicity declare them)?

Not in Chrome.

You might want to look into the JS compiler
http://closure-compiler.appspot.com/home
http://googlecode.blogspot.com/2009/11/introducing-closure-tools.html


 Thanx,
 nachum

 --
 Chromium Developers mailing list: chromium-dev@googlegroups.com
 View archives, change email options, or unsubscribe:
    http://groups.google.com/group/chromium-dev


-- 
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-dev


[chromium-dev] Re: Which editor do you recommend on Mac OS X?

2009-11-03 Thread Erik Corry

2009/11/3 Paweł Hajdan Jr. phajdan...@chromium.org:
 Recently I started working more and more on Mac OS X, and I'm trying to find
 an editor that would work the best for me.
 On Linux I used GNU Emacs with many customizations. Some of the most handy
 ones for working on Chromium were Google Style script and launching the
 compilation from the editor. I also used Vim keybindings (Viper) a lot.
 On Mac, I tried Aquamacs, but some of my customizations broke. Also, the Vim
 emulation seems to be only half-working (selecting text in Vim visual mode
 isn't working).
 I also tried Xcode, but it seems that the editor isn't powerful enough. I
 don't know how to quickly remove an entire line (2 keystrokes in Vim), or a
 few lines (3 keystrokes). However, the Open Quickly option (cmd-shift-d)
 is very nice. I also couldn't find an easy solution to automatically remove
 trailing whitespace in Xcode.
 Do you have any tips about effective editing on Mac? Which solution would
 you recommend?

Vim?

 


--~--~-~--~~~---~--~~
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-dev
-~--~~~~--~~--~--~---



[chromium-dev] Re: Why is Linux Chrome so fast?

2009-10-28 Thread Erik Corry

Do you have anti-virus software on your Windows machines?

2009/10/28 Adam Barth aba...@chromium.org:

 My three laptops have relatively comparable hardware and run Chrome on
 Windows, Mac, and Linux respectively.  The Linux version of Chrome
 feels ridiculously faster than Windows and Mac.  Do we understand why
 this is?  Can we make Windows and Mac feel that fast too?

 General observations:

 1) Scroll performance is extremely good.  Even on Gmail, I can only
 get the mouse to lead the scroll bar by a dozen pixels.  On Slashdot,
 it doesn't even look like I can do that.

 2) Tab creation is very fast.  Maybe the zygote is helping here?  Can
 we pre-render the NTP on other platforms?

 3) Startup time is faster than calculator.

 Adam

 


--~--~-~--~~~---~--~~
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-dev
-~--~~~~--~~--~--~---



[chromium-dev] Re: Canary bot, now with formatted layout test results

2009-10-15 Thread Erik Corry

This makes me very happy!

2009/10/15 Glenn Wilson gwil...@chromium.org:
 Hi Webkit gardeners,
 The Windows canary bot now generates formatted layout test results on each
 build that had unexpected failing layout tests, which means you can quickly
 see layout test failures, diffs, and upstream baselines without running the
 tool manually. The goal of this output is to help gardeners assess what may
 have changed, and how to best handle the failure.
 For example, here are the failures for build 13359:
 http://build.chromium.org/buildbot/layout_test_results/webkit-rel-webkit-org/29119/index-13359.html
 To see the formatted layout test failures for a specific canary build, just
 click on the layout test results link in the archive webkit test results
 step, then click on the index-.html file.
 There's still more work to do, including getting the formatter working
 properly on the Mac  Linux canaries, adding flakiness data, adding a link
 directly to the waterfall display, and more.  Many thanks go to Ojan,
 Nicolas and all others who endured my many code reviews, and Eric Roman and
 Dimitri for the original spec and design.
 Please let me know what you think, and what changes you'd like to see.
 Glenn


 




-- 
Erik Corry, Software Engineer
Google Denmark ApS.  CVR nr. 28 86 69 84
c/o Philip  Partners, 7 Vognmagergade, P.O. Box 2227, DK-1018
Copenhagen K, Denmark.

--~--~-~--~~~---~--~~
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-dev
-~--~~~~--~~--~--~---



[chromium-dev] The Great Webkit Comparison Table

2009-10-07 Thread Erik Corry

On quirksmode, sponsored by Google, apparently:

http://www.quirksmode.org/blog/archives/2009/10/there_is_no_web.html

-- 
Erik Corry, Software Engineer
Google Denmark ApS.  CVR nr. 28 86 69 84
c/o Philip  Partners, 7 Vognmagergade, P.O. Box 2227, DK-1018
Copenhagen K, Denmark.

--~--~-~--~~~---~--~~
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-dev
-~--~~~~--~~--~--~---



[chromium-dev] Re: Cross-compiling on ARM

2009-08-21 Thread Erik Corry

2009/8/21 Antoine Labour pi...@google.com:

 There's growing interest from several parties in getting Chrome to
 cross-compile onto linux/ARM. Let's make sure everyone is on the same
 page so that we don't duplicate efforts.
 I understand that Joel Stanley, Dean McNamee and Lei Zhang have
 already been doing a lot of work towards that. There's a wiki page
 there: http://code.google.com/p/chromium/wiki/LinuxChromiumArm

 I've identified a few missing pieces to get a full version of chrome -
 there may be others. They are mostly build infrastructure issues:
 - v8 snapshotting needs to be disabled currently, we'd like to enable
 it. That means executing mksnapshot as a target executable, either
 through qemu or directly on device, i.e. the infrastructure to run a
 target program.

Actually the armulator (ARM simulator in V8) can be used to create ARM
snapshots without running anything on the target platform.  The C++
work is done for this, but the build file work isn't.  What is needed
is to build mksnapshot.cc with the armulator.  This is done with
simulator=arm in the scons build.  I don't know how it's done with
gyp.  When the snapshot.cc file has been generated by mksnapshot you
need to rebuild V8 from scratch, this time with the cross compiler.
With the scons build that would be (after saving snapshot.cc and
blowing away the other generated files) with snapshot=nobuild arch=arm
wordsize=32.  You need to make sure the CXX, AR, RANLIB and CC
environment variables point to your cross toolchain.

As I say, the build file work for this is not done yet.  I am sure
that it would be worth doing.  The snapshot support makes startup of
the VM faster at the cost of a moderate increase in size (moderate for
a system capable of running Chromium).  Since Chromium starts the VM
on every new tab that is worth doing.  On the other hand the browser
is perfectly usable without this optimization so it is no show-stopper
for the ARM version.

 - Gyp uses pkg-config to find includes/lib dependencies, i.e. it's
 going to look at the host for them. If your target distribution
 matches your host maybe you're fine, but it may not work at all, so
 it'd would be good to extract that and get a way to specify the
 dependencies explicitly.
 - The chrome os build relies on the protobuf compiler. The current
 build system builds it as a target executable, so we either need to
 run in qemu / on device it as above, or change the build system to
 understand target vs host executables.

 I wanted to double check if anyone was working on any of that, or if
 anyone has good ideas about how to achieve each of them. Please speak
 up !

 Antoine

 




-- 
Erik Corry, Software Engineer
Google Denmark ApS.  CVR nr. 28 86 69 84
c/o Philip  Partners, 7 Vognmagergade, P.O. Box 2227, DK-1018
Copenhagen K, Denmark.

--~--~-~--~~~---~--~~
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-dev
-~--~~~~--~~--~--~---



[chromium-dev] Re: Halting JS execution in V8?

2009-08-13 Thread Erik Corry

2009/8/12 Drew Wilson atwil...@chromium.org:
 Hi all,
 It appears from looking at the worker code that if worker script enters into
 an infinite loop, the associated worker thread/process will never exit. The
 JavaScriptCore implementation uses the JSC timeoutChecker mechanism to
 halt script execution. Is there an analog we can use for V8?

Not yet, but there is a clear need and a design is in place.

 I didn't see anything that looked particularly likely from a quick browse
 through the v8 headers, and I also didn't see anything similar for page
 script in V8Proxy.cpp, so I'm obviously missing something since page script
 handles infinite loops gracefully.
 -atw
 




-- 
Erik Corry, Software Engineer
Google Denmark ApS.  CVR nr. 28 86 69 84
c/o Philip  Partners, 7 Vognmagergade, P.O. Box 2227, DK-1018
Copenhagen K, Denmark.

--~--~-~--~~~---~--~~
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-dev
-~--~~~~--~~--~--~---