Skip to content

Instantly share code, notes, and snippets.

@miyamuko
miyamuko / gist:1508896
Created December 22, 2011 04:14
#xyzzy の network stream からソケットハンドルを無理やり取り出してみる PoC
;;
;; xyzzy の network stream からソケットハンドルを無理やり取り出してみる PoC
;; メモリレイアウトに依存する危険な処理なので良い子は真似しないように
;;
;; Windows SDK/.../WinSock2.h
(c:define SOL_SOCKET #xffff)
(c:define SO_SNDTIMEO #x1005)
(c:define SO_RCVTIMEO #x1006)
@miyamuko
miyamuko / gist:1505253
Created December 21, 2011 08:38
#xyzzy の curl バインディング (PoC)
;; xyzzy の curl バインディング (PoC)
;;
;; http://curl.haxx.se/
;; http://www.gknw.net/mirror/curl/win32/curl-7.23.1-ssl-sspi-zlib-static-bin-w32.zip
;; curl.h
(defconstant CURLOPTTYPE_LONG 0)
(defconstant CURLOPTTYPE_OBJECTPOINT 10000)
(defconstant CURLOPTTYPE_FUNCTIONPOINT 20000)
(defconstant CURLOPTTYPE_OFF_T 30000)
@miyamuko
miyamuko / gist:1484611
Created December 16, 2011 05:19
#xyzzy で巨大な文字列に対する正規表現マッチがすごい遅い
;; xyzzy だとすっごい遅い。
;; Ctrl-g で止めることもできないからプロセスを殺すしかない。
(string-match
"a+\\|b"
(make-sequence 'string 50000 :initial-element #\a))
0
;; ruby だと一瞬。
> ruby -e "p ('a'*50000) =~ /a+|b/"
@miyamuko
miyamuko / gist:1480046
Created December 15, 2011 06:24
equalp に hash-table を渡すと謎の多値が返ってくる #xyzzy
(equalp (alexandria:plist-hash-table '(:foo 1 :bar 2))
(alexandria:plist-hash-table '(:foo 1 :bar 2)))
t
t
(equalp (alexandria:plist-hash-table '(:foo 1 :bar 2))
(alexandria:plist-hash-table '(:foo 1)))
nil
(equalp (alexandria:plist-hash-table '(:foo 1 :bar 2))
@miyamuko
miyamuko / gist:1353916
Created November 10, 2011 02:27
バッファ内に書いてある数式を計算して答えを挿入 #xyzzy
;;
;; バッファ内に書いてある数式を計算して答えを挿入
;;
;; 例
;; 1 + 1 ってバッファに書いておいてリージョンで囲って M-x eval-calc-region
;;
(require "calc")
(defun eval-calc-region (s e)
@miyamuko
miyamuko / gist:1305831
Created October 22, 2011 09:59
cl-hogehoge を #xyzzy に移植するときのテンプレート生成
;;
;; あるパッケージ内で定義されているシンボルの中から
;; ansify にあるシンボルと未定義のシンボルを取得して、
;; パッケージのテンプレートを生成する。
;;
;; cl-hogehoge の移植用に。
;;
;; 以下で定義している関数を利用しています。
;;
;; #xyzzy にはないシンボルと ansify にあるシンボルに色をつけるためのキーワードファイルの生成
@miyamuko
miyamuko / gist:1305799
Created October 22, 2011 08:56
#xyzzy にはないシンボルと ansify にあるシンボルに色をつけるためのキーワードファイルの生成
;;
;; xyzzy にはないシンボルと ansify にあるシンボルに色をつけるためのキーワードファイルの生成
;;
;; Usage:
;; M-x update-keyword-file
;;
(require "ansify")
(require "xl-ppcre")
@miyamuko
miyamuko / gist:1305705
Created October 22, 2011 06:17
#xyzzy の defpackage で :shadowing-import-from 2 つと :shadow を書くとエラー
(defpackage :hoge
(:use :lisp)
(:shadowing-import-from :ansify
:typecase)
(:shadowing-import-from :ansi-loop
:loop)
(:shadow
:car))
;=> :shadowと:shadowing-import-fromでcarが2回以上指定されています
@miyamuko
miyamuko / gist:1305600
Created October 22, 2011 03:58
(require "xl-alexandria/test/test-base") しただけで xyzzy がクラッシュすることがある
;; (require "xl-alexandria/test/test-base") しただけで xyzzy がクラッシュすることがある
;;
;; とりあえず以下で回避。クラッシュする原因は不明。
diff --git a/site-lisp/lisp-unit.l b/site-lisp/lisp-unit.l
index 52a9b21..4f5ccdd 100755
--- a/site-lisp/lisp-unit.l
+++ b/site-lisp/lisp-unit.l
@@ -333,7 +333,7 @@ For more information, see lisp-unit.html.
(defun remove-all-tests (&optional (package *package*))
@miyamuko
miyamuko / gist:1305573
Created October 22, 2011 03:41
#xyzzy の real 型で数字の範囲を指定して deftype できない
;; xyzzy の real 型で数字の範囲を指定して deftype できない
(deftype negative-real ()
`(real * (0)))
;=> negative-real
(typep -1 (si:canonicalize-type 'negative-real))
;=> t
(typep 1 (si:canonicalize-type 'negative-real))
;=> t