foreign-primitive stack error added by vktec on Wed Sep 21 20:54:39 2016

(foreign-primitive ((int fd))
                       "int length, i = 0;
       char buffer[BUF_LEN];
       length = read(fd, buffer, BUF_LEN);

       C_word retval[length + 2];
       retval[0] = C_SCHEME_UNDEFINED;
       retval[1] = C_k;

       while (i < length) {
           struct inotify_event *event = (struct inotify_event *) &buffer[i];

           if (event->len) {
               C_word *evt_name_alloc = C_alloc(C_SIZEOF_STRING(strlen(event->name)));
               C_word evt_name = C_string(&evt_name_alloc,
                                          strlen(event->name),
                                          event->name);

               C_word *evt_pair_alloc = C_alloc(C_SIZEOF_PAIR);
               retval[i + 2] = C_pair(&evt_pair_alloc,
                                      C_fix(event->mask),
                                      evt_name);
           }

           i++;
       }

       C_values(length + 2, retval);")