{"shas":[["a646cb70f6b9b08dcb06d621483a73da2ec69f5a","62cc5f49272e0b99a853cc8a0b00b8e46dc4639e@neko-daisuki.ddo.jp","Improved native functions in FFI to accept a variable argument such as \"*args\".","SumiTomohiko"],["148af2a2e7dbf7ecc555ef54d7852584fa8bba00","62cc5f49272e0b99a853cc8a0b00b8e46dc4639e@neko-daisuki.ddo.jp","Fixed src/ffi.c to guard a local variable in the machine stack.","SumiTomohiko"],["05ab21d5d7a781352c0d06776a7368b60441390d","62cc5f49272e0b99a853cc8a0b00b8e46dc4639e@neko-daisuki.ddo.jp","Closed some issues that cause core dump and seem to be fixed at commit\n148af2a2e7dbf7ecc555ef54d7852584fa8bba00.","SumiTomohiko"],["6c0147b26ad0eb0e303f389cf6c2606615929b7e","62cc5f49272e0b99a853cc8a0b00b8e46dc4639e@neko-daisuki.ddo.jp","Added src/callable.yg which contains Callable#while.","SumiTomohiko"],["f6ac98d46bc617e6fd1e11848e8d643fdf93a409","62cc5f49272e0b99a853cc8a0b00b8e46dc4639e@neko-daisuki.ddo.jp","Added an issue for a bug of parsing.","SumiTomohiko"],["8faa91cd18f10c9e63a87744c7493cd15229532f","62cc5f49272e0b99a853cc8a0b00b8e46dc4639e@neko-daisuki.ddo.jp","Improved Array#init to accept a block whose returned value will be an element of\nthe Array.","SumiTomohiko"],["2bc3b2c8e5598619fe4c1f8c54d89fbfdfee44d0","62cc5f49272e0b99a853cc8a0b00b8e46dc4639e@neko-daisuki.ddo.jp","Added an issue for SyntaxError bug in multiple assignment.","SumiTomohiko"],["ceb40555c1f8dd88c286e2b74d34397682678081","62cc5f49272e0b99a853cc8a0b00b8e46dc4639e@neko-daisuki.ddo.jp","Improved h2yog package to output 'string fields for char* arguments.","SumiTomohiko"],["471eb5586e89ecc8792806a02d37bc8ac508c6e7","62cc5f49272e0b99a853cc8a0b00b8e46dc4639e@neko-daisuki.ddo.jp","Fixed run_command builtins function to read stdout and stderr of child processes\nafter Process#poll returned not nil.\n\nIn a past version, run_command used Process#wait and attempted to read all\noutput after calling Process#wait. But in this implementation, a child process\nmight be locked in writing stdout/stderr. So the parent process (Yog) must read\nstdout/stderr before the child process's terminating. The following change is\ndue to this reason.\n\n  $ git diff -r db59bbba7216b459e8567f9811183d2c5e24887c -r 4f82a8ed1a9748cd054606470a93661e2fcd1511 src/builtins.yg\n  diff --git a/src/builtins.yg b/src/builtins.yg\n  index d6b57be..671a4f2 100644\n  --- a/src/builtins.yg\n  +++ b/src/builtins.yg\n  @@ -6,9 +6,12 @@ def run_command(*cmd, &block=nil)\n       block(proc.stdin)\n     end\n     proc.stdin.close()\n  -  status = proc.wait()\n  -  stdout = proc.stdout.read()\n  -  stderr = proc.stderr.read()\n  +  stdout = \"\"\n  +  stderr = \"\"\n  +  while (status = proc.poll()) == nil\n  +    stdout << proc.stdout.read()\n  +    stderr << proc.stderr.read()\n  +  end\n     return status, stdout, stderr\n   end\n\nIn this case, I understood that a child process cannot terminate (return non-nil\nvalue at Process#poll) before the parent process read all of stdout/stderr. But\nit seems false. Even if Process#poll returns non-nil, a child process holds\nstdout/stderr to be read. This commit is for this phenomenon.","SumiTomohiko"],["5286042230ac21d31b88100226702537165fc111","62cc5f49272e0b99a853cc8a0b00b8e46dc4639e@neko-daisuki.ddo.jp","Changed do_waitpid in src/process.c to check a child process's status with\nWIFEXITED.\n\nIn this version, if WIFEXITED returns false, Process#poll will return nil. It\nmay be a bad way. Yog may have to raise an exception in this case.","SumiTomohiko"],["a50839032e77f6de837465f3abd64fa93f85fbc5","62cc5f49272e0b99a853cc8a0b00b8e46dc4639e@neko-daisuki.ddo.jp","Improved h2yog package to output macro functions.","SumiTomohiko"]],"repo":"SumiTomohiko/Yog","actor":"SumiTomohiko","ref":"refs/heads/master","size":11,"head":"a50839032e77f6de837465f3abd64fa93f85fbc5","actor_gravatar":"699866f8287f602a0f57993402df07fb","push_id":26093871}