Announcement

Collapse
No announcement yet.

Ideas for Compiler Features

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Ideas for Compiler Features

    What would you like to see added or upgraded in the current PowerBASIC for DOS compiler?

    ------------------

  • #2
    The 1st thing that comes to my mind is that i'd like to get an error when i make a comparison which can't be done, such as INTEGER < DWORD, or that this kind of comparison become legal.

    Other than this, in this moment i can't think to significant things to improve such a superb compiler, but i'll post what will come to my mind.

    I would have never thought to be saying this, but that is: today i'd like better a PB/Linux that [edit]than, not "that"[/edit]an upgrade to PB/DOS.

    ------------------
    Davide Vecchi
    [email protected]

    [This message has been edited by Davide Vecchi (edited February 01, 2005).]

    Comment


    • #3
      If you are still using PB/DOS, the question is, which operating
      system are you using it under? MSDOS? A different DOS? A version
      of Windows? Under Linux (and how)? I think that some would like
      PB/DOS to support certain capabilities that may only pertain to
      specific environments, such as the ability to load and call DLLs,
      or to support virtual screen sizes and modes that go beyond what
      DOS supports. Perhaps they would like mouse activation in
      conjuction with the IDE, or the ability to handle long file names
      natively.

      ------------------
      Old Navy Chief, Systems Engineer, Systems Analyst, now semi-retired

      Comment


      • #4
        I find the ability of the PB/CC and PB/Win editors to handle more
        that one source code file at a time to be a real asset. I can
        easily cut-and-paste between the files as needed.

        ------------------
        Old Navy Chief, Systems Engineer, Systems Analyst, now semi-retired

        Comment


        • #5
          "The 1st thing that comes to my mind is that i'd like to get an error when i make a comparison which can't be done, such as INTEGER < DWORD, or that this kind of comparison become legal."

          Davide---

          That kind of comparison is absolutely legal right now. You can compare any manner of mixed numeric types in any of our compilers!

          Regards,

          Bob Zale
          PowerBASIC Inc.


          ------------------

          Comment


          • #6
            The syntax highlighting of the PBCC compiler is so close to PBDOS, I usually use it to edit the 16-bit source files. Since you can configure the path to the compiler in the options of the CCEDIT.EXE program, you could simply point it to the PBC.EXE compiler.

            But that would change the settings for when you want to use Console Compiler. Perhaps roll out the new GUI editor with PBDOS syntax recognition and its own compiler path setting! That would be neat.

            Since DOS doesn't change anymore, I guess it would be hard to change core compiler attributes when they're already so refined. Most of the suggestions that come to mind are perepheral to the actual compiler except the ability to compile to multiple targets. ... #COMPILE WIN32, #COMPILE LINUX, #COMPILE MSIL, #COMPILE DOS16

            That would certainly clean up the market for 16-bit DOS compilers... PB/DOS would be able to automatically modernize unchanged code and ensure compatibility with en vogue systems for many many more years to come. It would be a gargantuan feat though, as the disparity between features in today's available target environments is not trivial.



            [This message has been edited by Chad D. Wood (edited February 01, 2005).]

            Comment


            • #7
              Bob,

              thanks for elaborating on this. Then i'll have to check whether i have missed some updates of PB/DOS (i'd hate that! ); i remember in 1999 when i had a problem where "IF A < B" was incorrectly evaluated (differently than "IF ISTRUE (A < B)" and "PRINT (A < B)" which were correctly evaluating it), when A was an INTEGER, B a DWORD, A was negative and B positive. In a discussion i was told (not by PB) that before comparing different numeric datatypes i had to first make considerations about the values the 2 vars would have had, because some combination of negative and positive values would have led to wrong results due to the internal conversion PB has to do before comparing the values.

              Donald,

              If you are still using PB/DOS, the question is, which operating system are you using it under?
              I know PB/DOS apps are still used under MS-DOS but also DR-DOS.
              I for one had written a PB/DOS app for a financial consulting company which wanted to heavily test the performance of their automated trading systems; in that case, dedicated PC were needed, that would have done only that and would have had to use as much of the machine's resources as possible, without having Windows or other OSs doing their GUI stuff under the hood, so i set them up several PCs with DR-DOS and this PB/DOS app; they were running like missiles (they were also 100% MS-free PCs but this doesn't matter), the guys were amazed for the speed of the PB/DOS app compared to the several Windows apps they were used to (one was TradeStation).

              Certainly there isn't much of a point in writing a PB/DOS app to be run in a DOS box under Windows.

              I think PB/DOS apps are used also under FreeDOS and maybe other DOS which i don't know. I also think to have heard of succesful use of PB/DOS apps under Linux (with an emulator).

              I also think PB/DOS apps are used in embedded systems which come with MS-DOS 6.2x .

              ------------------
              Davide Vecchi
              [email protected]



              [This message has been edited by Davide Vecchi (edited February 02, 2005).]

              Comment


              • #8
                I'd like being able to predefine static arrays...

                Code:
                    DIM STATIC a%(1:1000) = 23, 36, 49, ...
                ...and avoid having to assign every single value at runtime:

                Code:
                    DIM STATIC a%(1:1000)
                    FOR i% = 1 TO 1000
                      READ a%(i%)
                    NEXT i%
                
                    DATA 23, 36, 49, ...
                Heinz Salomon

                [This message has been edited by Heinz Salomon (edited February 03, 2005).]

                Comment


                • #9
                  STATIC has to do with the scope. If you are talking about arrays of constants, personally i wouldn't give it an high priority but i like the idea, i' d use them.

                  ------------------
                  Davide Vecchi
                  [email protected]

                  Comment


                  • #10
                    My proposal does not aim at constant arrays.

                    As far as I know DIM STATIC affects the array allocation type (at compile time) whereas the keywords LOCAL and SHARED affect the array's scope (explicitly).

                    Heinz Salomon

                    [This message has been edited by Heinz Salomon (edited February 03, 2005).]

                    Comment


                    • #11
                      Ah yes, sorry, i had misunderstood.

                      ------------------
                      Davide Vecchi
                      [email protected]

                      Comment


                      • #12
                        Generally I find that the pbdos product works well for me when I
                        use, though I'd like to be able to produce .com files with it.
                        It only generates .exe files, and exe2bin doesn't seem to work
                        because of it's stack. I've not fiddled with it all that much,
                        to try to fix this, but there are a couple cases (like writing
                        programs to be run on alternate systems running dos-type oses)
                        where I need a .com format, because the tools don't understand
                        .exe headers. If this capability is already there, then if
                        someone would point out how to do it, I'd be eternally
                        greatful.
                        I don't need .com files very often, but the couple times I do,
                        it sure would be nice to be able to produce them using pbDos,
                        instead of having to resort to asm.

                        the other thing I'd like to see is the ability to access winapi
                        calls (tcp open and such) I can do this using the waterlu wattcp
                        routines, but if running under windows, it'd be nice to be able
                        to switch over to native api calls for the work. (it would
                        remove the need for a packet driver)
                        Of course, just like everything else, it's probably possible if
                        I knew enough, and put in the required sweat to make it work,
                        but I'm not there yet.

                        ------------------
                        http://www.softcon.com]


                        for hosting/internet


                        access.

                        Comment


                        • #13
                          It would be nice if you could use the new features of the other DOS versions like Free DOS with more memory and additional capibilities.
                          I was looking at FreeDOS and it has lots of extra features it would be nice to take advantage of.

                          ------------------

                          Comment


                          • #14
                            I also noticed that there is a new version of MS-DOS 7.1 with many new features.
                            If this is an official MS-DOS, it would be a good thing to increase the capibilities
                            of the Power Basic DOS Compiler to take advantage of the features and possibly other DOS
                            products.

                            ------------------

                            Comment


                            • #15
                              This won't be an often asked for feature, but how about the ability to output to specified monitors on systems that use multiple monitors? I.e., a developer could accept data on Monitor One, process it, and display output on Monitor Two (or monitor 3, monitor 4, etc.).

                              I would use it.

                              Robert

                              ------------------

                              Comment


                              • #16
                                Perhaps the possibility of doing 32 bits code, running under a DOS externder?
                                dgjpp does it in C - C++. No memory limits...

                                And a better IDE...

                                But I'm not an user, so nevermind.

                                ------------------
                                Antoni Gual
                                Antoni Gual

                                Comment


                                • #17
                                  The Inline Assembler could be enhanced in order to support 80386
                                  (and possibly higher) instructions; and to be able to code simply
                                  ! DB 12, 13, 14, 15
                                  instead of
                                  ! DB 12
                                  ! DB 13
                                  ! DB 14
                                  ! DB 15
                                  (it's a detail but sometimes quite annoying).

                                  And ... maybe this is asking too much, but the graphics functions
                                  could be enhanced in order to support some SVGA modes.

                                  Regards,

                                  Hans Ruegg

                                  ------------------

                                  Comment


                                  • #18
                                    The number-one selling point of PBDOS could well be its
                                    "Compatibility". Find any computer on which it can't run, or
                                    any other BASIC's whose source code cannot be translated into
                                    PBDOS, and I will bet that there is a relatively simple fix for
                                    the problem.

                                    I'll be happy to give PowerBASIC, Inc. the price of yet another
                                    upgrade, if and when they get around to the upgrade of PB 3.5,
                                    and I won't turn up my nose at any new goodies they include,
                                    either, but above all, do not take away any of PB's Compatibility.

                                    ------------------

                                    Comment


                                    • #19
                                      Please...Ability to Compile in Protected Mode, so our software can
                                      run under XMS.

                                      Also, new built in File Functions to fully support MSDOS 7.1
                                      LFN's, Change Directory to long directory entries




                                      ------------------

                                      Comment


                                      • #20
                                        I'd like to have com port transmissions use the UART FIFO's in interrupt driven mode
                                        so my program could push a string to a com port buffer and continue running while
                                        the string was sent. With the current version, com port receiving is buffered, but
                                        transmitting is not.


                                        ------------------

                                        Comment

                                        Working...
                                        X