Ameimar and Memory Leaks
The other day, I came across a sugya that is well-explained based on memory leaks in C and C++. This post may speak more to computer programmers.
In C, there is a concept called a pointer, which is sometimes used for the purposes of dynamic memory allocation. If I have a data structure, e.g. an Employee, I can decide while the program is running to take some memory off of the free store, using a function called malloc(), which stands for memory allocate. I can make a pointer variable point to that object on the heap:
Hey Chat-GPT, some code to illustrate!
The * stands for a pointer.
Later, if we no longer need that object, we can release the memory so that some other variable on the heap can use it. That function is called free().
And the C++ equivalents are new and delete.
In the code above, as long as emp1 has the memory address of the created Employee, we can call free() on it. But, a common thing for a programmer to accidentally do is point that pointer somewhere else, say another variable on the heap, or to NULL (which means to nowhere), then we can no longer effectively call free() on it, and that memory can never be reclaimed.
Because of such issues, C++ introduced the concept of Smart Pointers which will reclaim the memory when no one is pointing to it anymore, and Java and other languages have automatic garbage collection, which does something similar but outside the control of the programmer.
So what does this have to do with Gittin? Well, on Gittin 40a:
אָמַר אַמֵּימָר: הַמַּפְקִיר עַבְדּוֹ – אוֹתוֹ עֶבֶד אֵין לוֹ תַּקָּנָה. מַאי טַעְמָא? גּוּפֵיהּ לָא קָנֵי לֵיהּ – אִיסּוּרָא הוּא דְּאִיכָּא גַּבֵּיהּ, וְאִיסּוּרָא לָא מָצֵי מַקְנֵי לֵיהּ.
Ameimar says: With regard to one who renounces ownership of his slave, there is no halakhic remedy for that slave, and he cannot marry a Jewish woman. What is the reason for this? The slave himself does not belong to his master. However, there is the prohibition against marrying a Jewish woman that remains in the master’s possession, and the master cannot transfer ownership of the prohibition to the slave, as this is not something that can be transferred. A bill of manumission is not effective in this case because the slave already does not belong to him.
To explain, there are two components of an עבד כנעני, ownership and religious status. There is the monetary ownership, which is like the pointer on the function call stack pointing to the actual slave on the heap. So long as this pointer exists, the master can use it to call free() turning him into a full Jewish person. However, here the master has relinquished ownership. He hasn’t sold the slave, which would be a transfer of ownership. Instead, hefker is like setting this pointer to NULL, and no one has the handle.
Those who argue with Ameimar say that as soon as no one owns the slave, he is automatically freed. More like a smart pointer.
Similarly, the case before Ravina about a city of slaves sold to gentiles, and the gentiles all died, can be thought of as reference counting. As soon as the count went to 0, they were automatically freed. Yet there was still some aspect of going back to the original owners to get them to write a bill of manumission.