Mojo or Julia
I guess the main points are Mojo is positioned as a superset of Python.
Julia is Pythonish but not considered a superset of Python
The developer of Mojo talks about this…
Look at Mojo… after confusion on my part
Apparently released on September 7, 2023.
curl -s https://get.modular.com | sh -
bill@bill-MS-7B79:~$ modular --version
modular 0.8.0 (39a426b5)
bill@bill-MS-7B79:~$
bill@bill-MS-7B79:~/MyStuff/Mojo$ python3 -m venv mojo-venv && source mojo-venv/bin/activate
(mojo-venv) bill@bill-MS-7B79:~/MyStuff/Mojo$ modular install mojo
# Found release for https://packages.modular.com/mojo @ 24.3.0
# Downloading archive: packages/24.3.0/mojo-x86_64-unknown-linux-gnu-24.3.0-13-0.tar.zst
Downloaded [ █████████████████ ] 100% 107MiB/107MiB
# Extracting downloaded archives.
Extracted [ █████████████████ ] 100% 107MiB/107MiB
# Running post-install scripts...
Installed [ █████████████████ ] 100%
???? Mojo installed! ????
Mojo's Python virtual environment created at /home/bill/.modular/pkg/packages.modular.com_mojo/venv
If you are using ZSH (default on macOS), run the following commands:
echo 'export MODULAR_HOME="/home/bill/.modular"' >> ~/.zshrc
echo 'export PATH="/home/bill/.modular/pkg/packages.modular.com_mojo/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
If you are using bash, run the following commands:
BASHRC=$( [ -f "$HOME/.bash_profile" ] && echo "$HOME/.bash_profile" || echo "$HOME/.bashrc" )
echo 'export MODULAR_HOME="/home/bill/.modular"' >> "$BASHRC"
echo 'export PATH="/home/bill/.modular/pkg/packages.modular.com_mojo/bin:$PATH"' >> "$BASHRC"
source "$BASHRC"
Then enter 'mojo' to start the Mojo REPL.
For tool help, enter 'mojo --help'.
For more docs, see https://docs.modular.com/mojo.
(mojo-venv) bill@bill-MS-7B79:~/MyStuff/Mojo$
Using the REPL
bill@bill-MS-7B79:~$ mojo --version
mojo 24.3.0 (9882e19d)
bill@bill-MS-7B79:~$
bill@bill-MS-7B79:~$ mojo
Welcome to Mojo! ????
Expressions are delimited by a blank line.
Type `:quit` to exit the REPL and `:mojo help` for further assistance.
1> print("Hello, world!")
2. <Enter>
Hello, world!
2>
Test a source program then build an executable
bill@bill-MS-7B79:~/MyStuff/Mojo$ ls -la
total 36
drwxrwxr-x 4 bill bill 4096 May 18 20:54 .
drwxrwxr-x 52 bill bill 12288 May 18 20:24 ..
-rw-rw-r-- 1 bill bill 39 May 18 20:25 hello.mojo
drwxrwxr-x 2 bill bill 4096 May 18 20:27 info
drwxrwxr-x 8 bill bill 4096 May 18 20:30 mojo
bill@bill-MS-7B79:~/MyStuff/Mojo$ cat hello.mojo
fn main():
print("Hello, world!")
bill@bill-MS-7B79:~/MyStuff/Mojo$ mojo hello.mojo
Hello, world!
bill@bill-MS-7B79:~/MyStuff/Mojo$ mojo build hello.mojo
bill@bill-MS-7B79:~/MyStuff/Mojo$ ls -la
total 3452
drwxrwxr-x 4 bill bill 4096 May 18 20:55 .
drwxrwxr-x 52 bill bill 12288 May 18 20:24 ..
-rwxrwxr-x 1 bill bill 3486528 May 18 20:55 hello
-rw-rw-r-- 1 bill bill 39 May 18 20:25 hello.mojo
drwxrwxr-x 2 bill bill 4096 May 18 20:27 info
drwxrwxr-x 8 bill bill 4096 May 18 20:30 mojo
bill@bill-MS-7B79:~/MyStuff/Mojo$ ./hello
Hello, world!
bill@bill-MS-7B79:~/MyStuff/Mojo$
Not yet available for MS-Windows!
I’m watching a freecodecamp vid about Mojo. And the guy is talking about the Modular discord channel, which I can’t find for the life of me.
bash reverse search broke
WTH happened to my reverse search (Ctrl-R). No sooner than I write that sentence than it starts working.
Tried to reverse search ping… because I’m lazy.
Returned results were totally nonsense, and it didn’t find it!
Part of my .bash_history
find . -iname “speed“
ping google.com
cd “/home/bill/MyStuff/Pascal/” && fpc class01.pp && “/home/bill/MyStuff/Pascal/”class01
Some renewed interest in Mojo
Seeing some talk about it on YouTube. A lot of talk about it being faster than Rust. I Briefly mentioned it here.
Made/uploaded to YouTube “Emulating a IBM 7094 using Simh”
Part of the reason I make/upload some of theses videos is for a timestamp of… I did this, on this day.
Atari 2600 game improvements
As unbelievable as it is people are still making/improving games on the Atari 2600, released almost 50 years ago in 1977. I was shocked… because some are amazing. I guess it’s called Atari 2600 homebrew.
I mentioned before that these game consoles are computers, and this is further confirmation.
I initially got interested in Atari 2600 emulation, when I downloaded the Commodore 64 emulator, and found it also emulated the Atari 2600. However it didn’t recognize my USB controller, which made games hard to play. So I became more interested when I realize how much fun some of these 45+ yo games are. I wasn’t even interested in Atari 2600 emulation at the time.
I have the roms that I can play on the Stella 2600 emulator. But my game play is so bad that it’s just better to look at the comparisons between versions on YouTube. The 2600 used the MOS Technology 6507 processor, a cheaper version of the 6502. I know the DK remake is in assembler, pretty sure the Pac-Man version too. If you look at some of the discussions, they’re talking about saving 20 bytes here and 20 bytes there. I guess when you have a 4K cartridge every byte counts. Some 2600 games were released on 8k cartridges. The DK version is 32K, a cartridge that big would most likely be cost prohibitive back then. They really pushed the limits of the 2600 and it’s very impressive!
There are more cool looking games that I’ve never see before, in another collection such as Assault (AKA Sky Alien) (1983) (Bomb – Onbase), it say 1983. But who is it from. The demo certainly seems, superior (graphics and sound) to many games I remember at the time.
Put my altered ibsys_kit on github
Every time I use github, I have to figure it out, all over again.
bill@bill-MS-7B79:~/Downloads/Computers/Emulation/simh/IBM/7090/FIXED$ git push -u origin master
Username for 'https://github.com': billb2050
Password for 'https://billb2050@github.com':
remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/billb2050/ibsys_kit.git/'
bill@bill-MS-7B79:~/Downloads/Computers/Emulation/simh/IBM/7090/FIXED$
In the interest of time I just used browser drag&drop
My IBM 7094 changes worked!
These days, I just want things to work. I rarely dig this hard to make something work, anymore. But I put more effort into this because I really enjoyed the movie, Hidden Figures, that I mention here.
As stated in the previous post below, I changed ./i7090 to ./i7094. And with that in mind…
A FORTRAN Job
bill@bill-MS-7B79:~/Downloads/Computers/Emulation/simh/IBM/7090/ibsys_kit$ ./i7094
IBM 7094 simulator Open SIMH V4.1-0 Current simh git commit id: ffe537a6
sim> do do_ibsys.txt primes.job primes.out
rm: cannot remove 'print.*': No such file or directory
rm: cannot remove 'sysou1.*': No such file or directory
rm: cannot remove 'sys*.bin': No such file or directory
/home/bill/Downloads/Computers/Emulation/simh/IBM/7090/ibsys_kit/do_ibsys.txt-6> ! rm punch.* print.* sysou1.* sys*.bin
Error 256
/home/bill/Downloads/Computers/Emulation/simh/IBM/7090/ibsys_kit/do_ibsys.txt-12> att -er cdr ibsys.ctl
%SIM-INFO: CDR: unit is read only
/home/bill/Downloads/Computers/Emulation/simh/IBM/7090/ibsys_kit/do_ibsys.txt-13> att cdp punch.txt
%SIM-INFO: CDP: creating new file
/home/bill/Downloads/Computers/Emulation/simh/IBM/7090/ibsys_kit/do_ibsys.txt-15> att -ef mta1 p7b ASYS1.BIN
%SIM-INFO: MTA1: Tape Image 'ASYS1.BIN' scanned as P7B format
%SIM-INFO: contains 1242665 bytes of tape data (105 records, 16 tapemarks)
%SIM-INFO: A potentially unreasonable number of record sizes(70) vs tape marks (16) have been found
%SIM-INFO: The tape format (P7B) might not be correct for the 'ASYS1.BIN' tape image
/home/bill/Downloads/Computers/Emulation/simh/IBM/7090/ibsys_kit/do_ibsys.txt-16> att -ef mta2 p7b ASYS8.BIN
%SIM-INFO: MTA2: Tape Image 'ASYS8.BIN' scanned as P7B format
%SIM-INFO: contains 775352 bytes of tape data (167 records, 10 tapemarks)
%SIM-INFO: A potentially unreasonable number of record sizes(74) vs tape marks (10) have been found
%SIM-INFO: The tape format (P7B) might not be correct for the 'ASYS8.BIN' tape image
/home/bill/Downloads/Computers/Emulation/simh/IBM/7090/ibsys_kit/do_ibsys.txt-17> att -f mta3 p7b sysin.bcd
%SIM-INFO: MTA3: Tape Image 'sysin.bcd' scanned as P7B format
/home/bill/Downloads/Computers/Emulation/simh/IBM/7090/ibsys_kit/do_ibsys.txt-18> att -f mta4 p7b sysou1.bcd
%SIM-INFO: MTA4: creating new file
%SIM-INFO: MTA4: Tape Image 'sysou1.bcd' scanned as P7B format
/home/bill/Downloads/Computers/Emulation/simh/IBM/7090/ibsys_kit/do_ibsys.txt-19> att mta5 sysut1.bin
%SIM-INFO: MTA5: creating new file
%SIM-INFO: MTA5: Tape Image 'sysut1.bin' scanned as SIMH format
/home/bill/Downloads/Computers/Emulation/simh/IBM/7090/ibsys_kit/do_ibsys.txt-20> att mta6 sysut3.bin
%SIM-INFO: MTA6: creating new file
%SIM-INFO: MTA6: Tape Image 'sysut3.bin' scanned as SIMH format
/home/bill/Downloads/Computers/Emulation/simh/IBM/7090/ibsys_kit/do_ibsys.txt-21> att mta7 sysut2.bin
%SIM-INFO: MTA7: creating new file
%SIM-INFO: MTA7: Tape Image 'sysut2.bin' scanned as SIMH format
/home/bill/Downloads/Computers/Emulation/simh/IBM/7090/ibsys_kit/do_ibsys.txt-22> att mta8 syspp1.bin
%SIM-INFO: MTA8: creating new file
%SIM-INFO: MTA8: Tape Image 'syspp1.bin' scanned as SIMH format
/home/bill/Downloads/Computers/Emulation/simh/IBM/7090/ibsys_kit/do_ibsys.txt-23> att mta9 sysut4.bin
%SIM-INFO: MTA9: creating new file
%SIM-INFO: MTA9: Tape Image 'sysut4.bin' scanned as SIMH format
/home/bill/Downloads/Computers/Emulation/simh/IBM/7090/ibsys_kit/do_ibsys.txt-24> att mta10 sysck2.bin
%SIM-INFO: MTA10: creating new file
%SIM-INFO: MTA10: Tape Image 'sysck2.bin' scanned as SIMH format
$LIST
$DATE 051124
$JOB PRIME NUMBERS
$EXECUTE IBJOB
EXECUTION
736 LINES OUTPUT.
$IBSYS
$STOP
PERIPHERAL UNIT POSITIONS AT END OF JOBS
SYSPP1 IS A8 REC. 00001, FILE 00000
SYSOU1 IS A4 REC. 00745, FILE 00000
SYSIN1 IS A3 REC. 00002, FILE 00001
END OF JOBS
HALT instruction, PC: 07465 (SXA 7510,4)
rm: cannot remove 'reader.*': No such file or directory
/home/bill/Downloads/Computers/Emulation/simh/IBM/7090/ibsys_kit/do_ibsys.txt-32> ! rm reader.* sys*.bin
Error 256
sim>
A COBOL Job!
The execution (just the end)…
$JOB COBOL HELLO WORLD
$EXECUTE IBJOB
EXECUTION
HELLO WORLD
STOP RUN
590 LINES OUTPUT.
$IBSYS
$STOP
PERIPHERAL UNIT POSITIONS AT END OF JOBS
SYSPP1 IS A8 REC. 00001, FILE 00000
SYSOU1 IS A4 REC. 00599, FILE 00000
SYSIN1 IS A3 REC. 00002, FILE 00001
END OF JOBS
HALT instruction, PC: 07465 (SXA 7510,4)
rm: cannot remove 'reader.*': No such file or directory
/home/bill/Downloads/Computers/Emulation/simh/IBM/7090/ibsys_kit(works)/do_ibsys.txt-32> ! rm reader.* sys*.bin
Error 256
sim>
And here is the listing…
Look at IBM 7090 emulation again
Apparently I got something working before…
bill@bill-MS-7B79:~/Downloads/Computers/Emulation/simh/OpenSimh/open-simh-simh-ffe537a/BIN$ ./i7090
IBM 7090 simulator Open SIMH V4.1-0 Current simh git commit id: ffe537a6
sim>
That’s the hardware, not the software.
This is all I have previously noted. The above executable has the same date (4/22/2024) as this one, but in a different directory. This one seems to include IBSYS which was a tape based OS for the 7090/7094 and actually 709 (which used vacuum tubes) too. The 7090 did not use tubes! And evidently the 704 was the predecessor of the 709.
According to Wikipedia… The first 7090 installation was in December 1959. But also according to Wikipedia IBSYS came out in 1960. Which I realize was only on month later… but what month? Did the first installation just sit there until IBSYS came out?
I guess you can’t mention some of these without mentioning another OS… The Compatible Time-Sharing System (CTSS), developed at MIT for the 709 in 1961. And later the 7090/7094. And this brings us to the DEC PDP-10 which used a OS, also created at MIT called ITS, Incompatible Timesharing System, that I mentioned here.
Programming projects
Regarding my previous post. I started looking at some newer Go tutorials. And I found one just put out 11 months ago. It sounded interesting… at first. And then he started talking about something I really hate… Programming projects. I realize I’m probably in the minority on this one. Because these projects seem very popular. But he stared talking about building a “production ready back-end server in Go”. I have almost no interest in web related stuff at this time. Part of my problem is I really don’t have any great project in mind… but I know, I have no interest in building a “production ready back-end server in Go”!