Multics Contributions
I started using Multics sometime around MR6.1 (March 1978) to MR6.5
(September 1978), and first had my own account on February 8, 1979,
right before MR7.0 (March 1979). I started working for Honeywell
some time around MR10.0 (October 1982) and started working at the
Phoenix Multics Development Center (PMDC) in October 1983 (MR10.1);
I stayed there until I left for grad school the summer of 1989,
before the release of MR12.3 (December 1989). (Also at this site: a
chart of history of contributions to Multics
source code. There are names here not represented on the
Multicians.org roster.)
Jim Lippard
===========
events 633
roles change 357, audit 199, modifier 66, author 11
new code 37 events, 27 distinct source modules
(events also count 6 .info, 3 .bind)
modifications 397
backfilled 27 (change events with no approve/audit/install)
co-credited 0 (shared a source line with another person)
span 2 runs, split at a quiet stretch of more than 4 years
1980 to 1988-08-11 477 events, 297 files
2026-09-07 to 2026-10-12 156 events, 124 files
distinct files 420 in 138 bound segments / directories
spelled Lippard (556), Jim Lippard (77)
by decade
decade new changes audits
1980s 19 262 196
2020s 18 135 3
total 37 397 199
top libraries
system_library_standard 208
system_library_network 121
system_library_tools 101
system_library_1 77
include 55
system_library_unbundled 24
system_library_auth_maint 21
system_library_obsolete 11
top bound segments / directories
include/include 55
system_library_standard/bound_msg_facility_.s.archive 52
system_library_tools/bound_library_tools_.s.archive 21
system_library_network/bound_ftp_server_.s.archive 19
system_library_network/bound_tcp_.s.archive 18
system_library_standard/bound_absentee_com_.s.archive 16
system_library_network/bound_network_tools_.s.archive 15
system_library_network/bound_net_all_rings_.s.archive 14
top files
message_facility_.pl1 19
delete_message.pl1 10
validate_info_seg.pl1 8
general_ready.pl1 7
send_message.pl1 7
accept_messages.pl1 6
enter_abs_request.pl1 6
set_search_paths.pl1 6
Unofficial contributions (private tools), 1980-86:
- Modified versions of system commands: system.pl1, whom.pl1, generate_words.pl1 (plus early message facility additions)
- Modified versions of others' tools: say.pl1, notify_on_login.pl1
- Own tools: idwblo.pl1, read_digest.pl1, set_func_keys.pl1, answerer.pl1, pig_latin_.pl1, iso_date.pl1 (iso_clock etc.),
long_date_.pl1, longer_date.pl1, rot13.pl1, explodec.pl1, repeat.pl1, arabic.pl1, when.pl1, logged_in.pl1,
english.pl1, monitor_mailbox.pl1, unquote_string_.pl1, uppercase_seg.pl1/lowercase_seg,
compout_status.pl1, how_many_logins.pl1
- Pre-Multics video system stuff: video_.pl1, identify.pl1, set_func_keys.pl1
- Video extensions: get_word_index_.pl1, underline_word.pl1, deunderline_word.pl1, uclc_word.pl1
This is probably an incomplete list that I gathered from a quick scan of the source
tree. I started off fixing bugs in commands and subroutines.
MR10.0:
- 06/08/82 adjust_bit_count_.pl1 (also 08/02/83 and 04/09/84) [my first credited Multics contribution, there were earlier uncredited ones]
- 07/10/82 saved_dir_info.incl.pl1
- Jul 1982 comp_dir_info.pl1, list_dir_info.pl1, 7/10/82 list_dir_info_.pl1
- Sep 1982 rebuild_dir.pl1, save_dir_info.pl1
MR10.1:
- Aug 1, 1983 read_password_.pl1
- Aug 2, 1983 io_call.pl1 Aug 3, 1983 io_call_read_write_.pl1
- Aug 4, 1983 line_length.pl1, date_compiled.pl1
- Aug 8, 1983 check_info_segs.pl1
- Aug 9, 1983 general_ready.pl1
- Aug 18, 1983 expand_pathname_.pl1
- Aug 1983 ask_.pl1 (allow "y" and "n")
- Sep 3, 1983 format_pl1_.pl1
MR10.2:
- Oct 11, 1983 lib_access_mode_.pl1
- Oct 24, 1983 lib_Scontrol_.incl.pl1, lib_arg_struc_.incl.pl1
- Oct 31, 1983 get_effective_access
- Dec 12, 1983 unassign_resource.pl1
- Dec 13, 1983 io_call_read_write_.pl1, Dec 19 1983 io_call.pl1, io_call_msg_.alm
- Dec 1983 delete sys_dates_ from bound_lib_utility_.bind
MR11.0:
- Jan 17, 1984 lib_args_.incl.pl1, lib_based_args_.incl.pl1
- Jan 18, 1984 lib_descriptor_.pl1
- 84-01-20 lib_get_tree.pl1
- library_cleanup.pl1, library_descriptor.pl1, library_fetch.pl1, library_info.pl1, library_map.pl1, library_pathname.pl1, library_print.pl1, multics_library_search.pl1 (10/11/83, 03/05/84)
- Feb 1984 listen_.pl1
- Feb 1984 master.ec: use segments instead of check_info_segs
- May 15, 1984 message_info.incl.pl1, syn_.pl1
- May 15, 1984 discard_.pl1
- May 25, 1984 check_info_segs.pl1
- May 29, 1984 msg_array.incl.pl1
- July 1984 have_queue_entries.pl1
- July 1984 datebin_.pl1
Then I wrote the message_facility_
MTB-659, July 10, 1984, which was a substantial rewrite of the
interactive message facility to make its functions available through
a subroutine and rewrite all of the commands to use it. I had done a
fair amount of work on it in the years prior, with guidance from Jim
Davis. I have an old email from Chris Jones who was the message
facility maintainer in July 1982 before I started working in the
Multics Development Center asking if I wanted to work on what he had
written up as an earlier (July 30, 1981)
MTB-533,
Proposed Message Facility Enhancements, which I should have cited
in mine, as well as acknowledged Jim Davis's guidance. I had already
implemented most of the send_message features before December 22,
1980 (per saved old email), and was getting it installed with help
from JRDavis. That version is lost to history because I did a
complete rewrite, but one history comment references: "2)
change(84-06-26,Lippard), approve(), audit(), install(): Modified to
merge in "accepting" (based on the original "accepting" written by
James R. Davis on April 29, 1980 which was based on an idea of Paul
Benjamin)."
- Aug 24 1984 msg_wakeup_flags.incl.pl1
- Sep 4 1984 cv_float_.pl1
- Oct 1 1984 error_table_.alm (messages for msg facility)
- Oct 17 1984 msg_print_flags.incl.pl1
- 84-08-28 bound_process_env_.bind
From this point on the history comments show the MCR numbers, so I put them in MCR sequential order even though
it's not quite chronological for when the changes got made.
- MCR6565 86-03-10 get_effective_access.pl1
- MCR6781 84-03-06 entries.pl1 (active function)
- MCR6899 86-03-10 get_effective_access.pl1
- MCR7010 approved 84-09-18 entries.pl1 (check date)
- MCR7081 approved 85-05-02: fs_obj_access_codes.incl.pl1
- MCR7121 approved 85-01-09 general_ready.pl1
- MCR7139 approved 85-01-16 sort_seg.pl1, sort_seg_.pl1
- MCR7151 approved 85-01-23 bound_multics_bce_.bind, substr.pl1
- MCR7158 approved 85-01-23 list_help.pl1
- MCR7159 approved 85-01-30 set_lock_.pl1
- MCR7165 approved 85-01-30 print.pl1
MR12.0:
- 85-07-30 mrds_dsl_dl_fscope.pl1
- 1985-08-01 MTB724: MRDS scope mechanism
- PBF7267 86-08-04 date_compiled.pl1 [PBF = post bug fix, didn't require a new MCR]
- [July 1985: Multics is awarded B2 certification from the National Computer Security Center;
the B2-certified release MR11.0 came out September 1, 1985.]
- MCR7262 approved 85-08-26 general_ready.pl1
- MCR7289 approved 1985-11-04 validate_info_seg.pl1
- MCR7298 approved 86-01-07 bound_msg_facility_.bind
- MCR7309 approved 85-12-02 accept_rpv.pl1
- MCR7322 approved 85-12-30 canonicalize.pl1 (also PBF7322 86-02-11)
- MCR7326 approved 85-12-30 abs_request_dcls.incl.pl1, as_request_header.incl.pl1, as_request_header.incl.pl1, as_request_sender.incl.pl1, as_request_sender_.incl.pl1, asr_abs_command.incl.pl1, access_operations_.alm, cancel_abs_request.pl1, enter_abs_request.pl1, enter_abs_request_.pl1 (absentee facility changes) bound_absentee_ctl_.bind, absentee_user_manager_.pl1, absentee_utility_.pl1, asr_abs_command_server_.pl1 PBR7326 lis_as_requests.pl1, dial_ctl_.pl1
- MCR7437 approved 86-06-24 message_facility_.pl1
- MDD-010-01 System/User Control (revised MDD authored by Eric Swenson)
- PBF7616 87-02-09 access_operations.alm
- MCR7371 approved 86-03-14 canonicalize.pl1
- MCR7383 approved 86-04-11 rldr_arg_reader_.pl1
- MCR7385 approved 86-04-21 general_ready.pl1
- MCR7389 approved 86-04-11 pvte.incl.alm, pvte.incl.pl1, init_root_vols.pl1
- MCR7418 approxed 86-05-27 msg_facility_mailbox.incl.pl1, bound_msg_facility_.bind
- MCR7427 approved 86-06-02 status_for_backup.incl.pl1, status_.pl1, backup_dump_recurse.pl1
- MCR7433 approved 86-06-17 salv_check_vtoce_.pl1, salv_dir_checker_.pl1, salv_directory.pl1, salvage_dir.pl1
- MCR7438 approved 86-06-23 define_area_.pl1 (also PBF7438), error_table_.alm
- MCR7441 approved 86-07-10 mseg_check_access_.pl1
- PBF7472 approved 86-07-15 memo.pl1, memo_process_memos_.pl1
- MCR7534 approved 86-09-04 acl.pl1
- MCR7537 approved 86-03-14 canonicalize.pl1
- MCR7539 approved 86-09-08 fs_get.pl1
- MCR7551 approved 86-09-29 sort_seg_.pl1
- MCR7576 approved 87-04-27 bound_date_time_.s.archive=/time_info_.cds, bound_time_rtns_.bind, mlsys_format_.pl1, mlsys_parse_text_.pl1
- MCR7577 approved 86-11-24 timer_manager_.pl1
- MCR7578 approved 86-11-24 ms_create.pl1 (and PBF7578), mlsys_mailbox_utils_.pl1, mseg_check_access_.pl1 (and PBF7881 88-05-02), mseg_fs_interface_.pl1, mseg_mbx_ms_gate_target_.pl1, mseg_message_.pl1
- MCR7581 approved 1986-12-01 validate_info_seg.pl1
- MCR7589 approved 86-12-08 switch_on.pl1
- MCR7590 approved 86-12-08 salv_directory.pl1, salv_err_msg.pl1
- MCR7591 apporved 86-12-08 display_disk_label.pl1
- MCR7604 approved 1987-01-26 validate_info_seg.pl1
- MCR7616 approved 87-02-09 bound_hc_tuning.bind, hcs_.alm (also PBF7616), phcs_.alm (also PBF7616), check_cpu_speed.pl1, write_notify_test.pl1, set_proc_required.pl1
- MCR7640 approved 87-03-16 volmap.alm
- MCR7648 approved 87-03-16 page_error.alm
- MECR0001 approved 87-03-18 mlsys_mailbox_mgr_.pl1
- MCR7658 approved 87-04-06 wired_fim.alm
- MCR7669 approved 87-04-20 mlsys_mailbox_mgr_.pl1, delete_message.pl1
- MCR7673 approved 87-04-27 bound_date_time_.bind, sc_request_table_.alm, sc_requests_.pl1, add set_time_zone, hphcs_.alm
- MCR7675 approved 87-04-27 set_system_time_zone_.pl1
- MCR7709 approved 87-07-12 absentee_user_manager_.pl1, absentee_utility_.pl1
- MCR7718 approved 87-06-22 default_error_handler_.pl1
- MCR7729 approved 87-06-29 io_reconfig.pl1, error_table_.alm, reconfigure.pl1
- MCR7760 approved 87-08-24 access_class_check.pl1, reset_soos.pl1
- MCR7762 approved 85-12-30 cancel_abs_request.pl1 (check date)
- MCR7788 approved 87-10-26 set_search_paths.pl1
- MCR7797 approved 87-11-23 set_search_paths.pl1
- MCR7822 approved 87-12-21 sl_info.incl.pl1, search_paths_.pl1, set_search_paths.pl1 (and PBF7822), set_translator_search_rules.pl1
- MCR7869 approved 88-03-28 error_table_.alm, acl_commands_.pl1, mseg_fs_interface_.pl1
- MCR7876 approved 88-04-18 message_facility_.pl1
- MCR7881 approved 88-05-02 reload_set_info.incl.pl1, bound_file_system.bind, set.pl1, backup_load.pl1, system_privilege_.alm fs_standard_object_.pl1.pmac, switch_on.pl1, status.pl1
- MCR7929 approved 88-07-04 asd_.pl1
- MCR7960 approved 88-08-08 print_apt_entry.pl1
I quit Honeywell in August of 1988 to go to grad school.
- November 1992: Final Bull HN release of Multics, MR12.5.
- November 14, 2007: Multics is made open source by Bull SAS and source code of MR12.5 release is provided to MIT under BSD-style license.
- March 7, 2017: MR12.6f released along with dps8m simulator.
- July 29, 2021: MR12.7 released.
- August 18, 2023: MR12.8 released, coordinated by Eric Swenson.
MR12.9:
- September 2026: I provided (Sep 9) versions of my explore game for
Multics recovered from 1980 line printer output, as well as (Sep 11) a
port of Dave Platt's 550-point Adventure for CP-6 (Fortran 77
code) for the author-maintained library (>aml) section of Multics.
- MCR10176 (Sep 21) message_facility.pl1 bug fixes (code untouched
since I last modified it in March of 1988 (MCR7876, above).
- September 22, 2026: Provided bound_secure_hash_ (secure_hash_.pl1, secure_hash_state.incl.pl1, sha256.pl1) and
bound_unix_tools_ (unix_patch, unix_diff, decode_base64, encode_base64) for >aml.
- September 25, 2026: Provided updated encode_base64/decode_base64 to support dense9 format, convert_dense9_.pl1 to add to bound_secure_hash_.
- MCR10177 (Sep 25) In process, Fix bugs in archive.pl1 and its subroutines (in process).
- September 27, 2026: Provided updated encode_base64/decode_base64 to not overwrite output files without prompting and -force for force; provided gzip and gunzip with dense9 support.
- October 5, 2026: Provided bug fixes for bound_mlsys_mailer_ and bound_mgp_server_ (including open relay prevention).
- October 6, 2026: Submitted bound_ip_ bug fixes.
- October 7, 2026: Submitted bound_tcp_ bug fixes.
- October 8, 2026: Submitted bound_udp_ bug fixes.
- October 9, 2026: Submitted bound_network_tools_ and bound_net_all_rings_ bug fixes. Submitted MCR10180, Update host_table_dcls.incl.pl1.
- October 10, 2026: Submitted bound_ftp_server_ bug fixes.
- October 11, 2026: Submitted bound_user_ftp_ bug fixes, including passive mode support. Added ALLO implementation to server and client for use in distinguishing 8-bit and 9bit bytes with L I (-image).
- October 12, 2026: Submitted run_tcp_server.pl1 to suppress normal TCP close messages for FTP that aren't errors (can be displayed in -trace mode).
- October 13, 2026: Submitted fixes to host_table_mgr_.pl1, ip_get_address_given_.pl1. Submitted MCR10196, Return error code in correct variable in mlsys_transmit_.pl1.
- October 14, 2026: Submitted change to mlsys_mailer_info_ and all callers to use longer host name declaration.
- October 18, 2026: Submitted changes to bound_tcp_ and bound_ftp_server_.