;ELC ;;; Compiled ;;; in Emacs version 28.0.50 ;;; with all optimizations. (byte-code "\300\301!\210\300\302!\207" [require cl calc-comb] 2) #@146 Create a new UUID object. Using version 4 (random) because it's likely easiest to implement, plus it satisifies the privicy concerns of wackos. (defalias 'uuid-create #[nil "\303\304\305\306\307X\203\310 BT\211\202 \237*\"\211\311\305I\210\n\312\313I\210\n\314\305I\210\n\315\305I\210\n\316\305I\210\n\317\313I\210\n\320\313I\210\n)\207" [i #1=#:--cl-var-- bits apply vector 0 nil 127 uuid-random-bit 60 61 1 62 63 69 70 71] 5 (#$ . 154)]) (defalias 'uuid-random-bit #[nil "\300\301\302!\302\"\207" [logand math-random-digits 1] 3]) (defalias 'uuid-get-byte #[(uuid bytenum) "\306_\211\307\\\310 \n\f X\203) \fH\211\f\311 \312\"\\)\fT\211\202* +\207" [bytenum lsb msb val bitnum #1=#:--cl-var-- 8 7 0 lsh 1 uuid bit] 5]) #@26 Convert UUID to a string (defalias 'uuid-to-stringy #[(uuid) "\301\302\303\304\"\303\305\"\303\306\"\303\307\"\303\310\"\303\311\"\303\312\"\303\313\"\303\314\"\303\315\"\303\316\"\303\317\"\303\320\"\303\321\"\303\322\"\303\323\"&\207" [uuid format "%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x" uuid-get-byte 0 1 2 3 4 5 6 7 9 8 10 11 12 13 14 15] 20 (#$ . 907)]) #@40 Make a string form of a UUID directly. (defalias 'uuid-string #[nil "\300\301 !\207" [uuid-to-stringy uuid-create] 2 (#$ . 1320)]) (defalias 'uuid-to-win32 #[(uuid) "\301\302\303!\"\207" [uuid format "{%s}" uuid-to-stringy] 4]) (byte-code "\300\301\302\"\210\300\303\302\"\210\300\304\302\"\210\305\306!\207" [defalias uuid-to-w32 uuid-to-win32 uuid-to-win-nt uuid-to-mswindows provide uuid] 3)