00:00:00 --- log: started retro/16.11.30 02:10:15 --- quit: mnemnion (Remote host closed the connection) 02:53:20 --- join: haiqu (31c510d5@gateway/web/freenode/ip.49.197.16.213) joined #retro 02:55:14 I note that the new README.md in the rx-nga/interfaces/listener directory claims that this has been tested on MacOS and Win7. Guess what, there's a bug in Bridge.md that makes this impossible. I found it, check the Pascal version. 02:55:31 --- quit: haiqu (Client Quit) 05:03:51 --- quit: clog (^C) 05:03:51 --- log: stopped retro/16.11.30 05:04:02 --- log: started retro/16.11.30 05:04:02 --- join: clog (~nef@bespin.org) joined #retro 05:04:02 --- topic: 'Retro Language | http://retroforth.org | Logged @ http://tunes.org/~nef/logs/retro | Latest Release @ https://forthworks.com/retro/get/11.x/retro-11.7.1.tar.gz' 05:04:02 --- topic: set by crc!uid2647@gateway/web/irccloud.com/x-gafmfbjdyglmxbls on [Fri Nov 04 13:31:51 2016] 05:04:02 --- names: list (clog FreeFull Tristan-Speccy qbject @crc pointfree carvite dustinm` @ChanServ) 05:51:35 haiqu: I'm not seeing the bug, can you explain? 06:10:33 --- join: haiqu (31c510d5@gateway/web/freenode/ip.49.197.16.213) joined #retro 06:25:59 OK, a further clue for you. It's in read_token 06:27:16 BTW much as I appreciate the sudden activity on the repo with all this new Windows-specific code, I won't be interested in any of it. To do that seems to make the same error as writing Linux-specific code. 06:30:06 Just in case it wasn't clear from my comments when I first showed up here, I am porting this to a completely foreign environment called Ultibo which runs on a Raspberry Pi and is written in Pascal. My sole interest in getting it running on Windows is to familiarize myself with how the thing works. IO on Ultibo is very low level and has no similarity to any known operating system. It's more of a fancy BIOS than an OS at this stage. 06:32:37 As for C# ... well, I've seen people disappear down that path before. I know enough languages for now, won't be delving into those waters. 06:35:28 Now that I have 99% of this thing licked I may toy with getting the VT100 in Git Bash working, it can't be that hard. 06:36:31 Then if someone wants an editor in Windows you can just say, "Sure. Install Git. You need it anyhow." 06:42:28 And when you get a minute, I'd be curious to hear you explain why - even after I fixed it - you still consider 4MB a reasonable size for a single-line buffer in unu ... 06:42:43 --- quit: haiqu () 06:47:58 I'm not seeing the bug :( 06:51:57 Your approach differs from mine (you are checking the condition at the end of the loop, saving a couple of calls), but I'm not seeing any obvious issues 06:53:25 the 4MB line buffer is a vestige of some experiments I was doing. I'll revert it to a smaller size soon. 06:54:45 (Specifically, I was experimenting with reading in the entire file into the buffer and scanning through it, but decided to stick with the line by line reader instead) 06:57:30 Eventually I'll have specific interfaces for the different systems I use, bridging to host facilities as it makes sense. The interfaces aren't really intended to be highly portable. (Unlike the prior retro11, which had all I/O models defined as part of the core VM documentation). 06:57:45 I actually don't use the listener or block editor often. (O 06:58:53 I'm mostly using the iOS and (unreleased) macOS interfaces (reflecting my current choice of platforms). 07:15:58 Regarding the Windows specific code, I could provide stubs for the termios and ioctl stuff, but the behavior of the interface would then differ. If it's intended to support Windows as well as linux/macos/(hopefully) other *nix systems I needed to use the Win32 console api's to set the input modes. 08:26:28 Looks like a 16k line buffer will be sufficient for unu. 08:38:45 The buffer needs to be long enough for the longest input lines. This will include paragraphs in the Markdown and the rather long lines for embedded images. 08:39:17 --- join: mnemnion (~mnemnion@2601:643:8102:7c95:d445:efda:9dec:5a9b) joined #retro 08:39:19 (I should probably change the embedimage code to insert line breaks periodically) 08:43:41 --- quit: mnemnion (Ping timeout: 258 seconds) 08:45:24 --- join: mnemnion (~mnemnion@2601:643:8102:7c95:d445:efda:9dec:5a9b) joined #retro 09:46:21 --- quit: mnemnion (Remote host closed the connection) 10:10:42 --- join: mnemnion (~mnemnion@152.179.131.166) joined #retro 10:15:18 --- quit: mnemnion (Ping timeout: 258 seconds) 10:18:55 --- join: mnemnion (~mnemnion@152.179.131.166) joined #retro 10:20:36 --- join: mnemnia (~mnemnion@152.179.131.166) joined #retro 10:20:44 --- quit: mnemnia (Remote host closed the connection) 10:21:01 --- join: mnemnia (~mnemnion@152.179.131.166) joined #retro 10:23:23 --- quit: mnemnion (Ping timeout: 248 seconds) 10:23:39 --- join: Mat4 (~claude4@ip5b411378.dynamic.kabel-deutschland.de) joined #retro 10:57:16 --- quit: mnemnia (Remote host closed the connection) 11:05:43 --- join: mnemnion (~mnemnion@152.179.131.166) joined #retro 11:10:24 --- quit: mnemnion (Ping timeout: 256 seconds) 11:33:56 --- join: mnemnion (~mnemnion@152.179.131.166) joined #retro 11:38:22 --- quit: mnemnion (Ping timeout: 250 seconds) 11:38:54 --- quit: Mat4 (Quit: Leaving) 11:40:51 --- join: mnemnion (~mnemnion@152.179.131.166) joined #retro 11:42:10 --- quit: mnemnion (Read error: Connection reset by peer) 11:42:27 --- join: mnemnion (~mnemnion@152.179.131.166) joined #retro 11:43:56 --- join: mnemnia (~mnemnion@152.179.131.166) joined #retro 11:46:52 --- quit: mnemnion (Ping timeout: 250 seconds) 11:48:10 --- quit: mnemnia (Ping timeout: 246 seconds) 12:51:13 --- join: mnemnion (~mnemnion@152.179.131.166) joined #retro 12:55:51 --- quit: mnemnion (Ping timeout: 268 seconds) 13:05:41 --- join: mnemnia (~mnemnion@2601:643:8102:7c95:edb7:50e3:b88d:4dd2) joined #retro 13:10:00 --- quit: mnemnia (Ping timeout: 245 seconds) 15:07:01 --- join: oPless (simon@lart.doosh.net) joined #retro 15:54:51 --- quit: FreeFull (Quit: Rebooting) 16:01:10 --- join: FreeFull (~freefull@defocus/sausage-lover) joined #retro 17:40:31 --- join: mnemnion (~mnemnion@2601:643:8102:7c95:d936:e1e9:3984:da5f) joined #retro 18:13:17 --- join: haiqu (31c5600f@gateway/web/freenode/ip.49.197.96.15) joined #retro 18:19:08 Thanks for the explanation. I'll change the unu buffer to 16k in the Pascal version, it's currently 4k but a bit more leeway won't hurt. 18:19:26 Now for that little bug that kept me scratching my head for days. 18:20:53 The notation for a newline in C is, as you well know, '\n'. But what does that actually represent? 18:21:25 Pascal gas no similar notation, so the literal conversion is #10 but that failed dismally. 18:22:18 Why? Simply that Windows issues a CRLF as a line ending. I used the inbuilt Pascal constant LineEnding but that also failed. 18:23:06 Then I realized that LineEnding would be converted to CRLF so I was getting an extra CR (#13) in the separated string. 18:23:48 So (and if you'd checked the final Pascal version as I suggested you'd know this) I had to test for and reject both #13 AND #10 to make it work. 18:24:44 And btw, a literal translation of '\n' in any MacOS prior to MacOS X will give a CR (#13) only, which will also fail if #10 is used. 18:25:30 The C version also couldn't work because MinGW uses CRLF for '\n' internally. :) 18:26:23 Edit above: for 'Pascal gas' read 'Pascal has'. 18:29:03 So yeah, I'd find the end of a token but it wouldn't decode unles I added a space at the end of the line. Weirdest looking bug I've ever seen. 18:29:35 And even then it would only decode the first time through. 18:32:52 For cross-platform compatibility this will need to be changed to: 18:34:36 while ((ch != (char)13) && (ch != (char)10) && (ch != ' ') && (ch != EOF)) 18:39:04 And while we're on the subject of bugs, there are several instances in the code where you set ip = IMAGE_SIZE which is actually outside the defined memory area for a 0-based block. Should be IMAGE_SIZE - 1 in all cases. 18:39:33 It probably hasn't caused any issues since this is an edge case of the memory buffer being full. 18:40:38 OK, ciao for niao. I'm rewriting tiro in Pascal since I have Python 2.7 and don't want to install another version. 18:40:45 --- quit: haiqu () 23:59:59 --- log: ended retro/16.11.30