00:00:00 --- log: started forth/17.02.21 00:11:28 --- join: gravicappa (~gravicapp@ppp83-237-166-43.pppoe.mtu-net.ru) joined #forth 00:17:43 --- quit: ACE_Recliner (Remote host closed the connection) 00:18:42 --- quit: proteusguy (Ping timeout: 240 seconds) 00:30:18 --- join: proteusguy (~proteus-g@118.189.135.38) joined #forth 00:30:19 --- mode: ChanServ set +v proteusguy 01:12:00 --- join: coelebs (viileppi@gateway/shell/blinkenshell.org/x-idsylvcddhkwfxrq) joined #forth 01:25:27 --- quit: proteusguy (Remote host closed the connection) 01:59:13 --- join: wa5qjh (~Thunderbi@121.54.90.144) joined #forth 02:01:40 --- quit: mnemnion (Remote host closed the connection) 02:22:00 --- quit: nighty (Quit: Disappears in a puff of smoke) 02:59:56 --- join: cajg_ (~cajg@88.98.198.123) joined #forth 03:02:56 --- quit: cajg (Ping timeout: 260 seconds) 03:10:37 --- join: nighty (~nighty@s229123.ppp.asahi-net.or.jp) joined #forth 03:43:11 --- quit: wa5qjh (Remote host closed the connection) 04:11:33 --- join: Zarutian (~zarutian@168-110-22-46.fiber.hringdu.is) joined #forth 04:12:21 --- quit: Zarutian (Read error: Connection reset by peer) 04:12:38 --- join: Zarutian (~zarutian@168-110-22-46.fiber.hringdu.is) joined #forth 04:29:11 --- quit: Zarutian (Quit: Zarutian) 05:20:30 --- join: GeDaMo (~GeDaMo@212.225.112.221) joined #forth 07:21:41 --- nick: Guest27061 -> rprimus 07:29:19 --- join: neceve (~ncv@86.125.230.85) joined #forth 07:29:19 --- quit: neceve (Changing host) 07:29:19 --- join: neceve (~ncv@unaffiliated/neceve) joined #forth 08:46:58 --- quit: neceve (Quit: Konversation terminated!) 09:51:32 --- join: proteusguy (~proteus-g@2405:9800:b408:bc31:4a51:b7ff:fe38:d966) joined #forth 09:51:32 --- mode: ChanServ set +v proteusguy 09:52:15 --- part: roygbiv left #forth 10:08:35 --- quit: gravicappa (Ping timeout: 268 seconds) 10:28:56 --- join: mnemnion (~mnemnion@2601:643:8102:7c95:8ac:263a:46d4:cad5) joined #forth 10:30:12 --- join: malyn (~malyn@54.201.34.233) joined #forth 10:41:42 --- join: gravicappa (~gravicapp@ppp83-237-170-25.pppoe.mtu-net.ru) joined #forth 11:12:27 --- join: Zarutian (~zarutian@168-110-22-46.fiber.hringdu.is) joined #forth 11:13:19 --- quit: Zarutian (Read error: Connection reset by peer) 11:13:57 --- join: Zarutian (~zarutian@168-110-22-46.fiber.hringdu.is) joined #forth 11:16:22 say, is the words POSTPONE and [COMPILE] the usually same in most Forths? 11:17:33 I gathered that postpone is usually "smart" and [compile] isn't 11:17:54 meaning that postpone handles immediate and non-immediate words differently, while [compile] always does the same thing 11:27:58 --- join: ACE_Recliner (~ACE_Recli@c-50-165-178-74.hsd1.in.comcast.net) joined #forth 11:28:59 well [COMPILE] is just ' (tick) and , (comma) . ' (tick) looks up the name and gives back the code-address of it. While , (comma) just stores where ever HERE points to and advances that. 11:29:46 I ask because, in eForth (which I am basing off) doesnt have POSTPONE 11:34:55 --- quit: ACE_Recliner (Ping timeout: 268 seconds) 11:35:48 --- join: ACE_Recliner (~ACE_Recli@c-50-165-178-74.hsd1.in.comcast.net) joined #forth 11:41:50 so, what is the smartness of POSTPONE ? 12:18:38 Zarutian: Hmm. http://www.forth200x.org/documents/html/core.html#core:POSTPONE 12:36:13 which is pretty much what [COMPILE} does 12:36:56 --- quit: gordonjcp (Ping timeout: 260 seconds) 12:37:48 --- join: gordonjcp (~gordonjcp@ilyushin.gjcp.net) joined #forth 12:52:53 * Zarutian doesnt see the point of COMPILE then 13:12:01 --- quit: true-grue (Read error: Connection reset by peer) 13:15:23 as I see it in both COMPILE and [COMPILE] name lookup happens when an : ... ; is being made and eather of those two are used 13:16:11 no, I see it now. 13:16:46 --- quit: gravicappa (Remote host closed the connection) 13:16:59 COMPILE is used an defining word to add to the word being defined by the defining word 13:17:46 no, I am not seeing it. 13:18:27 * Zarutian is as indecisive as a cat standing in the doorway to outside 13:19:53 pointfree: mind giving me an cannonical : defintion of POSTPONE ? 13:28:40 Zarutian, consider : foo POSTPONE dup ; versus : bar POSTPONE if ; 13:28:55 when foo executes, it compiles dup into whatever word is being compiled at the time 13:29:07 when bar executes, it executes "if" 13:29:17 bar is basically an alias for if 13:29:33 where if would have normally been immediate 13:30:28 bar would also have to be immediate 13:30:50 for it to work like if, yes 13:31:07 it doesn't have to be immediate for it to contain a postponed if though, does it? 13:31:29 No 13:32:12 If bar isn't immediate then it acts like postpone if 13:32:27 Er ... 13:33:28 so, using eForth as a base: : POSTPONE TOKEN NAME? DUP IF @ IMMEDIATE_mask AND IF , EXIT THEN [COMPILE] COMPILE , , EXIT THEN THROW ; IMMEDIATE \ is this okay implementation? 13:33:56 oops 13:34:06 s/, ,/,/ 13:34:21 also you have a THEN in there that I think should be an ELSE 13:34:36 oh nevermind, you EXIT 13:35:01 Won't [compile] and compile be immediate words? 13:35:22 Oh right :D 13:35:35 yeah, I think that's right 13:39:34 I just had this idea: is there something called POSTPOSTPONE ? that is takes an immediate word FINDs it and does [COMPILE] COMPILE , 13:40:25 I don't think that [COMPILE] COMPILE , is what you want 13:40:33 heh, that's sort of what my bar example earlier accidentally achieved 13:40:50 Doesn't COMPILE parse the word out of the input stream? 13:41:12 GeDaMo: nope, in eForth at least it just looks in next cell over 13:42:03 and takes that ca and adds to the word being defineds 13:42:11 s/ds/d/ 13:42:17 agh! 13:42:30 s/add/adds/ 13:45:02 --- quit: ACE_Recliner (Ping timeout: 268 seconds) 13:45:59 What would POSTPOSTPONE do? You can postpone a string of words by wrapping those words in ]] and [[ 13:48:07 really? I didnt know of ]] and [[ 13:48:16 have to investigate those 13:48:26 neither did I, and I'm having a hard time finding a reference that mentions them 13:52:28 I first learned of them in this article by Anton Ertl http://www.complang.tuwien.ac.at/anton/euroforth/ef11/papers/ertl.pdf#page=5 13:58:46 --- join: vsg1990 (~vsg1990@static-72-88-80-103.bflony.fios.verizon.net) joined #forth 14:01:06 --- quit: GeDaMo (Remote host closed the connection) 14:03:58 state-smartness is evil, btw. http://www.complang.tuwien.ac.at/anton/euroforth/ef98/ertl98.pdf 14:11:15 what do you call a word that has the stack image ( u1 u2 -- n ) where n is -1 if u1 is less than u2 or n is 0 if u1 equals u2 and n is 1 if u1 is greater than u2 14:17:39 * Zarutian goes with <=> 14:18:02 --- join: ACE_Recliner (~ACE_Recli@50.165.178.74) joined #forth 14:30:52 Zarutian: So you mapping an integer to a unit line about the origin? 14:31:57 difference between two postive integers but yeah 14:32:48 for me, naming depends on the context. I like to name words by what they are used for, not how they work or what exactly they do (that part belongs in the definition). 14:34:29 Sometimes I have single word definitions or use SYNONYM just to make the code self documenting in the style of : WASHER ( -- ) WASH SPIN RINSE SPIN ; 14:36:51 well, I am writing an implementation of COMPARE (from ANS Forth STRINGS ext) and I factored out the above functionality because it is used twice 15:19:01 --- join: wa5qjh (~Thunderbi@121.54.90.139) joined #forth 15:28:41 --- quit: nighty (Quit: Disappears in a puff of smoke) 15:42:55 well the name is U<=> (as it handles unsigned integers) 15:55:26 hmm... neat trick on systems that have MMU but no software interrupts to implement system calls. Have the words implementing them visible to userspace by having them in read only page|segment|reagion (or just having the name part of the dictionary for them there) then when their execution is attempted... 15:58:27 ... the trap that results can be used to check if the syscalls in question execution-token|code-address is on a white list. If so then an extra xt|ca is pushed onto the returnstack to a certain word that reenables the MMU and interrupts&traps. 15:59:18 otherwise throw an error and return via the certain word back to userspace 16:01:25 but for now I am off to bed 16:01:34 --- quit: Zarutian (Quit: Zarutian) 16:38:25 --- quit: impomatic (Ping timeout: 260 seconds) 16:40:51 --- join: impomatic (~impomatic@host86-164-38-224.range86-164.btcentralplus.com) joined #forth 16:51:55 --- join: nighty (~nighty@d246113.ppp.asahi-net.or.jp) joined #forth 16:52:25 --- quit: nighty (Remote host closed the connection) 16:55:18 --- join: nighty (~nighty@d246113.ppp.asahi-net.or.jp) joined #forth 17:34:24 --- join: neceve (~ncv@unaffiliated/neceve) joined #forth 18:02:48 --- quit: ACE_Recliner (Remote host closed the connection) 18:07:23 --- quit: altLeCamarade (Quit: ZNC 1.6.4 - http://znc.in) 18:07:33 --- join: LeCamarade (~revence@139.59.111.106) joined #forth 18:13:17 --- quit: wa5qjh (Ping timeout: 268 seconds) 19:01:59 --- join: wa5qjh (~Thunderbi@121.54.90.139) joined #forth 19:07:39 --- quit: wa5qjh (Read error: Connection reset by peer) 19:09:05 --- join: wa5qjh (~Thunderbi@121.54.90.139) joined #forth 19:20:38 --- quit: wa5qjh (Ping timeout: 240 seconds) 20:37:41 --- quit: neceve (Quit: Konversation terminated!) 21:12:18 --- quit: vsg1990 (Quit: Leaving) 21:29:54 --- join: dual (~bonafide@subzeroup.core.rzwireless.net) joined #forth 21:47:32 --- quit: proteusguy (Remote host closed the connection) 22:29:16 --- quit: dual (Quit: Give a man a fish and he will eat for a day. Teach him how to fish, and he will sit in a boat and drink beer all day) 23:03:24 --- join: ACE_Recliner (~ACE_Recli@c-50-165-178-74.hsd1.in.comcast.net) joined #forth 23:13:49 --- join: proteusguy (~proteus-g@14.207.9.18) joined #forth 23:13:50 --- mode: ChanServ set +v proteusguy 23:43:21 --- join: true-grue (~true-grue@176.14.222.10) joined #forth 23:59:59 --- log: ended forth/17.02.21