00:00:00 --- log: started forth/02.03.04 00:18:45 --- quit: qless ("Download Gaim [http://gaim.sourceforge.net/]") 02:04:27 --- quit: rob_ert (Read error: 113 (No route to host)) 02:57:49 good morning 05:48:03 --- join: rob_ert (~robert@h173n2fls33o898.telia.com) joined #forth 05:49:40 hi 05:49:51 EOS? ;) 05:49:57 Hej onetom :) 05:51:51 how was yr day in school? 05:52:15 Fine... I was thinking of forth :P 05:52:23 :) 05:52:33 I've got a little math question...do you think you can answer it? 05:52:58 what r u workin on nowday anyway? 05:53:08 will c, just ask! 05:54:06 You have a mug of coffee, 80C warm. The room temperature is 20C. Every minute, the temp. of the coffe decreses with 20% of the current temperature. 05:54:15 Find a function for the temp. of the coffee. 05:54:44 current temp of what? 05:54:52 The first you think of, is of course T = 60*0.8^t + 20, where T = temperature, and t is time. 05:54:55 Of the coffee. 05:55:47 But then, of you make it a diff. eq., you get T = 60e^-0.2x + 20, which is almost, but not exactly the same. 05:55:52 Wich one is correct? 05:56:51 later seems better, tho 05:57:01 s/x/t/, hm? 05:57:23 uhm, yes 05:57:31 x should be t 05:57:38 sorry :) 06:00:15 meanwhile i have to work and chat, so sorry 4 the large response time 06:00:52 np 06:00:55 can i get the exact, word-by-word transtription of the problem? 06:01:01 I usually have long respone times too... 06:01:19 oh, wait 06:01:22 Why isn't the one I gave you enough? 06:01:40 probably its enough 06:02:35 hmm whats the relation between room temp and mug temp 06:02:55 i dont really understand whats going on 06:02:58 Hehe 06:03:18 Every minute, the temperature gets 80% of the old temperature. 06:03:24 err 06:03:41 80% of the difference between the mug and room remperatures. 06:03:44 if u say: Every minute, the temp. of the coffe decreses with 20% of its actual temp. 06:03:55 I meant this: 06:04:19 it decreases with 20% of the _difference_ between the mug temp. (80C in the beginning) and room temp. (always 20C) 06:04:22 ahhha!!! getting better :) 06:05:17 then, lets write done some elements of this series 06:05:47 t0: T = 80C 06:06:06 again: 06:06:09 t0: T0 = 80C 06:06:39 t1: T1 = T0 * 80% * (T0 - Troom) 06:07:12 t2: T2 = T1 * 80% * (T1 - Troom) 06:07:16 T' = (T - 20) * -0.2 06:07:26 T' = change speed of temp. 06:07:30 T = temp. of mug 06:08:44 (its not a good idea to use T describing a velocity, anyway...) 06:09:00 ? 06:09:05 T is the temperature 06:09:16 But T' is the derived T 06:09:31 but, hey, write a function what depends on time! 06:09:43 That's what we want to get! 06:09:44 oh, ok. i c now 06:09:47 That's the answer :O 06:09:55 s/:O/:P/ 06:09:58 I also have another question, isn't forth very slow compared to e.g. compiled C? 06:10:29 no, not *very* slow 06:10:59 tho, usually slower 06:11:16 *sob* 06:11:37 a good forth implementations speed is not far from native C codes speed 06:13:06 in yr diff.eq. problem - im afraid - i cant help (at the very moment at least) 06:13:21 Okay, np. 06:13:26 I ask in other channels ;) 06:13:35 i havent dealt w such problems nowday 06:14:05 and it seems ive forgotten it :( 06:14:22 hehe ;) 06:14:44 so, thx 4 the question. it has warned me that its high time to refresh 06:14:54 lol :) 06:15:03 the responsible areas of mind! 06:15:04 :) 06:31:39 --- join: I440r (~mark4@1Cust27.tnt3.bloomington.in.da.uu.net) joined #forth 06:31:42 hi 06:32:48 rewriting my syscall interface - simplifying the issue of adding new syscall handlers at extend time 06:32:56 i.e. making it possible :P 06:38:52 hiii! 06:40:16 what do u mean by "extend time"? 06:40:21 hi :) 06:40:57 ok. well imagine the assemble time thing using nasm as a metacompil of the inner core kernel. 06:41:00 out of kernel code? 06:41:09 ah, ok 06:41:22 extend time is when you have that kernel fload all the extentions and fsave out the extended forth 06:41:29 i havent met this expression before 06:41:49 i dont have a meta compiler yet because i dont have an assembler extention yet 06:42:00 where r those fload and fsave derive from? 06:42:09 which expression. extend ? 06:42:16 its not and ANS stuff, i guess 06:42:30 fload is the fpc name for "interpret from source file" 06:42:34 yes, the "extend time" expression 06:42:41 he called fsave save-exe 06:42:53 but in linux executables arent called xxxxx.exe 06:43:00 so i called it fsave 06:43:00 forth save 06:43:04 we have forth load 06:43:08 and forth save :) 06:43:12 and turnkey 06:43:14 but its clear now -- ive compiled it in2 me voc : extend-time ... ; ;) 06:43:22 turnkey is almost identical to fsave 06:43:27 but fsave also saves out headers 06:43:35 heh 06:43:50 vocabulary real-life 06:43:57 only forth also real-life also ? 06:44:04 heh 06:44:19 yes :) 06:44:57 so fload is actually the equvivalent of INCLUDE or REQUIRE in gforth eg 06:45:02 right? 06:45:10 yes 06:45:21 i think include could be an aloas for it 06:45:26 but i realy hate making aliases 06:45:41 fpc made so many aloases for all sorts of words 06:45:48 he overused alias 06:45:59 c 06:46:28 alias should only be used to change the CONTEXT of a word - for instance \ and #! are the same in my forth 06:46:43 but #! has special meaning for the shell interpreter 06:47:16 c 06:47:24 fpc did aliases inside the assember for [bx+si] = [si+bx] [bx+di] = [di+bx] 06:47:25 ugh 06:47:37 DUMB 06:48:37 dumb but simple and effective, isnt it? 06:48:55 who would u implement it instead? 06:48:59 how 06:49:29 i think that the compiler should not be creating a shitload of b ullshit aliases. the programmer should train himself to know that the undefined [si+bx] is exaxctly the same as the defined [bx+si] 06:49:41 the compiler should not cater to the lameness of its users 06:49:44 * onetom "im dyslex and im mad, di-ei-em" :) 06:49:47 mine wont :) 06:50:28 i would define [bx+si] and THAT is what the user should be using. 06:50:30 :P 06:50:49 that is - if i was writing the assembler extention. but i dont think i could write one for x86 06:51:51 well... aint u a bit strict w the users? ;) 06:52:22 do u still use your icq acc? 06:52:34 if ur lame - go code c :P 06:52:45 heh 06:52:45 i Am catering to the needs of the users 06:52:57 but forht isnt supposed to have 50 billion definitions for @ and ! each 06:53:08 yes 06:53:08 22111215 06:53:16 but im not on icq rite now 06:55:47 ive written u msgs last day 06:56:09 ive found an icq num in the readme of yr isforth 06:58:09 yes i remember putting that in there now heh 06:58:17 ah, ive chked, its correct, so u should have got them 06:58:34 ill see if i did when i startx next and run licq :) 06:58:51 it would have been my next question :) 06:59:03 what icq client do u use? :) 06:59:07 now i know 06:59:21 but its a terrible 1 06:59:36 is it based on libicq? 06:59:43 i use vicq 07:00:33 yes - whats vicq ? 07:00:43 its a standalone perl script what utilizes libreadline 07:00:57 i think licq is where libicq started heh 07:00:57 not sure 07:01:00 and it has a simple console interface 07:01:13 ugh its perl based 07:01:25 hehe 07:01:37 i dont think i could handle a perl based icq client. 07:01:48 i mean 07:01:48 a console based 07:01:51 oh, im sure u can 07:02:12 the only thing u have to do is 07:02:31 writing msg nick/messagetext 07:02:53 that start further msg w a simple "a" character 07:03:41 shall i who u an example? 07:03:49 that would suck actually, i hated ircii because all 10 channels are in one window and you had to keep /msg #channel message and /msg nick message 07:03:54 probably in flood? 07:04:01 probably on #flood? 07:04:32 SOME console based clients realy suck - other x based ones suck. 07:04:40 no thats ok 07:04:50 ill stick to licq for now. maybe ill write a ficq one day :) 07:04:56 but what if they use tab-completion? 07:05:03 :))) 07:05:45 but w vicq u only have to append a letter "a" in front of the messages 07:05:50 look: 07:05:51 vICQ(online)/103483577>msg lac/azaz? 07:05:51 [2002.03.04 12:28:24] >> lac: azaz? 07:05:51 vICQ(online)/103483577> 07:05:51 [2002.03.04 12:28:25] filler, ado, meg egyebek, de majus korul all. lesz egy olyan 200-250 rugo uj gepre 07:05:51 vICQ(online)/103483577>a ugh, hat annyi azert nem kell ra semmikepp 07:05:53 [2002.03.04 12:29:08] >> lac: ugh, hat annyi azert nem kell ra semmikepp 07:05:55 vICQ(online)/103483577> 07:05:57 [2002.03.04 12:29:46] tehat akkortajt lenne aktualis egy P4 mondjuk :) Addig nem kell kartya 07:06:25 hehe im running a : foo begin again ; in a console and its using 98% of my cpy on my laptop - this is keeping my room warm :) 07:06:26 certainly it is coloured 07:06:38 :))) 07:06:55 heh 07:07:37 i mean the example ive pasted is coloured in "real life" 07:07:54 so its much more readable 07:08:10 yes - i got that 07:08:27 that what does "heh" mean 4 u? 07:08:49 in hungarian it means "whaaat?" 07:10:14 its "hehehehehe" but im too lazy to type all that :) 07:10:51 qless & segher also helped me a lot this morning 07:11:25 in the mulit* 4th area 07:11:39 they mentioned me bigforth 07:12:23 (can remember why did i use it, but probably it didnt work that time why ive tried it) 07:12:51 and qless has found a simple x86 eforth variant w multitasking extension 07:13:02 but multo 07:13:36 but the odds-and-ends of multiuserness still covers itself into dense fog 07:14:59 but ive managed to explain yesterday concisely why do i need multiuserness 07:15:23 imagnie a forth running 07:15:49 why do you need a multi USER forth ? 07:16:03 just run linux. have forth run in multiple consoles 07:16:06 u should be able to allow webusers to read and write variables in it 07:16:35 a forth web interface ? neat idea :) 07:16:38 or more generally how would u allow the to execute arbitrary forth code? 07:17:44 thanks, for the praise :) 07:18:39 u r developing the forth bot, aint u? 07:18:54 its a bit similar case, i think. 07:18:59 yes 07:19:18 thats on hold till i get this syscall mess straightned out 07:19:22 i think we could merge the two projects... 07:19:36 the way it is in the files you have is a bit kludgy 07:20:02 emmmm, do i have such files? 07:20:34 ive only dled isforth-1.00b.tgz 07:20:36 brb 07:22:09 thats whats out there right now - im working on rewriting the syscall stuff right now 07:22:22 syscall.1 just became VERY simple heh 07:22:22 very little in there now 07:26:52 let me warn u, i dont know much about the syscall mechanismz of *nix OSes 07:27:18 i did os-close programming under dos last time 07:27:34 but it was maaaany-many yrs b4 07:28:23 but i saw - in your syscall.1 - there r various syscall words depending on the number of args 07:29:36 but linux kernel hacker guide should explain this topic quite well, i guess 07:29:49 * onetom better not bother u w it 07:30:06 syscalls.1 is what gets included. it is a copy of either linux.1 or fbsd.1 depending on what you are compiling for 07:30:15 syscall.1 has one function for every syscall thats used in the kernel 07:30:36 now i have one syscall function for each type of syscall. syscall type based on how many parameters it uses 07:30:51 so sys_read is now just a 07:31:04 call do_syscall 07:31:04 dd 3 07:31:04 erm or is it dd 4 07:31:17 each syscall is a constant syscall number that uses do_syscall 07:31:50 do_syscall will branch to the correct syscall type based on how many parameters the syscall uses 07:31:50 i have a table of 256 bytes 07:32:12 each byte says how many parameters the syscall of that number (offset in table) uses 07:32:24 im adding a creating word 07:32:34 you would add a new syscall as follows 07:32:38 c, thats clean 07:32:46 #parameters syscall_number syscall name 07:33:08 but this means there r 255 syscalls could exist @ max ? 07:33:29 the word syscall would create a word called name that uses #parameters and has syscall_number compiled into its body 07:33:55 how many syscalls are there right now ??? hehe 07:34:03 dont know 07:34:08 i could make the table 16 bit eventually :P 07:34:19 very easy to do heh 07:34:27 but 65 thousand different syscalls would be a monster 07:34:36 ill stop using linux when that happens heh 07:34:41 but it eats up 64k then 07:35:27 but dont u either know the number of syscalls? 07:36:25 nope 07:36:34 the linux kernel isnt going to support every single syscall 07:36:55 if the user wants a syscall thats got no function in the kernel he just adds it 07:37:08 if the kernel didnt support sys_write he could do.... 07:37:31 4 3 syscall write 07:37:45 that would create a syscal word called write 07:37:55 that was syscall 4 and uses 3 parameters 07:38:05 x y z write 07:38:05 would then work 07:38:15 ive already understood it 07:38:37 not this 1 is the point 07:38:45 what if i have 2 write: 07:38:48 it has the disadvantage that all the syscalls are scattered arround the sources but keeps the syscall interface alot simpler 07:39:16 3 &1200 syscall something? 07:39:46 then u do: 07:39:52 &1200 ? 07:40:00 syscall-table 1200 + ! 07:40:06 1200 in decimal 07:40:15 dont u know this notation? 07:40:34 $xx hexa, &dddd decimal 07:40:40 0ooo octal 07:40:50 #bbbbbbbb binary 07:41:02 just try it! it works in gforth 07:42:01 so, what i want to say is: 07:42:05 my forth uses $ for hex % for binary \ for octal 'x' for char 07:42:15 check the syscall numbering conventions 07:42:16 and no prefix for current base 07:42:25 check the current number of syscalls 07:42:30 if you do that its a bug in your code basically heh 07:42:49 and just after knowing it, start using such a small table 07:43:59 bug? it just makes it not portable 07:44:52 its already not portable 07:45:06 i dont WANT isforth portable 07:45:36 im not trying to be "just like all the other forths" 07:45:57 but, come off it! ive tried me make it clear what does the 1200 mean - failed, ok. 07:46:05 for instance. im NOT ans compliant 07:46:05 i refuse to be ans compliant 07:46:05 i hate the ans standard - or parts of it 07:46:06 ans forth is a cammel 07:46:18 a cammel is a horse designed by a committee 07:46:43 what you are saying is that what if - in the future there are 4000 different syscalls 07:46:56 well 07:47:00 @least more than 255 07:47:10 when that happens it would be a simple matter to update isforth to account for that 07:47:10 but, for gods sake 07:47:27 HOW MANY syscalls exists NOW? 07:47:29 for now - allowing only 256 differnt syscalls in isforth isnt realy an issue 07:47:31 do u know it? 07:47:38 ive told me u dont 07:47:48 hang on ill go look 07:48:11 highest syscall is 255 07:48:25 but when u say "256 differnt syscalls" u r wrong, i think 07:48:25 from unistd.h 07:48:59 because this limit is not the number of the USED syscalls, but 07:49:08 syscall 0 is not used 07:49:32 the limit of the globally defined syscall constants 07:49:37 linus is a c coder. he doesnt understand zero based :P 07:49:37 heh 07:49:49 if there are more ill just make my table 16 bit and use 512 bytes instead of 256 07:50:10 oh, maaan, how hard can u get the point... 07:50:33 syscalls r identified by a number 07:50:49 dood - right NOW - its not an issue heh 07:51:02 im writing this so that CHANGING it will be easy 07:51:12 ok, got it 07:51:17 yes. and right now there are only 255 of them defined 07:51:17 syscal zero is unused 07:51:30 if he adds ONE MORE syscall - its a very small change i have to make in isforth 07:51:56 but u should have already checked it b4 writing the your code 07:52:28 i didnt need to - i know there are less than 256 - i just didnt know exactly how many 07:52:54 and my code is easy to change - thats why im writing it this way - to make FUTURE enhancements easier 07:53:08 im totaly rewriting isforths syscall interface to MAKE it easy to update 07:53:08 before - it wasnt 07:53:50 oh, then why didnt u say it at the very beginning!? 07:54:11 i mean : " i know there are less than 256 - i just didnt know exactly how many " 07:54:36 ive told u i dont know how many syscalls r there 07:54:45 thats what i was saying heh 07:54:45 oh 07:54:54 heh 07:55:07 oh, me gawd.. :) 07:55:44 we can agree, then 07:55:54 thats right, what uve done 07:56:07 :) 07:56:10 thats right that uve done 07:56:25 what i am doing - its not quite done yet heh 07:56:31 :) 07:57:05 ok, do it and if it works, we should start discussing this multi* topic over 07:57:09 again 07:58:44 i also have a - probably - completely different question 07:59:40 is there a standard way of using printf from forth? 08:00:03 k 08:00:07 or @least how can i implement sg like 08:00:17 vsprintf (or what)? 08:00:30 isforth will use sycalls to do multi tasking 08:00:52 printf is a c thing - i wouldnt want to write a printf for forth myself 08:01:05 ah, thats the other thing id like to know. how? 08:01:14 and i would definatly not want to write a vsprintf for forth heh 08:01:32 why? 08:01:47 imagine a logging problem 08:02:00 u have 2 construct log messages 08:02:24 than u have 2 send the constructed string to various loggers 08:02:41 eg. send it to syslog/klog 08:02:59 into a console 08:03:29 or into a pipe (like | mail -s 'log message' sb@sw.com) 08:03:35 how would u do that? 08:04:19 a log mgy would look like: [date time] subsystem: msg (parameters) 08:04:48 well - sysklogd says what logs should go to what files etc 08:04:50 s/mgy/msg/ 08:05:05 thers a standard way of writing to a log file 08:05:15 im not 100% sure how it works 08:05:27 but i know i can redirect certain types of messages to different places 08:05:28 oh, man, the forget syslog 08:05:39 using sysklogd.conf or something 08:05:42 just consider u have to write the logmsg 08:05:49 onto the screen 08:05:52 i forget heh 08:05:52 into a file 08:05:59 and u should email it away 08:07:52 2 do this, its comfortable to prepare the string in memory first 08:08:11 then output it into the various destinations 08:08:51 <# # # #> :) 08:09:01 for preparing such complex strings, the format-string way is very convenient 08:09:16 then copy the formatted number into a buffer 08:10:04 i would just prepare all the info in a buffer. i would not want to have to deal with " xxxxx %s yyyyy %n", string, number 08:10:04 aha, suure :) try to code the following example in forth: 08:10:30 i would just copy xxxxx into a buffer. append string to said buffer. append yyyyy and thenh <# # # # #> cmove 08:11:48 printf("[%02d-%02d-%02d %02d-%02d] asd: %s (%4x, '%c')", year,month,day,hour,min,error,param,char) 08:13:03 i would imagine it in forth like this: 08:13:50 {{ year month day hour min error param char }} dest sprintf 08:13:58 i mean: 08:14:12 {{ year month day hour min error param char }} formatstring dest sprintf 08:14:17 where 08:14:32 : formatstring s" [%02d-%02d-%02d %02d-%02d] asd: %s (%4x, '%c')" ; 08:14:33 char param error min hour day month year <# # # # #> type <# # # #> type etc etc etc 08:15:13 but, maaaan, type doesnt convert into memory... 08:15:23 but just onto the screen 08:15:31 you wouldnt have to type it. the returned value from #> is the address of a string. you could send that to a buffer 08:16:24 you could defer emit to a word that STORES to a buffer 08:16:35 that way youru "type" word would NOT emit each char 08:16:35 it would be stored in memory 08:16:49 but this way its quite a pain modifing the format of log msgs 08:17:25 ahhha, thats what i wanted to hear 08:17:31 think forth. not c 08:17:32 "defer emit" 08:17:59 what is the standard way doing it? 08:18:22 in gforth, eg, u have 2 defer both emit & type 08:19:16 emit and type are alwayd defered words. it makes sense 08:19:30 sometimes emit means send to console 08:19:30 other times it means send to printer 08:19:32 "think forth. not c" -- how would u internationalize such a program? 08:19:41 other times it means send to file 08:19:41 other times it means send to socket 08:20:03 ? 08:20:06 okey, but what is the standard way of swapping them? 08:20:35 (hey, lets talk about only 1 topic & a time, right ;) 08:21:02 swapping = change their meaning? 08:22:18 id like to hear a portable way of doing this! 08:23:44 anyway, i could search 4 such question on forth.lang.comp.os (or where) 08:24:09 but i dont know who should i setup a news agent 08:24:29 ' file-emit is emit 08:24:43 ' socket-emit is emit 08:24:56 im afraid, i have to read the docs about it, in linux admin guide :) 08:24:56 ' (emit) is emit 08:25:40 aham. and is (emit) is always the original meaning? 08:26:40 what does "naming a word surrounded by parenthesis" anyway? 08:27:48 it means its a primative for 08:28:00 emit is usually defered to (emit) 08:28:13 in isforth i also use the convention that a word surrounded with < and > is a syscall 08:29:08 ic 08:29:15 thx 08:29:41 but how come, i have to also say ' mytype is type ? 08:29:56 why doesnt TYPE rely on EMIT? 08:30:13 for speed considerations? 08:30:21 dont think so... 08:31:49 what i faintly guess, it has sg 2 do w 08:32:00 uninterruptibility... 08:32:31 if TYPE uses the printf libc function 08:32:53 then other processes also writing to the same file as 08:33:18 printf (to the screen by default) they wont get grabbled 08:33:34 their output wont b merged 08:33:41 hm, what about it? 08:34:10 type does rely on emit 08:34:47 type uses emit 08:34:56 if it does, the previously mentioned problem exists 08:35:13 let me show u the gforth sources 08:36:00 tom@ex:~/prj/forth/gforth-0.5.0> rgrep ': (type)' . 08:36:09 ./kernel/io.fs:: (type) ( c-addr u -- ) \ gforth 08:36:10 ./kernel/io.fs:: (type) 0 write-file drop ; 08:36:49 bad implementation 08:37:55 well, we could call it bad, but its inevitably has 08:38:27 the above mentioned advantage in multitask environment... 08:38:44 its faster 08:39:08 noooo, not thats the point 08:39:31 multi user/ multi tasking - this has problems because if one task changes where key or emit are defered to - ALL suffer 08:40:04 TYPE locks other processes trying to TYPE too 08:40:19 maybe not - maybe linux will copy on write 08:40:19 it will 08:40:19 not a problem :) 08:40:19 each fork can have its own emit :) 08:40:33 no 08:40:33 erm 08:40:33 maybe 08:40:54 wouldt LOCK but would be messy if 2 tried to say something to console at the same time heh 08:41:08 no, dont think so... 08:41:16 do u have gforth installed? 08:41:51 install one, and i'll construct 2 simple examples 4 u 08:42:02 demonstrating the problem 08:42:58 i hope these examples could pin out the difference between 08:43:19 the implementation in gforth and the impl. in your isforth 08:46:11 no - im not interested in how gforth or any of the others have done things 08:46:23 i deliberatly did not install ANY existing linux forth 08:46:36 this way they cannot say "you copied my code" 08:46:49 copying their code will taint my lisence 08:46:49 thats not acceptable to me 08:47:02 also, i think they did it all wrong 08:47:02 nuff sed 08:47:16 :( 08:47:33 but dont have to see their code! 08:48:03 i only what u to see the effect of this implementation difference 08:48:08 heh 08:48:33 i need to write my forth not mess with theirs 08:48:36 it would be useful to continue the multi* discussion 08:48:45 i know how i want MY forth to be. how they made theirs wont affect mine 08:49:01 what could b also useful for u for yr "forth bot" 08:49:59 ok, i understand what u say, but plz, analyze the output 08:50:18 i ll construct for u l8r 08:50:46 its important to understand this question 08:51:28 wel its a bit in advance of where isforht is ready for. 08:51:46 if u would like to use your 4th for solving (serving) such problems like an ircbot 08:51:55 thers things that arent implemented in isforth - others that are badly implemented and need fixing - right now im fixing syscalls heh 08:52:06 u have to deal w multiuser issues 08:52:09 and im trying to make sure there are NO evil forward references in any of the assembler source files 08:52:19 that will make the meta compilation alot harder 08:52:20 at least it would b nice if u would deal w it :) 08:52:31 'wehen we get to that stage 08:52:40 not realy 08:52:50 application code will have to deal with it 08:53:14 the forth kernel only has to worry about multi taskin. and THAt will be done the linux way 08:53:26 using fork etc 08:53:52 but thats it what im trying to say: @1st glance app. code should tinker w this mulit* question 08:53:58 there are no user variables in isforth - thats an antiquated methodology 08:54:18 but @ second glance, it could touch kernel spheres... 08:54:32 mylti user can be accomplished with multi tasking and LINUX will copy on write any time user 1 tries to write in to user 0's address space 08:54:32 eeach user will get their own address space 08:54:53 well - isforth isnt realy READY for complex application code yet heh 08:55:03 tho its getting closer - as we speak :) 08:55:20 :))) 08:55:43 ok, now tell me how much and which way 08:55:57 does isforth currently support multitasking? 08:56:11 just to make me mind clear 08:58:14 isforth.asm:226: unknown preprocessor directive `%xdefine' 08:58:14 isforth.asm:226: label or instruction expected at start of line 08:58:46 what r these %xdefine error messages when i say "make linux" ? 09:00:13 aha 09:00:13 ok heres a problem i had when i first started writing isforth 09:00:26 im using macros to create links in the head space 09:00:36 i need to say 09:00:36 dd last_header 09:00:48 %defin lastheader = $ 09:00:48 in my macro 09:01:03 i need "last_header" to remember the address of the last header defined 09:01:16 but in nasm if you do something like this.... 09:01:16 %defin x 2 09:01:16 %define y x 09:01:27 %define x 3 09:01:27 both x and y change to value 3 09:01:52 i need a way to save the current definition of a %define. modify it - then restore it to what it used to be 09:01:52 you CANNOT do that with the official nasm 09:02:05 its fucked in the head 09:02:36 in order to assemble isforth you need an unofficial version of nasm that adds the %xdefine directive 09:02:36 if you want it - its in /pub on my ftp 09:02:51 the version of nasm in there has the %xdefine directive 09:03:14 if you install that version instead you will be able to make isforth 09:05:35 --- join: Speuler (~sample@195.30.184.52) joined #forth 09:07:20 Speuler :) 09:08:09 'oi 09:08:44 still not fed up ? 09:09:23 Ich? 09:09:35 mit forth mein ich 09:10:01 how do you call it ... 09:10:09 "durchhaltevermoegen" ? 09:10:44 I've checked your forth vm example 09:10:47 Very good :-) 09:10:55 thank you 09:10:59 but is simple stuff 09:11:22 stripped most but the minimum 09:11:48 just to give you an idea how the basics work 09:11:48 Yeah 09:11:55 But that's what I needed for now 09:12:09 where who what ? 09:12:22 hi I 09:12:28 440r 09:12:42 :) 09:12:43 I440R ... 09:12:54 heh 09:13:06 still not right ... 09:13:12 im rewriting the syscall interface. making it possible to add new syscalls at extend 09:13:18 * onetom is Ășeating 09:13:28 and in applications 09:13:28 #parameters #syscall syscal syscallname 09:13:44 syscall will compile a new syscall handler :) 09:14:10 no chance of conflict with vm regs if more than a minimum of regs ? 09:14:17 or you save vm regs first ? 09:14:35 (regs = args ... ) 09:19:02 ? 09:19:23 syscall args are eax ebx ecx edx ... 09:19:28 ohhhh 09:19:29 heh 09:19:50 the word syscall compiles a word whose cfs is a call to do_syscall 09:20:06 the body of this word is the syscall number 09:20:06 sys_write: 09:20:16 call do_syscall 09:20:16 dd 4 09:20:24 erm i think syscall 4 is write - might be 3 or 5 i forget :P 09:20:24 but anyway 09:20:33 dosyscall looks in a table to see how many parameters that syscall has 09:20:50 and directs you to the correct handler for that number of parameters 09:21:32 thats why you need to tell the "syscall" word (creates the new syscall word) how many paramters the call uses 09:21:39 it puts that number in the table 09:27:10 ah 09:27:24 * onetom gorged 09:27:55 pity there's no syscall, accepting an argument "syscall", and returning the # of used arguments 09:28:27 I440r: u r a strange man... u have hacked that poor&tiny-little nasm insted of 09:29:01 using a more apropriate macro processor... eh, watta idea... 09:29:46 u could have used m4's define or cpp's #define 09:30:07 --- join: whateva (thin@h24-64-175-123.cg.shawcable.net) joined #forth 09:30:16 hi whateva .-) 09:30:30 --- nick: whateva -> futhin 09:30:32 :P 09:30:45 shit 09:30:51 no - i didnt hack it 09:30:52 i just deleted my trashbin 09:30:55 hey rob_ert, how do you like the topic? :P 09:31:04 someone else did 09:31:16 thats a "bug fixed" version of nasm 09:31:19 not even mentioning the EQU directive or the variable handling... -- tho, i dont know nasm 09:31:23 hehe 09:31:23 u put it inside itself ? heh 09:31:33 but most assemblers support such constructs 09:31:35 futhin: Second time you ask,. right? ;) 09:31:36 not quite. almost. 09:31:49 rob_ert: eh? no, first time i ask.. 09:31:59 hm 09:32:03 wonder who asked me then 09:32:08 * Speuler vents his aggression towards some roast chicken. 09:32:21 --- nick: Speuler -> PhoodPhrenzy 09:32:52 rob_ert: qless thought you might like it, maybe he asked you? 09:34:14 nasm is a fucked in the head assembler 09:34:26 very buggy. 09:34:26 but its the ONLY real choice for doing asm in linux 09:34:37 gas is NOT an option 09:34:49 ive found alot of bugs in nasm 09:34:59 aha, i c. what debian r u using? 09:38:08 woody 09:38:21 the version of nasm that comes with woody supports %xdefine too 09:38:32 i think 09:38:45 how did you know i was using debian :P :) 09:40:06 good, isforth has compiled on my sid flawlessly 09:40:37 I440r: how? well... ya, told me lastday? ;) 09:40:48 eep! why using sid ? - thats a bit risky heheh 09:41:07 yes, but just a very little bit :) 09:41:31 u know i like to try out the latest technologies 09:41:50 sid is a linux distro? 09:42:07 currently it is the unstable debian 09:42:12 i prefer to use the latest PROVEN ones heh 09:42:20 futhin: what os r u using? 09:42:27 win 98 :P 09:42:50 I440r: dont worry, i still use potato on our gateway 09:42:53 futhin uses ibm pc dos version 0.0001 :) 09:42:54 <-- heretic 09:43:34 I440r: and i work on it every day. this irclient is also running on it 09:44:41 I440r: i only listen to music, watch videos, burn cd and test latest developer tools and other latest sw only locally 09:46:20 futhin: u r not heretic, but ascetic ;) 09:47:11 s/not/not only/ 09:48:33 i've had linux installed before and i'm quite familiar with it.. but due to a bunch of poor rationalizations and the fact that i have to use an ezdrive thingie for my harddrive, etc etc 09:50:51 i'm much more productive in linux 09:51:02 except for the first part where i have to customize every dang thing 09:51:03 oh, poor u 10:49:43 --- join: lac (~lac@ingatlanok.ktv.tiszanet.hu) joined #forth 10:50:30 hi lac 10:50:45 hi 10:51:22 hi lac :D 10:51:34 are you gonna become the lactating forth coder of this channel? 10:51:44 i'm the lazy coder (tm) of this channel 10:51:48 bwhaha :P 10:52:10 i440r: gimme the warez codez for your isforth ;) 10:52:38 well, I shoud change my nick I think... 10:53:00 --- nick: lac -> MudShark 10:53:02 lac: naw, i'm just a pervert.. 10:53:07 lac a forth coder?? - ur from .hu same as onetome - or is lac tom ? 10:53:19 most people wouldn't think of lac = lactating .. 10:54:12 hm, i'm going to go read 10:55:08 i'm not tom I'm latz. I used to read about forth, so i'm just interested 10:57:06 --- part: PhoodPhrenzy left #forth 11:00:00 cool 11:00:33 all ppl interested in forth are welcome here 11:02:17 lac has written a pic simulator for me, to test my natively compiled 4th code on it 11:02:23 it was nice /and much fun/ to overwrite the word ':' :) 11:02:44 heh 11:02:52 : : .... ; 11:02:52 looks confusing to forth newbies heh 11:03:05 : ; ..... ; 11:03:05 heh 11:03:11 that's true, it was written in Delphi 11:03:53 valtsd mar vissza a nicked laccra, szerintem az teljesen jo 11:04:40 jo 11:04:49 --- nick: MudShark -> lac 11:04:55 --- join: zanzihsz (~horvaths@solyom.sth.sze.hu) joined #forth 11:05:33 * lac is lac, btw 11:07:11 alot of hungarians interested in forth :) 11:07:30 yeah, both of them 11:07:33 :) 11:07:37 :) 11:07:48 ah, u mean hsz is also here! 11:08:22 wow, zanziszh! Welcome 11:08:39 hi 11:08:47 Hi zanzihsz. 11:10:58 rob_ert: lemme ask u the same questions ive asked from I440r 11:11:18 onetom: OK.. 11:11:52 what do u think, why did the gforth team implemented TYPE 11:11:59 without using EMIT? 11:12:14 I started learn forth 3 days ago. 11:12:15 :-) 11:12:48 zanzihsz: the party's started... 11:13:35 Many hungarians in here, hehe 11:13:46 rob_ert: despite of this u talk a lot here ;) 11:14:18 onetom: I'm leaning :) 11:15:08 rob_ert: sure, ive told on a local LUG irc channel that im here 11:15:54 hehe, ok 11:15:55 and they r intrerested in it 11:16:12 onetom: what did gforth implement TYPE in if not EMIT ? 11:16:26 but they came in in an unfortunatly lowtraffic period 11:17:15 need 2 go. Byez 11:17:20 ok, byebye 11:17:23 bye 11:17:25 [05:36] tom@ex:~/prj/forth/gforth-0.5.0> rgrep ': (type)' . 11:17:25 [05:36] ./kernel/io.fs:: (type) ( c-addr u -- ) \ gforth 11:17:25 [05:36] ./kernel/io.fs:: (type) 0 write-file drop ; 11:17:25 see you around hopefully :D 11:17:41 sure :) 11:17:49 gforth does ti the way i was going to do it 11:18:07 it writes the whole string to stdout. not one char at a time 11:18:22 oh, what has changed yr mind? 11:18:28 but it makes more sense to route type through emit 11:18:39 so if emit is redirected so is type 11:19:14 u r right, tho while u get this advantage 11:19:44 u lose the atomic-ness of write-file 11:20:10 yes. 11:20:28 remember, ive told u and example about driving forth through 11:20:36 it slows the write down but it gives me more control over where stuff gets written 11:20:39 eg a web interface? 11:21:02 also saves the user from having to redirect both emit and type 11:21:05 s/and/an/ 11:21:12 yes 11:21:41 good, imagine what happens in that situation 11:21:49 --- quit: lac ("BitchX: Little. Yellow. Better.") 11:22:30 eg, i communicate w forth through a file 11:22:50 imagine a shell-cgi-script like: 11:23:16 cat $QUERYSTRING > /tmp/cmd2forth 11:24:18 then imagine a cycle reading this file and EVALUATEing it line by line 11:25:09 while evaluating, u have to redirect emit (&type) into a result storing location 11:25:33 then u have to mark the end of the operation somehow 11:25:49 eg by creating a semaphore file 11:25:53 or the like 11:26:11 thats application level stuff tho - im trying to get the isforth kernel working befoe i try write apps for it heh 11:29:10 hmmm... eh, lets skip it 4 a while 11:29:34 :) 11:29:39 what is the standard way of overwriting the text interpreter? 11:31:21 im interested in it because if i want a multiuser interface, i also have to multiplex input channels too 11:31:28 not just output channels 11:33:11 not sure there is a standard way 11:34:05 onetom: did you get my link for the multitasking forth ? 11:34:10 yesterday 11:36:38 the bigforth? 11:36:49 or the eforth variant? 11:37:03 eforth variant i think.. 11:37:08 off ddj 11:37:50 aha 11:38:09 thx 4 it, it will help 11:38:22 but its written in asm mainly 11:38:54 and im already forgot x86 asm enough not 2 understand it @ a 1st glance 11:39:49 s/im/ive/ -- jeeesus, im gettin tired :) 11:40:11 or rather simply i 11:40:35 or ive already forgotten 11:40:43 thats it 11:42:08 --- quit: zanzihsz (Read error: 113 (No route to host)) 11:45:03 i think i ll do some investigation on these topics 11:45:28 and b back afterwards 2 discuss the results 11:51:28 well i THINK i have the new syscall code working heh 11:51:28 not 100% sure yet 11:51:41 hrm. no not 100% working yet heh 12:23:20 --- quit: I440r ("brb") 12:24:41 --- join: I440r (~mark4@1Cust27.tnt3.bloomington.in.da.uu.net) joined #forth 12:25:13 --- quit: I440r (Client Quit) 13:32:14 --- join: qless (~cerberus@clgr000977.hs.telusplanet.net) joined #forth 13:32:32 greeting peopleoids 13:32:39 greeting qlessoidal 13:33:09 * qless emptys the ashtrays 13:34:01 no! 13:34:04 really? 13:34:09 mmhmm 13:34:23 wonderful piece of forth code you got there! 13:34:32 dat's a real trophy wife! 13:34:36 it is amazing, isn't it 13:35:17 actually i have an example of a forth word gone terribly wrong, but its too big to paste in the channel 13:35:31 ah, it's already terribly wrong then 13:35:42 exactly 13:35:46 since words should be only 1 or 2 lines of code.. 13:36:05 i started off coding forth with 50 lines of code per word 13:36:06 :D 13:36:15 it was really hard to keep track of the stack 13:36:18 yep, that's what this is 13:36:25 so i used stack comments 13:36:43 now i know better. stack comments & long words are evil 13:37:10 stack comments shouldn't be necessary. when they aren't, that's when you are coding forth properly.. according to chuck :P 13:37:14 someday if i ever get back to it, i will factor it 13:38:26 have you read Thinking Forth ? 13:38:31 nope 13:38:35 I really like the book so far 13:38:44 cool, where'd u get it from? 13:38:49 interlibrary loan 13:38:56 at the uni? 13:39:06 no, thru the public library 13:39:20 oh really? i'd like to have a look at it when you're finished with it 13:39:31 it's due back on the 11th 13:39:37 and i'm still on first chapter :P 13:39:50 hmmm 13:39:59 i'm thinking of buying it on amazon 13:40:19 what library does the book come from? 13:40:41 some uni.. university of alberta 13:40:46 (so i'll know where to look for it when you're done) 13:40:48 the problem though 13:40:50 cool 13:41:07 is this is the 1984 one.. there's a newer one (second edition) 13:41:11 ah 13:42:15 i think the interlibrary system includes all the libraries in canada.. the public library would check all the other public libraries as well as the university libraries.. 13:42:51 cool, maybe when i get some time i'll do a hunt for it 13:43:41 i like thinking forth a good bit, i'm thinking that most people should read thinking forth before they actually read starting forth. because it makes an excellent argument for forth, woven naturally into the discussion of software methodologies and how it has evolved thru the ages 13:44:00 and that's just the first chapter :P 13:44:05 wow 13:46:46 --- join: I440r (~mark4@1Cust27.tnt3.bloomington.in.da.uu.net) joined #forth 13:47:01 howdy i440r 13:47:52 hi I440r 13:48:18 hi 13:48:37 got some minor debugging to do with it but the new syscall mechanism is working :) 13:48:40 sorta heh 13:50:48 ill "release" a new version soon as im posative ive got it right 13:51:18 don't you like it when you implement a whole bunch of coding and then it runs correctly with no bugs on the first try ? 13:51:33 well, in my case, it's a whole program 13:51:59 but since you are modifying some component of isforth, i said "implement a whole bunch of coding" instead of "when you code a whole program" 13:52:08 it's a lot of fun :D 13:52:26 but these are pretty small programs i guess 13:52:51 a few hours worth of coding 13:52:56 2 to 3 hours 13:53:06 in C 13:53:29 --- quit: futhin ("getting distracted by irc again") 13:56:57 yea - you should run :P 13:57:02 dare to mention C in here :P 13:57:10 heh 13:57:10 and to capitalize it too !!!! 13:57:11 heh 13:58:34 --- quit: rob_ert (": ^ 1 swap 0 do over * loop swap drop ;") 13:59:52 --- join: Etaoin (~david@ljk8.sat.net) joined #forth 14:00:45 hi eta 14:01:12 hello. 14:07:13 --- join: Speuler (~sample@195.30.184.52) joined #forth 14:07:30 'oi 14:13:49 howdy speuler 14:15:29 --- quit: Speuler (Read error: 104 (Connection reset by peer)) 14:24:35 --- join: Speuler (~sample@195.30.184.52) joined #forth 14:24:48 hi q< 14:38:23 ok i think ill update my prcs reposatory with this version and release a new version :) 14:38:23 im convinced :P 15:04:52 --- join: Stepan (~stepan@p50847E0E.dip.t-dialin.net) joined #forth 15:05:02 hi Stepan 15:05:06 hi :-) 15:05:30 is : 2dup 2 pick 2 pick ; ? 15:09:11 2dup is over over 15:09:17 2pick is an over 15:09:32 or is 2pick a pluck heh 15:16:02 1 pick should be over 15:33:21 new version of isforth in /pub 15:34:02 man it only took me a day to make the syscalls for isforth NON kludgy 15:36:50 now i can continue with my sockets programming and any time i need a new syscall i can add it without needing to reassemble the kernel. just re-extend :) 15:40:48 yay 15:41:38 heh 15:42:05 0 pick is dup then :) 15:46:58 right# 15:47:41 -1 pick is -1 15:47:44 hehe 15:56:10 --- quit: I440r ("Reality Strikes Again") 16:02:24 'nite 16:02:40 --- quit: Speuler ("using sirc version 2.211+KSIRC/1.1") 17:15:59 --- quit: qless (Read error: 110 (Connection timed out)) 20:11:18 --- join: qless (~cerberus@clgr000977.hs.telusplanet.net) joined #forth 22:23:27 --- join: aum (~david@l76-131.world-net.co.nz) joined #forth 22:25:52 --- join: rob_ert (~robert@h173n2fls33o898.telia.com) joined #forth 22:27:23 heya rob_ert 22:30:05 Morning :) 22:30:55 so there /is/ a tomorrow. great 22:32:50 There's always a suprise for you :) 22:42:36 qless: Following me, eh? :P 22:42:52 nono. just seeing if any of the fluffies were awake 22:43:02 nope 22:43:03 just me 22:43:03 22:45:50 Don't be afraid, sooner or later, we _will_ get you. 22:46:23 the fluffies will? or some sinister conspriracy to make me install windoze on my machine? 22:48:34 You'll never know who send those hired killers to you. 22:49:00 oh great, more bullets to dodge 22:52:41 Lead do you good, my friend. 22:53:14 School... cu all later :) 22:53:26 ciao 23:04:23 --- part: qless left #forth 23:24:42 --- join: robbe (~robbe@kalys.unixtech.be) joined #forth 23:26:23 --- quit: robbe (Client Quit) 23:29:36 --- quit: rob_ert (Read error: 113 (No route to host)) 23:59:59 --- log: ended forth/02.03.04