Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
118 commits
Select commit Hold shift + click to select a range
e2ce401
Created new branch exception
task-h Jul 22, 2014
d440df2
Fixed a bug in Makefile in src/sample/tcell (from bacc138)
Jul 24, 2014
2cfaf28
(1) Enhanced rslt message to indicate reason of exit (normal/exceptio…
Sep 17, 2014
e39aade
Implemented partial cancellation flags (put, detect, and cancel) and …
Sep 18, 2014
bf33349
Added the example "pen-excep.tcell"
Sep 19, 2014
67a7311
Implemented sending cancellation message when receiving an exception …
Sep 22, 2014
0b221ac
Implemented sending cancellation message when propagating an exception
Sep 24, 2014
40daf9b
Fixed a but that woker does not exit stealing back loop when the wait…
Sep 24, 2014
9a37b57
Merged
Sep 24, 2014
90e517c
Fixed a bug in Makefile
Sep 24, 2014
e36bd15
Updated references to EXITING/BACKTRACKING copine?.tcell pseudo varia…
Sep 24, 2014
00563f3
Fixed a small bug in sock.c
Sep 24, 2014
e22068a
Reverted undesired changes in tcell/Makefile at Revision (a02031c925f2)
Sep 25, 2014
911f209
Now SC preprocessor applies preprocessor directives included in resul…
Sep 29, 2014
b36ac72
Implemented profiling mode for Tascell. Validate by compiling by 'mak…
Sep 29, 2014
7a4aeb4
Fixed bugs for profiling
Sep 29, 2014
018d45e
Implemented logging for timechart of Tascell workers. (Validate PROFI…
Sep 30, 2014
88e5502
Added help message for -T option
Sep 30, 2014
e2a88ad
Implemented a Perl script to plot a timechart from log output of -T T…
Sep 30, 2014
95dbd33
Added some features for analyzing copine4.tcell
shingo-okuno Sep 30, 2014
1e8d8b4
Predefinitions of SC preprocessor constants (by -D sc2c option) are a…
Sep 30, 2014
945b1b5
Merged
Sep 30, 2014
2d7f507
Distinguish abortion from propagating exceptions in profiling logs fo…
Oct 1, 2014
f673193
Fixed a bug in worker.sh
Oct 1, 2014
29eba70
New option '-k' of tcell/timechart.pl to keep plot files and a gnuplo…
Oct 1, 2014
cac1ea9
merged
Oct 1, 2014
2be3e84
Output auxiliary data in timechart logs (recipient in TCOUNTER-TREQ-B…
Oct 2, 2014
b07f70c
Moved a comment to the appropriate place.
Oct 3, 2014
c47e7c2
Modularized code for outputting aux-data as a function.
Oct 3, 2014
52f15d2
Implemented event counters for profiling mode.
Oct 3, 2014
e3bf7dd
(1) Implemented event coutners for profiling mode of Tascell. (2) Imp…
Oct 4, 2014
5a1c209
COPINE: changed a task ID from uint64_t to the GCC extension __uint128_t
shingo-okuno Oct 5, 2014
6799123
COPINE: Associated a pair of multiple-length integers with each task …
shingo-okuno Oct 7, 2014
6b5c871
Fixed the bug that compilation fails when the profiling option is dis…
Nov 7, 2014
65af7ad
Merged
Nov 7, 2014
e62b114
Tascell server supports rslt messages extended for exceptions
Nov 12, 2014
9846fbd
COPINE: fixed bugs
shingo-okuno Nov 24, 2014
d0a3664
Merged, and made small changes to the comments in tcell/Makefile
Dec 21, 2014
4516334
Commented out the profiling option in tcell/Makefile
Dec 21, 2014
ebc6999
tcell/worker.sc: call pthread_cond_broadcast() before pthread_mutex_u…
Dec 31, 2014
7a261df
COPINE: Fixed bugs
shingo-okuno Feb 7, 2015
b4ca097
COPINE: added copine3d.tcell. (This program is a prototype of copine3…
shingo-okuno Mar 27, 2015
d1a736b
Fixed a macro expansion bug in scpp.lsp
Jun 2, 2015
c80599e
Merged
Jun 2, 2015
1f06461
Small fix to worker.sc and worker.sh
Jun 11, 2015
914ea41
Tascell: long type support for :in/:out task object members
Jul 9, 2015
88b4d4c
fib.tcell: changed the type of the variable for the answer value int-…
Jul 9, 2015
56754cd
nq,pen6x17.tcell: changed the settings for USE-PROBGUARD
Jul 9, 2015
073b572
Added Tascell test programs using the exception handling mechanism.
Jul 9, 2015
0f96865
Fixed a spelling error in an error message.
Jul 10, 2015
bd3de4d
fib-thr.tcell works with any input number n.
Jul 12, 2015
8c7c462
Tascell: new event counter EV-SEND-CNCL
Jul 12, 2015
787b42a
Fixed a bug that a worker spawns a task from a tak to which a cancell…
Jul 13, 2015
67509ff
Fixed a bug in the pattern matcher.
Feb 4, 2016
3e8091d
Merged
Feb 4, 2016
0784ec0
Fixed a bug on the -s option of sc2c.
Feb 5, 2016
327ef35
Changed Japanese encoding from EUC-JP to UTF-8.
Feb 7, 2016
74cb9d2
Deleted half-baked code for handling data/dreq/leav/lack/abrt messages.
Mar 17, 2016
7ce2163
Solved some C compiler warnings.
Mar 17, 2016
a94358a
COPINE: fixed bugs
shingo-okuno Oct 9, 2016
6612cf6
Remove the code for lack and abrt messages in the tcell/server.lsp
Dec 5, 2016
bb30d5f
Fixed misspelling in tcell/server.lsp
Dec 5, 2016
1875c68
Remove the code for dreq and data messages in tcell/server.lsp
Dec 5, 2016
579e731
COPINE: fixed bugs
shingo-okuno Aug 27, 2017
d991d05
Fixed some bugs in sc/tcell-mode.el and modified eli/README
Dec 8, 2017
f8ada40
Changed a comment in tcell/server.lsp
Dec 8, 2017
e64dcee
Merged
Dec 8, 2017
8839dec
Fixed locale settings in tcell/LOAD.lsp
Dec 22, 2017
f877869
Fixed locale settings in tcell/LOAD.lsp
Dec 22, 2017
fd772c1
Merged
Dec 22, 2017
70a718f
Fixed locale settings of tcell/LOAD.lsp
Dec 22, 2017
57e83d2
Supported internode communications using MPI (alpha version; now work…
Dec 22, 2017
11e2da6
Small changes in fib-try.tcell and fib-excep.tcell
Dec 22, 2017
6d88e4f
Added comments to {fib,nq,pen6x17}-thr.tcell
Dec 22, 2017
b3aaba1
Removed fib-excep.tcell
Dec 22, 2017
1d3b9ea
Modified comments in {fib,nq,pen6x17}-thr.tcell
Dec 22, 2017
c20bc54
sc2c command now supports -D option without value.
Dec 22, 2017
020120c
Tacell compiler now supports invalidation of the exception support (s…
Dec 22, 2017
46575dd
Merged main branch
Dec 22, 2017
b81392e
Revised EV-COUNTERs to distingish external and internal nodes
Dec 13, 2018
6b2c4d3
I: architecure of tascell mpi communication
jiko21 Jul 23, 2019
c64d930
A: new struct send-block
jiko21 Jul 23, 2019
430b9c6
U: mutli thread implementation for tascell-mpi
jiko21 Jul 23, 2019
f4264d5
F: msg thread
jiko21 Aug 28, 2019
a4ecee5
F: delete busy wait in recv thread
jiko21 Sep 4, 2019
da3a8ac
F: msg_func, worker.sc
jiko21 Oct 23, 2019
59d4861
Update worker.sh
jasonchc1996 May 24, 2020
11e49c9
Update worker.sc
jasonchc1996 May 24, 2020
3bd0c35
Update worker.sc
jasonchc1996 Jun 7, 2020
aa0c4b7
Update sock.c
jasonchc1996 Jun 7, 2020
4dcac10
Update sock.c
jasonchc1996 Jun 7, 2020
66e8842
Update worker.sh
jasonchc1996 Jun 7, 2020
c22870c
Update worker.sc
jasonchc1996 Jun 7, 2020
311f746
Split task-receivers into task-allocators and task-receivers.
task-h Jun 8, 2020
f7aca4a
Merge branch 'mpi-improved' of https://github.com/tascell/sc-tascell …
jasonchc1996 Jun 14, 2020
b98b332
Merge branch 'tascell-mpi-improved' into mpi-improved
jasonchc1996 Jun 14, 2020
40cfc02
Update worker.sc
jasonchc1996 Jun 14, 2020
f1a3aa6
Update sock.c
jasonchc1996 Jun 15, 2020
104fd35
6.21
jasonchc1996 Jun 21, 2020
583fc57
6.22
jasonchc1996 Jun 22, 2020
4ba9683
6.23
Jun 22, 2020
579eb29
6.23/2
Jun 23, 2020
a05c257
6.24
Jun 24, 2020
fb44885
7.11
Jul 11, 2020
9348975
7.11/2
Jul 11, 2020
39773e6
7.11/3
Jul 11, 2020
ecc70f2
7.15,1
Jul 14, 2020
d4be914
7.15
Jul 15, 2020
d38ab54
7.17
Jul 16, 2020
811902d
7.22
Jul 22, 2020
9873a2d
Merge pull request #2 from jasonchc1996/mpi-direct
Aug 6, 2020
28a972a
Removed files that should not be tracked.
task-h Sep 17, 2020
0aed4fe
11.26
Nov 26, 2020
ebe2119
12.09
Dec 9, 2020
76874ef
12.15
Dec 15, 2020
2a834d8
12.15
Dec 15, 2020
021538c
1.16
Jan 16, 2021
2f5ed95
1.21
Jan 21, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions eli/README
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ Usage:
Copy sc-mode.el and tcell-mode.el to your emacs library path
and add the following code into your .emacs file.

(require 'cl)
(require 'tcell-mode) ; recursively requires sc-mode
(add-to-list 'auto-mode-alist (cons "\\.sc$" 'sc-mode))
(add-to-list 'auto-mode-alist (cons "\\.tcell$" 'tcell-mode))
Expand Down
8 changes: 5 additions & 3 deletions eli/sc-mode.el
Original file line number Diff line number Diff line change
Expand Up @@ -125,9 +125,11 @@


(define-derived-mode sc-mode lisp-mode "SC"
(setf (car font-lock-defaults)
(list 'sc-font-lock-keywords
'sc-font-lock-keywords-1 'sc-font-lock-keywords-2))
(setq font-lock-defaults
(cons
(list 'sc-font-lock-keywords
'sc-font-lock-keywords-1 'sc-font-lock-keywords-2)
(cdr font-lock-defaults)))
(let ((tag 'lisp-indent-function))
;; SC constructs
(put 'def tag 2)
Expand Down
12 changes: 8 additions & 4 deletions eli/tcell-mode.el
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,9 @@
;; pseudo variables
(,(concat
"\\<" (regexp-opt
'("PROBABILITY" "WDATA" "WORKER-ID" "this") t)
'("PROBABILITY" "WDATA" "WORKER-ID" "EXITING"
"EXITING-NORMAL" "EXITING-EXCEPTION" "EXITING-CANCEL" "EXITING-SPAWN"
"this") t)
"\\(\\.\\sw+\\)?\\>")
(1 tcell-variable-name-face))
))))
Expand All @@ -120,9 +122,11 @@
"Default expressions to highlight in Tascell mode.")

(define-derived-mode tcell-mode sc-mode "Tascell"
(setf (car font-lock-defaults)
(list 'tcell-font-lock-keywords
'tcell-font-lock-keywords-1 'tcell-font-lock-keywords-2))
(setq font-lock-defaults
(cons
(list 'tcell-font-lock-keywords
'tcell-font-lock-keywords-1 'tcell-font-lock-keywords-2)
(cdr font-lock-defaults)))
(let ((tag 'lisp-indent-function))
;; Tascell constructs
(put 'do-two tag 2)
Expand Down
2 changes: 1 addition & 1 deletion src/c2sc-lex.lsp
Original file line number Diff line number Diff line change
Expand Up @@ -288,7 +288,7 @@
(defun lex-prev-token () *prev-token*)
(defun lex-colon-follows () *colon-follows*)

;; ������Ϥο�ʬ
;; 字句解析の親分
(defun lex-get-token (&aux (le *lex-env*) (line nil))
(the lex-env *lex-env*)
(unless (setq line (skip-whitespace le (lex-env-lptr le)))
Expand Down
52 changes: 26 additions & 26 deletions src/c2sc-parser.lsp
Original file line number Diff line number Diff line change
Expand Up @@ -67,14 +67,14 @@
;;; whether c2sc::piece-c2sc is being processed
(defvar *parsing-piece* nil)

;;; c2sc-getline ��� preprocessing directive �����줿�餳����ί��Ƥ�����
;;; c2sc-getline 中に preprocessing directive が現れたらここに溜めておく。
;;; %defmacro, %defconstant, %undef
;;; --> *scpp-macro-buffer*
;;; --> translation-unit �������ˤĤʤ���
;;; ����ʳ�
;;; --> translation-unit の末尾につなげる
;;; それ以外
;;; --> *scpp-directive-buffer*
;;; --> *directive-emit-functions* �˻��ꤵ��Ƥ���ؿ����֤��ͤ�Ƭ��
;;; �Ĥʤ��ư����Ǥ��Ф�
;;; --> *directive-emit-functions* に指定されている関数の返り値の頭に
;;; つなげて一緒に吐き出す
(defvar *scpp-directive-buffer* nil)
(defvar *scpp-macro-buffer* nil)
(defparameter *directive-emit-functions* '(declaration statement))
Expand Down Expand Up @@ -298,7 +298,7 @@

;;;;

;; get-gensymid �� mark ��Ĥ����Ȥ����� identifier ����ꤹ��
;; get-gensymid mark をつけたところの identifier を決定する
(defun decide-unidentified (sc-program)
(let ((dec-id (memoize
#'(lambda (usym)
Expand All @@ -319,7 +319,7 @@
(ragrs *required-aggregates*))
(if (and (eq t rvars) (eq t ragrs)) sc-program
(loop for df in sc-program
when (or (atom df) (not (defsymbol-p (car df))) ; ���������ʳ�
when (or (atom df) (not (defsymbol-p (car df))) ; 宣言・定義以外
(if (consp (second df))
(if (member (car (second df)) ~(struct union enum))
(aggregate-required-p (second (second df)))
Expand All @@ -330,8 +330,8 @@
(defun defsymbol-p (sym)
(rule:declaration-tag? sym :sc2c))

;; ̵̾��struct�ʤɤϡ�SC�Ǥ�̵̾�ˤǤ��ʤ��Τǡ�
;; mark ��Ĥ��Ƥ�����,��� identifier ����ꤹ��
;; 無名のstructなどは,SCでは無名にできないので,
;; mark をつけておいて,後で identifier を決定する
(defvar *gensym-num*)
(defun get-gensymid ()
(prog1
Expand Down Expand Up @@ -1658,9 +1658,9 @@
(aif (read-line stream nil)
(if (eql #\$ (string-ref it 0))
(progn
;; S-expression �Ȥ���read���ơ�����
;; S-expression としてreadして、、、
(handle-c2sc-directive (string-left-ntrim it))
;; ���餿��Ƽ��ιԤ��ɤ�
;; あらためて次の行を読む
(c2sc-getline stream))
(funcall (if *want-debugging-output* #'print #'identity)
(string+ it #.(format nil "~%"))))
Expand Down Expand Up @@ -1706,8 +1706,8 @@
(otherwise
(push directive *scpp-directive-buffer*))))))

;; *directive-emit-functions* �δؿ��ʹ�ʸñ�̡˽����塤
;; *scpp-direcive-buffer*�ˤ��ޤä��ץ�ץ����å�������Ǥ��Ф�
;; *directive-emit-functions* の関数(構文単位)処理後,
;; *scpp-direcive-buffer*にたまったプリプロセッサ指令を吐き出す
(dolist (de-func *directive-emit-functions*)
(let ((orig-func (symbol-function de-func)))
(setf (symbol-function de-func)
Expand All @@ -1718,12 +1718,12 @@
(nconc emit-directive
(apply orig-func args)))))))

;;; %defconstant-cexp ���C�����ɤ����Ҥ��ǽ�ʤ�SC��
;;; %defconstant-cexp 中のCコードの断片を可能ならSC化
(defun defconstant-cexp-c2sc (defconstant-exp-directive)
(assert (eq '%defconstant-cexp (car defconstant-exp-directive)))
(let* ((const-name (second defconstant-exp-directive))
(piece-c-code (third defconstant-exp-directive))
;; C �� "~" �� "~~" �ˤʤäƤ���Τ�
;; C "~" "~~" になっているので
(formatted-c-code #|(format nil|# piece-c-code #|)|#))
(if (not (macro-required-p const-name)) nil
(progn
Expand All @@ -1742,8 +1742,8 @@
(format *error-output* "==> <give up...>~%"))
`(sc::c-exp ,piece-c-code)) ))))))

;;; defmacro �ˤ����� c-code �� "$<arg_num>$" ����ʬ�����̾���֤�������
;;; �֤��ͤ�
;;; defmacro における c-code "$<arg_num>$" の部分を引数名に置き換える
;;; 返り値は
;;; (values `(c-exp ...)
;;; <formatted-c-code>)
(defun replace-arguments (piece-c-code arg-list)
Expand All @@ -1770,7 +1770,7 @@
(values `(cl:list 'sc::c-exp ,cexpstr ,@arg-list)
formatted-c-code) )))

;; �ޥ������Τ� backquote-macro ���Ѵ�
;; マクロ本体を backquote-macro に変換
(defun to-eval-macroarg (scized-defmacro macro-arg-list)
(if (atom scized-defmacro)
(if (member scized-defmacro macro-arg-list)
Expand All @@ -1779,7 +1779,7 @@
`(cl:list ,@(mapcar (suffixed-func #'to-eval-macroarg macro-arg-list)
scized-defmacro))))

;;; %defmacro-cexp ���C�����ɤ����Ҥ��ǽ�ʤ�SC��
;;; %defmacro-cexp 中のCコードの断片を可能ならSC化
(defun defmacro-cexp-c2sc (defmacro-exp-directive)
(assert (eq '%defmacro-cexp (car defmacro-exp-directive)))
(destructuring-bind (macro-name piece-c-code arg-list)
Expand Down Expand Up @@ -1807,7 +1807,7 @@

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;; �Ķ���������initiator���鹽ʸ���ϳ���
;; 環境を整えてinitiatorから構文解析開始
;; input : input-stream or string
(defun parser-main (input
&key
Expand Down Expand Up @@ -1879,8 +1879,8 @@
fixed-typename-entries
(mapcar #'make-typename-entry typename-list) )))))

;; Ʊ���Ѵ���̤������롥
;; ʣ���θ���θ��������ѿ�(or not)�ξ�硤�����ѿ�̾�����ꤹ�롥
;; 同じ変換結果を削除する.
;; 複数の候補の原因が型変数(or not)の場合,その変数名を特定する.
(defun remove-duplicate-candidates (all-candidates)
(let ((ret (list))) ;; (<candidate> <typename-list> <not-typename-list>)
(dolist (cand all-candidates)
Expand All @@ -1889,7 +1889,7 @@
(intersection (second (car it)) (second cand))
(intersection (third (car it)) (third cand)) ))
(push cand ret)))
;; ����ΰ㤤�˱ƶ����Ƥʤ��ѿ�̾�����
;; 候補の違いに影響してない変数名を除く
(mapc
#'(lambda (get-place &aux (get-placea (compose #'car get-place)))
(dolist (tn (funcall get-placea (first ret)))
Expand All @@ -1902,7 +1902,7 @@
(list #'cdr #'cddr))
ret))

;; tried-function�ǻ��ꤵ�줿���Ƥξ�꤫��parsing���ߤ�
;; tried-functionで指定された全ての場所からparsingを試みる
(defun try-all-parsing (istring &key (tried-function *tried-function*))
(check-type istring string)
(let* ((all-candidates) ; list of (<result> <tn-list> <not-tn-list>)
Expand Down Expand Up @@ -2031,8 +2031,8 @@

;;; (c2sc "csample/c_parser.c")

;;; ���ôĶ��Ǥ����Ѹ���piece-c2sc
;;; sc:: �ʤɤξ��������Ƥ��ä������
;;; 対話環境での利用向けpiece-c2sc
;;; sc:: などの情報を除いてすっきり出力
(defun pcsc (x &rest try)
(unless try (setq try *tried-function*))
(immigrate-package (piece-c2sc x :tried-function try) *package*))
Empty file modified src/c2scpp/src/set_mcpp.sh
100755 → 100644
Empty file.
Empty file modified src/c2scpp/src/unset_mcpp.sh
100755 → 100644
Empty file.
Empty file modified src/c2scpp/tests/after_test.sh
100755 → 100644
Empty file.
Empty file modified src/c2scpp/tests/set_test.sh
100755 → 100644
Empty file.
4 changes: 2 additions & 2 deletions src/init.lsp
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,11 @@

;;; Implementation-dependent settings
#+cmu (setq ext:*gc-verbose* nil)
#+clisp (progn (setq custom:*default-file-encoding* charset:euc-jp)
#+clisp (progn (setq custom:*default-file-encoding* charset:utf-8)
(unuse-package :ext))
#+allegro (progn (setq comp:*cltl1-compile-file-toplevel-compatibility-p* t)
(require :osi))
#+(and allegro mswindows) (setq *locale* (find-locale "japan.EUC"))
#+(and allegro mswindows) (setq *locale* (find-locale "ja_JP.utf8"))
;; #+(and composer allegro) (wt:start-composer)

;;; Printer settings
Expand Down
14 changes: 7 additions & 7 deletions src/rule/hoist.rule
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@
(return-from remove-const (remove-const (car x))))
(mapcar #'remove-const x))

;; declaration, block-item ���֤��ͤ��������body����ʬ����
;; declaration, block-item の返り値を宣言部とbody部に分ける
(defun split-decl-and-body (x)
(list (apply #'append (mapcar #'first x))
(remove nil (mapcar #'second x))))
Expand All @@ -80,9 +80,9 @@
(hst:with-hoist-env (call-next-rule) ))
)

;;; �ʲ�, declaration, block-item ���֤��ͤϡ�
;;; (<�ؿ����Τ���Ƭ�˽Ф�S���Υꥹ��>
;;; <���ξ��˻Ĥ�S��>)
;;; 以下, declaration, block-item の返り値は、
;;; (<関数本体の先頭に出すS式のリスト>
;;; <元の場所に残すS式>)

;;; declaration
(defrule inlined-declaration hoist
Expand Down Expand Up @@ -153,12 +153,12 @@

(defrule struct-declaration hoist
(otherwise
(hst:with-new-func ; ���ߡ��δؿ����֤��ơ�add-decl���줿�������ޤ���
(hst:with-new-func ; ダミーの関数を置いて,add-declされた宣言を捕まえる
(with1 ret (call-next-rule)
~(%splice ,.(hst:finfo-flush-decls) ,ret) )))
)

;;; ���������Ҥǻ��Ȥ��������index��
;;; 配列初期化子で参照される最大のindex数
(defrule max-referred-index hoist
(#?(array ,@inits)
(with1 cnt 0
Expand All @@ -170,7 +170,7 @@
(defrule referred-index hoist
;; initializer with designator
(#?((aref-this ,@exp-list) ,init)
(eval (car exp-list)) ) ; ź����Lisp��ɾ���Ǥ��뼰�Ǥ��뤳�Ȥ���
(eval (car exp-list)) ) ; 添字がLispで評価できる式であることを仮定
(#?((aref ,desig ,@exp-list) ,init)
(referred-index ~(,desig ,init)))
;; initializer without designator
Expand Down
22 changes: 11 additions & 11 deletions src/rule/hsc-defs.lsp
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,8 @@
;;; function information
(defstruct finfo
variables ; list of (<id> . <type>)
tmp-variables ; �ɲä��줿����ѿ� list of (<id> . <type>)
(function-head t) ; �ؿ�����Ƭ�Υ֥��å��̲����nil�ˤ���
tmp-variables ; 追加された一時変数 list of (<id> . <type>)
(function-head t) ; 関数の先頭のブロック通過時にnilにする
main-p
)

Expand Down Expand Up @@ -100,12 +100,12 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; struct information
(defstruct sinfo
id ; ���ι�¤��̾
id ; 元の構造体名
members ; list of (<id> . <type>)
hsc-sid ; �Ѵ���ι�¤��̾
data-sid ; �ǡ������ι�¤��̾�ʺ��μ����Ǥ�id��Ʊ���
smap-id ; �ޥå�������ѿ�̾
sdesc-id ; ��¤�Τ��Ȥ�desc������ݻ������ѿ�̾
hsc-sid ; 変換後の構造体名
data-sid ; データ部の構造体名(今の実装ではidと同一)
smap-id ; マップ配列の変数名
sdesc-id ; 構造体ごとのdesc情報を保持する変数名
)

(defun sinfo-asize (&optional (sinfo *sinfo*))
Expand All @@ -121,18 +121,18 @@

;; make expression for aligned size

;; sinfo�ɲ�
;; sinfo追加
(defun add-sinfo (&optional (sinfo *sinfo*))
(push sinfo *sinfo-list*))

;; sinfo��id�Ǹ���
;; sinfoをidで検索
(defun find-sinfo (id)
(find id *sinfo-list* :key #'sinfo-id))

(defun add-member (id type &optional (sinfo *sinfo*))
(push (cons id type) (sinfo-members sinfo)))

;; ���֥���������λ��Ȥΰ��֤򼨤�����
;; オブジェクト内の参照の位置を示す配列式
(defun make-struct-map (&optional (sinfo *sinfo*))
(let ((vars (sinfo-members sinfo))
(hsc-sid (sinfo-hsc-sid sinfo))
Expand All @@ -152,7 +152,7 @@
,member-id)))
)

;; ���֥������Ⱦ���¤�μ�����
;; オブジェクト情報構造体式を作る
(defun make-descriptor (&optional (sinfo *sinfo*))
(let ((hsc-sid (sinfo-hsc-sid sinfo))
(smap-id (sinfo-smap-id sinfo)))
Expand Down
Loading