Lazarus

Programming => Networking and Web Programming => Pas2JS => Topic started by: Leledumbo on December 23, 2018, 07:22:44 pm

Title: Pas2JS for the masses
Post by: Leledumbo on December 23, 2018, 07:22:44 pm
I've been playing around with Pas2JS in the last couple of weeks. Glad to see it come out as a wonderful tool. However, I don't find its usage any straightforward. FYI, I'm on Linux.

The most cumbersome problem is the packaging. Starting from the wiki article (http://wiki.lazarus.freepascal.org/pas2js#Where_to_get_it), I download a precompiled snapshot from the ftp (http://ftp://ftpmaster.freepascal.org/fpc/contrib/pas2js) to get the compiler binary, compileserver a.k.a. simpleserver, webidl2pas and libpas2js.so. There are various demos and packages ready to use. However, contrary to the wiki article, which says:
Quote
As for the FPC compiler, a configuration file is supported, which has the same syntax as the FPC config file. Note that the snapshots and svn version already contains a default pas2js.cfg with unit search paths (-Fu) for the rtl and fcl.
There's no pas2js.cfg in the distributed snapshot. Digging in pas2js in my fpc source code, I do find one, so I just copy it to the bin directory of the snapshot. Analyzing the content, though, it seems to be designed to be used inside its directory in fpc source code, so I have to adjust some of the paths to reflect the snapshot hierarchy. During that process, there's a line that says:
Quote
-Fu$CfgDir/dist
that points to a non-existing dir dist. Again browsing fpc source code, it's found and contains a single rtl.js file, which is referenced in the wiki article but not mentioned elsewhere where to get it. Again I copy the dir to bin to match that -Fu line (because my pas2js.cfg is in the bin directory) and trying out the hello world example (from the wiki article) only to find out that it refers to rtl.run(); without ever referencing rtl.js (I thought -Jc option will do, but it doesn't as the first line starts with rtl.module, where rtl is an unknown object. With that fixed, finally the example works.

That experience is certainly not friendly at all, I can go through it just because I'm quite experienced in using fpc and I have good enough sense of exploration. For anyone else coming to try, it will be a showstopper. I don't think I want to put above steps into my tutorial, I'd rather wait for the packaging to be user friendly first.

P.S.:
It's unclear to me how the snapshot was generated, a make install in the pas2js directory only installs the binaries and seemingly useless lib directory, no packages, no demos, dist directory and pas2js.cfg excluded.
Title: Re: Pas2JS for the masses
Post by: lainz on December 23, 2018, 10:08:59 pm
install it with fpcupdeluxe and it just works
Title: Re: Pas2JS for the masses
Post by: Ñuño_Martínez on December 24, 2018, 11:30:55 am
I agree with Leledumbo here.  Pas2js documentation is confusing, specially in the installation and configuration parts.  I've never be able to make it run, and I tried different versions and times (and complained about it in this forums IIRC).

Didn't knew about fpcupdeluxe.  That needs more detailed information (here and in the documentation).
Title: Re: Pas2JS for the masses
Post by: Leledumbo on December 24, 2018, 11:49:48 am
install it with fpcupdeluxe and it just works
I don't even know it can be installed that way, really the documentation and/or packaging need an improvement.
Title: Re: Pas2JS for the masses
Post by: Thaddy on December 24, 2018, 12:45:40 pm
install it with fpcupdeluxe and it just works
I don't even know it can be installed that way, really the documentation and/or packaging need an improvement.
I agree with that. At the moment only experienced people can install and use it without too many problems. Fpcdeluxe doesn't help too much, btw. Paths are missing as you already observed.
OTOH it is being worked on and it is nice technology. It will mature over time.
Title: Re: Pas2JS for the masses
Post by: heejit on December 24, 2018, 06:18:06 pm
Why not add to Online Package Manager it will be easier for everyone.
Title: Re: Pas2JS for the masses
Post by: Thaddy on December 24, 2018, 06:26:45 pm
Why not add to Online Package Manager it will be easier for everyone.
It IS in OPM. But not correctly configured.
Title: Re: Pas2JS for the masses
Post by: Leledumbo on December 25, 2018, 11:08:19 pm
Why not add to Online Package Manager it will be easier for everyone.
Having it both in OPM and as standalone package (like fpc zip archive) is better than only in either. Standalone package will be useful for coding directly on server, i.e. for quickfix.
Title: Re: Pas2JS for the masses
Post by: heejit on December 26, 2018, 10:19:35 am
Yes both required

Installation and configuration of development environment should be easy
as copy and paste no need to dig into config file looking for library etc.


Title: Re: Pas2JS for the masses
Post by: Ñuño_Martínez on December 26, 2018, 11:13:55 am
Problems seems to be:
So somebody that knows how does it work should fix that.  Better before Lazarus 2.0 comes out.
Title: Re: Pas2JS for the masses
Post by: mattias on February 18, 2019, 06:24:24 pm
There's no pas2js.cfg in the distributed snapshot.

Bug.  That is fixed in 1.4.
Title: Re: Pas2JS for the masses
Post by: RTOlivier on May 18, 2023, 02:32:29 am
Hello, 

Do anyone know where I can find new version Pas2js ? 
Is anyone still use it ?  Seems like there's no activity anymore. 

Thank you
Title: Re: Pas2JS for the masses
Post by: PierceNg on May 18, 2023, 03:10:59 am
Do anyone know where I can find new version Pas2js ? 
Is anyone still use it ?  Seems like there's no activity anymore. 

https://wiki.freepascal.org/pas2js#Where_to_get_it

pas2js wiki pages are being regularly updated
Title: Re: Pas2JS for the masses
Post by: RTOlivier on May 19, 2023, 12:25:45 pm
I know but there is no release anymore after 2022-02-21.

Unlike dwscript for example, which is updated regularly, pas2js seems already dead. It'a a nice prosuct and I wantes to build my project on it.
Title: Re: Pas2JS for the masses
Post by: TRon on May 19, 2023, 12:30:43 pm
I know but there is no release anymore after 2022-02-21.

Unlike dwscript for example, which is updated regularly, pas2js seems already dead. It'a a nice prosuct and I wantes to build my project on it.
Yeah as dead as a ghost. https://gitlab.com/freepascal.org/fpc/pas2js/-/commits/main

Strange that you feel that way as it is one of the latest additions to FPC and one that is updated on a regular base.
Title: Re: Pas2JS for the masses
Post by: PascalDragon on May 21, 2023, 01:02:21 pm
I know but there is no release anymore after 2022-02-21.

Unlike dwscript for example, which is updated regularly, pas2js seems already dead. It'a a nice prosuct and I wantes to build my project on it.
Yeah as dead as a ghost. https://gitlab.com/freepascal.org/fpc/pas2js/-/commits/main

The most important part is the parser and that is not part of the pas2js repository, but of the FPC main repository in packages/fcl-passrc (https://gitlab.com/freepascal.org/fpc/source/-/commits/main/packages/fcl-passrc).

Also there definitely is progress, because TWS is using pas2js as part of their TMS Web Core product.
Title: Re: Pas2JS for the masses
Post by: verasan on October 04, 2023, 10:11:50 pm
it loos like a toy!
Title: Re: Pas2JS for the masses
Post by: PascalDragon on October 05, 2023, 08:59:32 pm
it loos like a toy!

How do you come to that conclusion? 🤔
Title: Re: Pas2JS for the masses
Post by: Leledumbo on October 07, 2023, 11:18:24 am
it loos like a toy!

How do you come to that conclusion? 🤔
Reading his other replies regarding Pas2JS, he demands comprehensive documentation and can't learn from demos and examples.
Title: Re: Pas2JS for the masses
Post by: PascalDragon on October 08, 2023, 01:23:01 pm
it loos like a toy!

How do you come to that conclusion? 🤔
Reading his other replies regarding Pas2JS, he demands comprehensive documentation and can't learn from demos and examples.

Having read the other replies after the one here I tend to agree. 😅
TinyPortal © 2005-2018