PCBoard v16 (Pre-Alpha Experience)
From
Ozz Nixon@21:1/144 to
All on Sun Apr 21 19:12:10 2019
See www.saltairbbs.com
PCBoard v16 (currently) is online so people can see how far we are in
the rewrite. Attempts were made to migrate from MSC to GCC without
success. Stepping back and looking at the project, and our other
efforts, the decision was made to port the code to a different language
and framework. v16 is now written using Modern Pascal, and designed
using the Modern Pascal Coderunner framework. Modern Pascal is
available as a command line compiler and interpreter, along with an
Apache Mod, allowing you to code web scripts. Coderunner is a socket
server that processes your code. Coderunner is self-threading and
manages memory allocation per thread. Allowing developers to focus on
their code, somewhat like a modern DOOR-KIT.
PCBoard v16 file structures are being revised also. v15 and older were
limited in scope. For example, having an array in the USERS for
LastRead means the larger your site the slower and bulkier your USERS
file was and the memory requirement also increased. With this said, we
have migrated v16 to using the JAM message base. It has a superior
design from other message bases, while keeping the flexability
introduced by PCBoards MSGS extended headers. Currently we have build a
NNTP (Newsgroup Server) as part of PCBoard v16 Registered Suite. It
allows the sysop and users to access the message areas using their
logon credentials, from Desktop and Mobile devices. * It also allowed
us to seriously stress test the JAMmb engine before swapping MSGS for
JAM sturctures. JAM also tracks per user per message area the LAST READ
- reducing the memory requirements that previous PCBoard USERS records introduced.
PCBoard v16 is being released as Open Source. We are doing this as it
is a complete rewrite from scratch. NO previous code is used for this
new design. Opening the rights so we can release as Open Source. Note
Open Source does not mean we wave the rights to the source in any way.
PCBoard v16 is (c) Modern Pascal Solutions, LLC. PCBoard v16 is still
marketed as a commercial product. The source is being offered to help third-party developers produce new PCBoard modifications. We have
removed the kludge script engine PPE. Instead the whole produce is now
a Coderunner script. So if, for example, you had written a replacement
for the prompt... you can do it again replacing doPrompt.inc with your fancy/ANSI version.
PCBoard v16 uses the built-in features of TStringList to extend
PCBTEXT. A previous limitation was PCBTEXT allowed up to 60 characters
per prompt. This meant fancy/ANSI animations or color sequences for
prompts had to fit into 60 bytes. For some this was impossible, so they
had to embed PPE links for prompt. In the modem age, the latency was
not notable, in todays gigabit Internet age, it was noticable. So.
v16's PCBTEXT is BYTE 1 = FG color (1 to 15) (0=last color or no color
change), followed by as many characters you want and terminated with
EOL (Carriage Return and/or Line Feed - depending upon your Operating
System). This change in itself truly extends the capability of making
an iCE or ACiD looking BBS... while reducing all of the overhead of PPE
scripts as prompts. What if you want to replace a prompt with a script
for even more control? You simply modify the associate *.inc file with
your requirements. Coderunner uses a JIT (Just In Time) compiler, and
will merge your code change on the next connection it handles.
*** What if their is a bug in my new mod? ***
Simply start Coderunner in a terminal - using a different terminal
telnet to your BBS - the error will show on the previous terminal. We
have tried to make sure all error messages include the line number
(even relative to the *.inc file(s)), and character position on that
line - with a description of what is wrong with said line. Example:
* Invalid evaluation at line 133, column 1 in file "/var/www/BBS/pcboard/main.p"
Usually that means you forgot to put a semicolon at the end of the
previous line, or you have a stray character/invalid syntax at the
start of this line.
*** Uptime/Downtime Schedule ***
SaltAirBBS.com is linking right to our in-house source code. So, there
will be periods where you are unable to connect. Or you may be
disconnected while we rollout a change. We work on the source code 7
days a week. Once we achieve Beta status, we will move pre-alpha to a
different port on the servers. This way (like the old modem days) you
can access the stable release, or the cutting edge release - depending
where you connect on our servers.
* IF YOU DO NOT HAVE ACCESS TO A TERMINAL - WWW.EXCHANGEBBS.COM
DEFAULTS TO THE ALPHA CODE IN A BROWSER *
--
.. Ozz Nixon
... Author ExchangeBBS (suite)
.... Since 1983 BBS Developer
--- ExchangeBBS NNTP Server v3.1/Linux64
* Origin: nntp://bbs.exchangebbs.com:119/ (21:1/144.0)
From
Ozz Nixon@21:1/144 to
Ozz Nixon on Tue Apr 23 01:28:48 2019
On 2019-04-21 19:12:10 +0000, Ozz Nixon -> All said:
How does this compare to speeds others are getting with their tosser?
A few people have asked, why am I designing PCBoard 16 to run
interpreted instead of compiled. So, I turned off the Fidonet and
USENET Tosser mid-morning today. Added a couple variables so I could
generate the following stats:
21.09.39.342 * Tossed 824 PKTs, 63271 MSGs, 3 MSGs to Ozz Nixon
21.09.39.342 * Summary processed 180599194 bytes in 234 seconds.
21.09.39.342 * Speed 771791 bytes read a sec. 270 msgs a second.
21.09.39.342 * Speed 459980 bytes written a sec. 107635526 bytes written.
So in 234 seconds (4 minutes), it was able to open and parse 824 PKT
files, which is 63,271 messages coming into PCBoard 16.
That is 180.5MB read, and 107.6MB written (the variance being fields
that do not need to be stored in the BBS as it is the final destination
for these messages (SEEN-BY mainly)).
The hardware was capable of reading 771kb a second, and concurrently
writing 459kb a second. Averaging 270 messages read per second, and 270 written per second.
* Now yes, a binary would be even faster - but, these numbers show you
Modern Pascal can easily outperform Python (2 or 3) or any other script language. And in interpreted mode, I can code all day without having to compile - occasionally stopping to test my changes have not broken
anything.
270msgs good? (the averge message size processed in this batch was 2,854
bytes)
--- ExchangeBBS NNTP Server v3.1/Linux64
* Origin: nntp://bbs.exchangebbs.com:119/ (21:1/144.0)