This problem has previously been encountered. And my last solution was
not satisfactory.
It seems like there were 2 regex lines, one targeting `//` and another
targeting `/* */`.
Originally they were basically meant to perform this:
Search for
```c
;<COMMENT>;\n
```
and replacing it with
```c
;<COMMENT>
```
In e00ba2e62f I provided a patch to add
another `;` for `//` as it would eat the first `;` after the `<COMMENT>`
After thinking for some time, I came to the conclusion that the lines of
REGEX serve no purpose and should be removed.
For future reference:
e00ba2e62f was targeting this problem:
```c
printf("why is the last ; missing?"); // foo \n int a=42;
```
which generated something along the lines of
```c
printf("why is the last ; missing?");
// foo
int a = 42return 0;
```
Where it would strip a `;` from the first line after a `//` comment
And this commit additionally targeted:
```c
printf("foo\n");
//printf("bar\n");
printf("baz\n");
// only happens if the line ends with ; eg:
printf("hello\n");
// deny with ;
printf("world\n");
```
output:
foo
hello
expected:
foo
baz
hello
world
where it generated the code:
```c
printf("foo\n");
//printf("bar\n" );printf("baz\n" );
// only happens if the line ends with ; eg:
printf("hello\n");
// deny with ;printf("world\n" );
```
Thus this should fix#62 and the original problem
The compiler vm doesn't have a scheme interpreter named "scm" but it
does have a scheme interpreter named "guile". Change the compiler_vm to
use the guile interpreter program instead of scm.
Most code languages now accept factoida arguments as command-line
arguments; e.g., argc and argv in C/C++, args[] in Java, @ARGV in Perl, etc.
No longer say "Same output" for code-factoids.
Code-factoids can now use the compiler virtual machine. Any languages installed
in the VM are valid candidates for code-factoids!
Syntax: factadd keyword /code language code here
Instead of adding compiler user to dialout/serial/ttyS0 group, we now
run compiler_vm_server.pl as root to access ttyS0 and then drop privileges
to the compiler user to compile snippets that do not have access to ttyS0.