|
Post by Carl Gundel on Feb 25, 2019 9:24:38 GMT -5
Those who played with older LB5 alpha releases may be scratching their heads a little bit.
This new 347 alpha feels different and has some things broken that actually worked before. The reason for this is that the underlying libraries are a lot different from what we were using before. This move was quite a lot of work but it buys us better GUI parts and also adds the Raspberry Pi to our list of target platforms.
Just wanted to offer an explanation for the curious.
|
|
|
Post by donnybowers on Feb 25, 2019 11:26:39 GMT -5
I like the idea of targeting Raspberry Pi. From what I've been hearing you saying about having less need for API calls and the like, I like that idea too.
|
|
|
Post by Chris Iverson on Feb 25, 2019 11:34:56 GMT -5
Well, a lot's changed since the last time I saw an LB5 alpha build. That was back when I was still in high school, 12 years ago! It was command-line only, I remember playing with the OS X build of it on the school's Macs.
That's pretty much become a necessity, since you can't use API calls cross-platform. (I don't know if Carl has any plans to allow calling into external dynamic libraries, but a different library would need to be provided for each platform you want the code to run on. A DLL on Windows, a 32-bit i386 shared library for PC Linux, and an ARM shared library for Pi Linux.)
|
|
|
Post by donnybowers on Feb 25, 2019 11:57:56 GMT -5
I wonder how hard it would be to have an INCLUDE command like PHP has. Turbo BASIC was just a console basic and it had an include command that basically worked like the PHP Include command. This would allow for users to build their own libraries. If we had something like that maybe it would even lead to a Liberty BASIC shared set of open source or creative commons libraries. I know that wouldn't be the same as DLLs, but it would definitely be very useful if it wasn't too hard to implement.
|
|
|
Post by Chris Iverson on Feb 25, 2019 12:00:43 GMT -5
Run BASIC has a mechanism for making direct function calls into other Run BASIC programs, and I'd be surprised if that didn't find its way into LB5 at some point.
|
|
|
Post by Carl Gundel on Feb 25, 2019 12:02:47 GMT -5
Run BASIC has a mechanism for making direct function calls into other Run BASIC programs, and I'd be surprised if that didn't find its way into LB5 at some point. Most of the machinery for that is in there, so (in theory) I just need to wire it up and give it debugger support.
|
|
|
Post by Carl Gundel on Feb 25, 2019 12:08:25 GMT -5
I wonder how hard it would be to have an INCLUDE command like PHP has. Turbo BASIC was just a console basic and it had an include command that basically worked like the PHP Include command. This would allow for users to build their own libraries. If we had something like that maybe it would even lead to a Liberty BASIC shared set of open source or creative commons libraries. I know that wouldn't be the same as DLLs, but it would definitely be very useful if it wasn't too hard to implement. This is definitely part of the overall plan. I'll probably borrow the LIBRARY keyword from True BASIC instead of using include from C. I have a strong aversion to any new features that look like C.
|
|
|
Post by tsh73 on Feb 25, 2019 13:08:39 GMT -5
Re: INCLUDE
With all due respect - goal of language is to convey meaning.
So if 90% people already know what INCLUDE is, why use another word? Just my 0.02$
|
|
|
Post by Carl Gundel on Feb 25, 2019 13:22:40 GMT -5
Re: INCLUDE With all due respect - goal of language is to convey meaning. So if 90% people already know what INCLUDE is, why use another word? Just my 0.02$ Adding keywords from other languages is a slippery slope. Pretty soon it isn't BASIC anymore IMHO.
|
|
|
Post by Alyce Watson on Feb 25, 2019 13:40:23 GMT -5
Are we talking about calling functions from a compiled library, or including plain text code from another file?
|
|
|
Post by Carl Gundel on Feb 25, 2019 13:51:38 GMT -5
Are we talking about calling functions from a compiled library, or including plain text code from another file? It will work like in RB, which is compiled into memory from a separate file at runtime, not inlined into the same compile stream before running, so include would be misleading anyway.
|
|
|
Post by Alyce Watson on Feb 25, 2019 13:56:02 GMT -5
I agree, Carl. Library seems correct. I applaud this addition to the language. It's one I requested, once upon a time.
|
|
|
Post by Alyce Watson on Feb 25, 2019 13:58:32 GMT -5
It might be a good time to explain the way LB is compiled at runtime, rather than precompiled, as is common. An important distinction.
|
|
|
Post by Chris Iverson on Feb 25, 2019 14:06:32 GMT -5
It might be a good time to explain the way LB is compiled at runtime, rather than precompiled, as is common. An important distinction. Very true. Does LB5's precompiler even work in a similar way as LB4's? Does it still work as essentially an interpreter, or is the runtime engine now doing some sort of JIT compiling?
|
|
|
Post by donnybowers on Feb 25, 2019 20:14:20 GMT -5
Personally, I'm just looking at the idea of having the LB language available for native Linux and Raspberry Pi use (and cross platform in general) more than anything. It would probably be worth the money to me if it only had what it has now with the major bugs worked out. Hell, JustBASIC for Linux would be worth the money to me. JustBASIC is pretty powerful in my mind. Having wordwrap or a wordwrap style-bit in the texteditor (or a "wwtexteditor" control) would make it absolutely perfect in my case. But, like I say, I don't do much that would be considered sophisticated. Custom made for my specific purposes but not very sophisticated. My programs are usually neat little tools that you couldn't get more than a buck or two for if you were going to try to market them. So I almost hate even making suggestions for something like include libraries. I definitely understand not wanting to go down the slippery slope of adopting too much stuff from other languages. I never thought of include as anything but a useful command from Turbo BASIC. But "Library" sounds like an appropriate word too. I love the concept of a language called B.A.S.I.C. I only wish we had one called L.A.Z.Y. LOL Most people would use it to build function libraries and the like. You could have a set of functions in a "library" file, say for trigonometry. Whenever you were writing a program that required trig you could just include that "trig.bas" (or "trig.lib"?) file into the program with a command. In TB it was "include myfunctions.inc". It would be such a simple command that I'm sure whatever it's called would be simple enough to remember and use -- Maybe put it in the "premium" version. I assume in a compiled program (i.e. Turbo Basic) the text of the included library would be added to the program at compile time. I don't know how that all works, and I assume it would be different for a tokenized program, pre-compiled or interpreted or whatever. It just seems like something useful to have if it's not too difficult to implement so that some routine tasks could be called up into a program without having to type or copy and paste the extra text into every program needing those common functions. Hence L.A.Z.Y I'm sure this might be a consideration for an upgraded version down the road rather than an immediate concern.
|
|