(resending with the correct HECnet address)
> On Jul 25, 2024, at 12:16 AM, Chris Hanson <cmhanson(a)eschatologist.net> wrote:
>
> I haven’t successfully used SIMH networking on macOS yet but one of the things that I’ve seen in building SIMH with an Xcode project that I created was that there is *a lot* of type confusion in the codebase nowadays: It has lots of use of int, int32, etc. that should actually be one of ptrdiff_t, ssize_t, size_t, off_t, and so on.
>
> While I appreciate the desire to be compatible with older C89 compilers, this is one of those things that opens one up to subtle bugs on 64-bit platforms—especially when trying to build for a mix of LP64 and ILP64 platforms. I think the better way to handle that would be to provide cover definitions for pre-C99 compilers and pre/non-POSIX systems, so the codebase can use the correct types throughout.
I suppose, but Mark P has a point: it doesn't make a whole lot of sense to do major editing on the codebase if it isn't broken.
Clearly, ptrdiff and ssize are not issues, because nothing in the SIMH suite creates data structures that are more than 32 bits in size. If we had Alpha emulation for machines that support more than 4 GB of physical memory (if there are any Alphas for which that is true) then for that case the use of size_t would matter, but clearly not for anything else.
Off_t is unlikely to be an issue either, unless you needed a virtual disk bigger than 4 GB. Those might, just barely, be supported on VAX (MSCP) and maybe some PDP-11 OS as well, though I know for a fact that RSTS/E tops out right at 4 GB and probably never actually had real disks that big.
> Another pretty serious problem is that a lot of platforms set USE_SHARED rather than just USE_NETWORK and wind up “wrapping” the libpcap API, loading the library with dlopen(3) and calling through stubs that have their own prototypes defined. This is extremely dangerous because something like libpcap can adjust its signatures and headers simultaneously to manage source and binary compatibility while changing behavior at the same time. This is especially important when something like libpcap is provided by the OS.
Um, the dlopen stuff seems to be an option, and it's only there on Linux as far as I can tell. Is it actually a problem? I'm not sure why it's there, I'll admit that.
> ...
> Similarly, the conflation of the various different integer types risks becoming a field full of land mines. While one can argue that SIMH is never dealing with enough data to run into 32-bit truncation on 64-bit systems so it’s not worth worrying about, this is another area where “it works fine, don’t change it” is just fine right up until the point where it isn’t. It’d be best to be consistent with POSIX here (rather than self-consistent) and to provide a thin adapter layer for pre-POSIX systems.
It does seem that you're hypothesizing possible breakage but I don't see any way that it can happen in reality.
Remember that SIMH works on 32 bit systems. It follows that the 32-bit types should not be a problem even if new code would not do it that way.
paul
I've been busy with my silly things as usual, and lately implemented a
FINGER client and server for RSX, and I realized there are a couple of
things to maybe check with other people on HECnet.
First of all - finger as such is a (sortof) well known tool/service on
the TCP/IP internet. And I've had a finger server and client for TCP/IP
under RSX for a long time, but have never really shared it, since it was
a bit "odd".
But even before this, I knew of a FINGER implementation available from
DECUS for RSX.
I've known that I wanted to make FINGER available for others for a long
time, but recently I started thinking of also adding in DECnet
capability in my finger implementation. So the last few weeks I've been
tinkering with this, and I've finally completed the work and made my new
finger implementation available as a package.
The FINGER from DECUS mentions the following:
FINGER is a utility to display information about a
selected user or group of users. It can be invoked for users
on the local node or on a remote node over DECnet, and is com-
patible with the VMS implimentation of FINGER. Full function-
ality requires an RSX-11M+ system with resource accounting and
DECnet.
So, not only have there been this RSX implementation from DECUS, there
apparently also exist(ed) an implementation from somewhere for VMS.
FINGER over TCP uses the well known TCP port 79, while the DECUS RSX
(and I assume VMS) DECnet implementation uses object number 117.
My implementation then responds to both these access paths, as well as
being able to query locally, and also try to connect to remote systems
using either of these methods.
And I now have this running on MIM::
So my questions are:
. Do anyone else have any finger service running on any HECnet node?
. Do anyone else know what other implementations even exist, and for
which OSes?
I do think FINGER is somewhat useful to find who might be logged in and
active, as well as finding out more information about people on
different systems in general. On the internet, finger servers are
nowadays unusual to see, since privacy and security concerned people
just feel that finger gives out way too much information anonymously.
So I am not encouraging people to run this if they have such concerns.
But like I said, personally, I do find it useful, and will keep it
available on any RSX system that I am running.
Johnny
--
Johnny Billquist || "I'm on a bus
|| on a psychedelic trip
email: bqt(a)softjar.se || Reading murder books
pdp is alive! || tryin' to stay hip" - B. Idol
Version 5.3(255)-5 incorporates additional features, enhancements and
fixes since the minor release of 5.3(248)-5 in November 2023. These are
as follows and can be identified in the code with the edit number as the
prefix of a comment.
[249] Implement relative directory connect
[251] Emit new directory name when either wildcarded structure or
directory changes
[252] Fix some of the directory parsing logic to properly handle .CMDEV
and .CMDIR
[253] Fix ^A to print the number of pages sent and the total; was always
omitting total
[254] Implement CDUP, generic 'G'
[255] Make CWD accept ".." as token for Unix, DOS, Windows, and OS/2 CDUP
The changes were mainly driven to simulator relative directory
connection as Tops-20 directory punctuation (I.E., '<' and '>') can too
easily be confused with piping requests on some Kermit clients. On
some, it proved impossible to convince them otherwise...
Generic 'G' is an addition to the Kermit protocol. C-Kermit currently
implements this in addition to Tops-20
Available for ANONYMOUS NFT from VENTI2:: and from
https://www.kermitproject.org/kermit-20.html.
"merlyn drforbin" <kropotkin(a)gmx.com> wrote:
>Any way to set endpoint buffer size on panda decnet phase IV
Could some of this (in SYSTEM:7-CONFIG.CMD) be what you are looking for?
This is from RARITY (not PANDA, but DEC vanilla distribution,kind of), I'm
not sure I have the correct values myself, been experimenting.
; DECnet parameters:
;default is DECNET BUFFER-SIZE 576
decnet buffer-size 1476
;default is DECNET MAXIMUM-BUFFERS 80
;decnet maximum-buffers 40
--
Anders Andersson, Uppsala, Sweden
Gentlepeople,
The regular release of V1.1.0 is now published. You can download it from http://akdesign.dyndns.org:8080/resources/public/index.html .
The code in Github is up to date, and the "main" branch has been updated to the V1.1.0 code. The "t1.1" branch is now retired.
For those of you who have used the beta and/or release candidate releases: nothing much changed since then apart from bugfixes. If you're upgrading from V1.0, please be sure to read the documentation, in particular the CHANGES.txt file. A notable change that may affect your configuration files:
f. The --api and --insecure-api switches on the "http" configuration
line have been removed. Instead, API control is via a new "api"
line. See doc/config.txt for details.
paul
Hey guys. just got tops10 7.03 kinda working on hecnet.
I'm still not able to set host to rsts and communication to from the node is spotty!
Any suggests.
Thank you in advance
I just released PyDECnet 1.1 rc2. You can find kits at http://akdesign.dyndns.org:8080/resources/public/index.html (the "V1.1 release candidate 2" lines are it).
This contains a few bugfixes; a notable one makes HTTPS for the embedded web server work if you're running Python 3.12 or later. (Thanks Wilm!)
I did a major rewrite of the "api-connecors.txt" documentation file, so now the recommended "Connectors" mechanism for writing PyDECnet applications and accessing its API should be a lot more useable.
Barring surprises I'll probably issue the final V1.1 release in a week or so.
paul
I am running my pydecnet router on a Raspberry Pi Zero W2
After switching to the beta/preview version the daemon does not start automatically when the Pi boots
Do I need to make additional changes to enable that again? I don't remember from setting up the stable version anymore.
Mike