00:00:00 --- log: started forth/15.03.17 00:00:07 --- join: mnemnion (~mnemnion@c-98-210-219-91.hsd1.ca.comcast.net) joined #forth 00:14:00 --- join: nighty^_ (~nighty@TOROON12-1279662182.sdsl.bell.ca) joined #forth 00:14:29 --- quit: nighty^_ (Read error: Connection reset by peer) 00:15:15 --- quit: nighty^ (Read error: Connection reset by peer) 00:18:50 --- join: nighty^ (~nighty@static-68-179-124-161.ptr.terago.net) joined #forth 00:18:53 --- quit: impomatic (Ping timeout: 252 seconds) 00:51:24 --- quit: joneshf-laptop (Ping timeout: 246 seconds) 01:09:04 --- quit: kumul (Quit: Leaving) 01:14:33 --- join: joneshf-laptop (~joneshf@98.208.35.89) joined #forth 01:26:09 --- join: nighty^_ (~nighty@TOROON12-1279662182.sdsl.bell.ca) joined #forth 01:28:56 --- quit: nighty^ (Ping timeout: 256 seconds) 01:48:26 --- quit: joneshf-laptop (Read error: Connection reset by peer) 01:49:52 --- join: joneshf-laptop (~joneshf@98.208.35.89) joined #forth 01:54:21 --- quit: nighty^_ (Read error: Connection reset by peer) 01:54:27 --- join: nighty^ (~nighty@static-68-179-124-161.ptr.terago.net) joined #forth 01:59:33 --- quit: nighty^ (Ping timeout: 272 seconds) 01:59:44 --- join: nighty^ (~nighty@TOROON12-1279662182.sdsl.bell.ca) joined #forth 02:04:46 --- quit: nighty^ (Read error: Connection reset by peer) 02:09:53 --- join: nighty^ (~nighty@static-68-179-124-161.ptr.terago.net) joined #forth 02:30:10 --- join: xyh (~xyh@2001:250:3002:5550:6ea1:cc0f:bcb2:b187) joined #forth 02:45:04 --- quit: mnemnion (Remote host closed the connection) 02:45:31 --- join: mnemnion (~mnemnion@c-98-210-219-91.hsd1.ca.comcast.net) joined #forth 02:48:13 --- quit: mnemnion (Remote host closed the connection) 02:48:41 --- join: mnemnion (~mnemnion@c-98-210-219-91.hsd1.ca.comcast.net) joined #forth 02:53:20 --- quit: mnemnion (Ping timeout: 256 seconds) 03:05:22 --- join: true-grue (~grue@95-27-146-71.broadband.corbina.ru) joined #forth 03:38:40 --- quit: xyh (Remote host closed the connection) 03:41:35 --- quit: mPBF[fsSS (Quit: Disconnecting from stoned server.) 03:43:18 --- join: ibUkFvuMZ (~malyn@server.strangegizmo.com) joined #forth 03:51:23 --- join: nighty-_ (~nighty@hokuriku.rural-networks.com) joined #forth 03:57:23 --- join: impomatic (~chatzilla@61.205.125.91.dyn.plus.net) joined #forth 04:26:07 --- join: vsg1990 (~vsg1990@cpe-67-241-148-119.buffalo.res.rr.com) joined #forth 04:51:28 --- join: gabriel_laddel (~user@unaffiliated/gabriel-laddel/x-9909917) joined #forth 04:51:56 --- quit: gabriel_laddel (Remote host closed the connection) 05:42:35 --- join: saml_ (~saml@cpe-24-102-97-97.nyc.res.rr.com) joined #forth 05:48:21 --- quit: nighty-_ (Ping timeout: 252 seconds) 05:49:09 --- join: nighty-_ (~nighty@hokuriku.rural-networks.com) joined #forth 06:42:04 --- quit: saml_ (Ping timeout: 250 seconds) 06:48:36 --- join: mnemnion (~mnemnion@c-98-210-219-91.hsd1.ca.comcast.net) joined #forth 06:53:07 --- quit: mnemnion (Ping timeout: 246 seconds) 07:29:19 --- quit: darkf (Quit: Leaving) 08:06:48 --- join: mnemnion (~mnemnion@c-98-210-219-91.hsd1.ca.comcast.net) joined #forth 08:10:55 --- join: xyh (~xyh@2001:250:3002:5550:6ea1:cc0f:bcb2:b187) joined #forth 08:25:10 --- quit: irsol (Ping timeout: 246 seconds) 08:29:09 --- join: irsol (~irsol@unaffiliated/contempt) joined #forth 08:29:37 --- join: backer (~backer@banjo.employees.org) joined #forth 08:39:36 --- join: mark4_ (~mark4@38.122.200.194) joined #forth 10:06:36 --- quit: xyh (Ping timeout: 256 seconds) 10:40:28 --- join: Zarutian (~Adium@168-110-22-46.fiber.hringdu.is) joined #forth 10:49:46 --- join: kumul (~mool@adsl-72-50-87-84.prtc.net) joined #forth 10:49:56 --- quit: Zarutian (Remote host closed the connection) 10:53:44 --- join: xyh (~xyh@2001:250:3002:5550:6ea1:cc0f:bcb2:b187) joined #forth 11:24:02 --- quit: kumul (Quit: Leaving) 11:58:19 --- join: fantazo (~fantazo@089144224134.atnat0033.highway.a1.net) joined #forth 12:59:55 --- quit: fantazo (Quit: Verlassend) 13:01:03 --- quit: vsg1990 (Quit: Leaving) 14:12:29 --- join: johnmark__ (~johnmark@c-73-51-235-57.hsd1.il.comcast.net) joined #forth 14:13:02 --- nick: johnmark__ -> johnmark_ 14:53:21 --- quit: nighty-_ (Quit: Disappears in a puff of smoke) 14:55:06 --- quit: xyh (Remote host closed the connection) 14:58:33 --- join: Mat4 (~cz@ip5b41928f.dynamic.kabel-deutschland.de) joined #forth 14:58:37 hi all 15:01:56 hey Mat4 15:02:22 hi bluekelp 15:03:22 what's new about your Forth system ? 15:05:17 i have it booting and going into protected mode in qemu - having some issue with the keyboard polling 15:05:20 but it "mostly" works 15:05:38 next step is to start building the forth itself (basically porting jonesforth to nasm/fasm) 15:06:03 since i'll have basic keyboard in and video out - should be all i need (for now) 15:12:06 readly like you use your own MBR based boot loader 15:12:43 eh, MBR boot loader I mean 15:12:50 yes. it's a full MBR bootable system. 15:13:12 i want to play with bare hardware - and other than going into boot rom, this is as close as i can come 15:15:00 personally I use Grub 2 as boot laoder because this way booting from UEFI and legacy BIOS is possible 15:15:23 without kernel modification 15:16:13 i suppose i should make an attempt to be future-proof. but part of the reason i'm doing this is so i have to mess with hardware 15:16:42 and i kind of like the "dedicated system" concept a la colorforth and chuck's okad 15:17:05 boot the system and have it become the one tool you want. sort of the opposite of all modern OSes 15:17:33 unitasking 15:17:39 master of ONE 15:18:36 but how would i play world of warcrack and surf the web and watch youtube vids a the same time and dont forget my twitter and facebook!!!! lol 15:18:37 --- join: pgomes (~pgomes@ip923476d3.dynamic.kabel-deutschland.de) joined #forth 15:18:53 the only one of those i actually do is the youtube vids :P 15:19:18 well, my personal environment is a bit different to colorforth specially in its ability for automatic parallelization as implicit language feature 15:19:19 --- quit: pgomes (Client Quit) 15:20:22 sounds cool. i'm hoping to learn a lot about how "real" forths progress and i try and do more and more 15:20:41 for sure you will 15:21:20 and Forth is a good target for incremental programming 15:21:29 2 weeks of NUB forth coding teaches you more about the internals of forth than 30 years of C teaches you 15:21:44 I agree 15:22:02 NUB forth? 15:22:17 --- quit: true-grue (Read error: Connection reset by peer) 15:22:25 yes "i started to learn forth yesterday.... " 2 weeks later... 15:22:34 that sort of scenario 15:22:45 DO forth, learn how it works internally. 15:22:49 anyhow; For portability purposes using C is somewhat advantageous as alternative to assembly programming in my opinion 15:22:50 DO c... dont learn a freeking thing 15:23:41 Mat4, i disagree. show me any non trivial portable c application and ill show you 50 versuions of the same thing all interleaved into an unreadable MEESS of nested and interleaved conditional compilations 15:23:55 show me that entire thing coded in asm and ill port it to any other asm in an hour or so 15:25:09 Show me any portable Forth application. ) 15:25:18 In fact, show me any Forth application. 15:25:27 asau there isnt one 15:25:31 SPECIALLY not ans forth 15:25:31 mark4_: take a look at reto 15:25:37 sorry I mean retro 15:25:43 portability is a complete and utter myth 15:26:05 write portable code. write unreadable code. 15:26:07 Somehow people manage to do that with C and C++. 15:26:15 write dedicated code... write easilly ported code 15:26:29 I'm sure that you use exactly that code to talk to us. :) 15:26:30 yea like i said with a gordian knot of conditionals 15:26:48 i dont use the code. i use the application 15:26:58 my point is that with some limitations you can cross compile C sources to dozens of different CPU architectures 15:27:06 i wont go anywhere near the CRAP source code to anything c linux 15:27:08 It is highly unlikely that you run your personal implementation of TCP stack. 15:27:24 the nicest thing i can compare those sorces to are "an unmade bed" to quote my web page 15:27:42 using macro assemblerd you will need some kind of IL representation 15:27:48 just because the compiled application works well does NOT mean the sources are good 15:27:56 ^assemblers 15:28:38 albeit it's possible of course 15:28:43 You cannot say that that source is good or bad. 15:28:49 You cannot compare it to anything else. :) 15:28:55 much of what we use in our everyday lives is like sausage - you don't want to really know how it's made, or of what it is made. just use/enjoy it 15:29:37 I agree that C is somewhat unreadable per design (bit that's for sure my personal, subjective viewpoint) 15:29:53 asau bullshit. i can compare it to "readable" code 15:30:22 So, you cannot read. :) 15:31:34 i go out of my way to not HAVE to read craply written, horrendlusly formatted linux c sources 15:32:08 by craply i mean "written in the most complex/clever way we can make it just so it takes 3 clock cycles less time" 15:32:15 for EVERY LINE OF CODE. 15:32:31 because eeking out clock cycles is important so making the code unreadable is the norm 15:33:27 mark4_: building a Forth from a basic, minimal VM is not very source intense so I think it doesn't matter much in which language this base is written as long as the sources are compiled to machine code 15:33:41 unfortunately clock cycles can change with CPU revisions - today i learned that Intel optimized chips so 'mov eax, 0' is faster than 'xor eax, eax' - bc few compilers generated the latter 15:34:00 i have not verified this myself - but was reading about issues w/optimizations 15:34:26 back in the day the former was faster. but at some point it switched, i guess. 15:35:02 yes 15:35:53 mat4 its very VERY difficult to do certain "low level" things in C 15:36:24 agree, it's an compromise 15:37:05 If you check the source, then the number of such "certain things" is more than negligible. 15:37:22 as written one can always use some macros defining an IL representation for CPU abstraction 15:37:34 asau and the linux devs are clueful enough to drop down to asm where its absolutely required 15:37:35 yes 15:37:46 So? 15:38:04 What was your point when you started talking about these "certain things"? 15:41:11 i do embedded devel 15:41:17 I do too. 15:41:19 So what? 15:41:28 "Writing embedded applications in C is like opening a can... With a ROCK!" 15:41:36 it gets the job done but its messy 15:41:42 not an elegant solution 15:41:55 asm allows elegance, forth encourages it. c demands you forget it 15:42:18 While I agree that C is not elegant, assembler and Forth are even less so. 15:44:47 Does anyone here know of a C compiler written in Forth? 15:45:24 I know one written in Fig Forth 15:46:04 used it long time ago on a Commodore 128 15:46:06 wow i would like to see that... just for the "horror movie" aspect of it :) 15:46:48 the code was well factored and the whole compiler extensibe 15:47:48 e.g. from the same source base other Algol oriented languages where also implementable (like a Pascal dialect) 15:50:31 however, I've found not much use of it 15:51:22 Whatever Forth's limitations may be, it makes it trivial to get a bare-bones system up-and-running. I don't see why it would not serve well as a boot/init/shell environment under which an array of languages / tools may be used. 15:52:20 backer: "C to Forth Compiler" (http://www.mpeforth.com/arena.htm), incomplete. 15:52:44 backer: because it wouldn't. :) 15:52:59 This hypothesis recurs from time to time. 15:53:17 The problem is that it was tested in field several times, and the outcome was bad. 15:55:02 ASau: Were they flawed implementations? Or can you unequivocally attribute the failure to the limitations of the Forth language? 15:56:18 going home... brb 15:56:23 --- quit: mark4_ (Quit: reality strikes again!) 15:56:43 backer: what do you call "flawed"? 15:57:06 No, those implementations were of regular Forth quality. 15:57:24 At least one of it is still. 15:57:41 At least one of them is still. 15:57:50 DKordic``: I am actually interested in a compiler to native code. I don't really see the point in converting C to Forth, which has to then overcome the inherent inefficiency of stack machine to register machine conversion. Unless of couse the hardware is an actual stack machine. :-) 15:59:16 ASau: I mean: Can you explain how the use of Forth led to the "bad" outcomes? Can you cite examples? 16:00:08 See all the citations of OF outside of fanatical Forth community. 16:00:18 Check the code of FreeBSD boot loader. 16:00:30 Just to make it clear, I am maintainer of implementation used there. 16:01:07 You maintain the FreeBSD boot loader? 16:01:08 And I had a chance to work on FreeBSD boot loader code for commercial software. 16:01:19 I maintain Forth implementation used there. 16:01:45 Can you sum up why Forth doesn't work well in that environment? 16:02:10 The main reason is that Forth sucks as a programming language. 16:02:34 It creates a lot of impedance mismatch. 16:02:50 Are you referring to the lack of types? 16:02:51 Essentially, you don't have any local scope in Forth. 16:03:10 The consequence is that all you bindings are global. 16:03:44 This entails that you have to do all the scope maintainance work manually. 16:03:58 While in theory it shouldn't create problems, in practice it does. 16:04:20 So, people revert to quite special programming style. 16:04:35 as I know the FreeBSD boot loader is just a FIcl interpreter. Ficl supoorts vocabularies 16:04:37 Essentially, they start using Forth as some kind of BASIC. 16:04:43 ^support 16:04:50 Yes, it does. 16:04:55 So, it is BASIC with modules. :) 16:05:05 Well... "Modules." 16:05:38 I have wondered about the lack of complex types/data structures in Forth. Though I am not a seasoned Forth programmer. 16:05:50 Besides, dealing with non-atomic values on stack creates even bigger problem. 16:06:14 So, people just follow old C way: they create data "types" for counted strings and like that. 16:06:19 Or just use C style strings. 16:06:36 show me a BASIC dialect which allows declaration of functions which create functions conditionally on there init parameters 16:06:44 generating whole interfaces 16:06:56 that would be Forth style programming 16:06:57 Forth strings are quite hard to deal with. 16:07:33 Mat4: these features are as frequently used as template meta-programming in C++. 16:08:00 not really, in C++ meta-programming is statical bound 16:08:26 Some people use it, most people don't. 16:12:05 The end result is that something like Lua would serve FreeBSD a lot better than Forth. 16:12:32 Like what NetBSD did? 16:12:43 ASau: The problem is with the convoluted name space for variables? 16:12:53 gabc: Like what did NetBSD do in your opinion? 16:13:04 backer: no. 16:13:13 Having Lua in their kernel 16:13:13 backer: the problem is with open stack. 16:13:18 if you think so, simply try replacing Ficl with Lua and port the init script (which is not much work), good luck 16:13:30 gabc: how does it relate? 16:14:27 gabc: I'm not even sure that you know well enough what NetBSD did exactly. 16:14:53 Yeah, I think I misunderstood the conversation here. Sorry for that 16:15:12 NetBSD did totally different thing. 16:16:03 We provide kernel module to help programming _some_ drivers. 16:16:18 I think netBSD does not use a scripting language for startup initiation at least 16:16:21 At least that is the original intention of the person who pushed all that. 16:16:27 Mat4: correct. 16:16:47 ASau: Meaning that the problem is with the data stack being represented only as integers and not more complex types? Thanks for your patience, I'm just trying to get a clear understanding. 16:17:18 backer: it isn't clear if having typed stack would help. 16:18:21 it woudn't because type systems are the irrational solution for a problem otherwise better solved 16:18:28 backer: while I agree that it is big improvement on the total mess, I still have some doubt that it would compare farely well. 16:19:06 irrational because there tag data scopes and not storage usage 16:19:33 * Mat4 hopes this is understandable 16:19:40 get some sleep, ciao 16:19:50 I haven't understood it. :) 16:20:04 You should elaborate it some day. 16:20:29 probably i can explain this better next time 16:20:44 --- quit: Mat4 (Quit: ChatZilla 0.9.91.1 [Firefox 36.0.1/20150305021524]) 16:21:51 --- quit: mnemnion (Remote host closed the connection) 16:22:19 --- join: mnemnion (~mnemnion@c-98-210-219-91.hsd1.ca.comcast.net) joined #forth 16:22:43 --- quit: mnemnion (Remote host closed the connection) 16:23:15 --- join: mnemnion (~mnemnion@c-98-210-219-91.hsd1.ca.comcast.net) joined #forth 16:28:03 --- quit: mnemnion (Ping timeout: 255 seconds) 16:33:12 gabc: the reason why I doubt that typed stack would compensate is the notation. 16:33:19 Forth provides extremely bad one. 16:33:52 If you read historical papers, you'll see that original intention for postfix notation was lack of solution to parsing. 16:34:07 Yes, back in sixties the problem wasn't well understood. 16:34:25 The first solution of reasonable quality dates back to 1970. 16:34:36 It is predictive parsing and LL(k). 16:35:22 Since then there's very little sense in using postfix notation, if any at all. 16:36:23 There're too many operations that are not even binary, let alone unary. 16:37:23 Providing LL(1) or even LL(*) language is not such a big deal these days. 16:37:55 Hum, I'm not sure you pinged the right person tho 16:38:10 (Or I missed something, again) 16:38:27 --- join: mnemnion (~mnemnion@c-98-210-219-91.hsd1.ca.comcast.net) joined #forth 16:39:56 gabc: ah, sorry, this was meant for backer. :) 16:40:25 Don't worry, it was interesting in any case :) 16:50:23 --- join: mark4 (~mark4@cpe-68-203-183-77.tx.res.rr.com) joined #forth 16:52:13 Interesting. I do find that pondering > 2 arguments in postfix notation requires considerable more mental energy than writing in C. But I am a novice. 16:53:20 It doesn't apply to novices only. 16:54:03 I don't know if CM blog has disappeared, but he complained there once how he made a mistake and spent few days looking for it. 17:04:12 Anyway, writing LL(1) parser and parser generator is a matter of one day. 17:04:20 It's a student lab, essentially. 17:04:41 LL(1) gives you languages like Pascal and Oberon. 17:06:03 Add one evening more to implement S-attributed LL(1) parser and parser generator, 17:06:29 and you'll close the whole story with inconvenient syntax. 17:06:41 Two days to save a lot of time in future. 17:07:08 After these two days you can concentrate on more significant issues. 17:23:56 --- join: rixard (~rixard@90-229-190-197-no63.tbcn.telia.com) joined #forth 17:33:37 --- join: solrize (~solrize@unaffiliated/solrize) joined #forth 17:34:00 --- part: solrize left #forth 17:43:21 --- quit: ASau (Remote host closed the connection) 17:44:34 --- join: ASau (~user@46.115.128.133) joined #forth 17:44:59 --- quit: proteusguy (Ping timeout: 252 seconds) 17:48:08 --- join: ASau` (~user@46.115.28.134) joined #forth 17:48:26 --- quit: mnemnion (Remote host closed the connection) 17:48:54 --- join: mnemnion (~mnemnion@c-98-210-219-91.hsd1.ca.comcast.net) joined #forth 17:50:58 --- quit: ASau (Ping timeout: 264 seconds) 17:51:29 --- nick: ASau` -> ASau 17:53:28 --- quit: mnemnion (Ping timeout: 256 seconds) 17:57:52 --- join: proteusguy (~proteusgu@ppp-110-168-230-111.revip5.asianet.co.th) joined #forth 17:57:52 --- mode: ChanServ set +v proteusguy 18:04:31 --- join: saml_ (~saml@cpe-24-102-97-97.nyc.res.rr.com) joined #forth 18:04:37 --- quit: ASau (Ping timeout: 264 seconds) 18:06:55 --- join: darkf (~darkf___@unaffiliated/darkf) joined #forth 18:26:30 --- join: mnemnion (~mnemnion@c-98-210-219-91.hsd1.ca.comcast.net) joined #forth 18:27:42 --- quit: mnemnion (Read error: Connection reset by peer) 18:27:44 --- join: mnemnion_ (~mnemnion@c-98-210-219-91.hsd1.ca.comcast.net) joined #forth 20:26:52 --- join: xyh (~xyh@2001:250:3002:5550:6ea1:cc0f:bcb2:b187) joined #forth 21:29:04 --- quit: saml_ (Quit: Leaving) 21:44:03 --- quit: johnmark_ (Quit: Leaving) 22:14:09 --- quit: xyh (Remote host closed the connection) 22:22:43 --- join: xyh (~xyh@2001:250:3002:5550:6ea1:cc0f:bcb2:b187) joined #forth 23:28:58 --- join: ASau (~user@46.115.26.254) joined #forth 23:36:30 --- quit: xyh (Remote host closed the connection) 23:59:59 --- log: ended forth/15.03.17