yes is 91 lines long yes, from coreutils, is 91 lines long. Many of them are comments, but that is still WAY too long.

Edit from September 2019: the source file grew over the past five years and is now 126 lines long.

Write a program that imitates yes:


outputting to stdout an infinite stream of "y\n"'s
there must be an option to stop it other than killing the process with SIGKILL: but SIGINT and SIGPIPE are fine
you are not allowed to use "y" or "\n" or their ASCII values (121, 0x79, 0171, 10, 0xA or 012)


Shortest answer wins.

Bonus:


subtract 10 from your code length, if you can receive a phrase in stdin and print it out instead of "y" (but still including the line-break). The program doesn't have to print y on an empty input.
CJam, 13 bytes - 10 = 3

l_'x)?{_oNo}h


You'll need to use the Java interpreter for this, because the online interpreter only returns once the program terminates.

You can abort the program with SIGINT (by pressing Ctrl-C). It will read a line from STDIN, and print that line, or y if the input was empty.

Explanation

l             "Read line from STDIN.";
 _            "Duplicate.";
  'x          "Push character x.";
    )         "Increment to get y.";
     ?        "Ternary operator. Replaces line with y if it was empty.";
      {    }h "Repeat while true. Leaves condition on the stack, which is the output string.";
       _o     "Duplicate line and print.";
         No   "Push string with newline and print.";


After clarification of the OP, the following seems more to spec:

l{_o9c)o1}g


I'll wait with updating the submission until the OP replies to my comment, though.