:sk: Output Buffer Blocks Compiling


#1

Something I’ve been meaning to mention for awhile.

Sometimes I want to do some quick logging and will throw a println in some :sk:. Sometimes this is in a loop somewhere and the :sk: log window gets spammed. When you let this happen for any significant length of time (a dozen seconds), once you hit stop, the :sk: log takes a really long time to troll through the remaining output buffer.

The result of this is that you cannot compile anything in the :sk: ide until the output buffer is drained. Since this can often take on the order of minutes, I’ll often work around this by closing and re-opening the ide. It might be nice if the compile button flushed the buffer or maybe if there were a key command or right-click menu to flush it.


#2

Hmm. This is probably due to the SkookumIDE being threaded with the UI, communication and parsing/building being their own parallel tasks.

One of these parallel tasks is probably blocking more than it needs to.

Thanks - we’ll dig into this. :madsci:


#3

I have the same issue, so I switched to using SystemLib.print_string(,my_value>>).

It’s a much faster way to print a value, but unfortunately, it’s only usable if your game is currently running.


#4

print_string is great, especially if you want to print a persistent set of information. My main issues with print_string are that it feels unwieldly, for instance if I’m printing to the screen, I often want to avoid spamming the output log, so that means changing both print_to_screen? and duration. So most of my statements look like this:
SystemLib.print_string(, "ke: " + ke>>, true, false, duration: 0.0)

And then it becomes much harder to use when you’re debugging remotely with :sk: and need to print out a few things :crazy_face: since on other platforms you are stuck watching logcat or /var/log/syslog (aka the sewages of the modern age :poop:).

In all the time that it took me to complain about that, I could have written a few wrappers to fix a few of my annoyances. So, I’ve added SystemLib.print_log and SystemLib.print_screen to my helpers repo.

SystemLib.print_log("Yo")
SystemLib.print_screen("Yo, on your screen")