HP Forums
RPL/2 - Printable Version

+- HP Forums (https://www.hpmuseum.org/forum)
+-- Forum: Not HP Calculators (/forum-7.html)
+--- Forum: Not quite HP Calculators - but related (/forum-8.html)
+--- Thread: RPL/2 (/thread-4743.html)

Pages: 1 2 3


RE: RPL/2 - pier4r - 12-26-2018 03:47 PM

For info the author of RPL/2 relased also the binaries for the raspi, so the procedure should be easier.
http://www.rpl2.net/telechargements.php

I can see there the binaries for amd64 and arm7vl, under a debian environment.

semi OT.

From the thread Thomas linked.

http://www.hpmuseum.org/cgi-sys/cgiwrap/hpmuseum/archv021.cgi?read=248053#248229

Myself in answer to "will the RPL die"?
"I second the hopefully. RPL is not so bad but it's a bit unpratical compared to other procedural languages."

Now while I still think it is not so practical for large programs, it now don't want it to die. Even just for the diversity of the approach that provides another point of view to program with. So much one can learn over time and so much preserved messages on the internet can show the evolution of a person viewpoint.


RE: RPL/2 - JKB - 12-26-2018 04:58 PM

(12-26-2018 03:47 PM)pier4r Wrote:  For info the author of RPL/2 relased also the binaries for the raspi, so the procedure should be easier.
http://www.rpl2.net/telechargements.php

I can see there the binaries for amd64 and arm7vl, under a debian environment.

semi OT.
Warning, arm7vl is an old release. If I have time, I will rebuild an up to date RPL/2 release for Raspbian.
Quote:Myself in answer to "will the RPL die"?
"I second the hopefully. RPL is not so bad but it's a bit unpratical compared to other procedural languages."

Now while I still think it is not so practical for large programs, it now don't want it to die. Even just for the diversity of the approach that provides another point of view to program with. So much one can learn over time and so much preserved messages on the internet can show the evolution of a person viewpoint.
I develop RPL/2 not to emulate a calculator but to write very large programs. New RECORD type is added to obtain a direct access to data in very large tables by name. TABLE type was added a long time ago to directly access to data in a compound type by number. If RPL is not practical for large programs, RPL/2 contains some features that are missing in RPL and can be used to write large programs (process synchronization with threads [SPAWN] and child process [DETACH], mutexes, semaphores, compound types, external types and libraries, SQL connectors...).

For example, I have written a program to optimize very large salesman (space and time) problem with cartography in a PostgreSQL database on multi CPU sparc systems (112 CPU).

Best regards,

JKB


RE: RPL/2 - JKB - 12-28-2018 08:32 AM

Hello,

I have uploaded two deb packages for Debian/testing. Both are available at http://www.rpl2.net and on a anonymous FTP at fermat.systella.fr.

ARM relase doesn't contains PostScript interface nor MySQL/PostgreSQL support. But RPL/CAS is built. This package was built on a rPI 2.

Code:

RPL/2> version

1: { "RPL/2 version 4.1.29"
     { 4
       1
       29
       "RELEASE" }
     "Thursday 12/27/18, 23:20:44 CET"
     "/usr/local"
     "GNUPLOT"
     "FORCE GNUPLOT PATH"
     "POSTSCRIPT DISABLED"
     "VIM"
     "MYSQL DISABLED"
     "POSTGRESQL DISABLED"
     "MOTIF"
     "RPL/CAS"
     "EXPERIMENTAL CODE DISABLED"
     "32 BITS ABI"
     "ARMV7L-UNKNOWN-LINUX-GNUEABIHF" }

Amd64 version is built with all features :
Code:

RPL/2> version

1: { "RPL/2 version 4.1.29"
     { 4
       1
       29
       "RELEASE" }
     "Thursday 12/27/18, 23:19:56 CET"
     "/usr/local"
     "GNUPLOT"
     "FORCE GNUPLOT PATH"
     "POSTSCRIPT"
     "VIM"
     "MYSQL"
     "POSTGRESQL"
     "MOTIF"
     "RPL/CAS"
     "EXPERIMENTAL CODE DISABLED"
     "64 BITS ABI"
     "X86_64-PC-LINUX-GNU" }

Please note that FTP was configured on an OpenVMS operating system. You should use a binary transfer to download packages.

Best regards,

JKB


RE: RPL/2 - JKB - 02-03-2019 01:49 PM

Release 4.1.30 is available with following bugfixes:
- major bug is fixed in software interrupts subsystem that tried to
lock a cleared mutex;
- deadlock is fixed in SYSEVAL. This intrinsic function entered in
deadlock if stdout/stderr of spawned subprocess was longer than pipe buffer
size;
- segmentation fault is fixed in NEG (on integer matrices);
- CoCoALib is upgraded to avoid a compilaton failure on 32 bits systems;
- SST does not enter anymore in called subroutine.

Regards,

JKB


RE: RPL/2 - JKB - 02-03-2019 01:50 PM

Of course, I have uploaded also deb packages for Debian/testing and for Raspbian/testing.


RE: RPL/2 - pier4r - 02-03-2019 07:24 PM

Awesome that you still are dedicated on it despite the seemingly small interest. It is not easy! Well done.

I should finally use my raspi one day. I dislike unused powerful devices, damn me.


RE: RPL/2 - JKB - 02-03-2019 10:42 PM

(02-03-2019 07:24 PM)pier4r Wrote:  Awesome that you still are dedicated on it despite the seemingly small interest. It is not easy! Well done.

I should finally use my raspi one day. I dislike unused powerful devices, damn me.

I use RPL/2 every days to run very large simulations (there are multithreading/multitasking capabilities in RPL/2).

Example:
Code:

#!/usr/local/bin/rpl -cspd

SPECIFICATION
<<
    "none" implicit
    nbrcpus 1 ->list crtab 'PROCESSUS' save

    <<
        // Les interruptions sont non interruptibles
        -> PROC
        <<
            "Interruption "
            PROC wfdata PROC recv drop ->str " depuis " + +
            PROC wfdata PROC recv drop
            dup ->str 3 roll swap + disp
            'PROCESSUS' swap 1 ->list { } put
            PROCESSUS disp
        >>
    >> 1 stoswi

    0
    -> J
    <<
        do
            // Recherche d'un processus disponible
            'PROCESSUS' 0

            while
                1 PROCESSUS size for I
                    if
                        PROCESSUS I 1 ->list get
                        { } same
                    then
                        drop I exit
                    end
                next

                dup 0 same
            repeat
                .1 wait
            end

            1 ->list
            J

            <<
                wfpoke peek drop2

                -> I J
                <<
                    rand wait
                    "Début thread "
                    I list-> drop ->str + disp
                    1 swi
                    J send
                    I list-> drop send wfack
                    "Fin thread "
                    I list-> drop ->str + disp
                >>
            >>

            1 swiqueue
            spawn swap drop dup 4 rolld put
            1 swiunlock
            "START" swap poke

            'J' incr
        until
            false
        end
    >>
>>

This program starts subprocess (SPAWN) , one by CPU thread. Each subprocess sends data to main thread. I use this kind of program to spawn ngspice simulations in parallel to compute amplifiers harmonic distorsion.

Since I have announce last release (this afternoon CET), sources were donwloaded three times and amd64 deb package once.


RE: RPL/2 - compsystems - 11-20-2020 07:28 PM

version 1.4-32 http://www.rpl2.net/telechargements.php


RE: RPL/2 - Sukiari - 11-21-2020 08:39 AM

One thing I must note is that while this is brilliant, last time I looked there was no documentation. At great pain I was able to obtain some obsolete documentation which seemed to mostly work. Please consider documentation, it's incredibly valuable. One of my biggest issues with Apple's Swift is that the documentation is mostly obsolete or absent or refers to headers. It's maybe not as big a deal but please consider it.


RE: RPL/2 - JKB - 12-19-2021 10:00 AM

(11-21-2020 08:39 AM)Sukiari Wrote:  One thing I must note is that while this is brilliant, last time I looked there was no documentation. At great pain I was able to obtain some obsolete documentation which seemed to mostly work. Please consider documentation, it's incredibly valuable. One of my biggest issues with Apple's Swift is that the documentation is mostly obsolete or absent or refers to headers. It's maybe not as big a deal but please consider it.

I agree. But I don't have time enough to write a documentation in english. If you want, I can open for you a CVS tree to translate in a first time the french documentation.

JKB