<feed xmlns='http://www.w3.org/2005/Atom'>
<title>gnurobots.git/src, branch master</title>
<subtitle>Fork of GNU Robots
</subtitle>
<link rel='alternate' type='text/html' href='https://cgit.hackerposse.com/gnurobots.git/'/>
<entry>
<title>main: skip trying to exit_nicely on failure to init map</title>
<updated>2017-04-02T21:10:51+00:00</updated>
<author>
<name>Joshua Judson Rosen</name>
</author>
<published>2017-04-02T21:09:42+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.hackerposse.com/gnurobots.git/commit/?id=bfd1d2cf18f4857b5c0af1e83e6d9116a72b6824'/>
<id>bfd1d2cf18f4857b5c0af1e83e6d9116a72b6824</id>
<content type='text'>
exit_nicely() exits from the guile thread before it gets a chance
to exit() from the process as a whole.

And there's really nothing for the reporting-code in exit_nicely
to actually report at this point, anyway.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
exit_nicely() exits from the guile thread before it gets a chance
to exit() from the process as a whole.

And there's really nothing for the reporting-code in exit_nicely
to actually report at this point, anyway.
</pre>
</div>
</content>
</entry>
<entry>
<title>main: exit with error on failure to init arena</title>
<updated>2017-04-02T03:24:23+00:00</updated>
<author>
<name>Joshua Judson Rosen</name>
</author>
<published>2017-03-31T03:26:21+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.hackerposse.com/gnurobots.git/commit/?id=4b26f98f7db9f8424c5676bc0bce24c2d8868e3d'/>
<id>4b26f98f7db9f8424c5676bc0bce24c2d8868e3d</id>
<content type='text'>
This handler got broken when exit_nicely stopped actually triggering
an exit from the entire process and started just exiting the guile thread.

And, actually, it never exited with an error-status before--
which it does now.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This handler got broken when exit_nicely stopped actually triggering
an exit from the entire process and started just exiting the guile thread.

And, actually, it never exited with an error-status before--
which it does now.
</pre>
</div>
</content>
</entry>
<entry>
<title>ui-cmdwin: prevent excessive buffering on captured stdio streams</title>
<updated>2017-04-02T01:43:14+00:00</updated>
<author>
<name>Joshua Judson Rosen</name>
</author>
<published>2017-04-02T01:42:55+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.hackerposse.com/gnurobots.git/commit/?id=84b704b21bb61098b31694c68092230d48445e75'/>
<id>84b704b21bb61098b31694c68092230d48445e75</id>
<content type='text'>
Streams that start out connected to non-tty FDs default to fully-buffered
and retain that configuration after those underlying FDs are redirected,
which prevents the "need to run from an xterm" fix from actually working
unless we do something like this to reset the stream buffers.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Streams that start out connected to non-tty FDs default to fully-buffered
and retain that configuration after those underlying FDs are redirected,
which prevents the "need to run from an xterm" fix from actually working
unless we do something like this to reset the stream buffers.
</pre>
</div>
</content>
</entry>
<entry>
<title>Drop undocumented readline dependency</title>
<updated>2017-04-01T20:01:10+00:00</updated>
<author>
<name>Joshua Judson Rosen</name>
</author>
<published>2017-03-31T09:28:00+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.hackerposse.com/gnurobots.git/commit/?id=582d3bf96bc0ff3e3b242536d2433a8ed8d01e40'/>
<id>582d3bf96bc0ff3e3b242536d2433a8ed8d01e40</id>
<content type='text'>
Yet another of the niceties that comes out of just using guile's REPL
is that readline support is just figured out when building guile;
so by the time gnurobots is being built, readline support is either
there or it isn't--and even if our guile isn't readline-enabled,
we can still just run without readline (though, in practice,
I don't think I've ever seen a build of guile in the last 15 years
that didn't have readline...).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Yet another of the niceties that comes out of just using guile's REPL
is that readline support is just figured out when building guile;
so by the time gnurobots is being built, readline support is either
there or it isn't--and even if our guile isn't readline-enabled,
we can still just run without readline (though, in practice,
I don't think I've ever seen a build of guile in the last 15 years
that didn't have readline...).
</pre>
</div>
</content>
</entry>
<entry>
<title>robot-move: pause for USLEEP_TIME even after zero-length moves</title>
<updated>2017-03-29T04:21:03+00:00</updated>
<author>
<name>Joshua Judson Rosen</name>
</author>
<published>2017-03-29T04:21:03+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.hackerposse.com/gnurobots.git/commit/?id=c93ad6a0cfafdfbe2cb1f68efd21f886eed30e0a'/>
<id>c93ad6a0cfafdfbe2cb1f68efd21f886eed30e0a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Let the GUI process between updates!</title>
<updated>2017-03-29T02:07:50+00:00</updated>
<author>
<name>Joshua Judson Rosen</name>
</author>
<published>2017-03-28T04:22:07+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.hackerposse.com/gnurobots.git/commit/?id=bb508ed7a38d4088e33d30818a435e06b983c274'/>
<id>bb508ed7a38d4088e33d30818a435e06b983c274</id>
<content type='text'>
Move the GDK lock-management into the various arena action functions
so that we can release the lock _before_ sleeping in the guile thread,
allowing the GUI thread to update when the sleep starts
rather than when the sleep ends, so that the messages actually
stand a chance at remaining visible for something close to USLEEP_TIME--
rather than not showing until USLEEP_TIME has already expired.

Otherwise many of the updates get lost, e.g.:

	(while (robot-feel "space") (robot-move 1))

... never seems to actually spend any time with the "Robot feels ..."
messages visible onscreen between the "Robot moves.." messages.

Note also that this change allows the GUI to generally be much more
responsive to user interaction (e.g.: scrolling, selection/copy/paste)
while a robot program is running!
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Move the GDK lock-management into the various arena action functions
so that we can release the lock _before_ sleeping in the guile thread,
allowing the GUI thread to update when the sleep starts
rather than when the sleep ends, so that the messages actually
stand a chance at remaining visible for something close to USLEEP_TIME--
rather than not showing until USLEEP_TIME has already expired.

Otherwise many of the updates get lost, e.g.:

	(while (robot-feel "space") (robot-move 1))

... never seems to actually spend any time with the "Robot feels ..."
messages visible onscreen between the "Robot moves.." messages.

Note also that this change allows the GUI to generally be much more
responsive to user interaction (e.g.: scrolling, selection/copy/paste)
while a robot program is running!
</pre>
</div>
</content>
</entry>
<entry>
<title>UI: show for _what_ types  of things robot is smelling/feeling/looking</title>
<updated>2017-03-29T02:07:50+00:00</updated>
<author>
<name>Joshua Judson Rosen</name>
</author>
<published>2017-03-27T05:32:33+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.hackerposse.com/gnurobots.git/commit/?id=1ddaf31890b4e1f5d80f3c0934d44a098dc935cd'/>
<id>1ddaf31890b4e1f5d80f3c0934d44a098dc935cd</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>REPL: just use guile's normal REPL</title>
<updated>2017-03-29T02:07:50+00:00</updated>
<author>
<name>Joshua Judson Rosen</name>
</author>
<published>2017-03-19T19:31:10+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.hackerposse.com/gnurobots.git/commit/?id=7bc9c9a84b1cf58a2a35be7f0bcd1c39214cf63f'/>
<id>7bc9c9a84b1cf58a2a35be7f0bcd1c39214cf63f</id>
<content type='text'>
This gives _much_ more useful readline behavior,
since (ice-9 readline) actually knows how to autocomplete
based on the scheme environment, handle multi-line input, etc.;
and properly displays return values and error-messages,
and supports switching to different front-end programming languages
like ecmascript.

Note that we're keeping catch_handler so that we have a chance
of diagnosing problems that could _conceivably_ occur
when interacting with guile during bootstrap
(e.g.: missing readline support, changed REPL API...).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This gives _much_ more useful readline behavior,
since (ice-9 readline) actually knows how to autocomplete
based on the scheme environment, handle multi-line input, etc.;
and properly displays return values and error-messages,
and supports switching to different front-end programming languages
like ecmascript.

Note that we're keeping catch_handler so that we have a chance
of diagnosing problems that could _conceivably_ occur
when interacting with guile during bootstrap
(e.g.: missing readline support, changed REPL API...).
</pre>
</div>
</content>
</entry>
<entry>
<title>catch_handler: restore/fix reporting of actual error-messages</title>
<updated>2017-03-29T02:07:50+00:00</updated>
<author>
<name>Joshua Judson Rosen</name>
</author>
<published>2017-03-26T20:11:44+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.hackerposse.com/gnurobots.git/commit/?id=712ded7dba135d7beb0c9b4a916605d52e2fa816'/>
<id>712ded7dba135d7beb0c9b4a916605d52e2fa816</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>robot-move: signal DEATH only _after_ the display has been updated</title>
<updated>2017-03-29T02:07:50+00:00</updated>
<author>
<name>Joshua Judson Rosen</name>
</author>
<published>2017-03-19T20:55:31+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.hackerposse.com/gnurobots.git/commit/?id=4e5e4104b04e066d2e31bb090797b4c53376423b'/>
<id>4e5e4104b04e066d2e31bb090797b4c53376423b</id>
<content type='text'>
This avoids weird off-by-1 errors in the GUI counters at game end.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This avoids weird off-by-1 errors in the GUI counters at game end.
</pre>
</div>
</content>
</entry>
</feed>
