[webkit-dev] Display Issues

2008-09-11 Thread Binish
Hi All,

I have some display issues with Webkit,i have tried the recent buildl,i have
built using windows and whenever i tries to display some pages  using
Winlauncher,some "Unknown/Junk" characters are getting displayed happens
with Safari  as well,is this a known issue or am i missing soemthign !!

http://tinypic.com/view.php?pic=10y2kiu&s=4

Any help appreciated

Thanks
Binish
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] How does the Javascript garbage collection work?

2008-09-11 Thread Zoltan Herczeg

> On Sep 11, 2008, at 10:57 AM, Josh Chia (л) wrote:
>
>> Is it possible for a "false positive" on the stack to prevent an
>> object from being collected even after calling collect() multiple
>> times?
>
> Sure. That's always theoretically possible with conservative garbage
> collection. But in practice this is unlikely and it is almost
> certainly not a practical problem.
>
> In my experience so far, when diagnosing a problem where an object was
> not collected, it has always been due to another cause.

We have alread tried to find out whether it is possible to any JavaScript
program to prevent freeing unused objects. It seems the non-pointer
integer constants stored in the Register array are too small to accomplish
this task which means it is not possible to make harmful JavaScript
programs, which causes memory overflow only in WebKit based browsers.

Cheers,
Zoltan


___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] WebKit and Windows/Cygwin

2008-09-11 Thread Ariya Hidayat

> For example, I get an error like:
>
> c:\Projects\qt-win-opensource-src-4.4.1=bin\rcc.exe: File does not exist
> '..\..\..\WebCore\page\inspector\WebKit.qrc'

Are you sure this stops the build? IIRC Usually this is a warning only and can 
be ignored. We're working on this, but this is not our high priority.

> Again, the reason I am trying to build the source is as part of some
> research I am doing to see if WebKit is something we can use in the
> development of a thin client for a new product we are developing.

Did you consider my recommendation of just using Qt 4.4's integrated QtWebKit? 
Seriously, looking at how you struggle to build QtWebKit, you can just use Qt 
4.4's QtWebKit *right now*.

> I should also add that the build generates other errors later on in the
> file ..\..\..\JavaScriptCore\wft\Assertions.h. It complains of
> unexpected characters in certain macros formal parameter list.

Sometimes the Qt port of WebKit fails to build, this is to be expected 
(consider the fast development of WebKit). In that case, just checkout a 
revision where somebody from Trolltech did a commit, it has a much higher 
probability that it works.

> I apologize if I appear to be beating a dead horse, but I was hoping if
> I could at least build this stuff, I could begin digging into learning
> how it works.

As I told you again and again, what stops you from using Qt 4.4's QtWebKit? I 
see that you're using Qt 4.4.1 anyway.

NB: no need to cc me, I'm on the list.


Best regards,



-- 
Ariya Hidayat ([EMAIL PROTECTED])
Software Engineer, Trolltech (a Nokia company)
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] WebKit and Windows/Cygwin

2008-09-11 Thread Frank.Lautenbach
I can assure you I've spent quite a bit of time attempting to debug and
build. Again I'm following the instructions on
http://trac.webkit.org/wiki/BuildingQtOnWindows as instructed by other
responders to my post. 

There is a specific error that occurs prior to the build aborting. The
problem involves rcc.exe.

For example, I get an error like:

c:\Projects\qt-win-opensource-src-4.4.1=bin\rcc.exe: File does not exist
'..\..\..\WebCore\page\inspector\WebKit.qrc'

Note that the file does indeed exist in the correct path. I have search
on the internet for this type of error and have found posts on a couple
forums where people (like me) attempting to build under Windows have
seen this problem. Unfortunately, those posts are never answered.

Again, the reason I am trying to build the source is as part of some
research I am doing to see if WebKit is something we can use in the
development of a thin client for a new product we are developing.

I should also add that the build generates other errors later on in the
file ..\..\..\JavaScriptCore\wft\Assertions.h. It complains of
unexpected characters in certain macros formal parameter list.

I apologize if I appear to be beating a dead horse, but I was hoping if
I could at least build this stuff, I could begin digging into learning
how it works.

Frank

-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Ariya Hidayat
Sent: Thursday, September 11, 2008 3:22 AM
To: webkit-dev@lists.webkit.org
Subject: Re: [webkit-dev] WebKit and Windows/Cygwin


> At this point, I am at a total loss as I have yet to be able to build
> anything.

Well, you got the error message. At the risk of pointing the obvious, I
would 
say just trace the error message to find out where it fails.

>   perl
> C:/cygwin/home/Administrator/WebKit/JavaScriptCore/pcre/dftables
> tmp\chartables.c --preprocessor="cl /E"
> Error in tempfile() using \tmp\dftables-.in: Parent directory
> (\tmp\) is not a directory at

Something is wrong with your Perl. What if you create the directory
C:\tmp 
manually first?

A side note: if you just want to give QtWebKit a try, why don't you use
Qt 
4.4? It has WebKit integration already (no need to build it if you use
binary 
package). Refer to the following for details:
http://doc.trolltech.com/4.4/qt4-4-intro.html
http://doc.trolltech.com/4.4/qtwebkit.html



Best regards,


-- 
Ariya Hidayat ([EMAIL PROTECTED])
Software Engineer, Trolltech (a Nokia company)
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] How does the Javascript garbage collection work?

2008-09-11 Thread Darin Adler
On Sep 11, 2008, at 10:57 AM, Josh Chia (谢任中) wrote:

> Is it possible for a "false positive" on the stack to prevent an  
> object from being collected even after calling collect() multiple  
> times?

Sure. That's always theoretically possible with conservative garbage  
collection. But in practice this is unlikely and it is almost  
certainly not a practical problem. One of the things we do in WebKit  
is to make sure that garbage collection occurs when there is very  
little on the stack, by collecting at the "top level" of the event  
loop at key times (for example, when a window is closed).

In my experience so far, when diagnosing a problem where an object was  
not collected, it has always been due to another cause.

 -- Darin

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] How does the Javascript garbage collection work?

2008-09-11 Thread Josh Chia (谢任中)
Is it possible for a "false positive" on the stack to prevent an object from
being collected even after calling collect() multiple times?

On Thu, Sep 11, 2008 at 9:45 AM, Maciej Stachowiak <[EMAIL PROTECTED]> wrote:

>
> On Sep 11, 2008, at 1:53 AM, Josh Chia (谢任中) wrote:
>
> Thanks for the reply.  I have three more questions regarding this.
> 1. I'm getting many valgrind memcheck errors.  I've added a few
> suppressions for them but I'm still getting tons of errors.  Is this normal?
>
>
> I think valgrind is overzealous here - it can't tell when we are setting
> only one of a group of bits, and perhaps doesn't detect that our memory is
> initially zero-fill.
>
> 2. In my debugging, I found that Heap::markConservatively() and other
> functions are reading from the stack.  Heap::markConservatively(), in
> particular, is scanning for pointers to mark.  However some of the stack
> addresses being read from are reported by valgrind as uninitialized, and I
> think probably come from stack frame padding.  Is this expected?
>
>
> It is expected and not harmful. A false positive on the conservative scan
> is not especially harmful.
>
> 3. I am seeing some leaks for certain Node objects like FunctionDeclNode.
>  These use reference counting, not GC, but I think some GC'ed JS objects
> hold on a reference to them.  Is there a way to make the collector
> completely GC everything, so that whatever remains, I can know for sure are
> true leaks?
>
>
> Function objects hold on to things like FuncDeclNode. You can call
> collect() manually to force a GC. We have a dialog in the Safari Debug menu
> that lets you do that.
>
>  - Maciej
>
>
> Josh
>
> On Thu, Sep 11, 2008 at 1:33 AM, Maciej Stachowiak <[EMAIL PROTECTED]> wrote:
>
>>
>> On Sep 11, 2008, at 12:13 AM, Josh Chia (谢任中) wrote:
>>
>> I did some more research.  It seems that KJS does mark-and-sweep 
>> GC,
>> and the marking is to mark objects that are not known to be unreachable, so
>> that those left unmarked can be removed at the end.  Please correct me if
>> I'm wrong.
>>
>>
>> More specifically, it marks objects that are reachable from the root set.
>>
>>
>>
>> On Wed, Sep 10, 2008 at 9:23 PM, Josh Chia (谢任中) <[EMAIL PROTECTED]>wrote:
>>
>>> Hi,
>>>
>>> I'm trying to debug some memory leaks and now need to understand what
>>> collector.{h,cpp} are doing.  Could someone point me to some documents to
>>> explain how the garbage collector works?  I've also run valgrind and it
>>> complained that CollectorBitmap::get() uses an unreferenced value.  I'm not
>>> sure whether this is really wrong, so I'll have to first understand how the
>>> garbage collector works, the alignment magic used with JSCell and whatever
>>> other GC magic I could probably figure out on my own but only after staring
>>> at the code for a long time.
>>>
>>
>> We don't have detailed docs, but I can give you this overview:
>>
>> The basic algorithm is mark and sweep. It's partially conservative - it
>> does a conservative scan of the stack for references but is exact with
>> respect to the heap (both its own and the C++ heap). Some of the code may
>> confuse valgrind but I do not believe there is actual uninitialized access.
>>
>> We arrange it so collector cells are always allocated at a multiple of a
>> power of two, this helps in part by making the conservative scan cheaper.
>>
>> It's really pretty straightforward in terms of algorithms, a fairly
>> amateur (but surprisingly effective) take on a garbage collector. In the
>> future we'd like to consider using a copying collector that supports
>> variable-sized allocations.
>>
>> Regards,
>> Maciej
>>
>>
>
>
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


[webkit-dev] Qt-webkit versus Qt-gecko - a question for the dooble project?

2008-09-11 Thread M. Peterson
Hello,

this is a question to the webkit, FF and konqueror development list:

We develop the new browser DOOBLE under http://dooble.sf.net

It should be an alterative as well for googles chrome browser.

We currently are planning and tried to get familiar with the Qt port
of Firefox, so the gecko machine used with Qt gui, which is done
already by others.

The qt Port of the browser has its repository here:
http://hg.mozilla.org/mozilla-central/file/112722e92de2/widget/src/qt/

New Builds (win/linux) will be ready after a fixing of this bug
https://bugzilla.mozilla.org/show_bug.cgi?id=451129

We then were asked, why not to use webkit.

We are open for that, but the reason to use the current (planned)
settings is, that we have excellent Qt developers and XUL addon
developers for the project.
And that gecko has a big developer base. So the Qt SVN is still at mozilla.
And: one reason was, that the way to code a browser from chromium to
chrome would be a long or even longer was than to use the often build
gecko.

Then we were told, that soon there is as well a Qt port for webkit.

So the question to this list is now, as we do not want to saddle on
the wrong horse:

a) how far is the development of webkit, is it already usable and is
it really better than gecko?

b) How far is the developement of Qt version for konqueror?

c) We might switch to Qt webkit konquerer if that is supported by some
developers joining the Dooble Project, is there someone interested?

d) Are there any comparisons between webkit and gecko performance?

e) We want to integrate a XUL XPI addon for Mail and Message, while
maybe message component could be done/used as well in Qt, if done.
Would it be possible to use XUL gui addons (mail) in the konqueror
browser?

f) the switch from gecko to konqueror/webkit needs many support from
konqueror, would you be interested in merging the project with a code
base, published unter both brands? or maybe: would it be possible to
make a re-brand of Qt-port for konqueror, to start a new aerea, which
has the name "dooble konqueror" which has then the SVN at dooble, and
the installer published at both places?

g) our idea is simply a brand and a triple-integration:
browser+yacy+retromessenger, would that - besides any cooperation
between dooble and konqueror - as well an concept konquerer could
establish?  (even if dooble uses gecko, we are not busy if this idea
is as well used in konqueror - though then a common project would
synergize our forces).

h) Be sure, that without any personal power, we cannot handle a switch
to webkit, as the current team might get a better handling and support
from firefox gecko. Are there any firefox / qt experts, which want to
support this free open dooble browser?

Thanks for replies, as this allows us to have clear focus on both
technologies and to start an open discussion to build a DOOBLE browser
with strony security and safeguarding users privacy.

Regards Max
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] Qt-webkit versus Qt-gecko - a question for the dooble project?

2008-09-11 Thread Ariya Hidayat

> b) How far is the developement of Qt version for konqueror?
>
> c) We might switch to Qt webkit konquerer if that is supported by some
> developers joining the Dooble Project, is there someone interested?

> f) the switch from gecko to konqueror/webkit needs many support from
> konqueror, would you be interested in merging the project with a code
> base, published unter both brands? or maybe: would it be possible to
> make a re-brand of Qt-port for konqueror, to start a new aerea, which
> has the name "dooble konqueror" which has then the SVN at dooble, and
> the installer published at both places?

Right now Konqueror is *not* using QtWebKit, it is still using KHTML.

Also some of your questions and concerns are answered in this page (and those 
linked from there):
http://doc.trolltech.com/4.4/qt4-4-intro.html#qt-webkit-integration

And just in case you are not aware yet, there is a fully usable QtWebKit-based 
browser called Arora. Check this for details:
http://code.google.com/p/arora/




-- 
Ariya Hidayat ([EMAIL PROTECTED])
Software Engineer, Trolltech (a Nokia company)
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] cross-compiling webkit: host amd64-debian-linux, target win32

2008-09-11 Thread Ariya Hidayat

> several mini patches and bugreports were sent in, a few days ago:
> these i will update from the #ifdef WIN32 to #ifdef __MINGW32__ if
> someone lets me know a more appropriate way to do that, i'll do it.

#if COMPILER(MINGW)
#endif





-- 
Ariya Hidayat ([EMAIL PROTECTED])
Software Engineer, Trolltech (a Nokia company)
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] How does the Javascript garbage collection work?

2008-09-11 Thread Maciej Stachowiak


On Sep 11, 2008, at 1:53 AM, Josh Chia (谢任中) wrote:


Thanks for the reply.  I have three more questions regarding this.

1. I'm getting many valgrind memcheck errors.  I've added a few  
suppressions for them but I'm still getting tons of errors.  Is this  
normal?


I think valgrind is overzealous here - it can't tell when we are  
setting only one of a group of bits, and perhaps doesn't detect that  
our memory is initially zero-fill.


2. In my debugging, I found that Heap::markConservatively() and  
other functions are reading from the stack.   
Heap::markConservatively(), in particular, is scanning for pointers  
to mark.  However some of the stack addresses being read from are  
reported by valgrind as uninitialized, and I think probably come  
from stack frame padding.  Is this expected?


It is expected and not harmful. A false positive on the conservative  
scan is not especially harmful.


3. I am seeing some leaks for certain Node objects like  
FunctionDeclNode.  These use reference counting, not GC, but I think  
some GC'ed JS objects hold on a reference to them.  Is there a way  
to make the collector completely GC everything, so that whatever  
remains, I can know for sure are true leaks?


Function objects hold on to things like FuncDeclNode. You can call  
collect() manually to force a GC. We have a dialog in the Safari Debug  
menu that lets you do that.


 - Maciej



Josh

On Thu, Sep 11, 2008 at 1:33 AM, Maciej Stachowiak <[EMAIL PROTECTED]>  
wrote:


On Sep 11, 2008, at 12:13 AM, Josh Chia (谢任中) wrote:

I did some more research.  It seems that KJS does mark-and-sweep  
GC, and the marking is to mark objects that are not known to be  
unreachable, so that those left unmarked can be removed at the  
end.  Please correct me if I'm wrong.


More specifically, it marks objects that are reachable from the root  
set.





On Wed, Sep 10, 2008 at 9:23 PM,  
Josh Chia (谢任中) <[EMAIL PROTECTED]> wrote:

Hi,

I'm trying to debug some memory leaks and now need to understand  
what collector.{h,cpp} are doing.  Could someone point me to some  
documents to explain how the garbage collector works?  I've also  
run valgrind and it complained that CollectorBitmap::get() uses an  
unreferenced value.  I'm not sure whether this is really wrong, so  
I'll have to first understand how the garbage collector works, the  
alignment magic used with JSCell and whatever other GC magic I  
could probably figure out on my own but only after staring at the  
code for a long time.


We don't have detailed docs, but I can give you this overview:

The basic algorithm is mark and sweep. It's partially conservative -  
it does a conservative scan of the stack for references but is exact  
with respect to the heap (both its own and the C++ heap). Some of  
the code may confuse valgrind but I do not believe there is actual  
uninitialized access.


We arrange it so collector cells are always allocated at a multiple  
of a power of two, this helps in part by making the conservative  
scan cheaper.


It's really pretty straightforward in terms of algorithms, a fairly  
amateur (but surprisingly effective) take on a garbage collector. In  
the future we'd like to consider using a copying collector that  
supports variable-sized allocations.


Regards,
Maciej




___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


[webkit-dev] cross-compiling webkit: host amd64-debian-linux, target win32

2008-09-11 Thread Luke Kenneth Casson Leighton
yes, folks, compiling webkit for amd64-debian was so easy that i
decided i needed more pain in my life, so chose to cross-compile
webkit(/gtk) for win32.  before anyone goes into shock and throws
their arms up in agony at these simple words, please bear in mind that
there are at least two other people on #webkit-gtk trying the same
thing :)
here are my notes:
   http://lkcl.net/webkit/cross-compile-gtk.notes.txt
of particular interest to people may be that i believe i have
successfully cross-abortion-compiled a version of icu 3.8.  one of the
issues with icu is that it simply wasn't designed with cross-compiling
in mind.  pkgdata and friends actually auto-generate large amounts of
c code and makefile fragments.  passing in options to target .dll
instead of .so, from the unix-compiled version isn't... an option.  so
i hacked it! the header files included in the tarball mentioned in my
notes is actually the 3.6 includes off of my laptop, with s/3_6/3_8/
in one of the files.  you would do well to _not_ do what i'm doing
(i'll let you know if i _have_ to do it properly, later).
anyone attempting to cross-compile webkit for win32 using mingw32
should avoid the MSVC-compiled versions of icu like the plague.
believe it or not, they actually cause ld to segfault!
several mini patches and bugreports were sent in, a few days ago:
these i will update from the #ifdef WIN32 to #ifdef __MINGW32__ if
someone lets me know a more appropriate way to do that, i'll do it.
what's my justification for doing this much arseing about? i want a
version of webkit-gtk with my shiny new glib patches, to try running
under wine.   :)
l.
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] Curl resourcehandle leaks in Linux/Gtk port

2008-09-11 Thread zaheer ahmad
Thanks Marco for raising the bug.
here are some other leaks i observe on the linux/gtk/arm platform (>50k per
caller), this is with a run of opening around 30 random pages. The heap size
goes to 45M, so definitely there are big leaks in the gtk port.

i will try to find the caller to the next level and split up the generic
functions.

meanwhile, let me know if there are fixes available for any of these

thanks,
Zaheer

: WTF::Vector::reserveCapacity(unsigned int)+40 :
5358380 : 4564
: alloc_small+208 : 4160560 : 8110
: WTF::Vector::reserveCapacity(unsigned int)+56
: 3780004 : 63000
: png_malloc+72 : 1827334 : 3071
: gmem.c:152(IA__g_malloc0+72) : 1706851 : 393
: KJS::HashTable::createTable() const+32 : 1471404 :
15169
: WTF::fastZeroedMalloc(unsigned int)+12 : 1418356 : 551
: WebCore::TextCodecLatin1::decode(char const*, unsigned int, bool,
bool, bool&)+32 : 1330110 : 11667
: __gconv_open+1344 : 1305600 : 32640
: WebCore::String::append(WebCore::String const&)+68 : 1293644
: 869
: sqlite3MallocRaw+48 : 1038129 : 259
: WTF::Vector::reserveCapacity(unsigned int)+56
: 995870 : 9575
: WebCore::GlyphPageTreeNode::initializePage(WebCore::FontData
const*, unsigned int)+448 : 995104 : 2056
: WebCore::StringImpl::create(unsigned short const*, unsigned
int)+116 : 816884 : 32
: WebCore::StringImpl::create(unsigned short const*, unsigned
int)+80 : 510200 : 20
: cairo-scaled-font.c:1796(_cairo_scaled_glyph_lookup+248) :
426720 : 96
: GIFImageReader::do_lzw(unsigned char const*)+760 : 368730
: 8194
: FcPatternObjectAddWithBinding+60 : 365600 : 32
: WTF::Vector::reserveCapacity(unsigned
int)+60 : 363456 : 768
: WebCore::FontCache::getFontDataForCharacters(WebCore::Font const&,
unsigned short const*, int)+36 : 363424 : 1108
: sqlite3Realloc+60 : 292492 : 552
: WebCore::JPEGImageDecoder::setData(WebCore::SharedBuffer*,
bool)+112 : 248920 : 1016
: WebCore::GlyphPageTreeNode::initializePage(WebCore::FontData
const*, unsigned int)+1172 : 211768 : 2056
: strdup+24 : 207135 : 36
: WebCore::Cache::requestResource(WebCore::DocLoader*,
WebCore::CachedResource::Type, WebCore::KURL const&, WebCore::String const&,
bool)+548 : 187680 : 240
: WebCore::StringImpl::create(char const*, unsigned int)+108 :
185274 : 147
: GIFImageReader::read(unsigned char const*, unsigned int,
WebCore::GIFImageDecoder::GIFQuery, unsigned int)+3284 : 184365 :
4097
: GIFImageReader::read(unsigned char const*, unsigned int,
WebCore::GIFImageDecoder::GIFQuery, unsigned int)+3264 : 184365 :
4097
: WebCore::GIFImageDecoder::setData(WebCore::SharedBuffer*,
bool)+112 : 136000 : 320
: alloc_large+96 : 135960 : 586
: KJS::UString::Rep::create(unsigned short*, int)+24 : 127200
: 48
: FcPatternObjectInsertElt+176 : 126720 : 256
: png_create_struct_2+108 : 116560 : 620
: GIFImageReader::read(unsigned char const*, unsigned int,
WebCore::GIFImageDecoder::GIFQuery, unsigned int)+1912 : 101304 :
255
: WebCore::FontCache::getCachedFontData(WebCore::FontPlatformData
const*)+120 : 91964 : 1108
: WebCore::Text::createWithLengthLimit(WebCore::Document*,
WebCore::String const&, unsigned int&, unsigned int)+312 : 86476
: 52
: gmem.c:132(IA__g_malloc+64) : 79287 : 22
: WebCore::StringImpl::StringImpl(unsigned short const*, unsigned
int, unsigned int)+48 : 72278 : 68
:
/home/ir2daily/source-root/freetype2/src/base/ftutil.c:77(ft_mem_qalloc+24)
: 70354 : 413
: WebCore::CachedImage::data(WTF::PassRefPtr,
bool)+424 : 62240 : 80
: gmem.c:171(IA__g_realloc+76) : 57080 : 50
: cairo-hash.c:334(_cairo_hash_table_resize+128) : 56656
: 602
: WebCore::GlyphPageTreeNode::getChild(WebCore::FontData const*,
unsigned int)+80 : 50644 : 44

On Thu, Sep 11, 2008 at 4:39 PM, Marco Barisione <
[EMAIL PROTECTED]> wrote:

> Il giorno mer, 10/09/2008 alle 13.26 +0530, zaheer ahmad ha scritto:
> > In the linux Gtk port, with Webkit revision 33493, i see that the
> > resource handles (curl backend) never get released after completing
> > the data transfer for that request. This results in big leaks in
> > resourcehandles as well as the curl internal data structures. (~800k
> > on opening nytimes.com and closing the connection)
>
> See http://bugs.webkit.org/show_bug.cgi?id=20777 for a possible fix
>
>
> --
> Marco Barisione
>
> ___
> webkit-dev mailing list
> webkit-dev@lists.webkit.org
> http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev
>
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


[webkit-dev] Webkit Support Library

2008-09-11 Thread [EMAIL PROTECTED]

Hello,
I'd like to use webkit in Delphi (pascal) application.
I was able to create wrapper around webkit COM interface but I'm unable 
to register it because of

non existing Webkit Support Library dlls.

I know there is souce code for those libraries but I cannot build it (I 
do not have development enviroment for C# or C++). And I couldn't find 
binaries on webkit.org.


Is there any way to obtain those DLL files?

Bauglir
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] Curl resourcehandle leaks in Linux/Gtk port

2008-09-11 Thread Marco Barisione
Il giorno mer, 10/09/2008 alle 13.26 +0530, zaheer ahmad ha scritto:
> In the linux Gtk port, with Webkit revision 33493, i see that the
> resource handles (curl backend) never get released after completing
> the data transfer for that request. This results in big leaks in
> resourcehandles as well as the curl internal data structures. (~800k
> on opening nytimes.com and closing the connection)

See http://bugs.webkit.org/show_bug.cgi?id=20777 for a possible fix


-- 
Marco Barisione

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] Curl resourcehandle leaks in Linux/Gtk port

2008-09-11 Thread Marco Barisione
Il giorno mer, 10/09/2008 alle 22.36 -0700, Mike Emmel ha scritto:
> No suggestions. I wrote he original code and did not care much for it
> even when I wrote it.

I think that Zaheer is mainly interest in the memory leak, this should
be easily fixable, I will fix it as soon as I finish with the other
memory management stuff.

-- 
Marco Barisione

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] How does the Javascript garbage collection work?

2008-09-11 Thread Zoltan Herczeg
Hi Josh,

When a C/C++ function allocates stack space (with decreasing the stack
pointer), it does not initialize the variables there. You need to
initialize them by assignment operators. Reading such variables by the GC
yields an error in valgrind.

Cheers,
Zoltan

> Thanks for the reply.  I have three more questions regarding this.
> 1. I'm getting many valgrind memcheck errors.  I've added a few
> suppressions
> for them but I'm still getting tons of errors.  Is this normal?
> 2. In my debugging, I found that Heap::markConservatively() and other
> functions are reading from the stack.  Heap::markConservatively(), in
> particular, is scanning for pointers to mark.  However some of the stack
> addresses being read from are reported by valgrind as uninitialized, and I
> think probably come from stack frame padding.  Is this expected?
> 3. I am seeing some leaks for certain Node objects like FunctionDeclNode.
>  These use reference counting, not GC, but I think some GC'ed JS objects
> hold on a reference to them.  Is there a way to make the collector
> completely GC everything, so that whatever remains, I can know for sure
> are
> true leaks?
>
> Josh
>
> On Thu, Sep 11, 2008 at 1:33 AM, Maciej Stachowiak <[EMAIL PROTECTED]> wrote:
>
>>
>> On Sep 11, 2008, at 12:13 AM, Josh Chia (л) wrote:
>>
>> I did some more research.  It seems that KJS does mark-and-sweep
>> GC,
>> and the marking is to mark objects that are not known to be unreachable,
>> so
>> that those left unmarked can be removed at the end.  Please correct me
>> if
>> I'm wrong.
>>
>>
>> More specifically, it marks objects that are reachable from the root
>> set.
>>
>>
>>
>> On Wed, Sep 10, 2008 at 9:23 PM, Josh Chia (л)
>> <[EMAIL PROTECTED]>wrote:
>>
>>> Hi,
>>>
>>> I'm trying to debug some memory leaks and now need to understand what
>>> collector.{h,cpp} are doing.  Could someone point me to some documents
>>> to
>>> explain how the garbage collector works?  I've also run valgrind and it
>>> complained that CollectorBitmap::get() uses an unreferenced value.  I'm
>>> not
>>> sure whether this is really wrong, so I'll have to first understand how
>>> the
>>> garbage collector works, the alignment magic used with JSCell and
>>> whatever
>>> other GC magic I could probably figure out on my own but only after
>>> staring
>>> at the code for a long time.
>>>
>>
>> We don't have detailed docs, but I can give you this overview:
>>
>> The basic algorithm is mark and sweep. It's partially conservative - it
>> does a conservative scan of the stack for references but is exact with
>> respect to the heap (both its own and the C++ heap). Some of the code
>> may
>> confuse valgrind but I do not believe there is actual uninitialized
>> access.
>>
>> We arrange it so collector cells are always allocated at a multiple of a
>> power of two, this helps in part by making the conservative scan
>> cheaper.
>>
>> It's really pretty straightforward in terms of algorithms, a fairly
>> amateur
>> (but surprisingly effective) take on a garbage collector. In the future
>> we'd
>> like to consider using a copying collector that supports variable-sized
>> allocations.
>>
>> Regards,
>> Maciej
>>
>>
> ___
> webkit-dev mailing list
> webkit-dev@lists.webkit.org
> http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev
>

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] How does the Javascript garbage collection work?

2008-09-11 Thread Josh Chia (谢任中)
Thanks for the reply.  I have three more questions regarding this.
1. I'm getting many valgrind memcheck errors.  I've added a few suppressions
for them but I'm still getting tons of errors.  Is this normal?
2. In my debugging, I found that Heap::markConservatively() and other
functions are reading from the stack.  Heap::markConservatively(), in
particular, is scanning for pointers to mark.  However some of the stack
addresses being read from are reported by valgrind as uninitialized, and I
think probably come from stack frame padding.  Is this expected?
3. I am seeing some leaks for certain Node objects like FunctionDeclNode.
 These use reference counting, not GC, but I think some GC'ed JS objects
hold on a reference to them.  Is there a way to make the collector
completely GC everything, so that whatever remains, I can know for sure are
true leaks?

Josh

On Thu, Sep 11, 2008 at 1:33 AM, Maciej Stachowiak <[EMAIL PROTECTED]> wrote:

>
> On Sep 11, 2008, at 12:13 AM, Josh Chia (谢任中) wrote:
>
> I did some more research.  It seems that KJS does mark-and-sweep 
> GC,
> and the marking is to mark objects that are not known to be unreachable, so
> that those left unmarked can be removed at the end.  Please correct me if
> I'm wrong.
>
>
> More specifically, it marks objects that are reachable from the root set.
>
>
>
> On Wed, Sep 10, 2008 at 9:23 PM, Josh Chia (谢任中) <[EMAIL PROTECTED]>wrote:
>
>> Hi,
>>
>> I'm trying to debug some memory leaks and now need to understand what
>> collector.{h,cpp} are doing.  Could someone point me to some documents to
>> explain how the garbage collector works?  I've also run valgrind and it
>> complained that CollectorBitmap::get() uses an unreferenced value.  I'm not
>> sure whether this is really wrong, so I'll have to first understand how the
>> garbage collector works, the alignment magic used with JSCell and whatever
>> other GC magic I could probably figure out on my own but only after staring
>> at the code for a long time.
>>
>
> We don't have detailed docs, but I can give you this overview:
>
> The basic algorithm is mark and sweep. It's partially conservative - it
> does a conservative scan of the stack for references but is exact with
> respect to the heap (both its own and the C++ heap). Some of the code may
> confuse valgrind but I do not believe there is actual uninitialized access.
>
> We arrange it so collector cells are always allocated at a multiple of a
> power of two, this helps in part by making the conservative scan cheaper.
>
> It's really pretty straightforward in terms of algorithms, a fairly amateur
> (but surprisingly effective) take on a garbage collector. In the future we'd
> like to consider using a copying collector that supports variable-sized
> allocations.
>
> Regards,
> Maciej
>
>
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] How does the Javascript garbage collection work?

2008-09-11 Thread Maciej Stachowiak


On Sep 11, 2008, at 12:13 AM, Josh Chia (谢任中) wrote:

I did some more research.  It seems that KJS does mark-and-sweep GC,  
and the marking is to mark objects that are not known to be  
unreachable, so that those left unmarked can be removed at the end.   
Please correct me if I'm wrong.


More specifically, it marks objects that are reachable from the root  
set.





On Wed, Sep 10, 2008 at 9:23 PM, Josh  
Chia (谢任中) <[EMAIL PROTECTED]> wrote:

Hi,

I'm trying to debug some memory leaks and now need to understand  
what collector.{h,cpp} are doing.  Could someone point me to some  
documents to explain how the garbage collector works?  I've also run  
valgrind and it complained that CollectorBitmap::get() uses an  
unreferenced value.  I'm not sure whether this is really wrong, so  
I'll have to first understand how the garbage collector works, the  
alignment magic used with JSCell and whatever other GC magic I could  
probably figure out on my own but only after staring at the code for  
a long time.


We don't have detailed docs, but I can give you this overview:

The basic algorithm is mark and sweep. It's partially conservative -  
it does a conservative scan of the stack for references but is exact  
with respect to the heap (both its own and the C++ heap). Some of the  
code may confuse valgrind but I do not believe there is actual  
uninitialized access.


We arrange it so collector cells are always allocated at a multiple of  
a power of two, this helps in part by making the conservative scan  
cheaper.


It's really pretty straightforward in terms of algorithms, a fairly  
amateur (but surprisingly effective) take on a garbage collector. In  
the future we'd like to consider using a copying collector that  
supports variable-sized allocations.


Regards,
Maciej

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] WebKit and Windows/Cygwin

2008-09-11 Thread Ariya Hidayat

> At this point, I am at a total loss as I have yet to be able to build
> anything.

Well, you got the error message. At the risk of pointing the obvious, I would 
say just trace the error message to find out where it fails.

>   perl
> C:/cygwin/home/Administrator/WebKit/JavaScriptCore/pcre/dftables
> tmp\chartables.c --preprocessor="cl /E"
> Error in tempfile() using \tmp\dftables-.in: Parent directory
> (\tmp\) is not a directory at

Something is wrong with your Perl. What if you create the directory C:\tmp 
manually first?

A side note: if you just want to give QtWebKit a try, why don't you use Qt 
4.4? It has WebKit integration already (no need to build it if you use binary 
package). Refer to the following for details:
http://doc.trolltech.com/4.4/qt4-4-intro.html
http://doc.trolltech.com/4.4/qtwebkit.html



Best regards,


-- 
Ariya Hidayat ([EMAIL PROTECTED])
Software Engineer, Trolltech (a Nokia company)
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] How does the Javascript garbage collection work?

2008-09-11 Thread Josh Chia (谢任中)
I did some more research.  It seems that KJS does mark-and-sweep
GC,
and the marking is to mark objects that are not known to be unreachable, so
that those left unmarked can be removed at the end.  Please correct me if
I'm wrong.

On Wed, Sep 10, 2008 at 9:23 PM, Josh Chia (谢任中) <[EMAIL PROTECTED]> wrote:

> Hi,
>
> I'm trying to debug some memory leaks and now need to understand what
> collector.{h,cpp} are doing.  Could someone point me to some documents to
> explain how the garbage collector works?  I've also run valgrind and it
> complained that CollectorBitmap::get() uses an unreferenced value.  I'm not
> sure whether this is really wrong, so I'll have to first understand how the
> garbage collector works, the alignment magic used with JSCell and whatever
> other GC magic I could probably figure out on my own but only after staring
> at the code for a long time.
>
> Josh
>
>
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev