Thread: Rapid Euphoria programming language, version 3.1.1: 32-bit to 64-bit

  1. #1
    Registered User
    Join Date
    Oct 2019
    Posts
    23

    Rapid Euphoria programming language, version 3.1.1: 32-bit to 64-bit

    Hi,

    My name is Shian, I maintain a website which is dedicated to the Euphoria programming language version 3.1.1. A 32-bit language for Windows, DOS (using protected mode), Linux and FreeBSD.

    Euphoria 3.1.1 is written in C language.

    The website address is:
    The Euphoria Programming Language

    I am looking for an experienced C or C++ programmer, who is interested in creating a 64-bit version of Euphoria 3.1.1.

    It mainly means to use 80-bit double instead of 64-bit double, and 64-bit integer instead of 32-bit integer.

    Yet, unlike many other cases, the main goal is to create a 64-bit version of the language which is fully compatible with the 32-bit version. i.e. from the user's perspective, everything must remain the same... 31-bit signed Euphoria integer type (NOT 63-bit signed Euphoria integer), and basically, from the user perspective, the language should remain a 32-bit language.

    Being fully compatible with 32-bit code means that the documentation, the libraries, the archive, and any previous code - will work and behave exactly the same on a 64-bit system (server or PC), which is the main goal.

    Personally I continue to develop the standard library of Euphoria 3.1.1, in a project that I call: Lib2. As any other Euphoria 3.1.1 library, it is a 32-bit library (therefore it will work the same on DOS operating system as well).

    Rapid Euphoria 3.1.1 is a very unique programming language, very powerful - yet extremely minimalist and simple, and undoubtedly an interesting language.

    I wish that I could do the work by myself, but I'm not an experienced C programmer.

    It is possible to do it, and fairly straightforward, especially if you already know Euphoria 3.1.1 (which is very easy to learn).

    No new features are required - it is enough that the interpreter for (Windows and) Linux (especially Linux, for servers), will run on a 64-bit system without i386 libraries. 64-bit interpreter for Linux, exu, is the most important goal.

    Thank you,
    Shian.

    The Euphoria Programming Language

  2. #2
    Registered User Sir Galahad's Avatar
    Join Date
    Nov 2016
    Location
    The Round Table
    Posts
    277
    Quote Originally Posted by shian View Post
    Hi,

    My name is Shian, I maintain a website which is dedicated to the Euphoria programming language version 3.1.1. A 32-bit language for Windows, DOS (using protected mode), Linux and FreeBSD.

    Euphoria 3.1.1 is written in C language.

    The website address is:
    The Euphoria Programming Language

    I am looking for an experienced C or C++ programmer, who is interested in creating a 64-bit version of Euphoria 3.1.1.

    It mainly means to use 80-bit double instead of 64-bit double, and 64-bit integer instead of 32-bit integer.

    Yet, unlike many other cases, the main goal is to create a 64-bit version of the language which is fully compatible with the 32-bit version. i.e. from the user's perspective, everything must remain the same... 31-bit signed Euphoria integer type (NOT 63-bit signed Euphoria integer), and basically, from the user perspective, the language should remain a 32-bit language.

    Being fully compatible with 32-bit code means that the documentation, the libraries, the archive, and any previous code - will work and behave exactly the same on a 64-bit system (server or PC), which is the main goal.

    Personally I continue to develop the standard library of Euphoria 3.1.1, in a project that I call: Lib2. As any other Euphoria 3.1.1 library, it is a 32-bit library (therefore it will work the same on DOS operating system as well).

    Rapid Euphoria 3.1.1 is a very unique programming language, very powerful - yet extremely minimalist and simple, and undoubtedly an interesting language.

    I wish that I could do the work by myself, but I'm not an experienced C programmer.

    It is possible to do it, and fairly straightforward, especially if you already know Euphoria 3.1.1 (which is very easy to learn).

    No new features are required - it is enough that the interpreter for (Windows and) Linux (especially Linux, for servers), will run on a 64-bit system without i386 libraries. 64-bit interpreter for Linux, exu, is the most important goal.

    Thank you,
    Shian.

    The Euphoria Programming Language
    No source code for the compiler?

  3. #3
    Registered User
    Join Date
    Oct 2019
    Posts
    23
    When you download Euphoria 3.1.1 from the Download page at:
    Download Euphoria 3.1.1
    it includes the entire source code (interpreter, binder, translator, everything).

  4. #4
    Registered User Sir Galahad's Avatar
    Join Date
    Nov 2016
    Location
    The Round Table
    Posts
    277
    Quote Originally Posted by shian View Post
    When you download Euphoria 3.1.1 from the Download page at:
    Download Euphoria 3.1.1
    it includes the entire source code (interpreter, binder, translator, everything).
    Why do you have to run a binary to install it though? The way it's usually done is use a makefile to build the binary. It's difficult to examine and verify the integrity of executable formats. The bin directory should be empty until the user types `make`.

  5. #5
    Registered User
    Join Date
    Oct 2019
    Posts
    23
    Quote Originally Posted by Sir Galahad View Post
    Why do you have to run a binary to install it though? The way it's usually done is use a makefile to build the binary. It's difficult to examine and verify the integrity of executable formats. The bin directory should be empty until the user types `make`.
    The files are compressed .zip, .tgz or .tar (also for DOS/Windows). The complete source code is in a single directory called 'source' - this is the way it was done in 2007...

  6. #6
    Registered User
    Join Date
    Oct 2019
    Posts
    23
    By the way, on Linux, gcc version 6.0+ will probably not compile the source code without modifications to the command line arguments or 'make' file. (Rapid Euphoria code is from 2007).

  7. #7
    Registered User
    Join Date
    Oct 2019
    Posts
    23
    Before anyone may wonder... I must say that Open Euphoria programming language is practically NOT a successor for Rapid Euphoria, nor Phix programming language; And one cannot and must not rely on these two programming languages to run Rapid Euphoria code correctly or safely.

    It is suffice to mention that 64-bit Open Euphoria will treat a 31-bit Rapid Euphoria integer type as an unsigned number, as a result for many calculations. But of course the incompatibility is way bigger then this.

  8. #8
    C++ Witch laserlight's Avatar
    Join Date
    Oct 2003
    Location
    Singapore
    Posts
    28,413
    Doesn't the programming language have some kind community that you can reach out to for help? I mean, it looks like you're asking for a volunteer on an open source project, in which case the volunteer very likely must love the Euphoria programming language to be willing to work on it for free. It's far more likely that you'll find a Euphoria programmer who knows C than you'll find a C programmer who loves Euphoria.
    Quote Originally Posted by Bjarne Stroustrup (2000-10-14)
    I get maybe two dozen requests for help with some sort of programming or design problem every day. Most have more sense than to send me hundreds of lines of code. If they do, I ask them to find the smallest example that exhibits the problem and send me that. Mostly, they then find the error themselves. "Finding the smallest program that demonstrates the error" is a powerful debugging tool.
    Look up a C++ Reference and learn How To Ask Questions The Smart Way

  9. #9
    Registered User
    Join Date
    Oct 2019
    Posts
    23
    Until the year 2007 there was a worldwide enthusiastic community for Rapid Euphoria. When Euphoria became an open source (2007), the Open Euphoria group continued to develop the Euphoria programming language, at this point most (or all) the enthusiastic users left. Open Euphoria is, from my perspective, just a forum, not a programming language with community of users.

    I personally dislike anything about Open Euphoria's strategy, to say the least. And I am not alone in this matter. Therefore I could not get help from them, and I would not like to get any help from them.

    I've already contacted anyone that I know, yet most of the users left and their email address is no longer active, so it is impossible to find someone and ask for help. As I said before, I am not going to ask help from Open Euphoria group, and it is not a personal matter; most, if not all users of Rapid Euphoria, would not do it, and there are many good reasons for that.

    You are right, yet I did all that I could, including getting the author of Rapid Euphoria advice, but I could not find someone to ask for help.

    I wish to revive Rapid Euphoria and at the moment I am the community. (Me and 'useful').

  10. #10
    C++ Witch laserlight's Avatar
    Join Date
    Oct 2003
    Location
    Singapore
    Posts
    28,413
    In that case, it seems to me that you should learn to program in C. Why would a C programmer want to work on what you've described as a dead programming language unless you pay them satisfactorily for their time?

    You may have to become a proficient C programmer yourself, make the updates you've described, and then hopefully the signs of life you're putting into Euphoria will attract programmers, some of whom might be C programmers who will join your effort.
    Last edited by laserlight; 11-01-2019 at 01:09 PM.
    Quote Originally Posted by Bjarne Stroustrup (2000-10-14)
    I get maybe two dozen requests for help with some sort of programming or design problem every day. Most have more sense than to send me hundreds of lines of code. If they do, I ask them to find the smallest example that exhibits the problem and send me that. Mostly, they then find the error themselves. "Finding the smallest program that demonstrates the error" is a powerful debugging tool.
    Look up a C++ Reference and learn How To Ask Questions The Smart Way

  11. #11
    Registered User
    Join Date
    Oct 2019
    Posts
    23
    I've left C and Assembly a long time ago, many years ago, for doing what I have to do for living. It wasn't really my will or my choice, it was a reasonable decision.

    Life is a circle, and as we move forward many people start to look back. Because 'New' does not mean 'Better'.
    Some skilled C programmers will find Rapid Euphoria again, and will realize, soon or later, that it is still a much better language then Python or Ruby or many other popular languages; it just lack of libraries.

  12. #12
    Registered User Sir Galahad's Avatar
    Join Date
    Nov 2016
    Location
    The Round Table
    Posts
    277
    I still don't see the source code for `exu`. Searched for exu.c and exu.e but found neither. And the current bin/exu seems to be a linux binary.

  13. #13
    Registered User
    Join Date
    Oct 2019
    Posts
    23
    Quote Originally Posted by Sir Galahad View Post
    I still don't see the source code for `exu`. Searched for exu.c and exu.e but found neither. And the current bin/exu seems to be a linux binary.
    Sorry, you should find the complete source code in euphoria/source directory (not in euphoria/bin).

    [It includes the source code for the interpreter, binder and translator.
    The interpreter for Linux is the most important goal.]

  14. #14
    Registered User Sir Galahad's Avatar
    Join Date
    Nov 2016
    Location
    The Round Table
    Posts
    277
    Quote Originally Posted by shian View Post
    Sorry, you should find the complete source code in euphoria/source directory (not in euphoria/bin).

    [It includes the source code for the interpreter, binder and translator.
    The interpreter for Linux is the most important goal.]


    Again, the C files are incomplete. The rest of the source files are coded in Euphoria itself. All else in that directory are shell scripts that call the binaries `ex`, `exu`, docs, text files, et cetera.

  15. #15
    Registered User
    Join Date
    Oct 2019
    Posts
    23
    Quote Originally Posted by Sir Galahad View Post
    Again, the C files are incomplete. The rest of the source files are coded in Euphoria itself. All else in that directory are shell scripts that call the binaries `ex`, `exu`, docs, text files, et cetera.
    Everything is in euphoria/source (please read also the readme.txt file).

    To make sure it works, I just compiled it all on Linux Mint 17.3 (In VirtualBox, Linux kernel 3.19.0-32-generic #37~14.04.1-Ubuntu i686 GNU/Linux), using gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.4).

    These are the steps to compile everything, the interpreter (exu), the translator (ecu + ecu.a), and the backend (backendu):


    • Download the compressed file for Linux from Download Euphoria 3.1.1.
    • Decompress the euphoria directory (and its sub-directories) in /home/yourname.
    • Define two environment variables in /home/yourname/.profile :

    Code:
    EUDIR=/home/yourname/euphoria
    PATH=$EUDIR/bin:$PATH
    export EUDIR PATH

    • Log out and log in again for .profile file to take effect. Now you can actually start programming in Euphoria 3.1.1.
    • Open the terminal in directory /home/yourname/euphoria/source, and run: ./buildu (build everything).

    You should get similar output:
    Code:
    shian@shian-VirtualBox ~/euphoria/source $ ./buildu
    Translator library
    -rw-r--r-- 1 shian shian 104674 Nov  2 19:25 ecu.a
    moving translator library to euphoria/bin
    Interpreter
    
    21 .c files were created.
    To build your executable file, type: ./emake
    compiling front-end
    compiling backend - for FreeBSD add -DEBSD
    linking - for FreeBSD remove -ldl
    -rwxr-xr-x 1 shian shian 361709 Nov  2 19:25 exu
    Back-end for binding
    rm: cannot remove ‘*.o’: No such file or directory
    
    9 .c files were created.
    To build your executable file, type: ./emake
    linking - for FreeBSD omit -ldl
    ./bmakeu: line 31: /home/shian/upx: No such file or directory
    -rwxr-xr-x 1 shian shian 166422 Nov  2 19:25 backendu
    Translator
    
    40 .c files were created.
    To build your executable file, type: ./emake
    compiling with GNU C
    main-.c
    main-0.c
    ec.c
    misc.c
    wildcard.c
    global.c
    error.c
    machine.c
    c_out.c
    symtab.c
    symtab_0.c
    scanner.c
    scanne_0.c
    file.c
    sort.c
    emit.c
    emit_0.c
    emit_1.c
    parser.c
    parser_0.c
    parser_1.c
    c_decl.c
    c_dec0.c
    c_dec1.c
    compile.c
    compil_0.c
    compil_1.c
    compil_2.c
    compil_3.c
    compil_4.c
    compil_5.c
    compil_6.c
    compil_7.c
    compil_8.c
    compil_9.c
    traninit.c
    get.c
    main.c
    pathopen.c
    init-.c
    linking
    you can now execute: ./ec
    -rwxr-xr-x 1 shian shian 846488 Nov  2 19:26 ecu
    moving programs to euphoria/bin
    shian@shian-VirtualBox ~/euphoria/source $

    • That is all. Remember that Euphoria 3.1.1 must be installed correctly before you run any of the build files (see source/readme.txt), and the two environment variables (EUDIR and PATH) must be set correctly.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Importance of english language in programming language
    By Lea Pi in forum General Discussions
    Replies: 10
    Last Post: 04-17-2015, 07:43 AM
  2. rapid histogramming
    By stabu in forum C Programming
    Replies: 6
    Last Post: 08-22-2008, 11:18 AM
  3. What's the Difference Between a Programming Language and a Scripting Language?
    By Krak in forum A Brief History of Cprogramming.com
    Replies: 23
    Last Post: 07-15-2005, 04:46 PM
  4. MS Windows Welsh Language Version Available
    By hk_mp5kpdw in forum A Brief History of Cprogramming.com
    Replies: 10
    Last Post: 12-03-2004, 04:59 PM
  5. ahhh help....rapid keypress detection
    By technoXavage in forum Game Programming
    Replies: 1
    Last Post: 12-18-2003, 01:00 PM

Tags for this Thread