[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/admin/notes/iftc [lexbind]
From: |
Miles Bader |
Subject: |
[Emacs-diffs] Changes to emacs/admin/notes/iftc [lexbind] |
Date: |
Tue, 14 Oct 2003 18:59:21 -0400 |
Index: emacs/admin/notes/iftc
diff -c /dev/null emacs/admin/notes/iftc:1.1.2.1
*** /dev/null Tue Oct 14 18:59:21 2003
--- emacs/admin/notes/iftc Tue Oct 14 18:59:19 2003
***************
*** 0 ****
--- 1,27 ----
+ Iso-Functional Type Contour
+
+
+ This is a term coined to describe "column int->float" change approach, and can
+ be used whenever low-level types need to change (hopefully not often!) but the
+ meanings of the values (whose type has changed) do not.
+
+ The premise is that changing a low-level type potentially means lots of code
+ needs to be changed as well, and the question is how to do this incrementally,
+ which is the preferred way to change things.
+
+ Say LOW and HIGH are C functions:
+
+ int LOW (void) { return 1; }
+ void HIGH (void) { int value = LOW (); }
+
+ We want to convert LOW to return float, so we cast HIGH usage:
+
+ float LOW (void) { return 1.0; }
+ void HIGH (void) { int value = (int) LOW (); } /* iftc */
+
+ The comment /* iftc */ is used to mark this type of casting to differentiate
+ it from other casting. We commit the changes and can now go about modifying
+ LOW and HIGH separately. When HIGH is ready to handle the type change, the
+ cast can be removed.
+
+ ;;; arch-tag: 3309cc41-5d59-421b-b7be-c94b04083bb5
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] Changes to emacs/admin/notes/iftc [lexbind],
Miles Bader <=