Lazarus
Programming => Networking and Web Programming => Pas2JS => Topic started 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:
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:
-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.
-
install it with fpcupdeluxe and it just works
-
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).
-
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.
-
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.
-
Why not add to Online Package Manager it will be easier for everyone.
-
Why not add to Online Package Manager it will be easier for everyone.
It IS in OPM. But not correctly configured.
-
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.
-
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.
-
Problems seems to be:
- Documentation (http://wiki.lazarus.freepascal.org/pas2js#Where_to_get_it)is outdated and/or incomplete.
- OPM package is outdated or buggy or incomplete.
- There's not an out-of-the-box package (i.e. deb, rpm, ZIP ...) for people who don't use Lazarus.
So somebody that knows how does it work should fix that. Better before Lazarus 2.0 comes out.
-
There's no pas2js.cfg in the distributed snapshot.
Bug. That is fixed in 1.4.
-
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
-
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
-
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.
-
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.
-
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.
-
it loos like a toy!
-
it loos like a toy!
How do you come to that conclusion? 🤔
-
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.
-
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. 😅