00:00:00 --- log: started forth/15.05.06 00:00:18 --- join: true-grue (~grue@95-27-154-2.broadband.corbina.ru) joined #forth 00:19:38 --- quit: bjorkintosh (Ping timeout: 240 seconds) 00:21:24 --- join: bjorkintosh (~bjork@ip68-13-224-81.ok.ok.cox.net) joined #forth 00:29:15 --- join: mayuresh (~mayuresh@106.221.154.92) joined #forth 00:29:48 --- quit: mayuresh (Client Quit) 00:38:56 --- quit: atommann (Ping timeout: 245 seconds) 00:51:23 --- join: atommann (~atommann@58.251.2.94) joined #forth 01:43:57 --- join: proteusguy (~proteusgu@183.88.72.104) joined #forth 01:43:57 --- mode: ChanServ set +v proteusguy 01:58:29 --- quit: newcup (*.net *.split) 01:58:29 --- quit: irsol (*.net *.split) 01:58:30 --- join: protist (~javery@129.237.69.111.dynamic.snap.net.nz) joined #forth 02:00:50 --- join: newcup (newcup@peruna.fi) joined #forth 02:00:50 --- join: irsol (~irsol@unaffiliated/contempt) joined #forth 02:17:08 --- quit: atommann (Quit: Leaving) 04:07:20 --- join: vsg1990 (~vsg1990@cpe-67-241-148-119.buffalo.res.rr.com) joined #forth 04:17:33 --- quit: true-grue (Read error: Connection reset by peer) 04:21:48 --- quit: Bahman (Ping timeout: 272 seconds) 04:22:33 --- join: xyh (~xyh@2001:250:3002:5550:6ea1:cc0f:bcb2:b187) joined #forth 04:24:13 --- join: Bahman (~Bahman@85.133.140.118) joined #forth 04:46:38 --- join: GeDaMo (~GeDaMo@dyn-62-56-110-241.dslaccess.co.uk) joined #forth 05:09:11 --- quit: Bahman (Ping timeout: 264 seconds) 05:24:08 --- quit: proteusguy (Remote host closed the connection) 05:51:20 --- join: proteusguy (~proteusgu@ppp-110-168-229-122.revip5.asianet.co.th) joined #forth 05:51:20 --- mode: ChanServ set +v proteusguy 05:58:13 --- quit: scoofy (Ping timeout: 265 seconds) 06:11:17 --- join: scoofy (~scoofy@catv-89-135-80-2.catv.broadband.hu) joined #forth 06:21:11 --- quit: xyh (Remote host closed the connection) 06:34:15 --- join: true-grue (~grue@95-27-154-2.broadband.corbina.ru) joined #forth 07:39:55 --- quit: ASau (Read error: Connection reset by peer) 07:42:06 --- quit: darkf (Quit: Leaving) 08:11:44 --- join: xyh (~xyh@2001:250:3002:5550:6ea1:cc0f:bcb2:b187) joined #forth 08:11:49 crc: "Each string is stored in a separate slice", how dose a slice get allocated? 08:13:24 The VM has byte codes for requesting/releasing slices, and the compiler will allocate them as well 08:18:02 if I push a string literal into stack, when will the releasing of the slice that contains the string happen ?? 08:21:55 crc: or, releasing of a string slice should be explicit ? 08:23:01 The memory will be reclaimed when parable's garbage collector is invoked and no references can be found. 08:23:22 The frequency of this is implementation dependent. 08:24:19 parable has a garbage collector ! I see. 08:24:53 (My stuff normally runs a GC after every hundred or so compilations, and only when the stack is empty. Or at the end, before serializing results for Apologue) 08:25:29 --- join: nighty^ (~nighty@hokuriku.rural-networks.com) joined #forth 08:50:23 crc: I will go to the issue page to ask more :) 08:54:53 ok 09:02:47 --- join: kumul (~mool@adsl-64-237-236-104.prtc.net) joined #forth 09:04:37 syntax about function definition :: https://github.com/crcx/parable/issues/4 09:13:46 --- quit: proteusguy (Ping timeout: 276 seconds) 09:24:58 --- quit: xyh (Remote host closed the connection) 09:25:45 --- join: proteusguy (~proteusgu@ppp-110-168-229-77.revip5.asianet.co.th) joined #forth 09:25:45 --- mode: ChanServ set +v proteusguy 09:27:58 --- join: ErhardtMundt|2 (~kvirc@91.252.34.122) joined #forth 09:29:37 --- quit: ErhardtMundt (Ping timeout: 252 seconds) 09:33:29 xyh: https://github.com/crcx/parable/issues/4#issuecomment-99530790 09:35:13 --- quit: karswell (Ping timeout: 276 seconds) 09:47:13 --- quit: ErhardtMundt|2 (Ping timeout: 252 seconds) 09:50:42 --- join: ErhardtMundt|2 (~kvirc@93-43-89-145.ip91.fastwebnet.it) joined #forth 09:57:02 --- join: ASau (~user@176.4.79.164) joined #forth 10:19:25 --- quit: protist (Quit: Konversation terminated!) 11:08:35 --- join: markm (~markm@38.122.200.194) joined #forth 11:08:59 --- join: johnmark__ (~johnmark@c-73-51-235-57.hsd1.il.comcast.net) joined #forth 11:09:30 --- nick: johnmark__ -> JohnMarkM 11:10:16 i think the = on the kernel line is wrong. it should not be there 11:19:45 --- quit: Keshl (Quit: Konversation terminated!) 11:48:20 --- quit: ASau (*.net *.split) 11:48:21 --- quit: true-grue (*.net *.split) 11:48:22 --- quit: newcup (*.net *.split) 11:48:23 --- quit: irsol (*.net *.split) 11:48:26 --- quit: dzho (*.net *.split) 11:48:27 --- quit: djinni (*.net *.split) 11:49:39 --- join: djinni (~djinni@2607:5300:100:200::160d) joined #forth 11:49:49 --- join: dzho (~dzho@unaffiliated/dzho) joined #forth 11:50:02 --- join: ASau (~user@176.4.79.164) joined #forth 11:50:03 --- join: true-grue (~grue@95-27-154-2.broadband.corbina.ru) joined #forth 11:50:03 --- join: newcup (newcup@peruna.fi) joined #forth 11:50:03 --- join: irsol (~irsol@unaffiliated/contempt) joined #forth 12:19:14 --- quit: dzho (*.net *.split) 12:19:36 --- join: dzho (~dzho@unaffiliated/dzho) joined #forth 12:26:44 --- quit: Soni (Quit: Leaving) 12:58:42 --- quit: vsg1990 (Quit: Leaving) 13:18:32 --- join: Mat4 (~quassel@ip188619bb.dynamic.kabel-deutschland.de) joined #forth 13:18:37 hello 13:18:54 --- quit: gabc (Ping timeout: 244 seconds) 13:19:39 hello 13:21:27 hello there 13:21:33 --- nick: ErhardtMundt|2 -> ErhardtMundt 13:21:55 Hello. 13:23:03 for the ones who search for a forth implementation in assembler, I want to point out that there exist an assembler version of Retro's VM 13:23:24 ngaro? 13:23:28 yes 13:23:58 pretty interesting 13:24:48 it is part of the source code 13:24:52 base 13:25:07 in directory 'complete' 13:26:47 I like most of the concepts of the ISA, but not all of them 13:26:58 then theres isforth for x86, arm, thumb, ... .. . 13:27:41 by the way, how can I implement ACCEPT using only syscalls? 13:28:22 for which kernel ? Linux, a BSD one, Haiku ? 13:28:29 define ACCEPT? 13:28:35 keyboard input? 13:28:43 you would do a read of stdin 13:28:46 actually I'm on mac os x 13:29:02 but you would probably need to change stdin to raw mode, not cooked 13:29:14 read won't consider newline a special character 13:29:18 thats how isforth does it. if you can find a source to isforth look at query/expect 13:29:27 not if you put it in cooked mode 13:29:29 hmm, probably you mean EXPECT (Fig Forth) ? 13:29:41 it sends you exactly one key press (or a key sequence) for every key 13:29:46 query/expect 13:30:00 query is defined as : query tib 80 expect ; 13:30:04 usually 13:31:14 ErhardtMundt, though the syscalls.s file will be different for you my key/key?/query/expect are exactly what you are looking for 13:31:46 so consecutive keys? 13:32:00 you would do a call to read which will block until ONE key is pressed 13:32:11 that one key may return one byte or a key sequence 13:32:35 as markm noticed, for an Unix like kernel keyboard access is done by read from stdin. The configuration of the terminal emulator is abstracted though the termios interface 13:32:38 you would put that in your terminal input buffer 13:32:49 ^reading 13:32:51 correct 13:33:38 ok, thanks 13:34:17 however there may be some inconsistencies of these interface in between BSD and Posix oriented kernels. So be aware of this 13:34:21 not sure if you have "man termio" 13:34:42 termios i mean 13:34:47 I was afraid of performance issues 13:34:48 man 3 termios 13:34:59 erformance wont be a problem for keyboard input 13:35:06 the bottleneck will always be the typing speed 13:35:19 nobody can type faster than the computer can process it :() 13:35:43 yes, I agree but, is ACCEPT supposed to work even with different SOURCE-ID? 13:35:52 so will query/expect 13:36:02 because KEY and key? are both deferred words 13:37:10 key from terminal uses (key). want it for serial port use (serial_key) or wahtever 13:37:17 ' (fookey) is key 13:37:29 now all terminal input is from the foo device 13:40:29 * Mat4 thinks that Unix oriented kernels are anything but good examples of kernel interface design 13:42:19 unix I/O is a BITCH 13:42:31 but its all due to legacy i/o devices 13:42:38 like teletypes and such :/ 13:44:08 and the fact that for most possible keypresses there is absolutely NO guarantee that any user application will ever see that keypress 13:44:13 might be stolen by the kernel 13:44:18 might be stolen by the terminal 13:44:24 might be stolen by the GUI 13:44:54 which is why we have escape colong shift alt backspace backspave f10 to switch into overwrite mode 13:45:24 and escape colon contro-alt-f1 blah blah blah 13:45:27 hate that shit 13:45:45 yes, it's a mess 13:46:07 luckilly we have the VI developer to rescue us and invent termcap 13:46:10 /facepalm 13:57:30 That doesn't help toward more structured and better designed kernels in my opinion 13:58:20 it doesnt help towards more structured or better user applications either 13:58:26 termcap/terminfo is braindead 13:58:31 yes 13:58:33 but its what we have 13:59:11 and im speaking from the experience of writing my own terminfo parser and terminal text user interface 13:59:50 --- quit: GeDaMo (Remote host closed the connection) 14:02:03 --- quit: joneshf-laptop (Ping timeout: 250 seconds) 14:10:14 --- quit: carc (Ping timeout: 256 seconds) 14:12:01 First, there're no "BSD" kernels. 14:12:42 Second, NetBSD, FreeBSD, OpenBSD and DragonFly follow POSIX in their I/O interfaces. 14:12:47 --- join: carc (~carc@unaffiliated/carc) joined #forth 14:13:00 I love FreeBSD 14:13:35 (As usual, Forth programmers are so clueful in what happens around them.) 14:14:38 Unix I/O is not a problem at all. 14:14:46 The problem is teletype emulation interface. 14:17:31 Besides, tty interface is exactly what you ought to like: 14:17:49 it provides no shim between you and hardware. :) 14:18:09 ASau: You know for sure that the BSD kernels differ in some details to Posix (as Linux) 14:18:37 For start POSIX doesn't define kernel. 14:18:50 It doesn't tell anything about the kernel at all. 14:19:05 That's why OS X is POSIX-compliant in the strictest sense. 14:19:15 Posix define interfaces which are implemented in Unix alike kernels 14:19:20 No. 14:19:38 Some systems implement some interfaces at kernel level. 14:19:40 for sure, Linux for example has a syscall implementing the termios inetrface 14:19:46 Other systems implement same interfaces at library level. 14:19:47 ^interface 14:20:03 as all BSD kernels 14:20:25 POSIX allows that due to ignorance at how exactly you implement the interface. 14:20:56 well, I donÄt need to discuss with your viewpoint, just take a look at the kernel sources 14:21:07 That's not my viewpoint. 14:21:13 That's what POSIX is about. 14:21:22 POSIX says nothing about kernel. 14:22:01 that's true. However these kernels inherent interfaces which are defined by the Posix standard, that's my point 14:22:04 It only requires that you implement some API and pass certification tests. 14:22:21 How exactly you implement the API is left at your personal discretion. 14:22:43 No, kernel interfaces are not defined by POSIX at all. 14:23:12 That's why Mach-based OS X is POSIX-compliant. 14:23:27 Darwin-based, whatever. 14:24:34 ok, please read again: Linux as all BSD kernels include interfaces like termios which are specified by the Posix standard 14:24:56 This is different statement. 14:26:33 NetBSD and FreeBSD implement termios at library level. 14:27:11 the last time I checked the FreeBSD kernel I found an kernel function for it 14:27:47 Which one? 14:28:02 cfgetispeed? 14:28:10 cfmakeraw? 14:30:42 if not, the FreeBSD kernel has a fork syscall for sure which is defined by Posix and ... 14:30:46 2 STD POSIX { int fork(void); } 14:30:46 3 STD POSIX { ssize_t read(int fd, void *buf, size_t nbyte); } 14:30:46 4 STD POSIX { ssize_t write(int fd, const void *buf, size_t nbyte); } 14:30:46 5 STD POSIX { int open(char *path, int flags, int mode); } 14:30:46 6 STD POSIX { int close(int fd); } 14:31:02 /usr/src/sys/kern/syscalls.master 14:31:27 No Posix related kernel interfaces, heh ? 14:31:41 Yes, some parts of API are implemented in kernel. 14:32:20 Other parts like termios that you mentioned above are implemented in libraries. 14:32:38 posix_spawn is, for instance. 14:33:40 (Some API is intentionally implemented differently because POSIX way is dumb.) 14:33:40 that's bad design by principle 14:34:16 Which one? 14:34:36 all Unix oriented kernels in general 14:35:22 Is Mach a bad design in principle? 14:35:56 it is (that's the reason for developing alternatives like the L4 micro kernel) 14:36:39 however not related to Unix like kernel designs 14:37:01 Mach is Unix-line kernel design in principle. 14:37:12 It was designed as drop-in replacement for BSD kernel. 14:38:45 Anyway. 14:38:48 The Mach kernel is limited in its IPC abstractions which lead to insufficient high call times 14:39:30 POSIX has rather complex relation to BSD descendants. 14:40:13 That termios, terminfo and tty designs are awful, most people agree. 14:40:31 Yet this is very hard to change and isn't going to happen next week. 14:41:38 Complaining that it is hard to program using tty interface is stupid, because this is how hardware works. 14:41:52 In older times it was real hardware, today it is virtual hardware. 14:44:32 No real hardware interface since 30 years I know of are terminal oriented 14:44:44 ^interfaces 14:45:45 you must mean serial interfaces like RS232 14:46:41 (you can see them as byte oriented if you want) 14:48:32 that's an protocol not an interface however 14:48:33 Yes, tty interface is involved in communications that are serial or pretend to be serial (like PPP). 14:51:09 to be pricise because the physical connection is not defined 14:53:36 thta's a subtile difference to something like a GPU, which requires both an interface and a specific physical connection, both with there own protocol 14:59:41 that's the reason why every terminal oriented abstraction must end in inefficiency (read unneccessary overhead). It's better to define different hardware-abstraction layers as interface for different classes of hardware functionality 15:02:40 Instead all Unix oriented kernels follows a principle of 'all interfaces if possible need to be file oriented' and 'character handling is better handled though terminal escape codes' 15:03:42 that's just ... bad 15:07:55 Not at all. 15:07:56 If you have this problem, clone the driver and drop ioctl support for termios. 15:07:56 Implement different set of knobs and have your unabstracted interface. 15:07:56 fine, just port the whole usespace then .. nice 15:07:56 People did it the way they did because they wanted to have some more or less general interface. 15:07:57 Yes, that's the poinr. 15:07:57 People didn't want to write separate implementation of vi just because you don't want abstractions. 15:08:08 I wouldn't reuse these source base at all 15:08:39 You can stop using all BSD code right now. 15:09:00 Remove your libc and TCP from your kernel. :) 15:09:17 that's why I'm working on my own, personal environment 15:09:26 to be independent of these mess 15:10:25 which environment, Mat4? 15:10:30 It donÄt need to be large, it need only to be sufficient for my usage 15:10:37 ^don't 15:11:50 ErhardtMundt: I build my own computer system from ground up (it's fun .. and yes it will have an ethernet port, TCP/IP stack and HDMI port) 15:12:13 that's fun indeed! 15:12:43 indeed 15:12:58 (and I'm crazy enough to realize this) 15:14:22 ;) 15:18:24 --- quit: true-grue (Read error: Connection reset by peer) 15:19:13 Mat4: you seem to know what you're doing 15:20:06 if I knew what you know, I'd probably do it, too 15:24:18 I can only recommend anyone to emancipate from conventionally developed computer technology 15:24:40 it's worth the effort 15:25:45 Mat4: I always wanted to 15:26:25 it's why I'm here in the first place 15:38:40 isnt that basically what they did for the raspberry pi? design a computer from the ground up??? :) 15:38:47 ok they didnt design the cpu :P 15:39:43 they had to accept broadcom soc, which is cheap but bad 15:39:59 since it's closed and not documented enough, afaik 15:48:19 I prefer my own processor design :) 15:48:50 Mat4: which one? 15:50:43 this one: http://www.13rhinos.de/berana-en.html 16:00:17 --- join: saml_ (~saml@cpe-24-102-97-97.nyc.res.rr.com) joined #forth 16:05:56 ciao 16:06:05 --- quit: Mat4 (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) 16:22:28 --- quit: proteusguy (Remote host closed the connection) 16:26:03 --- quit: markm (Quit: Leaving) 16:48:38 --- join: vsg1990 (~vsg1990@cpe-67-241-148-119.buffalo.res.rr.com) joined #forth 17:06:52 --- quit: nighty^ (Quit: Disappears in a puff of smoke) 17:47:01 --- join: darkf (~darkf___@unaffiliated/darkf) joined #forth 17:53:17 --- quit: vsg1990 (Quit: Leaving) 18:16:16 --- join: joneshf-laptop (~joneshf@98.208.35.89) joined #forth 19:21:30 --- join: atommann (~atommann@58.251.2.94) joined #forth 19:45:36 does mat4's own system comes from the `nand to tetris` project? 20:17:35 --- quit: saml_ (Remote host closed the connection) 20:20:03 --- join: Keshl (~Purple@24.115.181.94.res-cmts.gld.ptd.net) joined #forth 20:48:05 --- quit: TodPunk (Read error: Connection reset by peer) 20:48:29 --- join: TodPunk (Tod@50-198-177-186-static.hfc.comcastbusiness.net) joined #forth 20:52:25 --- quit: bjorkintosh (Quit: Leaving) 20:53:41 --- quit: JohnMarkM (Quit: Leaving) 20:56:24 --- quit: darkf (Quit: Leaving) 20:56:42 --- join: darkf (~darkf___@unaffiliated/darkf) joined #forth 21:14:01 --- join: bjorkintosh (~bjork@ip68-13-224-81.ok.ok.cox.net) joined #forth 22:00:11 --- quit: kumul (Quit: Leaving) 23:10:31 --- quit: atommann (Ping timeout: 240 seconds) 23:19:32 --- join: samrat (~samrat@49.248.251.230) joined #forth 23:20:03 --- quit: samrat (Client Quit) 23:22:47 --- quit: mnemnion (Remote host closed the connection) 23:44:30 --- join: atommann (~atommann@58.251.2.94) joined #forth 23:44:55 --- join: Bahman (~Bahman@85.133.140.118) joined #forth 23:59:59 --- log: ended forth/15.05.06