Hi, I made a small Sbasic testcase (SMSQE, not QDOS).
I made a program with procedures all called "abcdefghijklmnopqrt"+ a 5 digit number at the end. The program starts at line 100, is increased by one and very 12th line a new 10 line procedure is created. The first statement therein is "return", so that I don't meausre the body of the procedure. The rest of the lines on the procdure are filled with "Print". (so 100 def proc abcdefghijklmnopqrt00100 101 return 102 print ... 110 print 111 end def 112 def proc abcdefghijklmnopqrt00112 etc, until just after line 30000. The last procedure then is always 31000 def proc abcdefghijklmnopqrt31000 I then measured how long it takes to call the first procedure and the last procedure. Measured with the millisecond timer of SMSQmulator: calling the fist procedure 1 million times takes 5742 milliseconds calling the last procedure 1 million times takes 5768 milliseconds Wolfgang > > I can't help but wonder whether the time taken to parse all your > parameters to check whether they are the right type won't be longer than > having several procedures. > > Wolfgang > > > >> I'll make sure to respond right away in future, before I've fully >> understood the subtleties and implications of your replies. :D >> >> I was digesting the reply. I've been neck deep in developing a USB keyboard >> solution for the QL - a project that has become a multi-headed beast that >> required getting into elements of the 8302/8049 relationship I just never >> knew I'd have to think about. Also neck deep in fence building after a >> neigborhood dog broke into the pen and killed many of my chickens. >> >> It does seem that coercion gives similar results - if everything is passed >> as a string, it can be coerced however we'd like, as long as the data is >> checked for validity. >> >> It does seem the functionality of overloading can be implemented in >> roundabout yet still brief and readable ways. >> >> Thank you. >> >> >> >> On Tue, Jun 26, 2018 at 1:57 PM, Per Witte via Ql-Users < >> ql-users@lists.q-v-d.com> wrote: >> >>> So sorry for wasting my time trying to answer your question. It wont happen >>> again. >>> >>> On 21 June 2018 at 16:38, Per Witte <pjwi...@online.no> wrote: >>> >>>> Im not familiar with C++ overloading, but S*BASIC allows some "parametric >>>> polymorphism", viz: >>>> >>>> dim x%(2): for i% = 0 to 2: x%(i%) = 9 - i% >>>> Test 'abc', 2.99, x% >>>> : >>>> def proc Test(a, b%, c) >>>> print a\ b% \ c, \ >>>> enddef Test >>>> : >>>> Result: >>>> abc >>>> 2.99 >>>> 9 8 7 >>>> >>>> The SBASIC compiler performs a number of additional passes to >>> SuperBASIC's >>>> parser, to end up with a much purer "executable". The compiled program is >>>> not machine code, of course, it consists of fixed length tokens that >>> still >>>> need to be "interpreted". But all useless baggage has been eliminated >>> from >>>> the program flow, expressions teased into simple RPN steps, and locations >>>> resolved to absolute addresses. So no, the size of the program or >>> distance >>>> to procedures does not effect the speed of execution. >>>> >>>> >>>> On 20 June 2018 at 22:35, Dave Park via Ql-Users < >>> ql-users@lists.q-v-d.com >>>>> wrote: >>>> >>>>> Hi all, >>>>> >>>>> How hard would it be to extend sBASIC functions to support C++ style >>>>> overloading? >>>>> >>>>> Separately, does the sBASIC in SMSQ or Minerva still scan for >>>>> procedures/functions from the beginning of the program, so earlier >>>>> FN/PROCs >>>>> have a speed advantage over later ones like in JM/JS? >>>>> >>>>> >>>>> -- >>>>> Dave Park >>>>> d...@sinclairql.com >>>>> _______________________________________________ >>>>> QL-Users Mailing List >>>>> >>>>> >>>> >>> _______________________________________________ >>> QL-Users Mailing List >>> >> >> >> > _______________________________________________ > QL-Users Mailing List > > _______________________________________________ QL-Users Mailing List