# HG changeset patch # User Steve Losh # Date 1647020178 18000 # Node ID c5124aa20cbd5cd5f4d194fd2222a16a71c795f1 # Parent d7650a70ef267bb82178e241f324492fc83627ad A bunch more diff -r d7650a70ef26 -r c5124aa20cbd bin/cacl --- a/bin/cacl Tue Feb 01 10:52:56 2022 -0500 +++ b/bin/cacl Fri Mar 11 12:36:18 2022 -0500 @@ -2,8 +2,7 @@ set -e -LISPS=("sbcl" "ccl" "abcl" "ecl") +# LISPS=("sbcl" "ccl" "abcl") LISPS=("sbcl" "ccl") -LISPS=("sbcl") rlwrap ~/src/cacl/build/cacl-$(shuf -n1 -e "${LISPS[@]}") "$@" diff -r d7650a70ef26 -r c5124aa20cbd gitconfig --- a/gitconfig Tue Feb 01 10:52:56 2022 -0500 +++ b/gitconfig Fri Mar 11 12:36:18 2022 -0500 @@ -100,6 +100,8 @@ purge = "!sh -c 'git untracked && confirm && git actually-purge'" actually-purge = "!sh -c 'git untracked | xargs rm'" + bazel-log = log --pretty=bazel --date=raw --all --graph --topo-order + [push] default = current @@ -131,3 +133,6 @@ [sendemail] smtpserver = "/home/sjl/src/dotfiles/bin/msmtp-stevelosh" + +[pretty] + bazel = %C(auto)%H %Cgreen%cd %C(auto)%s %Cred%al %C(auto)%d diff -r d7650a70ef26 -r c5124aa20cbd gnuplot --- a/gnuplot Tue Feb 01 10:52:56 2022 -0500 +++ b/gnuplot Fri Mar 11 12:36:18 2022 -0500 @@ -81,6 +81,16 @@ png = "eval export_png('graph')" # }}} +# Histograms -------------------------------------------------------------- {{{ + +histogram_bin_width=1024*256 +histogram_bin(x,width)=width*floor(x/width) + width/2.0 +set boxwidth histogram_bin_width*0.9 +set style fill solid 0.5 + +plot 'sizes' using (histogram_bin($1,histogram_bin_width)):(1.0) smooth freq with boxes + +# }}} # Other ------------------------------------------------------------------- {{{ kdens(file, column, bandwidth) = sprintf( \ diff -r d7650a70ef26 -r c5124aa20cbd lisp/when.lisp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lisp/when.lisp Fri Mar 11 12:36:18 2022 -0500 @@ -0,0 +1,211 @@ +(eval-when (:compile-toplevel :load-toplevel :execute) + (ql:quickload '(:adopt :iterate :chronicity :local-time :losh) + :silent t)) + +(defpackage :when + (:use :cl :iterate :losh) + (:export :toplevel :*ui*)) + +(in-package :when) + +;;;; Configuration ------------------------------------------------------------ +(defparameter +iso-8601-seconds-format+ + '((:year 4) #\- (:month 2) #\- (:day 2) + #\T + (:hour 2) #\: (:min 2) #\: (:sec 2) + :gmt-offset-or-z)) + + +(defparameter *time-formats* + `((:rfc-3339 . ,local-time:+rfc3339-format+) + (:iso-8601 . ,local-time:+iso-8601-format+) + (:iso-8601-seconds . ,+iso-8601-seconds-format+) + (:gnuplot . ((:day 2) #\/ (:month 2) #\/ (:year 4) #\, (:hour 2) #\: (:min 2))))) + + +;;;; Errors ------------------------------------------------------------------- +(define-condition user-error (error) ()) + +(define-condition need-one-time-string (user-error) () + (:report "Exactly one time string is required.")) + + + +;;;; Functionality ------------------------------------------------------------ +(defun jitter-ns (seconds) + (if (zerop seconds) + 0 + (_ (coerce seconds 'double-float) + random + (* 1000000000 _) + floor))) + +(defun run (time-string &key (output-format :iso-8601) (jitter 0) timezone) + (local-time:format-timestring + *standard-output* + (local-time:timestamp+ (chronicity:parse time-string :endian-preference :middle) + (jitter-ns jitter) + :nsec) + :format (or (assocdr output-format *time-formats*) + (error "Unknown time format ~S." output-format)) + :timezone (or timezone local-time:*default-timezone*))) + + +;;;; User Interface ----------------------------------------------------------- +(defparameter *examples* + '(("Print the current time in RFC 3339 format:" . "when now --rfc-3339") + ("Print a randomish time from a while ago:" . "when '12 hours ago' --jitter-hours 4") + ("Print a randomish time next year in UTC:" . "when '1 year from now' --jitter-days 30 --utc"))) + + +(defparameter *option/help* + (adopt:make-option 'help + :help "Display help and exit." + :long "help" + :short #\h + :reduce (constantly t))) + + +(defparameter *option/output-format/iso-8601* + (adopt:make-option 'output-format/iso-8601 + :result-key 'output-format + :help "Output results as ISO-8601 (default)." + :long "iso-8601" + :short #\i + :initial-value :iso-8601 + :reduce (constantly :iso-8601))) + +(defparameter *option/output-format/iso-8601-seconds* + (adopt:make-option 'output-format/iso-8601-seconds + :result-key 'output-format + :help "Output results as ISO-8601 with a precision of seconds (no nanoseconds)." + :long "iso-8601-seconds" + :short #\I + :reduce (constantly :iso-8601-seconds))) + +(defparameter *option/output-format/rfc-3339* + (adopt:make-option 'output-format/rfc-3339 + :result-key 'output-format + :help "Output results as RFC 3339." + :long "rfc-3339" + :short #\r + :reduce (constantly :rfc-3339))) + +(defparameter *option/output-format/gnuplot* + (adopt:make-option 'output-format/gnuplot + :result-key 'output-format + :help "Output results as Gnuplot timestamps." + :long "gnuplot" + :short #\g + :reduce (constantly :gnuplot))) + + +(defparameter *option/jitter/seconds* + (adopt:make-option 'jitter/seconds + :result-key 'jitter + :parameter "N" + :help "Jitter result by up to N seconds." + :long "jitter-seconds" + :short #\S + :initial-value 0 + :key #'parse-integer + :reduce (lambda (old n) (declare (ignore old)) n))) + +(defparameter *option/jitter/minutes* + (adopt:make-option 'jitter/minutes + :result-key 'jitter + :parameter "N" + :help "Jitter result by up to N minutes." + :long "jitter-minutes" + :short #\M + :key #'parse-integer + :reduce (lambda (old n) (declare (ignore old)) (* 60 n)))) + +(defparameter *option/jitter/hours* + (adopt:make-option 'jitter/hours + :result-key 'jitter + :parameter "N" + :help "Jitter result by up to N hours." + :long "jitter-hours" + :short #\H + :key #'parse-integer + :reduce (lambda (old n) (declare (ignore old)) (* 60 60 n)))) + +(defparameter *option/jitter/days* + (adopt:make-option 'jitter/days + :result-key 'jitter + :parameter "N" + :help "Jitter result by up to N days." + :long "jitter-days" + :short #\D + :key #'parse-integer + :reduce (lambda (old n) (declare (ignore old)) (* 24 60 60 n)))) + + +(defparameter *option/timezone/local* + (adopt:make-option 'jitter/timezone/local + :result-key 'timezone + :help "Print result in current local computer timezone (default)." + :long "local-timezone" + :short #\l + :initial-value nil + :reduce (constantly nil))) + +(defparameter *option/timezone/utc* + (adopt:make-option 'jitter/timezone/utc* + :result-key 'timezone + :help "Print the result in UTC." + :long "utc" + :short #\u + :reduce (constantly local-time:+utc-zone+))) + + +(adopt:define-string *help-text* + "when takes a human-readable time like '2 hours ago' and prints it as a ~ + computer-readable time. It can also jitter the time by a random amount if ~ + you want to produce randomish data.") + + +(defparameter *ui* + (adopt:make-interface + :name "when" + :usage "[OPTIONS] TIME-STRING" + :summary "convert human time to computer time" + :help *help-text* + :examples *examples* + :contents (list *option/help* + (adopt:make-group + 'output-options + :title "Output Options" + :options (list *option/output-format/iso-8601* + *option/output-format/iso-8601-seconds* + *option/output-format/rfc-3339* + *option/output-format/gnuplot*)) + (adopt:make-group + 'timezone-options + :title "Timezone Options" + :options (list *option/timezone/local* + *option/timezone/utc*)) + (adopt:make-group + 'jitter-options + :title "Jitter Options" + :options (list *option/jitter/seconds* + *option/jitter/minutes* + *option/jitter/hours* + *option/jitter/days*))))) + + +(defun toplevel () + (sb-ext:disable-debugger) + (setf *random-state* (make-random-state t)) + (multiple-value-bind (arguments options) (adopt:parse-options-or-exit *ui*) + (handler-case + (adopt::quit-on-ctrl-c () + (cond + ((gethash 'help options) (adopt:print-help-and-exit *ui*)) + ((/= (length arguments) 1) (error 'need-one-time-string)) + (t (run (first arguments) + :output-format (gethash 'output-format options) + :jitter (gethash 'jitter options) + :timezone (gethash 'timezone options))))) + (user-error (e) (adopt:print-error-and-exit e))))) diff -r d7650a70ef26 -r c5124aa20cbd weechat/alias.conf --- a/weechat/alias.conf Tue Feb 01 10:52:56 2022 -0500 +++ b/weechat/alias.conf Fri Mar 11 12:36:18 2022 -0500 @@ -4,7 +4,7 @@ # WARNING: It is NOT recommended to edit this file by hand, # especially if WeeChat is running. # -# Use /set or similar command to change settings in WeeChat. +# Use commands like /set or /fset to change settings in WeeChat. # # For more info, see: https://weechat.org/doc/quickstart # diff -r d7650a70ef26 -r c5124aa20cbd weechat/autosort.conf --- a/weechat/autosort.conf Tue Feb 01 10:52:56 2022 -0500 +++ b/weechat/autosort.conf Fri Mar 11 12:36:18 2022 -0500 @@ -4,7 +4,7 @@ # WARNING: It is NOT recommended to edit this file by hand, # especially if WeeChat is running. # -# Use /set or similar command to change settings in WeeChat. +# Use commands like /set or /fset to change settings in WeeChat. # # For more info, see: https://weechat.org/doc/quickstart # diff -r d7650a70ef26 -r c5124aa20cbd weechat/buflist.conf --- a/weechat/buflist.conf Tue Feb 01 10:52:56 2022 -0500 +++ b/weechat/buflist.conf Fri Mar 11 12:36:18 2022 -0500 @@ -4,7 +4,7 @@ # WARNING: It is NOT recommended to edit this file by hand, # especially if WeeChat is running. # -# Use /set or similar command to change settings in WeeChat. +# Use commands like /set or /fset to change settings in WeeChat. # # For more info, see: https://weechat.org/doc/quickstart # @@ -21,6 +21,7 @@ nick_prefix_empty = on signals_refresh = "" sort = "number,-active" +use_items = 1 [format] buffer = "${format_number}${indent}${format_nick_prefix}${color_hotlist}${format_name}" @@ -37,3 +38,4 @@ name = "${name}" nick_prefix = "${color_nick_prefix}${nick_prefix}" number = "${color:green}${number}${if:${number_displayed}?.: }" +tls_version = " ${color:default}(${if:${tls_version}==TLS1.3?${color:green}:${if:${tls_version}==TLS1.2?${color:yellow}:${color:red}}}${translate:${tls_version}}${color:default})" diff -r d7650a70ef26 -r c5124aa20cbd weechat/charset.conf --- a/weechat/charset.conf Tue Feb 01 10:52:56 2022 -0500 +++ b/weechat/charset.conf Fri Mar 11 12:36:18 2022 -0500 @@ -4,7 +4,7 @@ # WARNING: It is NOT recommended to edit this file by hand, # especially if WeeChat is running. # -# Use /set or similar command to change settings in WeeChat. +# Use commands like /set or /fset to change settings in WeeChat. # # For more info, see: https://weechat.org/doc/quickstart # diff -r d7650a70ef26 -r c5124aa20cbd weechat/exec.conf --- a/weechat/exec.conf Tue Feb 01 10:52:56 2022 -0500 +++ b/weechat/exec.conf Fri Mar 11 12:36:18 2022 -0500 @@ -4,7 +4,7 @@ # WARNING: It is NOT recommended to edit this file by hand, # especially if WeeChat is running. # -# Use /set or similar command to change settings in WeeChat. +# Use commands like /set or /fset to change settings in WeeChat. # # For more info, see: https://weechat.org/doc/quickstart # @@ -12,6 +12,7 @@ [command] default_options = "" purge_delay = 0 +shell = "${env:SHELL}" [color] flag_finished = lightred diff -r d7650a70ef26 -r c5124aa20cbd weechat/fifo.conf --- a/weechat/fifo.conf Tue Feb 01 10:52:56 2022 -0500 +++ b/weechat/fifo.conf Fri Mar 11 12:36:18 2022 -0500 @@ -4,7 +4,7 @@ # WARNING: It is NOT recommended to edit this file by hand, # especially if WeeChat is running. # -# Use /set or similar command to change settings in WeeChat. +# Use commands like /set or /fset to change settings in WeeChat. # # For more info, see: https://weechat.org/doc/quickstart # diff -r d7650a70ef26 -r c5124aa20cbd weechat/fset.conf --- a/weechat/fset.conf Tue Feb 01 10:52:56 2022 -0500 +++ b/weechat/fset.conf Fri Mar 11 12:36:18 2022 -0500 @@ -4,12 +4,13 @@ # WARNING: It is NOT recommended to edit this file by hand, # especially if WeeChat is running. # -# Use /set or similar command to change settings in WeeChat. +# Use commands like /set or /fset to change settings in WeeChat. # # For more info, see: https://weechat.org/doc/quickstart # [look] +auto_refresh = "*" auto_unmark = off condition_catch_set = "${count} >= 1" export_help_default = on diff -r d7650a70ef26 -r c5124aa20cbd weechat/logger.conf --- a/weechat/logger.conf Tue Feb 01 10:52:56 2022 -0500 +++ b/weechat/logger.conf Fri Mar 11 12:36:18 2022 -0500 @@ -4,7 +4,7 @@ # WARNING: It is NOT recommended to edit this file by hand, # especially if WeeChat is running. # -# Use /set or similar command to change settings in WeeChat. +# Use commands like /set or /fset to change settings in WeeChat. # # For more info, see: https://weechat.org/doc/quickstart # @@ -19,6 +19,7 @@ [file] auto_log = on +color_lines = off flush_delay = 120 fsync = off info_lines = off diff -r d7650a70ef26 -r c5124aa20cbd weechat/python.conf --- a/weechat/python.conf Tue Feb 01 10:52:56 2022 -0500 +++ b/weechat/python.conf Fri Mar 11 12:36:18 2022 -0500 @@ -4,7 +4,7 @@ # WARNING: It is NOT recommended to edit this file by hand, # especially if WeeChat is running. # -# Use /set or similar command to change settings in WeeChat. +# Use commands like /set or /fset to change settings in WeeChat. # # For more info, see: https://weechat.org/doc/quickstart # diff -r d7650a70ef26 -r c5124aa20cbd weechat/relay.conf --- a/weechat/relay.conf Tue Feb 01 10:52:56 2022 -0500 +++ b/weechat/relay.conf Fri Mar 11 12:36:18 2022 -0500 @@ -4,7 +4,7 @@ # WARNING: It is NOT recommended to edit this file by hand, # especially if WeeChat is running. # -# Use /set or similar command to change settings in WeeChat. +# Use commands like /set or /fset to change settings in WeeChat. # # For more info, see: https://weechat.org/doc/quickstart # @@ -27,14 +27,20 @@ [network] allow_empty_password = off allowed_ips = "" +auth_timeout = 60 bind_address = "" clients_purge_delay = 0 compression_level = 6 ipv6 = on max_clients = 5 +nonce_size = 16 password = "" +password_hash_algo = "*" +password_hash_iterations = 100000 ssl_cert_key = "%h/ssl/relay.pem" ssl_priorities = "NORMAL:-VERS-SSL3.0" +totp_secret = "" +totp_window = 0 websocket_allowed_origins = "" [irc] @@ -45,4 +51,9 @@ backlog_tags = "irc_privmsg" backlog_time_format = "[%H:%M] " +[weechat] +commands = "" + [port] + +[path] diff -r d7650a70ef26 -r c5124aa20cbd weechat/script.conf --- a/weechat/script.conf Tue Feb 01 10:52:56 2022 -0500 +++ b/weechat/script.conf Fri Mar 11 12:36:18 2022 -0500 @@ -4,7 +4,7 @@ # WARNING: It is NOT recommended to edit this file by hand, # especially if WeeChat is running. # -# Use /set or similar command to change settings in WeeChat. +# Use commands like /set or /fset to change settings in WeeChat. # # For more info, see: https://weechat.org/doc/quickstart # @@ -50,6 +50,7 @@ [scripts] autoload = on cache_expire = 60 +download_enabled = on download_timeout = 30 hold = "" path = "%h/script" diff -r d7650a70ef26 -r c5124aa20cbd weechat/trigger.conf --- a/weechat/trigger.conf Tue Feb 01 10:52:56 2022 -0500 +++ b/weechat/trigger.conf Fri Mar 11 12:36:18 2022 -0500 @@ -4,7 +4,7 @@ # WARNING: It is NOT recommended to edit this file by hand, # especially if WeeChat is running. # -# Use /set or similar command to change settings in WeeChat. +# Use commands like /set or /fset to change settings in WeeChat. # # For more info, see: https://weechat.org/doc/quickstart # diff -r d7650a70ef26 -r c5124aa20cbd weechat/urlgrab.conf --- a/weechat/urlgrab.conf Tue Feb 01 10:52:56 2022 -0500 +++ b/weechat/urlgrab.conf Fri Mar 11 12:36:18 2022 -0500 @@ -4,7 +4,7 @@ # WARNING: It is NOT recommended to edit this file by hand, # especially if WeeChat is running. # -# Use /set or similar command to change settings in WeeChat. +# Use commands like /set or /fset to change settings in WeeChat. # # For more info, see: https://weechat.org/doc/quickstart # diff -r d7650a70ef26 -r c5124aa20cbd weechat/xfer.conf --- a/weechat/xfer.conf Tue Feb 01 10:52:56 2022 -0500 +++ b/weechat/xfer.conf Fri Mar 11 12:36:18 2022 -0500 @@ -4,7 +4,7 @@ # WARNING: It is NOT recommended to edit this file by hand, # especially if WeeChat is running. # -# Use /set or similar command to change settings in WeeChat. +# Use commands like /set or /fset to change settings in WeeChat. # # For more info, see: https://weechat.org/doc/quickstart # @@ -31,7 +31,8 @@ own_ip = "" port_range = "" send_ack = on -speed_limit = 0 +speed_limit_recv = 0 +speed_limit_send = 0 timeout = 300 [file] @@ -43,5 +44,6 @@ auto_resume = on convert_spaces = on download_path = "%h/xfer" +download_temporary_suffix = ".part" upload_path = "~" use_nick_in_filename = on