• Welcome to Powerbasic Museum 2020-B.
 

News:

Forum in repository mode. No new members allowed.

Main Menu

PowerBASIC has been sold! (PowerBasic IS ALIVE !)

Started by Marc Giao, January 31, 2017, 10:29:10 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Brian Alvarez

 Hmm it downloaded the exact same thing. Gave me the exact same 3 options. Maybe i am downloading the wrong one.

Mike Lobanovsky

Quote from: Brian Alvarez on March 17, 2018, 02:20:47 AM... that is like 120 times bigger than the compiler i am writing...  Very bloated stuff! ... i could open AND close Pluribasic like 70 times...

Just as a matter of terminology unification, Brian, is the app you're advertising a compiler or a translator? A translator is a utility program, just one part of a toolchain, that would merely translate, or map, some particular language or dialect's semantics and vocabulary into the context of another language's development environment that would host a set of instruments, utilities, libraries, etc. to turn one's source code written in, or translated to, that other language into a statically compiled and linked disk image file of executable machine code instructions, by means of a program equipped with this or that form of direct machine code emitter, generally referred to as the compiler?

Some examples of typical source translators: FreeBASIC, BCX, UBX, BC9, LBB, to name but a few.
Examples of target true machine code compilers: PowerBASIC, FBSL, OxygenBasic, VC/C++, GCC/GAS, MASM/FASM/NASM, etc.

So, which of the above categories would PluriBasic v6.0 effectively fall into, do you think?

MS VS is a huge and yet extendable integrated development environment designed to host several top-grade compilers, that's far more sophisticated than all the 200+ indie BASICs (Power/Pluri included) taken together with some competing indie C compiler implementations like Pelle's C and LCC-Win32 and TCC and more added into the bargain. No wonder it needs time to get all its mighty resources up and ready at the user's service.


Thanks!
Mike
(3.6GHz Intel Core i5 w/ 16GB RAM, 2 x GTX 650Ti w/ 2GB VRAM, Windows 7 Ultimate Sp1)

Brian Alvarez


It used to be able to produce VERY rudimentary 32 bit executables. But i removed that part of the code, because it would take me a loooooong time to complete it. Really, a long time. But, the same engine for parsing the code and trapping errors can be used to generate the source code for other platforms.

Current version of PluriBASIC v6.0 would more fall into what you call a translator. And a very good one at it. The compilation process does not differ from compiling one thing or another, and is completely invisible in the background.

I will see if i can post a video of it in action. I think more than one would pay for it.

Regarding MS VC, I kind of understand what it is, and i know it is great for working with it, but to my taste it is too far from what a compiler needs to be used also for a hobbyst to use. It over complecates things and takes the fun out of it. I mean, no kidding, i have a decently fast i7 computer with 16 GB of ram, not a lot for today's standards but, come on, 4 minutes to create a simple console project?

I understand why the complecations, but why having tons of ways to compare things? It checks more often the situations seldom happens, but ignores the situations more often happens...

a complete engine... that take a long time to load, and doesnt even have an easy way to convert numbers to strings or strings to numeric values? And by easy i mean something that can be used in a one-liner, i know i can use a 2 or 3 line stringstream statement, but having to do that every time, or have a dedicated function to do so, kind of makes me wonder what in the world does it load then? Where are its "mighty resources" if newcomers struggle to achieve such simple tasks as passing correctly a parameter to a function?

Also, whats with all that unclear errors displayed everytime an error happens? Its like buring a marvel in a pile of stones! Wouldnt it be easier to say... you need to do this or that? No.. it throws a lot of tehnical stuff behind the guts of the compiler. I dont care why the guts cant do what i asked!

No wonder why those who have used PowerBASIC miss it when having to go somewhere else to compile 64 bit applications!

That said, i believe C++ is very good to use the technologies beyond the language, and it is a great bridge between the programmer and the core OS features using the same language in all platforms. I will definately keep using it... out of necessity. I just wish it was easier.

I still haven't used it with PluriBASIC yet (haven't needed), but i plan to. I need to do something simple... find the exe to invoke as commandline and figure out it's command-line syntax.




Patrice Terrier

#48
Brian

If you don't like the luxury of the Viusal Studio environment (mostly because you didn't invest enough time on it), there is nothing to stop you to use directly the command line compiler CL.exe, that works just the same than for the old PDS/DOS compiler/linker paradigm.

I am using VS to create and build all my 64-bit applications, including my 64-bit WinLIFT/GDImage DLL(s), and i can't tell you that it doesn't take 4 minutes to create the resulting binary, but just a few seconds...

Creating a translator for PowerBASIC SDK code is rather easy, however doing the same for DDT code is a much more complex task.

But to say the truth, i can't see any futur for PB, because to let it have a success in the long run, it should attract the new programmer kids, the papy boomer programmer's market (PB's market) is on declin, and no serious industry manager will ever consider to build new applications with it.

The only thing that would have had a chance of success was to offer a programming environment "à la WinDev" with plainty of extra pre-build/ready to use facilities that would cut the development time by a factor of 10, with rock solid API extensions, and using the latest technology, just the same than those available to native C/C++ programmers ;)
Patrice Terrier
GDImage (advanced graphic addon)
http://www.zapsolution.com

Mike Lobanovsky

#49
Brian,

Thank you for your detailed overview of PluriBasic 6. I share Patrice's opinion on CL, VS, PB front end, and PB SDK. I am not however prepared to share his pessimism regarding the future of BASIC in general. :)

Re. MS VS, I think an attempt to create a simplified VC/C++ "studio" based on, say, the Scintilla code highlighting editor and some existing open source solutions for a matching visual designer a-la VB6 IDE, to create an alternative beginner level VC/C++ IDE might be quite fun and a worthy challenge in itself. This might help to make the beginner's integration in VC++ much easier than it is now. I am a point-and-click guy and enjoying it, and I consider command line practices medieval and alien in the MS Windows' 100% graphical user interface context.

Anyway, good luck with your project! And yes, it is great to see and feel one's powers grow day in and day out on one's way to a worthwhile objective.



[UPD] As an afterthought, Brian, why wouldn't you just take James Fuller's UBX and extend it to support PB's basic syntax? (pun not intended)

UBX is a BASIC-to-C++ translator based on BCX that's in its turn a BASIC-to-C translator augmented by James to emit C++ code compatible with a number of existing C++ compilers including VC++.

Both BCX and UBX support a well developed BCX BASIC dialect that can be readjusted to work for PB and especially its more progressive SDK paradigm. BCX and UBX are strictly GNU GPL so you will not be allowed to close your derivative sources from public or sell them in either human readable or precompiled form. But you will still be able to charge potential customers for your extra work on extending your hypothetical PluriPBX to accept more sophisticated portions of PB semantics, e.g. DDT or COM, whatever, and get paid for that. Again, you will be obliged to open source your end results, but your efforts to provide your design solutions would be adequately and legally paid for.

That's where Linus Torwalds' multi million dollars worth comes from. :)
Mike
(3.6GHz Intel Core i5 w/ 16GB RAM, 2 x GTX 650Ti w/ 2GB VRAM, Windows 7 Ultimate Sp1)

James C. Fuller

Brian,
  My impression is you need to upgrade your working environment.
I admit I do very little in moderation but I do have a passion for my hobby. I am retired on social security with a moderate pension.
I have nine computers on my network. Six Running Win 10, two Linux, and one sick Win7, along with a couple of echo dots and an Echo show. I also have four chromecast pucks. On one PC I have three free versions of Visual Studio. I very seldom fire up the VS environment. The only time is to run/test some of Patrice's code or to check for updates to the VC++ compiler. I compile all my code from batch files.
My version of the PowerBASIC Address demo: http://www.jose.it-berater.org/smfforum/index.php?topic=5187.0
,using Fred's TClib, is an example showing c++ can be lean and mean. That demo takes between 4 and 9 seconds  from basic to exe. Yes it is a fairly high end machine: Dell XPS8900
1. translate basic -> c++
2. convert ansi c++ source to unicode
3. compile resource file
4. compile c++ -> exe

Shelling Out To: ULEX.EXE "bc9Address.CPP" TCHARXLATER_VC.TXT
Shelling Out To: TCLIB.BAT "bc9Address"

**********************************************************************
** Visual Studio 2017 Developer Command Prompt v15.5.2
** Copyright (c) 2017 Microsoft Corporation
**********************************************************************
[vcvarsall.bat] Environment initialized for: 'x64'
Compiling resources.....
Microsoft (R) Windows (R) Resource Compiler Version 10.0.10011.16384
Copyright (C) Microsoft Corporation.  All rights reserved.

Microsoft (R) C/C++ Optimizing Compiler Version 19.12.25831 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.


James

James C. Fuller

Mike and I have discussed the license before and have not come to the same conclusion.
As far as I, and Mr BCX, are concerned you may use the code for any purpose except making a clone of the product.

James


Mike Lobanovsky

James,

Let's put it clear here and now.

1. Would you AND Kevin regard such a hypothetical PBX a clone of BCX or UBX? In other words, do you both regard PB BASIC as a clone of, or competitor to, BCX BASIC? If yes then I hereby regretfully withdraw my suggestion altogether, Brian.

2. If not then GNU General Public License version 2.0 comes into force (see here for a still further link under the same name!). Follow that other link to read yourself what you and Kevin are effectively diminishing our rights to, regarding your respective sources and binaries, regardless of what you may, or may not, be telling us by your word of mouth! GNU GPL is a restrictive license that's primarily concerned with what the user is expressly forbidden to do with your respective products. It is written in plain old English and is practically devoid of legalistic abracadabra so that everyone would be able to understand what it's actually talking about.

3. If both of you still insist that we can do with your code whatever we like except use BCX/UBX to generate the C/C++ sources that would then compile into a translator/compiler binary that would interpret BCX/UBX BASIC differently, perhaps using a different/alternative runtime library that wouldn't be automatically made part of your own respective products, then why wouldn't you just trash that GNU GPL nonsense altogether and concentrate public attention on that one and only restriction you consider really essential?
Mike
(3.6GHz Intel Core i5 w/ 16GB RAM, 2 x GTX 650Ti w/ 2GB VRAM, Windows 7 Ultimate Sp1)

James C. Fuller

Mike,
  I really don't give a flying f*** about licenses nor do I understand most of the giberish.
Quote
As a special exception, the BCX license gives permission for additional uses of the text contained in its release of BCX. The exception is that, if you use BCX to create source code that will link the BCX libraries with other files to produce an executable, this does not by itself cause the resulting executable to be covered by the GNU GPL. Your use of that executable is in no way restricted on account of using BCX to produce source code that will link the BCX library code into it.

I understood this to mean you are not necessarily bound by the GPL just by using BCX????

Personally I don't care what you do with the code.
What would you suggest??

James


Brian Alvarez

 Hello guys.

Mike, not that i dont appreciate your suggestion, but why taking something else to adapt it to use something that PluriBASIC already does? It already accepts DDT. Not only that, but it also accepts the most complex statements, even those that use composite parameters like CHR$(1 TO 20, 13, "Hello") or DIR$("*", ONLY 16).


I do it mostly for fun. The fun of seeing something verbose convert in something so simple... for example, PluriBASIC accepts the following statement:



DECLARE Function RepositoryPWB LIB "PLURIPWB.DLL" ALIAS "REPOSITORYPWB" (Mems as Memories, byval FuncID as long) AS LONG
DECLARE Function RepositoryPHP LIB "PLURIPHP.DLL" ALIAS "REPOSITORYPHP" (Mems as Memories, byval FuncID as long) AS LONG



And converting it to its C++ counterpart, making programming fun, rather than tedious.

James, i work in a variety of computers as well. I have a couple i7, a couple i5's and most of them have SSD drives and decently fast CPU's. As i said, not the fastest in the world but not so slow to make reasonable a slow opening of applications. So, there is no real excuse on why a program would take so long to open. Agreed, there must be something wrong with the installation.


I gave up trying to see why it insists in attaching some skype DLL's to one of my applications. Because those DLL's make it crash for 64 bit compilations. It attaches them even for any "Hello world" console example and make it crash in 64 bit mode. It is frustrating to ask what in the world does "Telephony" have to do with a "Hello world" example, so important as to not allow to compile the example without those, on the price of making the app crash?... I dont know. The thing (MS VS) has grown so big that many things can go wrong.


It has been fun working with making PluriBASIC, and i already can use it for my work, which is fine. I can put together a website rather quickly with my own engine. Much faster than writing the whole thing in PHP.


RE: speed of compiling, once the thing gets loaded it compiles apps fast, but still, PowerBASIC takes 0.1 on code that MS VS takes more than 1 second.


Speaking of resources, i still need to work on that.




Mike Lobanovsky

#55
Thanks James,

Regarding GNU GPL: (LGPL is just a tad different and not discussed below)

1. Every reasonable GNU GPL translator/compiler would not impose any restrictions on the use of end products they are utilized to generate. Thus, GNU GPL'ed GCC may be freely used to generate commercial closed source applications without restriction, as may GNU GPL'ed Pelle's C, GNU GPL'ed LCC-Win32, or MIT-licensed TCC, or others. Had BCX not been supplied with the "special exception" clause you quoted, it wouldn't be worth the media it's stored on -- because probably 75% of its output is made exactly of the BCX library functions the quotation pertains to. Nobody would want a translator they are allowed to only use for mastering Petzold's ABCs.

2. GNU GPL concerns the above translators/compilers' own sources and binaries alone. Those sources, in whole or in part, may not under any circumstances be used as part of 3rd party closed source and/or commercial projects. GNU GPL binaries may not be reverse engineered or altered (e.g. with hex editors) for specific uses in closed source and/or commercial projects. GNU GPL binaries intended for use in closed source and/or commercial projects must match the original CRC/SHA/whatever hashes supplied by the compiler/translator authors in their original distros. GNU GPL sources and/or binaries, in whole or in part, may not be re-distributed as part of closed source and/or commercial projects; instead their full distros should be downloaded separately from their respective authors' facilities.

3. Should any project violate any provisions of Item 2 above, it must either i) be made open source and fall under GNU GPL itself; or ii) cease to exist.

4. Based on Items 2 and 3 above, the hypothetical PluriPBX will have to be both i) open source and ii) free to use because it will be based on the BCX/UBX own original sources. But Brian may charge, and receive, reasonable fees for his efforts to develop PluriPBX beyond its minimal functionality as requested and financed by possible PB migrants to the x64 platform.

____________________________________

So, if you would still insist that what you effectively mean by your word of mouth is not what's described above, then you would probably want to talk things over with Kevin (I won't) and let people know your final unanimous opinion.

If you would like your names to be eternalized in the aeons to come, you could probably choose a MIT- or BSD-like license. Or if you feel old enough to be completely altruistic (like Charles Pegge is), you could probably let your sources rest in the Public Domain to the benefit of those who will come after you. :)
Mike
(3.6GHz Intel Core i5 w/ 16GB RAM, 2 x GTX 650Ti w/ 2GB VRAM, Windows 7 Ultimate Sp1)

Brian Alvarez

#56
James, i downloaded your converter and i am taking a look at it now. I am going trough the help file and i dont see support for macros. Do you think it would  be hard to add it? I heavily use macros in my code. I recall it was very hard to implement them in PluriBASIC but in the end it works really well and pretty fast and the best part, it works for all platforms.

Mike, i am a stone for bussiness. I would rather let someone else sell it and give me a fee than doing it myself. I might end up charging too much or giving it for free. I Have received some offers for it but i havent decided yet.

James C. Fuller

Mike,
  The license issue started before my interest in BCX and I only have vague knowledge of it.
I tried discussing it with Kevan but once the controversity was brought up he declined to discuss it further. I beleive he said the license was to prevent making closed source clones of BCX.
Also with BCX you can create a runtime library which also throws in another curve.
I do not have that issue with my forks. Following my code is brutal even for me :)
It appears this is a conundrum unique to translators of this kind is it not?
FreeBasic is a translator with basically the same GPL license isn't it although it's gas/c source is all but unreadable.

I am open for wording as I have no experience.

All versions previous would be under the old license with all new releases having the new license?? Is this possible?

James









Mike Lobanovsky

Quote from: James C. Fuller on March 20, 2018, 05:57:16 PMI tried discussing it with Kevan but once the controversity was brought up he declined to discuss it further.

That's the ugliest thing about Kevin's personality. Sitting on top of the pyramid, giving orders to the actual laborers, taking final and binding decisions without giving sufficient grounds, bathing in the sun of adoration and worship. Been there, seen that. ;D

QuoteFollowing my code is brutal even for me :)

Ditto about FBSL.  So not "unique to translators". :)

QuoteFreeBasic is a translator with basically the same GPL license isn't it although it's gas/c source is all but unreadable.

I dare say FB is much more sophisticated than BCX. BCX would make just a subset of FB's vocabulary and code emitter, yet is already practically unmaintainable in its entirety.

QuoteAll versions previous would be under the old license with all new releases having the new license?? Is this possible?

No, not for UBX alone. Permissive licenses may be freely used in GNU GPL projects but not vice versa (free! for all! from each according to his ability, to each according to his needs! communism rulez forevah! -- my ass!! actually been there, seen that as well.  ;D ) You can't change your license James, even in your future releases, without Kevin's express written permission. Sorry.
Mike
(3.6GHz Intel Core i5 w/ 16GB RAM, 2 x GTX 650Ti w/ 2GB VRAM, Windows 7 Ultimate Sp1)

James C. Fuller

Brian,
True macros of the type in Pb or masm are not supported. Only the c/c++ #define preprosser types.
I do not see adding them at this time.
James