00:00:00 --- log: started forth/02.11.20 00:13:56 --- quit: lament ("mental mantle") 01:42:41 testing 01:45:34 testing 01:46:08 twas just a client test, but thx anyway 01:46:46 --- quit: onetom ("Changing server") 01:47:29 --- join: onetom (~tom@novtan.bio.u-szeged.hu) joined #forth 01:59:48 What client were you using? 02:12:38 --- join: Serg_Penguin (~Z@nat-ch1.nat.comex.ru) joined #forth 02:12:57 hi 02:13:25 Hey. 02:13:34 What's up? 02:13:54 did u found an opportunity to run my thingie ? 02:14:11 No, sorry. Like I say, I have no DOS machines. 02:14:40 i trashed ctrl and wrote key bindings, rewrote sprite creation, added startup cript 02:14:46 Nice. 02:15:58 You planning on porting it to unix anytime soon? 02:16:11 brb 02:18:16 dunno know, in RU i will _reduce_ audience by this 02:18:29 RU is land of stolenwarez 02:19:22 all warez on my >100 CD's worth maybe $ 0.1 M if bought legally :) 02:19:47 printed CD's widely sold, not CD-R's 02:21:43 6? 02:22:23 err, typo 02:22:30 --- quit: Serg_Penguin () 02:25:38 --- join: Serg_Penguin (~Z@nat-ch1.nat.comex.ru) joined #forth 02:28:35 pse answer me to icq 171988865 - it keeps msg's if i go offline, unlike IRC 02:29:30 --- quit: Serg_Penguin (Client Quit) 03:11:03 --- join: Serg_Penguin (~Z@nat-ch1.nat.comex.ru) joined #forth 03:11:48 --- nick: Serg_Penguin -> Serg_CRT_off 03:12:09 --- quit: Serg_CRT_off (Client Quit) 04:55:51 --- join: Serg_Penguin (~Z@nat-ch1.nat.comex.ru) joined #forth 05:15:30 --- quit: Serg_Penguin () 05:20:26 --- join: fridge (meldrum@zipperii.zip.com.au) joined #forth 06:04:58 --- join: tathi (~josh@wsip68-15-54-54.ri.ri.cox.net) joined #forth 06:45:44 --- join: Serg_Penguin (~Z@nat-ch1.nat.comex.ru) joined #forth 07:03:56 --- join: Herkamire (~jason@wsip68-15-54-54.ri.ri.cox.net) joined #forth 07:22:17 --- quit: Serg_Penguin (Read error: 110 (Connection timed out)) 07:33:27 hmm 07:33:35 tried to build gforth on my system 07:33:56 and it is sitting inside gforth processes for 15 minutes now 07:37:21 it's been building gforth for 15 minutes? 07:41:51 --- join: I440r (~mark4@sdn-ap-033tnnashP0050.dialsprint.net) joined #forth 07:50:57 apparently 07:51:12 using 98% cpu too 07:51:35 this is on a 866mhz pIII 07:54:23 yikes 07:55:28 anyone here ever written a forth decompiler ? 07:57:05 I've messed around...never finished one though :) 07:57:41 heh i just did but ive got a LITTLE problem that CLF seems to think i should ignore 07:57:48 most other ppl dont bother about it 07:57:52 example..... 07:58:09 : (foo") r> count 2dup + >r type ; 07:58:24 : foo" compile (foo") ," ; immediate 07:58:32 : blah foo" this wont decompile" ; 08:01:11 hrm 08:01:47 I440r: I don't follow 08:02:05 (foo") messes with the return stack? 08:02:20 yes. the return address points to the compiled string 08:02:40 it gets the return address, adjusts it to the end of the string and puts it back 08:02:51 the problem isnt in decompiling (foo") or even foo" 08:03:09 the problem is that the instance of foo" which cant decompile correctly 08:03:17 I don't think gforth likes gcc 3.2 08:03:26 the decompile does not know that there is a string following every instance of (foo") 08:04:30 is compile immediate? 08:04:40 no 08:05:09 : compile r> dup 4+ >r @ , ; 08:05:28 foo" compiles (foo") 08:05:35 AND the string 08:05:54 ok, now I follow your example above 08:06:15 blah is 08:06:18 dd (foo") 08:06:23 basically foo" is ." 08:06:24 db " the string" <-- counted 08:06:30 is the same as 08:06:37 BUT 08:06:55 the decompiler knows there are counted strings compiled inline with (.") and (abort") 08:07:07 but it doesnt know jack shit about (foo") :) 08:07:48 yup :) 08:08:12 so.... how to resolve that ? 08:08:24 look at the source :) 08:08:30 to what ? 08:08:47 i mean, how do i fix it so my compiler can decompile user defined defining words like the above 08:10:12 I440r: you could compile a foreward branch, instead of a call to a word that messes with the return stack 08:10:35 ," could compile a foreward branch 08:11:11 not as efficient space wise 08:14:12 but it's less screwy, and you can decompile it. or instead of a branch you can compile a call to a standard word to skip past the string and leave a pointer (or addr u) for the string on the stack 08:14:35 well, thats just ONE example where the decompiler could screw up :) 08:15:06 the other way is to always compile the strings to a seperate buffer instead of inlining them 08:15:16 but thats bad 08:16:46 that's the main advantage of having heap and data seperate, you can interlieve code and data definitions 08:17:00 s/data/code space/ 08:17:43 i already have seperate head space, seperate string space would just complecate things even more :) 08:18:02 put the strings on the heap 08:18:25 and compile a literal or two 08:19:36 do you have a purpose for your decompiler besides testing/verifying your compiler? 08:20:00 yes 08:20:06 what? 08:20:06 its going to be part of the debugger 08:20:16 ok 08:21:46 I suspect you are going to have to make some sacrifices in your compiler so the decompiler can tell what some stuff is 08:21:51 and being able to "see blah" is very helpfull when your not sure about a words use 08:21:59 i already did heh 08:22:15 ive got dummy words in there like dobegin and dothen etc etc etc 08:22:24 hmm...I really don't see any good way to resolve that 08:22:39 but i cant have a generic do" word because someone could skip compiling it with their string 08:22:45 me either :) 08:22:50 but i thunked i would ask :) 08:22:54 I440r: I prefer "view" to "see" 08:23:13 view means injecting source code information into the definition 08:23:20 im definatly NOT going to have that 08:23:36 I440r: it's 4 bytes in the dictionary entry 08:23:47 still not acceptable :) 08:23:53 even tho headers are stripped on turnkey 08:23:59 fpc did it that way too 08:24:10 I mean, it seems like the decompiler would _have_ to somehow know that a string follows (foo") 08:24:23 im realy upset i had to add 4 bytes to every code/colon definition so i could always get back to the nfa given the cfa 08:25:07 where do you use that, anyway? 08:25:27 >name for one 08:25:35 and alias 08:26:12 ah, right. 08:26:35 and it's too slow to do a reverse lookup on the dictionary? 08:26:37 it annoyed me to do it but it simplified the issue enormously 08:26:53 erm a reverse lookup might find an alias 08:27:08 if i now do... 08:27:12 : foo blah blah blah ; 08:27:17 well, it would have to search in the proper order 08:27:18 and then do ' foo alias fud 08:27:20 and then do 08:27:21 see fud 08:27:24 it shows 08:27:28 : foo blah blah blah ; 08:27:36 I440r: why do you did you seperate heap from code space if you won't stick your data (say strings...) on the heap? 08:27:53 so i can turnkey!!!! 08:28:05 if you interleave code and head you CANNOT turnkey 08:28:13 not properly 08:28:27 in a turnkeyd app ALL head space is dead wood 08:28:30 oh, head=dictionary? 08:28:34 turnkey in isforth and the deadwood is stripped 08:28:44 head = all the word headers 08:28:49 so you don't have a seperate heap space 08:29:01 i dont know what you mean by "heap" space 08:29:18 HERE points to the top of the heap 08:29:28 some forths code goes there too, others have a seperate code space 08:29:37 aha. mine doesnt 08:29:42 code and : are interleaved 08:29:48 headers arent 08:30:06 seperating out all the various different word types is moronic imho 08:30:12 lets have a seperate space for variables! 08:30:14 and constants! 08:30:18 and defered words too!!! 08:30:20 lol 08:30:47 besides. even colon definitions entry points are asm 08:30:51 call nest 08:30:55 dd body of the : def 08:33:23 what does seperating out colon defs from coded defs give you anyway ? 08:33:55 I440r: not different spaces for different kinds of words. one space for compiled code, and another space for data (strings, numbers etc) 08:34:22 I440r: it simplifies implemesting create/does> and ." etc 08:34:29 i.e. , and here are only for data, definitions get compiled to another block entirely 08:35:02 pretty much a waste of time, but I've seen (and written) forths that do it that way 08:38:22 that's how i did my (incomplete) forth. colon defs were always the same size. i'd just have a pointer to the code in a special code area (you could keep it in the heap on a non-protected cpu). allocations were easier. and reclaiming words that you forget was a lot easier. 08:38:35 i think my implementation of create does> is simple enough :) 08:38:48 (that and my routines were less complicated so i was less likely to write over my dictionary and destroy the system) 08:38:49 tho it did have me tied up in knots for years hehe 08:39:32 but i was more worried about bugs than you because I was less familiar with the cpu. (it was a cpu I worked out and was considering implementing in FPGA) 08:40:37 although i can't say much cuz your forth works and mine does not. :P 08:41:05 OrngeTide memory protection between DIFFERENT processes? fine. enforcing harvard architecture on a specific process??? - fuck that 08:41:13 although I did write a forthScript interpreter last night for my text editor. it's really lame and not like forth at all. 08:41:21 thats why i mprotect my entire memory space as read,write,execute 08:41:34 I440r, no. memory protection to not beable to write to code pages and not beable to execute data pages. 08:41:41 harvard == best 08:41:51 my cpu i designed is harvard. 08:42:02 yes, for a microcontroller 08:42:04 more busses == simplier cache design. 08:42:07 for a processor ? 08:42:07 fuck no 08:42:19 a desktop processor could benefit from harvard architecture. 08:42:25 no reason why one cant execute data on a x86 based machine 08:42:39 well you can mark the page so you can't. :) 08:42:40 OrngeTide: yeah, I want to see that :) 08:42:48 it's a safety precaution. 08:43:16 tathi, the processor or forthscript? 08:43:24 processor 08:43:39 i'll show you after i get out of a meeting. i'm late for it now. 08:43:54 cool 08:44:44 I don't really think it makes much difference whether you separate definitions from data in a forth. 08:45:11 Personally I like just having one space 08:45:33 but separating them does simplify a a bunch of things 08:45:33 just one space is simpler to manage 08:45:56 though IIRC it's trickier to turnkey with separate spaces 08:45:56 but you cant discard headers, all you can do with them to hide them is overwrite them with nullz 08:46:15 I440r: this has nothing to do with headers 08:46:25 trickier ? 08:46:48 i dont call dictionary space "heap" 08:46:51 you have addrs pointing to data instead of being able to use the return stack 08:46:57 the dictionary is where all the code gets put. code and colon 08:47:05 head space is where headers go 08:47:10 there is no heap :P 08:47:25 sorry, I'm talking about 3 spaces. head, dictionary, and data 08:48:17 all the code goes in the dictionary 08:48:39 but here gives you an address in data space, ." etc. put strings there, that kind of thing 08:49:16 I think it's kind of an ANS thing, IIRC correctly I got the idea from reading the spec 08:52:43 I440r: in my book "dictionary" means where the header for each word goes, and "code space" is where the colon defs go, and "heap" or "data space" (which can be the same as the "code space") is where data goes (from , etc). HERE points to data space. 08:53:48 i always just called all code and colon "dictionary" 08:54:01 I440r: where'd you get that from? 08:54:51 dunno for sure but i believe fpc stated it that way too 08:55:20 brb, (2 seconds ish) 08:55:25 --- quit: I440r ("Reality Strikes Again!") 08:56:52 --- join: I440r (~mark4@sdn-ap-033tnnashP0050.dialsprint.net) joined #forth 08:57:30 well, that's annoying that ans and fpe can't agree on some basic terminology 08:57:57 i think even "starting forth" stated it that way 08:58:54 when people talk about "searching the dictionary" they are talking about looking through little array(s) of headers 08:59:06 or a hash table or something. not wading through compiled code 09:00:31 brb 09:01:48 back 09:06:54 no - searching the dictionary still means seardhing head space but compiling to the dictionary is what , does 09:07:08 ive always seen it refered to in this way 09:10:11 grr i hate formatting large partitions with m$ formatters, they always take too fscking long :P 09:12:08 but at least you get a pretty progress meter to look at 09:17:51 --- join: ASau (~asau@158.250.48.197) joined #forth 09:18:01 Good evening! 09:18:32 Fractal: How your Forth is going? 09:20:38 Hm. Is it too early there? I'll be back in a while. 09:20:41 --- quit: ASau (Client Quit) 09:24:23 heh 09:24:45 fly by :P 09:27:24 :) 09:31:15 brb fone... 09:46:23 anyone here use windows xp ever ? 09:50:50 --- quit: I440r ("brb") 09:54:53 --- join: I440r (~mark4@sdn-ap-033tnnashP0050.dialsprint.net) joined #forth 09:55:17 yes 09:55:20 I have XP at home 10:07:13 i just installed it 10:07:13 not sure i like it yet :) 10:07:32 trying to get it to see my samba shares now :P 10:07:44 theres no icons in the taskbar thing here 10:07:58 i HATE having 27946237954 icons on my desktop 10:08:17 being able to put single click mini icons directly on the taskbar is best 10:09:35 having a command line interface is better yet :P 10:12:29 I440r: you should be able to put the icons onto the taskbar 10:12:59 right click the taskbar and select "quick launch" I think 10:13:19 I have my quick launch thing as a seperate dock on the right of the screen 10:13:26 and no icons on the desktop 10:13:29 as it also shits me =) 10:13:53 turn off the themes too 10:13:59 it burned my eyes after a while 10:14:12 aha 10:14:27 erm how do i get it to map a samba share to drive f:\ 10:14:27 it wants to do some other fukky shit i dont understand 10:14:43 i did turn off themes :P 10:14:58 how do i drag the taskbar up one ? 10:15:15 so i can have all the tabs in one place and all the quick launch icons in antoerh 10:15:31 so they dont start to crowd each other 10:15:59 if you can't drag it 10:16:09 then there is an option "lock taskbar" that is probably enabled 10:16:17 that you need to disable before it will let you 10:16:24 it was locked :) 10:16:24 i unlocked it heh 10:16:48 its a very complex OS 10:16:58 I think linux is much simpler =P 10:17:13 good thing too, or people would get confused ;) 10:17:52 M$ couldn't release something simple, or people wouldn't pay way too much for it 10:17:57 yea hhe 10:18:14 --- join: Kitanin (~Kitanin@SCF61185.ab.hsia.telus.net) joined #forth 10:18:18 how the fsck do i tell it that i want an existing REMOTE directory mapped to drive F 10:18:41 it keeps wanting to map a non fucking existant "marks shared files" bullshit 10:18:41 its NOT letting me brows the network 10:19:46 it lets me see "gateway" my server but when i want to map shared dris on gateway it want me to "make new folder" and if i do a new folder on c its NOT the fucking share im trying to map and it wont let me create a new dir on the gateway box 10:20:08 how the fuck do i map a SPECIFIC share to a SPECIFIC drive? 10:20:08 this is fucked up! 10:20:30 ive got 249562983 files i need to install now and they are all on the samba share! 10:20:37 I440r: were you expecting it NOT to be fucked up? 10:20:45 I440r: this is M$ remember... 10:21:57 exactly 10:23:22 what do you need windoze for? 10:24:19 work 10:24:19 if i ever get any heh 10:24:31 plus my sis uses this box 10:24:31 she is 17 10:24:31 she doesnt know shit about linux :P 10:32:06 I440r: I gave up and just used ftp 10:32:08 =P 10:34:30 i got it, but now i cant get out on the net :) 10:34:30 one problem after another :) 10:36:51 gotta love the way m$ mashes all over lilo too :P 10:36:51 heh 10:36:51 phun phun phun 10:39:52 --- join: ASau (~asau@158.250.48.197) joined #forth 10:40:11 Good evening! 10:41:37 hello 10:44:30 Does anyone know what FORML was? 10:44:53 And where can I get anything it did? 10:47:16 i can ping the gateway but i cant ping through it 10:47:24 how the fuck do i make win 98 use a specific ip as its default fscking gateway 10:47:33 grrr 10:47:33 :P 10:48:50 I440r: Try to tune subnet mask and gateway's IP. 10:49:40 HOW!!! 10:49:53 ive entered it three times in 3 different plaes and its STILl not able to get on the net :P 10:50:43 Hmm. 10:51:18 It is somewhere in network setups. 10:51:51 "Control Panel -> Networking" maybe. 10:52:42 yes ive been in there 10:53:04 this is xp :) 10:53:06 broadcasting IP? 10:53:52 It is strange... 10:54:01 All you need is love. 10:54:23 I mean: subnet mask, your own IP, gateway's IP. 10:54:37 :) 10:55:35 I couldn't ping anything behind gateway when I had no default route IP. 10:55:47 I.e. gateway's IP 10:56:35 i have a default gw 10:56:45 how to i check the routing tables in xp ? 10:57:04 May be your gateway doesn't allow ICMP? 10:57:40 Try: ifconfig 10:58:04 Or: winipcfg ? 10:58:38 I don't remember how it was called in WinME... 10:59:35 ipconfig 10:59:59 not sure if that has routes 11:00:03 route show maybe 11:00:26 I know about InterFace CONFIGuration, nothing about "ipconfig". :) 11:00:26 ya wimipcfg 11:01:30 I'm pretty sure there is a tool on XP called ipconfig 11:01:39 "At the Top of a Voice" (Mayakovsky): M$ MUST !!! :) 11:03:39 I often realize, that M$ is one format compatible... 11:03:45 FORMAT C: 11:03:49 :))) 11:04:35 I use M$ LAN Client and packet driver for ethernet card. 11:05:13 Because of M$ I can't use them simultaneously, or without reboot. :( 11:17:20 --- join: lament (~lament@24.78.145.92) joined #forth 11:21:35 --- quit: ASau (Operation timed out) 11:23:55 --- join: hsz (~hsz@forth.sth.sze.hu) joined #forth 11:46:41 hi hsz 11:46:42 --- quit: Kitanin (Read error: 104 (Connection reset by peer)) 11:47:02 im guessing your a forth coder ??? :) 11:47:02 and hungarian :P 11:47:46 Hehe. 11:47:50 You're psychic ;) 11:48:24 i440r onetom did tell you something about me ? :) 11:48:58 :) 11:48:58 oh i htink ive seen you before :) 11:49:11 duh :P 11:52:15 I440r onetom says day-by-day (on our lug's channel) that 4th is more efficient than other languages. so i'm determined on learning forth :) 11:53:31 wow. hsz :) 11:55:11 i also dare 2 do the statement: any1 can learn 4th @ a basic level within an hour 11:55:16 I440r: am i right? 11:56:08 that would be a _really_ basic level 11:56:23 hmmm yes and no 11:56:37 it depends on how quickly they get used to rpn 11:56:53 rpn=reverse polish notation? 11:57:14 I440r: "getting used" to it is not the same as "learning" it :) 11:57:31 i've header about rpn... polish calculator? 11:57:35 heard 11:57:39 yes 11:57:45 I440r: probably u dont have 2 try 2 teach the outside shell, but its concepts: words stacks 11:57:55 also, the fact that theres no such thing as a forward ref in forth unless you cheat.... 11:59:24 hsz would like 2 ask wheather is it a good idea 2 suck w 4th when there is eg. python available as an alternative 12:00:52 yes i think i got xp on the net somehow hhee 12:00:55 depends on what you want to do? 12:01:06 ive no idea how :P 12:01:17 hsz asks, there is also a lot of stuff already written in python. so why should have he choosen 4th 12:01:25 I'm learning forth for the sake of it, hopefully one day I'll be competant enough to write something nice and useful 12:01:47 but its not my main goal, forth just intrigues me 12:02:01 I use python at work to get stuff done 12:02:05 Um 12:02:15 it's rather stupid to consider python an alternative to forth 12:02:19 they're two extremely different languages 12:02:24 used for very different purposes 12:03:54 forth is very low-level. Python is very high-level. 12:04:04 --- join: Kitanin (~Kitanin@SCF61185.ab.hsia.telus.net) joined #forth 12:04:44 lament: thats right 12:05:39 lament: tho 4th can b made hl pretty easily. 12:06:14 It will still have low-level features (and low-level difficulties). 12:06:17 lament: and the resulting hll gonna b faster @ will b more suitable 2 describe the solution 2 a problem 12:06:18 Python simply doesn't have those. 12:06:27 lament: like what? 12:07:08 btw, u can really b a good programmer wo knowin those basic u were - probably - talking about... 12:07:19 Arrays? 12:08:10 I'm not a forth specialist 12:09:14 lament: & what about structures? even arrays of structures? 12:09:27 create myarray 43869248 allot 12:09:27 :) 12:10:32 my array index cell-size * + @ 12:10:40 myarray of course 12:11:28 Anyway, I don't think forth can be better for high-level stuff than python, even with a library of high-level functions 12:11:38 It's just not designed for that. 12:12:05 Of course, in many aspects it's a matter of taste. 12:12:50 (note that i'm a big python fan and don't know much about forth) 12:19:39 --- part: hsz left #forth 12:28:17 --- join: wossname (wossname@HSE-QuebecCity-ppp81254.qc.sympatico.ca) joined #forth 13:55:55 lament: you could write a python enturpreter in forth :) 13:55:55 --- quit: Kitanin (Read error: 104 (Connection reset by peer)) 13:58:12 Herkamire: That would take ages. 13:58:27 Herkamire: Certainly a lot more than it would take to write a forth interpreter in python ;) 13:58:30 python's pretty simple isn't it? 13:58:42 lament: that's because forth is simpler 13:59:01 I don't know what you mean by pretty simple. 13:59:21 lament: (and forth has almost no syntax, so you would barely have to write a parser) 13:59:32 yes. 13:59:48 I'm not saying python is good because it's easy to write a forth interpreter in it 13:59:53 i'm saying that the whole idea is silly 14:00:16 you are? :) 14:00:29 I started writting a forth in python I think (to learn python) 14:00:35 python's not well suited to it 14:00:55 python doesn't seem to deal with memory 14:01:08 or not via addresses anyway 14:01:15 no, it does not. 14:01:26 It's a high-level language. 14:01:41 lol 14:02:00 lament: high-level language doesn't mean it's that high level. C is a high level language 14:02:13 uhh 14:02:23 Yeah, that's pretty necessary for a forth system... You can get by using arrays, however. Most of them provide similar functionality to addressable memory. 14:02:23 High-level doesn't mean it's high-level? 14:02:25 That's nice 14:02:27 I believe Forth is a high level language too 14:02:43 Herkamire: You are not making sense, you know. 14:02:52 lament: as I understand it, high level means higher than assembly :) 14:03:07 if you don't have to know machine instructions, it's high level 14:03:20 it is 14:03:39 Herkamire: I prefer Alan Perlis's definition 14:03:58 lament: which is? 14:03:58 "A programming language is low level when its programs require attention to the irrelevant." 14:04:16 of course, it's mostly a joke, but it's a good definition :) 14:04:57 it's a joke 14:05:26 possibly meant to annoy low-level people 14:05:42 hehe 14:05:59 Python programs have an interesting property. 14:06:00 I prefer: A high level language is a language that focuses more closely on solving the problem, than how it is solved. 14:06:03 They don't crash. 14:06:25 Of course, they might use broken C extensions, or they might raise unhandled exceptions 14:06:44 lament: right, big difference... ;) 14:06:50 Herkamire: Yes. 14:06:59 Quite big. 14:07:07 The point is 14:07:16 Yes, in a modern language, it should be impossible to overflow a buffer, or dereference a NULL pointer, or... 14:07:19 lament: as a user it's the same (the program bailed) 14:07:27 if python provided the user with access to memory addresses, that wouldn't be possible 14:07:42 lament: as a programmer, I don't care if it pops into the debugger, or the interpreter 14:08:02 lament: it is with memory protection 14:08:03 Herkamire: Unhandled exceptions can be handled 14:08:13 Herkamire: You just need to add a line of code 14:08:25 lament: what line of code? 14:08:26 Herkamire: Segfaults can't be handled, since the program dies 14:08:34 Herkamire: a handler, of course. 14:08:35 lament: WHAT?? 14:08:43 yes? 14:08:51 lament: haven't you used a debugger for C? 14:09:01 what does a debugger have to do with it? 14:09:11 if you run a C programm in the debugger, when it hits a SEGFAULT it pops into the debugger 14:09:12 I'm talking about programs. Written in the language. 14:09:18 you can then continue executing the program. 14:09:19 Not about tools. 14:09:50 the python interpreter is a tool that does the job of the C compiler and the C debugger 14:10:03 Gosh 14:10:04 you have merged the tool, and have not gotten anything much new 14:10:07 Forget the python interpreter 14:10:14 I'm talking about the LANGUAGE 14:10:18 and the programs written in it 14:10:34 uhuh... I believe you can have a segfault handler in C 14:10:43 In ansi C? 14:10:47 I don't think so. 14:11:01 I don't know about anci. under POSIX 14:11:18 POSIX has nothing to do with the language C itself. 14:11:37 alphazero : printf("\033[34m"); I believe. 14:11:46 Ignore that. 14:12:17 lament: the language C by it's self is pretty useless. as with python. you need extentions to acces your system 14:12:34 Herkamire: let's put it this way 14:12:55 lament: I don't care whether something is "in the language" 14:13:17 err wait, forgot the proper term 14:13:19 make python portable, by making it incompatible w/ systems not capable of handling its defaults? 14:13:34 or just use widely spread libraries on the systems that can reasonably take such features 14:13:37 and BTW why would you want to handle a segfault? if you caused a segfault you had better stop and fix your bug before you let anybody use your app. 14:13:54 You don't understand. 14:14:10 In C, certain actions cause undefined behaviour. 14:14:20 uhuh 14:14:21 In pure ANSI C, without any extensions. 14:14:38 and in Python certain actions cause useless (but defined) behaviour. 14:14:42 In python, they don't. 14:14:44 Exactly. 14:14:45 int i = 4 14:14:45 int j = i++ + ++i 14:14:45 undefined 14:14:49 Overflowing your stack buffer, for instance. 14:14:50 It's a very big difference. 14:15:08 Fractal: that's a problem of the implementation, not the language 14:15:13 the value of j cannot be determined 14:15:19 although even that is a recoverable error in python 14:15:26 lament : Exactly. *Because* it's undefined. 14:15:59 lament: you act like it's somehow usefull that an error is "recoverable in python". what is your program going to _do_ when it detects an error like that? 14:16:06 --- quit: fridge ("http://lice.codehack.com") 14:16:51 Herkamire : Well, it won't execute arbitrary code, for one. 14:16:51 Herkamire: Depends on the situation, of course. The point is, it will be able to do something. 14:17:21 lament: my point is that there's nothing to do. if the situation get's that bad it should bail anyway. 14:18:25 well, say I have some variable 14:18:30 I'm not particularly a fan of python/perl/ruby. Their main advantage is that there's only 1 interpreter available for them, so you're guaranteed similar behaviour on any system. 14:18:34 I don't know if it was initialized or not 14:19:02 Fractal: (re: net executing arbitrary code) that would have overted some security holes, but so would proper memory protection like ppc has. 14:19:04 In Python, I can check (an exception will be raised if it's not initialized) 14:19:37 In C, if I try to dereference an unitialized pointer, I'll cause undefined behaviour. 14:20:06 --- quit: I440r ("Reality Strikes Again") 14:20:06 Herkamire : Yes, memory protection can catch some of those problems. However, it can't protect you against, for instance, heap overflows. 14:20:08 lament: how could you not know? 14:20:08 lament: ok, in python you could not know, but in C you know 14:20:53 Well, it's a stupid example, but it's the best I could've come up with. 14:21:00 Fractal: true. but in my mind, no matter how special your interpreter, that is an unrecoverable error, so who cares if the interpreter "catches" it 14:21:35 Herkamire: That's my point 14:21:44 Herkamire: a heap overflow *is* an unrecoverable error 14:21:57 lament: even in python. 14:22:04 Herkamire: for that exact reason, you can't directly access memory in python. You're also restricted in other ways. 14:22:13 Herkamire: As a result, heap overflows are simply impossible. 14:22:35 --- join: I440r (~mark4@sdn-ap-033tnnashP0050.dialsprint.net) joined #forth 14:22:37 Realisticaly, there is no reason for a language to allow "direct memory access". 14:22:42 lament: the only advantage I can see to that is that you can embed python in some other process, and expect it not to mess up the memory for the parent process 14:22:58 Herkamire: the only advantage to not having heap overflows??!?!? 14:23:05 Fractal: Speed, simplicity 14:23:17 Herkamire: I see another advantage, which is your program not crashing and dying 14:23:23 lament: yes, ither way your program is going to die 14:23:49 lament: what is your program going to do when it finds out the stack is full? 14:24:40 Fractal: flexibility. you could write a forth, or an assembler, or _anything_ 14:24:42 Herkamire : Well, speed is a debatable issue. Sometimes you can get a better speed advantage, sometimes not. As for simplicity, not at all. A well designed language will be able to concisely express solutions to problems without memory access. 14:25:08 Herkamire: Die. Stack overflows are still a problem, unfortunately 14:25:21 But they're a problem with the implementation, not the language 14:25:26 Whereas, say, in poorly designed languages like C, perl, etc, it's practically impossible. 14:26:02 lament : Not necessarily true. A language could be designed so that stack overflows simply aren't possible. 14:26:25 Fractal: the language Python doesn't even have a stack 14:26:32 Fractal: stack is an implementation detail 14:26:36 Fractal: and a broken one at that 14:26:41 the most consise, simple code is in forth ;) 14:26:43 Uhhhh... 14:26:59 lament: no... 14:27:20 no what? 14:27:27 ok, the implementation has a stack. and it must 14:27:33 Perhaps. 14:27:38 mmm...language wars...fun! ;) 14:27:42 Actually, a stack is an extremly useful data structure in systems development (and compilers), and I have serious doubts as to wether python doesn't have a stack. 14:27:53 Fractal: No, it doesn't. 14:28:04 lament: the implementation does have a stack 14:28:07 It may not have a monolithicly framed stack like C. 14:28:08 Herkamire: yes, it does 14:28:17 Fractal: C doesn't have a stack, either 14:28:25 But it almost certainly uses some sort of LIFO queue for thread control. 14:28:30 lament: C has a stack 14:28:35 Herkamire: no, it does not 14:28:40 Herkamire: the implementations do 14:28:41 lament : Well, C is a language, python is an interpreter. 14:28:48 Fractal: no, python is a language 14:29:13 Fractal: it has a standard and all that 14:29:24 the interpreter is an implementation of the standard 14:29:55 Well, python is so closely tied to the one implementation of the standard, that they are practically one and the same. 14:30:00 Fractal: No. 14:30:17 lament: you can't implement C or Python without a return stack. 14:30:27 Fractal: first of all, the difference between the standard and implementation exists regardless of the number of implementations 14:30:47 Fractal: second, python actually has at least two implementations, so your argument is moot anyway :) 14:31:01 Is that right? 14:31:04 Herkamire: You can, by implementing them in high-level languages :) 14:31:10 Fractal: cpython and jython 14:31:26 lament: no I'm sorry, I know something about how computers work, and there has to be a stack 14:31:27 Herkamire: or on some exotic hardware which we haven't invented yet 14:31:37 Well, I take that back then. I've always thought of python as, essentially, just another perl. 14:31:48 Fractal: grrr :E 14:31:49 :) 14:31:59 It isn't. 14:32:10 lament: even if you use funky new hardware to implement a stack, it's still a stack 14:32:26 Herkamire: ok, whatever. So? 14:32:38 Herkamire: The languages C and Python still don't have a stack. 14:32:48 Even if all their implementations do. 14:33:13 --- quit: tathi ("bleh") 14:33:14 Herkamire : Well, a language is specified in terms of syntax, not semantics. While certainly almost all implementations of the languages do use some sort of stack, they are not mandated in the language. 14:33:31 Fractal: A language is specified in terms of semantics 14:33:52 lament: whatever. I'm thinking slightly more in reality than you. when you run code, there's a stack. and it is part of the language in the sense that when programming in that language, you have to be aware of it and not overflow it. and something happens when you run your C or Python code that overflows the stack. 14:33:54 Forth is an exception, of course. The standard specifically describes at least 2 stacks. 14:34:33 lament : Er, yes true. The semantics of the implementation aren't specified. 14:34:50 The syntax of using the implementation are, however, specified. 14:35:06 Is, I mean. 14:35:51 Languages, IIRC, are described in terms of denotational semantics 14:36:02 i.e. pure mathematical objects and their relationships 14:36:50 Herkamire: Basically that's a part of the more important (and less controversial) problem that you can run out of resources 14:37:13 yes, you always can. 14:37:19 s/can/might 14:37:50 All implementations of all languages suffer equally from that 14:37:57 So it's not really an issue :) 14:38:55 forth is less likely to run out of resources because it doesnt waste them like c 14:39:05 I440r: heh :) 14:40:18 lament: I think it is foolish to ignore the implementation. Perhaps I only hold this opinion because I have never used a language that handled the execution/compilation/interpretation of my code well enough that I didn't have to worry about it. 14:40:54 Herkamire: In purely practical terms, it is foolish. 14:41:30 lament: yeah :) practical. like writing code that works (which I like to do :)) 14:42:38 Unfortunately it sometimes also leads to people ignoring the standard, and writing non-portable code which happens to work on their current implementation 14:43:00 yep 14:43:09 BTW I'm not big on portability at the moment 14:43:17 Which forth implementations are notorious for. 14:44:04 But that's OK, because forth is more of a paradigm than a language or an implementation. 14:44:41 heh :) 14:45:08 Fractal: nice :). I was just reading an interview with chuck where he said something like: very higly factored code (small definitions) is forth (he might have said something about stacks in there, but I'm not sure) 14:45:16 --- quit: Herkamire ("going home") 14:46:15 Well, stacks are a part of the forth paradigm. 14:46:38 And so is factorizing code. 14:51:24 use of an unencumbered stack (c's stack is very encumbered) is part of why forth programs are smaller in both object and source 14:55:51 --- quit: I440r ("Reality Strikes Again!") 15:05:54 --- quit: lament ("mental mantle") 15:41:26 --- join: I440r (~mark4@sdn-ap-033tnnashP0050.dialsprint.net) joined #forth 15:45:05 --- join: proteusguy (~username@65.191.88.177) joined #forth 15:47:59 PROTEUSGUY will DEST YOU 15:49:29 indeed. 15:51:08 --- join: fridge (meldrum@zipperii.zip.com.au) joined #forth 15:52:11 proteus, do you know ``kesac''? just want to test the size of the internet :) 15:52:59 eh ? heh 15:53:02 wosname: sorry - have no clue as to what you are referring to. 15:53:18 alright, the internet really is big :( 15:53:24 thanks for coop'ing, though :) 15:53:25 hehe 15:53:45 ignorance is bliss wosname. 15:54:06 * proteusguy is blissful.. 16:12:11 --- quit: I440r (Read error: 104 (Connection reset by peer)) 16:38:18 --- join: I440r (~mark4@sdn-ap-033tnnashP0050.dialsprint.net) joined #forth 16:53:53 --- join: Soap` (flop@202-0-42-22.cable.paradise.net.nz) joined #forth 16:54:39 --- join: lament (~lament@h24-78-145-92.vc.shawcable.net) joined #forth 17:08:48 --- quit: proteusguy (Read error: 104 (Connection reset by peer)) 17:09:08 --- join: proteusguy (~username@65.191.88.177) joined #forth 17:11:01 windows xp remapped my drive so that hda4 became hda3 and hda3 became hda2 and hda2 became hda4 :P 17:11:06 it didnt mess with hda1 :) 17:22:45 --- quit: I440r ("Reality Strikes Again") 17:30:53 --- quit: Soap` (Read error: 104 (Connection reset by peer)) 17:59:20 --- quit: onetom (Remote closed the connection) 17:59:24 --- join: onetom (~tom@novtan.bio.u-szeged.hu) joined #forth 18:16:02 --- quit: fridge ("http://lice.codehack.com") 18:19:29 --- join: I440r (~mark4@sdn-ap-033tnnashP0050.dialsprint.net) joined #forth 18:59:33 --- quit: proteusguy (Read error: 113 (No route to host)) 19:01:30 --- join: proteusguy (~username@65.191.88.177) joined #forth 19:25:01 --- quit: Fractal (benford.freenode.net irc.freenode.net) 19:33:21 --- quit: wossname ("^_________________----------------------------------------------%*@&)@!*($&@!()*$!@$()!@ r89 @)(% fdsv,zbc") 19:38:14 --- quit: lament ("mental mantle") 20:03:49 --- join: Fractal (htjon@h24-77-171-228.ok.shawcable.net) joined #forth 20:46:59 --- quit: I440r (No route to host) 21:03:33 --- join: lament (~lament@h24-78-145-92.vc.shawcable.net) joined #forth 21:31:16 --- nick: lament -> stupid 21:36:40 --- nick: stupid -> lament 22:14:27 --- join: Serg_Penguin (~Z@nat-ch1.nat.comex.ru) joined #forth 22:15:27 hi 23:29:51 --- quit: Serg_Penguin (Killed (NickServ (Nickname Enforcement))) 23:29:52 --- join: Serg_p (~Z@nat-ch1.nat.comex.ru) joined #forth 23:30:28 --- nick: Serg_p -> Serg_penguin 23:37:48 --- quit: Serg_penguin () 23:42:35 --- join: I440r (~mark4@sdn-ap-012tnnashP0443.dialsprint.net) joined #forth 23:48:45 --- quit: lament ("mental mantle") 23:59:59 --- log: ended forth/02.11.20