From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm0-x233.google.com (mail-wm0-x233.google.com [IPv6:2a00:1450:400c:c09::233]) by hurricane.the-brannons.com (Postfix) with ESMTPS id 2132877D0D for ; Fri, 25 Dec 2015 15:18:05 -0800 (PST) Received: by mail-wm0-x233.google.com with SMTP id l126so212818497wml.0 for ; Fri, 25 Dec 2015 15:18:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=date:from:to:cc:subject:message-id:references:mime-version :content-type:content-disposition:in-reply-to:user-agent; bh=KYZbBztS/JY9Dg5JIfvZKMjyOia/B2RINrSL+NokwHE=; b=ekGBMGOPsyjbXBCMHjDufrkLFEw4Y+kU8XeqYrKKswE66z/LSYESiBEVJID+x7tJFn pVQfu9e7JvZDUnS+s93aekdh99lBnq5UjLWZrK92SaFwIb9nqLfQyNJBfqPJwrrzoYGz 4PXrvIUy92vgJkdGnoF2eUb9yKTJBLGwt6zJoLPG3/JudNi5DsEADSOTF4kEFT3QSW0I 3xGkzT2hkaM9B6wVEYnbdTWcadofdM7ccT29pBjqLkMu5VnhyKtFevp4OPwkzI1p8rW+ ZzyN6P1xeK8dsTt2btKZTwqySpl301XJLZyDV2ymvWFTHZgKt9hJ420AqLvvUlLPxg8g vbgg== X-Received: by 10.28.187.198 with SMTP id l189mr30862859wmf.89.1451085499750; Fri, 25 Dec 2015 15:18:19 -0800 (PST) Received: from hob.adamthompson.me.uk (4.7.7.a.a.1.e.f.f.f.0.1.7.2.2.0.5.9.a.d.8.a.b.f.0.b.8.0.1.0.0.2.ip6.arpa. [2001:8b0:fba8:da95:227:10ff:fe1a:a774]) by smtp.gmail.com with ESMTPSA id w73sm25214465wmw.21.2015.12.25.15.18.18 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 25 Dec 2015 15:18:19 -0800 (PST) Date: Fri, 25 Dec 2015 23:18:11 +0000 From: Adam Thompson To: Karl Dahlke Cc: edbrowse-dev@lists.the-brannons.com Message-ID: <20151225231811.GA3834@hob.adamthompson.me.uk> References: <20151123100928.eklhad@comcast.net> <20151224183947.GA5173@hob.adamthompson.me.uk> <20151124212941.eklhad@comcast.net> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="Dxnq1zWXvFF0Q93v" Content-Disposition: inline In-Reply-To: <20151124212941.eklhad@comcast.net> User-Agent: Mutt/1.5.24 (2015-08-30) Subject: Re: [Edbrowse-dev] One program Two processes X-BeenThere: edbrowse-dev@lists.the-brannons.com X-Mailman-Version: 2.1.20 Precedence: list List-Id: Edbrowse Development List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 25 Dec 2015 23:18:05 -0000 --Dxnq1zWXvFF0Q93v Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Thu, Dec 24, 2015 at 09:29:41PM -0500, Karl Dahlke wrote: > Well as we consider various architectures > I always keep in the back of my head that we're a couple of volunteers in= our spare time. > (I wonder how many fulltime people work on Chrome, or Edge.) > We may not have the resources to do it the best way. We're resource limited in terms of developers perhaps, but we should aim for a good design since this usually makes things easier = in the long run. I think the time this will take to get right is probably worth the effort, particularly as we're currently progressing at a relatively fast rate. > In fact this year has been an anomaly, with Geoff and Kevin joining us, > and really making good progress. It's also brought us closer to getting more websites working and we've gained a lot of momentum as a project because of there hard work. I think we shouldn't waste this momentum and, although we may move incrementally, I think we need to increment in the rig= ht direction, even if that makes the individual increments smaller than they otherwise may be. > > That's cool, but what if async starts taking a long time, > > like some sort of exponential algorithm or something? >=20 > Then it takes a long time. > It shouldn't, unless the js page is badly written, but if it does, then s= o be it. > I'm not trying to be glib, just saying we don't have the time or resources > to build a preemtive time slicing operating system in edbrowse, > that can context switch in and out of js sessions, > in an engine independent fashion, or even within the constraints of a fix= ed engine - > I think we're just not going to have the time for that. And I'm not suggesting for a moment that we do that. That's why a good architecture is important, so that the underlying operating system can handle that stuff. What I mean is that, by using processes and threads correctly, we can get the async stuff to run without having to manage our own, instruction level, time slicing. > Pieces of js run under the ospices of the engine, > without preemption, in their particular context / window, > and we just hope they are sane. > On a modern computer, a js computation would have to be insane > to last more than a millisecond, and sure it could happen, > and if it does edbrowse might not react as well as Chrome, > but sometimes we're trying to get it functional, > without necessarily covering all the corner cases. That's true, but, as I said above, I'd rather we take smaller steps towards= an architecture which can, when we have time to implement them, handle all the corner cases rather than jump on an easier one which we then have to rewrite in the future when we need true async stuff. We've done that before in other areas and it's taken a while to fix those p= roblems. Also, there are several well established design patterns which will complet= ely kill edbrowse with the new synchronous http. One of which uses a long running http request to allow a server to push information periodically to a web page. This currently will cause edbrowse to hang indefinitely, which is probably not what we want. Unfortunately, things like this are increasingly common as developpers expect AJAX to be truely asynchronous. I'm not saying to hold on what we've currently got, far from it, but rather I'm saying we need to think about this when designing things. > P.S. If my finances continue to nosedive I might have to return to the wo= rk force, > and that's one less edbrowse developer. > Let's hope that doesn't happen. It'd be a shame if you have to go back to work, but if it happens it happen= s. That only makes it even more important to put in the correct foundations now rather than keep saying we don't have time to create them. Cheers, Adam. --Dxnq1zWXvFF0Q93v Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQEcBAEBAgAGBQJWfc6zAAoJELZ22lNQBzHOfxMH/3l02xzYIfEABsYZQiio9fwF e81LgxQp2Vg/axCHr/16PYseteXKKbPv6SOy2y6165NDuS5EvchPsRCglfIA0SJ3 ZjaCDqPFQPOLqUwXFr7yCBDFWQjQewmhy+KEuRzPWwPD2FzIFqgaaV4n23ilGPhe DgX7iRk4ysL2UttyaWfeKu0bDQ/VoZXyAur4nRKNO7O0N4yB0Z+Mb8IPDNsssrgE P2w+ySEM+QLupbxFrq8rwc6+jBZNsozewJwExj9wplcCv0BWuJk4wE1F/HJpk5gu TTOBBOkdzDd0/sDEeQpuYv6fD7zO+d+UOCFnHXT/2sbcQOfJkeDQIoRJ3s23sEY= =oK2+ -----END PGP SIGNATURE----- --Dxnq1zWXvFF0Q93v--