Menu

Introducing Gix-IDE, a new IDE (and more) for GnuCOBOL

2021-02-26
2021-07-02
1 2 3 4 > >> (Page 1 of 4)
  • Marco Ridoni

    Marco Ridoni - 2021-02-26

    Hello,
    in the last couple of years I have worked on a IDE and some platform tools for GnuCOBOL (native debugger, ESQL preprocessor and drivers, HTTP REST server). This started as a series of patches (only used internally) for OCESQL I developed for some consulting work, and devolved into a long and wide-ranging bet with myself to see if I could actually make it all work.

    After a couple of years, I've reached a crossroads: on one hand Gix-IDE is mature enough to be shown to the world. On the other hand shaping it into a more mature and stable tool, as it is my aim, will require a lot more work, feedback from would-be users, and arguably some sponsors to help the development along (I'm participating in the Github Sponsors program).

    I have just released a first version on Github (everything is licensed GPL+LGPL), including the full source code and a binary installer for Windows (macOS and Linux versions have been built and run, but were put in hibernation while I made the whole IDE more stable and developed some needed features).

    Please expect more updates in the following days while I fix a few things I could not get to before the release (yes, I could have waited, but as fellow developers, you're likely to understand that there is a time when you must hit "Publish"). Among these are some more notes about installing and running, configuring the ESQL drivers, etc.

    Any input (or even better a GitHub issue or, in due course, a donation, will be highly appreciated.

    You can find the repository for Gix-Ide on Github, at:

    https://github.com/mridoni/gix/

    Here follows the introduction blurb I've set in the repository, containing some basic info about what Gix-IDE is and does and some notes on how to set it up.

    Marco Ridoni


    gix
    Gix-IDE (or Gix) is an IDE and platform for GnuCOBOL, providing a native debugger, ESQL and HTTP REST services.

    Current state, development and plans for the future
    Gix-IDE is "mostly working" but it probably has many bugs lurking below the surface (or not really below) and several features missing. I want to improve it, make it more stable and add more features (e.g. reintegrating macOS and Linux support - including a native debugger, adding SOAP support, a better DB manager); and there is a lot of documetation to write...

    I am releasing it because, in order to do this, I need to put it out in the wild, to get some feedback, but also to find some form of sponsorship to help the development along.

    The IDE
    The centerpiece is a Qt-based IDE that provides syntax highlighting (thanks to Scintilla), support for different versions of the compiler, a DB manager, variable navigation and integrated debugging.

    Native debugging
    Gix-IDE incorporates a custom module that provides native debugging (only supported with GnuCOBOL 3.1+) including breakpoints, stepping, variable inspection of both executable and callable modules.

    ESQL support

    Gix-IDE provides an ESQL preprocessor and drivers for ODBC, MySQL and PostgreSQL. The preprocessor has been developed starting from OceSQL, but has been almost completely rewritten in its last iterations. It has been at the center of several production applications for a few years now.

    HTTP REST Services
    An HTTP server is provided that can natively call GnuCOBOL modules, using HTTP methods and JSON for input/output. Such modules can be run and debugged from inside the IDE.

    DB management
    Gix-IDE also incorporates a DB manager that can generate COPY files from a DB connection (DCLGEN-style) and look at basic table/field properties.

    Compiler packages
    While Gix-IDE runs standard GnuCOBOL versions that can be added to the install, the binary installer also provides pre-packaged version of the compilers, in Visual Studio and MingW versions.

    Multi-platform support
    While the focus of Gix-IDE is currently on Windows, both macOS and Linux versions of the IDE and the tools have been successfully built and run,

    License
    Gix-IDE is GPL 2 licensed, except for runtime components (essentially the ESQL libraries and the HTTP server) that fall under LGPL.

    How to install
    MingW compilers have a few problems in the packaged versions, so until this is fixed, you will have to use the VS ones.

     

    Last edit: Marco Ridoni 2021-02-26
    • Brian Tiffin

      Brian Tiffin - 2021-02-26

      Woohoo, a new IDE for everyone to try.

      I failed to build Gix on this Xubuntu box. Probably a lack of qmake fu, but I got as far as

          gixpp/main.cpp: In member function ‘void Task::run()’:
          gixpp/main.cpp:54:3: error: ‘QCommandLineParser’ was not declared
          in this scope   
         QCommandLineParser parser;
         ^~~~~~~~~~~~~~~~~~
      

      Willing to wait for the hibernation period, and be happy looking over some code.

      If there is a working GNU/Linux build, then I might volunteer to help you write up some docs, Marco. :-)

      I'm a fan of Sphinx and ReStructuredText for manuals, with copious use of the program-output extension to capture listings and run logs from live sources while the book is being processed by Sphinx. Helps a little bit with regression testing, and keeping things current.

      If you'd like to share some of the work, Marco. Making an offer you can refuse. ;-)

      It turns out it's a thing, developers want clickey less typey, so yeah, having a viable IDE is important.

      Thanks for the efforts, Marco This is not advertised in the FAQ yet, but will be, once I see it running.

      Have good, make well,
      Blue

       

      Last edit: Brian Tiffin 2021-02-26
      • Marco Ridoni

        Marco Ridoni - 2021-02-27

        Hello,
        the Linux build has been unmaintained for a few months while I was
        rehauling the debugger. As a consequence I have to fix the build files, and
        more important, implement the native debugger module for Linux, since that
        is obviously OS-specific. I first wanted to make the debugger work and
        stabilize the interfaces. The same goes for the macOS version.

        Thanks

        Marco Ridoni

        mod edit, to remove some reply-to

         

        Last edit: Brian Tiffin 2021-02-27
        • Brian Tiffin

          Brian Tiffin - 2021-02-27

          Yeah. it's cool news, Marco. I mentioned I was going to wait for a FAQ entry, but I'm editing it at the moment, and couldn't resist.

          https://gnucobol.sourceforge.io/faq/index.html#gix-ide

          I put you in as a contributor, Marco, on the top page.

          Have good,
          Blue

           
    • Simon Sobisch

      Simon Sobisch - 2021-02-26

      That's... quite interesting. Can I suggest to add some screenshots and minor user-documentation allowing to get a fast idea of Gix?

      You've wrote "reintegrating macOS and Linux support" so currently it is a win32 only version that should work cross-platform because of the Qt-base?
      That leads to a follow-up to Brian's post: What is the minimal build dependency? An entry "How to build"in the README including a dependency list is likely useful.

       
      • Marco Ridoni

        Marco Ridoni - 2021-02-27

        Hello,
        first of all: it's probably not clear from the original mail, but there is a binary package in the repository, under "Releases" (Windows-only at the moment) that installs Gix-IDE and its dependencies. You just need the VS2019 runtime (that should be included in Windows 10 and optional in Windows 7). The current version of the binary package is 1.0.223.

        I am writing an install/compile guide for those who want to build the binaries themselves, and some documentation about the usage of the IDE, but that will take a few days. Basically, to build Gix-IDE you will need:

        • VS2019 (the Community Edition is fine). You could also use the VS2019 Build Tools, but in this first phase, while the project files are still a bit unstable, it would be better to have a IDE to suit them to your environment
        • Qt SDK (I'm currently using 5.14.2) for VS
        • If you intend to build the ESQL drivers for PostgreSQL and MySQL, you will need their binaries. There's no need to install the whole DB server, you just need to download a "portable" binary version and decompress it into a folder: the build files use some environment variables (that will have to be set before building) to locate these directories.
        • In order to complete the build currently you must use the included solution file in Visual Studio (not the QMake .pro one). I'll try to fix this as I go along.

        There are probably a couple of things I forgot about the build, I'll try to add them in the documentation I'm preparing. Obviously feel free to give suggestions and ask questions.

        I also intend to re-integrate Linux and macOS support: it was there from day 1, but I put it aside while I was rehauling the debugger. Besides fixing the build files, this also means that separate debugger modules for Linux and macOS have to be written, since those are obviously OS-specific. I also have to fix more build files: for internal development I use a private repository that "feeds" both the public Github repo (when I have a consistent set of changes) and a build server that executes a clean build and prepares the packages.

        I'm attaching a couple of screenshots, one with the debugger running and used to debug a console program, the other while running a callable program used as a web service.

        Thanks

         
        👍
        1

        Last edit: Marco Ridoni 2021-02-27
  • Mickey White

    Mickey White - 2021-02-26

    I look forward for this IDE also. Would it be compatible with Vscodium ?

     
    • Simon Sobisch

      Simon Sobisch - 2021-02-26

      Not sure what you mean with "compatible", vscode is a different environment (an extensible editor) while this is a potentially complete IDE tailored (only) for COBOL (people that often "cross" borders may like either specialized IDEs for all their stuff or a general-purpose extensible editor).
      As long as you use the same GnuCOBOL environment in both you can switch between these two as much as you want (if you want to compile in both then either this one support an external build system (Makefiles) already, or should (that's possibly a nice first issue to track) and maybe even can produce a Makefile from the GnuCOBOL settings specified in the IDE (if there's no option to specify all those flags and other options that would be another good issue).

      Within VSCodium you'd likely debug with GDB, I don't know yet if/how debugging is done with this IDE.

       
      • Mickey White

        Mickey White - 2021-02-28

        Thanks Simon, I just meant that for the compile of the project he mentioned Visual Studio..

         
  • Eugenio Di Lorenzo

    Hi Marco this is really a great news.
    I am using OpenCOBOLIDE but unfortunately it has been put out of maintenance and above all it does not have an integrated and specific debugger as we have now for decades on professional platforms (eg EZ-TEST or INTERTEST from Computer Associates).
    This in my opinion is the main uncovering area of GnuCOBOL.
    A debugger (or rather an "ANIMATOR") is absolutely essential.
    I tried using TP-DEBUGGER which is really very close to the need.
    If your development can be specific and dedicated to GnuCOBOL I think it would really be the ideal solution.
    With my GnuCOBOL developer skills I can contribute to testing or anything else similar you may need, Unfortunately I can't contribute on another language.
    So if you need help ... let me know.

    PS. why did you call him Gix?

     
  • Jose Manuel

    Jose Manuel - 2021-03-01

    it´s possible publish binaries for windows (32 / 64bit)? Thanks

     
    • Marco Ridoni

      Marco Ridoni - 2021-03-01

      A binary package is already available under "Releases" in the GitHub repository (1.0.223).

      Status update: I am working on the build system outside Visual Studio. I already fixed the Linux build (still no debugger for now), and I am working on MingW (macOS will have to wait). As soon as this job is finished, I'll start packaging the Linux version and writing some updated documentation (to detail some concepts about how Gix-IDE works) and a build guide.

      This is probably going to take all this week and a few days more, in the meantime feel free to ask questions.

      Thanks

       
      👍
      1
      • Jose Manuel

        Jose Manuel - 2021-03-01

        I'm sorry, but I can't find the "releases" folder at https://github.com/mridoni/gix

         
        • Simon Sobisch

          Simon Sobisch - 2021-03-01
           
          • Jose Manuel

            Jose Manuel - 2021-03-01

            Many Thanks. It looks promising :)

             
  • Marco Ridoni

    Marco Ridoni - 2021-03-02

    I have just released a patch that restores the ability for Gix-IDE to be built for Windows under MingW64 (in addition to Visual Studio) and for Linux. Compilation in these two cases is QMake-based : just set the needed environment variables (see below), clone the repository and run qmake followed by make.

    While the build process can be successfully completed, this is a first step towards more complete cross-platform support: there is no packaging (you will have to move some DLLs around, especially for the MingW build) and the application crashes a lot, probably due to to some broken assumption about system paths, libraries, etc. that will be fixed in future releases. I just had to be sure I could build the thing for other platforms: the patch includes several source code fixes that mainly target GCC builds and helped to perform some "shakedown" of the codebase.

    On Windows (MingW and VS), in order to build the ESQL drivers for PostgreSQL and MySQL you will need to download a binary package of the DB servers and define two environment variables that point at them (PGSQL_HOME and MYSQL_HOME).

    On Linux you will need the -dev packages for unixodbc, MySQL and PostgreSQL to build the ODBC ESQL driver.

    Caveats:

    • gix-http is only built on Windows with Visual Studio, I will add it to the MingW and Linux builds as soon as I can
    • no new binary release available, since there are no functional changes.
    • still no debugger on Linux

    Next steps (possily in this order):

    • user documentation (e.g. different types of projects, how to build and debug, etc.)
    • internal documentation (e.g how the code is organized, how debugging works)
    • writing a Linux debugger

    I don't know how many possible macOS users are out there, but I'd like to keep up the support for this platform, just have to focus on other priorities for now.

    Thanks

     
    👍
    1

    Last edit: Marco Ridoni 2021-03-02
  • Marco Ridoni

    Marco Ridoni - 2021-03-06

    Hello,
    I've released a new version (1.0.240). Binary packages, either with or without compiler packages, are in the Releases page on GitHub:

    https://github.com/mridoni/gix/releases

    This release:

    • Includes a new "Add Compiler" dialog, to be used to set up a custom compiler install to work with Gix-IDE
    • Restores the Linux build with qmake (probably still has bugs and problems)
    • Changes the install layout
    • Adds some build and user documentation
    • Fixes a few bugs and spelling errors

    I have also added some (really needed documentation) about building, installing and using Gix-IDE. You can browse it on GitHub.

    ESQL documentation is still missing, I plan to add it during the next week.

    Thanks to everybody for the interest and the feedback

     
    • Simon Sobisch

      Simon Sobisch - 2021-03-06

      Thank you for the update. Please specify what compiler is included in that package.
      Nice work on the documentation!

       
      • Marco Ridoni

        Marco Ridoni - 2021-03-06

        You're right, I forgot!
        There are four compiler versions included:
        3.1.2 MingW
        3.1.2 Visual Studio
        2.2 MingW
        2.2 Visual Studio

        The installer should set the 3.1.2 VS version as the default

        Thanks

         
        • Simon Sobisch

          Simon Sobisch - 2021-03-06

          In all of those cases the information about the configuration/included libraries is missing... just out of interest: do the VS-versions need a local installed compiler (and/or is there documentation how to install the minimal ones, I guess the "Visual Studio C++ build tools" are enough. [What license are those distributed under?]

          Also out of interest: Did you self-compile those VS-versions of GnuCOBOL? If yes: How did you do that?

           

          Last edit: Simon Sobisch 2021-03-06
          • Marco Ridoni

            Marco Ridoni - 2021-03-06

            And you are right again :-) As soon as I can I will try to gather and then add this kind of information. I'm mostly sure that the VS compilers use VBISAM and the 3.1.2 MingW one uses BDB, but I need to check.

            To build the Visual Studio versions I downloaded the "Win32 sources" from Sourceforge. The project files (.sln/.vcxprj) were "almost" functional, I had to fix some paths and library names here and there. The real hassle was first having to build all the requirements: mpir was quite easy, VBISAM was almost ok, but the various "curses" package were problematic. I actually did this the first time 2-3 years ago, so the details are a bit lost in my mind, but I guess it would be nice to have a more streamlined build environment for GnuCOBOL.

             
            • Simon Sobisch

              Simon Sobisch - 2021-03-06

              Hm, did you read build_windows/README.txt which points to the Win32 depencies?

               
              • Marco Ridoni

                Marco Ridoni - 2021-03-06

                Actually I didn't, I'll give it a spin when I can.

                Thanks

                 
  • Marco Ridoni

    Marco Ridoni - 2021-03-13

    Hello, after some much-needed (and even more appreciated) suggestions from Simon Sobisch, I moved the license for Gix-IDE to GPL3. I released a patch on Github with source files incorporating the correct license headers and the proper attributions.

    I took the change to add some improvements to the automated build process, that will help me to keep the different platforms in sync.

    Libdwarf is now built in-place with qmake+make: this requires a pre-build step to be executed manually, but avoids having to ship binaries.

    I also added to the build the external ESQL preprocessor (named gixpp) that doesn't need the IDE to work. gix-http is now also built for Linux.

    For now binary packages are still only published in the Windows/VS version: I have to modify the build process and my workflow in order to completely support MinGW64 (the IDE and tools can be built and installer files generated, but they still require some care, so I'm testing but not releasing them at the moment).

     
    ❤️
    1
    • David Wall

      David Wall - 2021-03-14

      So it only works on Win 64bit ?? - I get - This app can't run on your PC & I'm 32 Bit. ah well !!

       
1 2 3 4 > >> (Page 1 of 4)

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.