<html><head></head><body><div class="ydp49769511yahoo-style-wrap" style="font-family: times new roman, new york, times, serif; font-size: 13px;"><div></div>
        <div><span><div><span><span style="color: rgb(0, 0, 0); font-family: times new roman, new york, times, serif;">Hi Guys</span></span><br></div><div><br></div><div>On Sun, 4 Nov 2018 09:23:57 Michael Van Canneyt wrote ……</div><div><br></div><div>>But once done, we can envision a web page where you enter your program in an</div><div>>editor, it is compiled for you and it can run in the same - or another - web</div><div>>page. It would not need a webserver, so a version running in a web runtime</div><div>>on a tablet and/or smartphone then comes in view.</div><div>>And, of course, the end goal: Running Lazarus in the browser.</div><div><br></div><div>Has anyone checked out our demo at ….<br></div><div><br></div><div>https://www.dropbox.com/sh/401ua59t0qmossd/AACVS4j2NJoLnPivKhfL7S3fa?dl=0</div><div><br></div><div>This shows a rudimentary version of  this “Pascal IDE in a Web Page” functionality as mentioned by Michael.</div><div><br></div><div>It is mocked up with a Castalia based transpiler instead of the Free Pascal one but ast Mattias and Michael have done this great work we can now do it “for real” </div><div><br></div><div>We are keen to get some feedback on this so we can most effectively support the end goal of Lazarus on the Web. (While bearing in mind that our short term objective is to embed our rudimentary IDE into specialist mathematical modelling and control engineering utilities.)</div><div><br></div><div>Steve</div><div><br></div></span><br></div><div><br></div>
        
        </div><div id="ydp5df0df85yahoo_quoted_1990571559" class="ydp5df0df85yahoo_quoted">
            <div style="font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;color:#26282a;">
                
                <div>
                    On Sunday, 4 November 2018, 11:00:08 GMT, pas2js-request@lists.freepascal.org <pas2js-request@lists.freepascal.org> wrote:
                </div>
                <div><br></div>
                <div><br></div>
                <div><div dir="ltr">Send Pas2js mailing list submissions to<br></div><div dir="ltr">    <a href="mailto:pas2js@lists.freepascal.org" rel="nofollow" target="_blank">pas2js@lists.freepascal.org</a><br></div><div dir="ltr"><br></div><div dir="ltr">To subscribe or unsubscribe via the World Wide Web, visit<br></div><div dir="ltr">    <a href="http://lists.freepascal.org/cgi-bin/mailman/listinfo/pas2js" rel="nofollow" target="_blank">http://lists.freepascal.org/cgi-bin/mailman/listinfo/pas2js</a><br></div><div dir="ltr">or, via email, send a message with subject or body 'help' to<br></div><div dir="ltr">    <a href="mailto:pas2js-request@lists.freepascal.org" rel="nofollow" target="_blank">pas2js-request@lists.freepascal.org</a><br></div><div dir="ltr"><br></div><div dir="ltr">You can reach the person managing the list at<br></div><div dir="ltr">    <a href="mailto:pas2js-owner@lists.freepascal.org" rel="nofollow" target="_blank">pas2js-owner@lists.freepascal.org</a><br></div><div dir="ltr"><br></div><div dir="ltr">When replying, please edit your Subject line so it is more specific<br></div><div dir="ltr">than "Re: Contents of Pas2js digest..."<br></div><div dir="ltr"><br></div><div dir="ltr"><br></div><div dir="ltr">Today's Topics:<br></div><div dir="ltr"><br></div><div dir="ltr">   1. mighty milestone: self compiling pas2js (Mattias Gaertner)<br></div><div dir="ltr">   2. Re: mighty milestone: self compiling pas2js (Zbyněk Fiala)<br></div><div dir="ltr">   3. Re: mighty milestone: self compiling pas2js (cbsistem)<br></div><div dir="ltr">   4.  mighty milestone: self compiling pas2js (johnathan dhoe)<br></div><div dir="ltr">   5. Re: mighty milestone: self compiling pas2js (Michael Van Canneyt)<br></div><div dir="ltr">   6. Re: mighty milestone: self compiling pas2js (Mattias Gaertner)<br></div><div dir="ltr"><br></div><div dir="ltr"><br></div><div dir="ltr">----------------------------------------------------------------------<br></div><div dir="ltr"><br></div><div dir="ltr">Message: 1<br></div><div dir="ltr">Date: Sat, 3 Nov 2018 23:07:47 +0100<br></div><div dir="ltr">From: Mattias Gaertner <<a href="mailto:nc-gaertnma@netcologne.de" rel="nofollow" target="_blank">nc-gaertnma@netcologne.de</a>><br></div><div dir="ltr">To: <a href="mailto:pas2js@lists.freepascal.org" rel="nofollow" target="_blank">pas2js@lists.freepascal.org</a><br></div><div dir="ltr">Subject: [Pas2js] mighty milestone: self compiling pas2js<br></div><div dir="ltr">Message-ID: <<a href="mailto:20181103230747.584746a2@limapholos.matflo.wg" rel="nofollow" target="_blank">20181103230747.584746a2@limapholos.matflo.wg</a>><br></div><div dir="ltr">Content-Type: text/plain; charset=US-ASCII<br></div><div dir="ltr"><br></div><div dir="ltr">Hi,<br></div><div dir="ltr"><br></div><div dir="ltr">The trunk compiler can now compile itself to platform NodeJS.<br></div><div dir="ltr">And the compiled compiler can compile itself too, creating the same JS.<br></div><div dir="ltr"><br></div><div dir="ltr">pas2js is now a "real" compiler. ;)<br></div><div dir="ltr"><br></div><div dir="ltr">Mattias<br></div><div dir="ltr"><br></div><div dir="ltr"><br></div><div dir="ltr">------------------------------<br></div><div dir="ltr"><br></div><div dir="ltr">Message: 2<br></div><div dir="ltr">Date: Sat, 3 Nov 2018 23:10:29 +0100<br></div><div dir="ltr">From: Zbyněk Fiala <<a href="mailto:zbynek.fiala@gmail.com" rel="nofollow" target="_blank">zbynek.fiala@gmail.com</a>><br></div><div dir="ltr">To: <a href="mailto:pas2js@lists.freepascal.org" rel="nofollow" target="_blank">pas2js@lists.freepascal.org</a><br></div><div dir="ltr">Subject: Re: [Pas2js] mighty milestone: self compiling pas2js<br></div><div dir="ltr">Message-ID: <<a href="mailto:570ade5f-c5f4-f1ae-7e19-4f95c45ce309@gmail.com" rel="nofollow" target="_blank">570ade5f-c5f4-f1ae-7e19-4f95c45ce309@gmail.com</a>><br></div><div dir="ltr">Content-Type: text/plain; charset=utf-8<br></div><div dir="ltr"><br></div><div dir="ltr">Great. Congratulations!<br></div><div dir="ltr"><br></div><div dir="ltr"><br></div><div dir="ltr">Dne 3.11.2018 v 23:07 Mattias Gaertner via Pas2js napsal(a):<br></div><div dir="ltr">> Hi,<br></div><div dir="ltr">><br></div><div dir="ltr">> The trunk compiler can now compile itself to platform NodeJS.<br></div><div dir="ltr">> And the compiled compiler can compile itself too, creating the same JS.<br></div><div dir="ltr">><br></div><div dir="ltr">> pas2js is now a "real" compiler. ;)<br></div><div dir="ltr">><br></div><div dir="ltr">> Mattias<br></div><div dir="ltr">> _______________________________________________<br></div><div dir="ltr">> Pas2js maillist  -  <a href="mailto:Pas2js@lists.freepascal.org" rel="nofollow" target="_blank">Pas2js@lists.freepascal.org</a><br></div><div dir="ltr">> <a href="http://lists.freepascal.org/cgi-bin/mailman/listinfo/pas2js" rel="nofollow" target="_blank">http://lists.freepascal.org/cgi-bin/mailman/listinfo/pas2js</a><br></div><div dir="ltr"><br></div><div dir="ltr"><br></div><div dir="ltr"><br></div><div dir="ltr">------------------------------<br></div><div dir="ltr"><br></div><div dir="ltr">Message: 3<br></div><div dir="ltr">Date: Sat, 3 Nov 2018 18:22:01 -0500 (CDT)<br></div><div dir="ltr">From: cbsistem <<a href="mailto:cbsistem@yahoo.com.br" rel="nofollow" target="_blank">cbsistem@yahoo.com.br</a>><br></div><div dir="ltr">To: <a href="mailto:pas2js@lists.freepascal.org" rel="nofollow" target="_blank">pas2js@lists.freepascal.org</a><br></div><div dir="ltr">Subject: Re: [Pas2js] mighty milestone: self compiling pas2js<br></div><div dir="ltr">Message-ID: <<a href="mailto:1541287321478-0.post@n8.nabble.com" rel="nofollow" target="_blank">1541287321478-0.post@n8.nabble.com</a>><br></div><div dir="ltr">Content-Type: text/plain; charset=us-ascii<br></div><div dir="ltr"><br></div><div dir="ltr">very good. congratulations<br></div><div dir="ltr"><br></div><div dir="ltr"><br></div><div dir="ltr"><br></div><div dir="ltr"><br></div><div dir="ltr">-----<br></div><div dir="ltr">cbsistem<br></div><div dir="ltr">Brasil<br></div><div dir="ltr">--<br></div><div dir="ltr">Sent from: <a href="http://pas2js.38893.n8.nabble.com/" rel="nofollow" target="_blank">http://pas2js.38893.n8.nabble.com/</a><br></div><div dir="ltr"><br></div><div dir="ltr"><br></div><div dir="ltr">------------------------------<br></div><div dir="ltr"><br></div><div dir="ltr">Message: 4<br></div><div dir="ltr">Date: Sat, 3 Nov 2018 22:05:25 -0400<br></div><div dir="ltr">From: johnathan dhoe <<a href="mailto:johndhoe9123@gmail.com" rel="nofollow" target="_blank">johndhoe9123@gmail.com</a>><br></div><div dir="ltr">To: <a href="mailto:pas2js@lists.freepascal.org" rel="nofollow" target="_blank">pas2js@lists.freepascal.org</a><br></div><div dir="ltr">Subject: [Pas2js]  mighty milestone: self compiling pas2js<br></div><div dir="ltr">Message-ID:<br></div><div dir="ltr">    <CAJABaukPz5vhvmKYtvJ7pN2-WhkUudNPzhTGmuPa1Ra+<a href="mailto:np9TGA@mail.gmail.com" rel="nofollow" target="_blank">np9TGA@mail.gmail.com</a>><br></div><div dir="ltr">Content-Type: text/plain; charset="utf-8"<br></div><div dir="ltr"><br></div><div dir="ltr">I won't knock the achievement on a purely technical level, but from a<br></div><div dir="ltr">practical standpoint, what exactly is the intended use case for this? Why<br></div><div dir="ltr">specifically would I want to use the NodeJS version, when the native Pascal<br></div><div dir="ltr">version will always of course be significantly faster?<br></div><div dir="ltr"><br></div><div dir="ltr">In my view, the whole draw of Pas2JS as a concept is that it allows you to<br></div><div dir="ltr">*avoid* directly writing JavaScript (which is a generally bad, very poorly<br></div><div dir="ltr">designed language by all accounts) as much as possible, instead remaining<br></div><div dir="ltr">in Pascal and simply letting the transpiler do the work.<br></div><div dir="ltr">-------------- next part --------------<br></div><div dir="ltr">An HTML attachment was scrubbed...<br></div><div dir="ltr">URL: <<a href="http://lists.freepascal.org/pipermail/pas2js/attachments/20181103/087dd00c/attachment-0001.html" rel="nofollow" target="_blank">http://lists.freepascal.org/pipermail/pas2js/attachments/20181103/087dd00c/attachment-0001.html</a>><br></div><div dir="ltr"><br></div><div dir="ltr">------------------------------<br></div><div dir="ltr"><br></div><div dir="ltr">Message: 5<br></div><div dir="ltr">Date: Sun, 4 Nov 2018 09:23:57 +0100 (CET)<br></div><div dir="ltr">From: Michael Van Canneyt <<a href="mailto:michael@freepascal.org" rel="nofollow" target="_blank">michael@freepascal.org</a>><br></div><div dir="ltr">To: pas2js discussions <<a href="mailto:pas2js@lists.freepascal.org" rel="nofollow" target="_blank">pas2js@lists.freepascal.org</a>><br></div><div dir="ltr">Subject: Re: [Pas2js] mighty milestone: self compiling pas2js<br></div><div dir="ltr">Message-ID: <<a href="mailto:alpine.DEB.2.20.1811040910480.8778@home.telenet.be" rel="nofollow" target="_blank">alpine.DEB.2.20.1811040910480.8778@home.telenet.be</a>><br></div><div dir="ltr">Content-Type: text/plain; charset=US-ASCII; format=flowed<br></div><div dir="ltr"><br></div><div dir="ltr"><br></div><div dir="ltr"><br></div><div dir="ltr">On Sat, 3 Nov 2018, johnathan dhoe wrote:<br></div><div dir="ltr"><br></div><div dir="ltr">> I won't knock the achievement on a purely technical level, but from a<br></div><div dir="ltr">> practical standpoint, what exactly is the intended use case for this? Why<br></div><div dir="ltr">> specifically would I want to use the NodeJS version, when the native Pascal<br></div><div dir="ltr">> version will always of course be significantly faster?<br></div><div dir="ltr">><br></div><div dir="ltr">> In my view, the whole draw of Pas2JS as a concept is that it allows you to<br></div><div dir="ltr">> *avoid* directly writing JavaScript (which is a generally bad, very poorly<br></div><div dir="ltr">> designed language by all accounts) as much as possible, instead remaining<br></div><div dir="ltr">> in Pascal and simply letting the transpiler do the work.<br></div><div dir="ltr"><br></div><div dir="ltr">Your view is correct.<br></div><div dir="ltr"><br></div><div dir="ltr">However, the nodejs compiler is not targeted specifically. <br></div><div dir="ltr">But a browser-based version definitely is, and I am working on this last step.<br></div><div dir="ltr"><br></div><div dir="ltr">Because nodejs gives you file access, the porting is easier than attempting<br></div><div dir="ltr">to port to the browser at once. We now know that the compiler can recompile<br></div><div dir="ltr">itself, and the next step is abstracting away the file system.<br></div><div dir="ltr"><br></div><div dir="ltr">This was by and large already done from day 1, but there are some remaining<br></div><div dir="ltr">things to be done, which I am working on now:<br></div><div dir="ltr">Because of the asynchronous nature of the browser (imagine it has to fetch<br></div><div dir="ltr">an additional file from a server) this presents some additional<br></div><div dir="ltr">difficulties.<br></div><div dir="ltr"><br></div><div dir="ltr">But once done, we can envision a web page where you enter your program in an<br></div><div dir="ltr">editor, it is compiled for you and it can run in the same - or another - web<br></div><div dir="ltr">page. It would not need a webserver, so a version running in a web runtime<br></div><div dir="ltr">on a tablet and/or smartphone then comes in view.<br></div><div dir="ltr"><br></div><div dir="ltr">And, of course, the end goal: Running Lazarus in the browser.<br></div><div dir="ltr"><br></div><div dir="ltr">Michael.<br></div><div dir="ltr"><br></div><div dir="ltr"><br></div><div dir="ltr">------------------------------<br></div><div dir="ltr"><br></div><div dir="ltr">Message: 6<br></div><div dir="ltr">Date: Sun, 4 Nov 2018 10:45:26 +0100<br></div><div dir="ltr">From: Mattias Gaertner <<a href="mailto:nc-gaertnma@netcologne.de" rel="nofollow" target="_blank">nc-gaertnma@netcologne.de</a>><br></div><div dir="ltr">To: <a href="mailto:pas2js@lists.freepascal.org" rel="nofollow" target="_blank">pas2js@lists.freepascal.org</a><br></div><div dir="ltr">Subject: Re: [Pas2js] mighty milestone: self compiling pas2js<br></div><div dir="ltr">Message-ID: <<a href="mailto:20181104104526.0c522647@limapholos.matflo.wg" rel="nofollow" target="_blank">20181104104526.0c522647@limapholos.matflo.wg</a>><br></div><div dir="ltr">Content-Type: text/plain; charset=US-ASCII<br></div><div dir="ltr"><br></div><div dir="ltr">On Sat, 3 Nov 2018 22:05:25 -0400<br></div><div dir="ltr">johnathan dhoe <<a href="mailto:johndhoe9123@gmail.com" rel="nofollow" target="_blank">johndhoe9123@gmail.com</a>> wrote:<br></div><div dir="ltr"><br></div><div dir="ltr">> I won't knock the achievement on a purely technical level, but from a<br></div><div dir="ltr">> practical standpoint, what exactly is the intended use case for this?<br></div><div dir="ltr">> Why specifically would I want to use the NodeJS version, when the<br></div><div dir="ltr">> native Pascal version will always of course be significantly faster?<br></div><div dir="ltr"><br></div><div dir="ltr">The nodejs version is indeed purely technical. <br></div><div dir="ltr"><br></div><div dir="ltr">It is about 10 times slower. I don't know yet how much this is due to<br></div><div dir="ltr">missing optimizations of pas2js (e.g. sets). But it gives you a rough<br></div><div dir="ltr">estimate that the produced code can compete with many server languages<br></div><div dir="ltr">even when parsing strings, which is not a strong point of JS.<br></div><div dir="ltr"><br></div><div dir="ltr">Why nodejs:<br></div><div dir="ltr">As a command line utility the compiler was easiest to port and debug as<br></div><div dir="ltr">a command line utility.<br></div><div dir="ltr"><br></div><div dir="ltr">Benefits:<br></div><div dir="ltr">It helped to spot 30 bugs, I added some new features like {$i<br></div><div dir="ltr">%date%}, and I got a big testsuite. :)<br></div><div dir="ltr">Non technical benefit is the prove that you can write code cross<br></div><div dir="ltr">platform with reasonable amount of IFDEFs and having a rough estimate<br></div><div dir="ltr">about the speed to expect.<br></div><div dir="ltr"><br></div><div dir="ltr"> <br></div><div dir="ltr">> In my view, the whole draw of Pas2JS as a concept is that it allows<br></div><div dir="ltr">> you to *avoid* directly writing JavaScript (which is a generally bad,<br></div><div dir="ltr">> very poorly designed language by all accounts) as much as possible,<br></div><div dir="ltr">> instead remaining in Pascal and simply letting the transpiler do the<br></div><div dir="ltr">> work.<br></div><div dir="ltr"><br></div><div dir="ltr">Exactly.<br></div><div dir="ltr"><br></div><div dir="ltr">Mattias<br></div><div dir="ltr"><br></div><div dir="ltr"><br></div><div dir="ltr">------------------------------<br></div><div dir="ltr"><br></div><div dir="ltr">Subject: Digest Footer<br></div><div dir="ltr"><br></div><div dir="ltr">_______________________________________________<br></div><div dir="ltr">Pas2js maillist  -  <a href="mailto:Pas2js@lists.freepascal.org" rel="nofollow" target="_blank">Pas2js@lists.freepascal.org</a><br></div><div dir="ltr"><a href="http://lists.freepascal.org/cgi-bin/mailman/listinfo/pas2js" rel="nofollow" target="_blank">http://lists.freepascal.org/cgi-bin/mailman/listinfo/pas2js</a><br></div><div dir="ltr"><br></div><div dir="ltr">------------------------------<br></div><div dir="ltr"><br></div><div dir="ltr">End of Pas2js Digest, Vol 11, Issue 4<br></div><div dir="ltr">*************************************<br></div></div>
            </div>
        </div></body></html>