00:00:00 --- log: started forth/09.07.14 01:04:58 --- quit: aguaithefreak (Read error: 54 (Connection reset by peer)) 01:14:31 --- quit: mathrick (Read error: 110 (Connection timed out)) 01:19:09 --- quit: gogonkt (Read error: 110 (Connection timed out)) 01:25:54 --- join: mathrick (n=mathrick@wireless.its.sdu.dk) joined #forth 01:32:02 --- join: aguaithefreak (i=aguai@114-44-21-47.dynamic.hinet.net) joined #forth 01:37:22 --- quit: sunwukong ("bye") 01:46:30 --- join: nighty__ (n=nighty@210.188.173.245) joined #forth 01:54:05 --- quit: mathrick (Read error: 60 (Operation timed out)) 02:03:23 --- quit: maht (Read error: 104 (Connection reset by peer)) 02:07:49 --- join: maht (n=maht__@85-189-31-174.proweb.managedbroadband.co.uk) joined #forth 02:19:51 --- quit: saon (Read error: 110 (Connection timed out)) 02:21:25 --- join: mathrick (n=mathrick@wireless.its.sdu.dk) joined #forth 03:12:53 --- quit: mathrick (Read error: 110 (Connection timed out)) 03:20:38 --- join: GeDaMo (n=gedamo@212.225.107.61) joined #forth 03:37:36 Anyone hacked up a forth for the beagleboard ? 03:44:09 --- join: X-Scale2 (n=email@89-180-180-228.net.novis.pt) joined #forth 03:47:15 --- quit: TR2N (Nick collision from services.) 03:50:18 --- nick: X-Scale2 -> TR2N 03:52:54 --- quit: nighty__ (Client Quit) 04:39:11 --- join: saon (n=saon@75.102.128.133) joined #forth 04:58:10 --- quit: GeDaMo ("Leaving.") 05:03:51 --- join: mathrick (n=mathrick@wireless.its.sdu.dk) joined #forth 05:22:31 --- quit: mathrick (Read error: 110 (Connection timed out)) 05:24:21 --- part: saon left #forth 05:29:54 --- join: mathrick (n=mathrick@users177.kollegienet.dk) joined #forth 05:51:44 --- join: jauaor (n=araujo@gentoo/developer/araujo) joined #forth 06:30:01 --- join: gogonkt (n=info@59.38.200.244) joined #forth 07:27:13 --- quit: mathrick (Read error: 104 (Connection reset by peer)) 07:27:16 --- join: _mathrick (n=mathrick@users177.kollegienet.dk) joined #forth 07:29:01 --- quit: aguaithefreak (Read error: 104 (Connection reset by peer)) 07:29:58 --- nick: _mathrick -> mathrick 07:31:31 --- join: aguaithefreak (i=aguai@114-44-21-47.dynamic.hinet.net) joined #forth 08:02:21 --- quit: nighty^ (Read error: 54 (Connection reset by peer)) 08:04:08 --- join: nighty^ (n=nighty@x122091.ppp.asahi-net.or.jp) joined #forth 08:35:16 --- quit: Quartus` (Read error: 60 (Operation timed out)) 08:38:03 --- join: GeDaMo (n=gedamo@212.225.107.61) joined #forth 08:42:41 --- quit: aguaithefreak (Read error: 104 (Connection reset by peer)) 08:43:02 --- join: aguaithefreak (i=aguai@114-44-21-47.dynamic.hinet.net) joined #forth 10:29:21 --- join: I440r (n=mark4__@c-69-136-171-118.hsd1.in.comcast.net) joined #forth 10:36:35 what exactly does DOES> ? 10:37:12 It replaces the default behaviour of a CREATEd word 10:37:28 ment does> is kind of complex 10:37:46 and while the above description is kind of close it doesnt help much hehe 10:37:53 :P 10:38:05 does> is used IN a crating word to create a word and define its behaviour 10:38:15 for example a constant. wjhen executed returns its value 10:38:26 a possible definition for the word constant might be 10:38:38 it's possible to express does> in simpler "words"? 10:38:38 : constant ( n1 --- ) create , does> @ ; 10:38:49 so i could then say 0 constant zero 10:39:14 the word constant would create the word called "zero" and comma in its value 10:39:32 when i execute the word zero everything after does> is executed. that feteches and returns the constants value 10:39:47 dont try understand how it does this, just understand what it does so that you can use it 10:40:21 indeed "see does>" is probably not much help ;) 10:40:47 no lol 10:40:50 well i'm fiddling around jonesforth, so i don't have any words missing there unless i implement it myself :) 10:41:10 what OS do you use? 10:41:17 linux 10:42:10 it will probably NOT help much but read 10:42:14 http://www.isforth.com/kern.php?t=compile&p=19 10:42:34 and the next page after it. understnding ;uses and ;code would help understand does> 10:42:51 but those are VERY isforth specific. 10:43:06 is your PC an x86 machine? 10:43:20 yep 10:43:26 if so i would personally recommend isforth (im the autnor so im biased) 10:43:47 tho... im rabidly anti ans so most people here would not recommend isforth :) 10:43:50 it's small and asm so i can give it a shot :) 10:44:01 you code asm then? 10:44:44 well anything lowlevel 10:45:34 my kinda coder :) 10:45:53 isforth! that was the name of it. 10:45:55 the www.isforth.com site is not complete yet but its getting there. its on hold atm tho cuz im job searching 10:46:03 I440r: I have been googling for it for 2 weeks! I forgot the name. 10:46:06 not worked in months 10:46:09 lol 10:46:14 its in the topic (or was) 10:46:27 yup. last url in this channels topic 10:46:28 hiding 10:46:34 aaargh 10:46:41 There it is. 10:46:42 lol 10:46:50 I never /topic 10:47:47 http://nopaste.info/d6e79e1522.html 10:47:56 I started working on a half arsed x86-64 long mode port of it, but I happened to rm it by accident. 10:47:56 an example of an imperative construct 10:48:18 oopts 10:48:23 (which I need to use it to write an assembler for arm so I can port it again :P) 10:48:38 yes i need an arm assembler too :( 10:48:47 gas ;) 10:49:05 and isforth is majorly in need of an x86 assembler extension but i cant write it 10:49:14 ive tried MANY times 10:49:30 writing x86 assemblers seems like a road to insanity. 10:49:31 x86 assembler extension like asm/disasm written in forth? 10:50:27 Well thanks for the link there. Seems I must go enjoy real life :( 10:50:27 yes but i will not accept an assembler extension that only worked backwards 10:50:35 i am very picky 10:50:49 I440r: Good thinking. backwards assembly is ugleeh. 10:50:56 any assembler extension for isforth would HAVE to be able to take 100% of the existing soruces with only MINOR changes 10:51:10 like the injection of a space or two here or there 10:51:16 backwards means it's able to disasm forth core and nothing else? 10:51:28 backwards means traditional forth assembler 10:51:32 5 # ax mov 10:51:38 instead of mov ax, # 5 10:51:57 i would only accept the latter for isforth (tho the former could be an option in the assembler too) 10:52:06 i wrote a nice 8051 assembler that works both ways 10:52:12 postfix asm seems like neat idea 10:52:25 wrote an assembler, disassembler and emulator 10:52:38 there are many forth assemblers that support it. i cant use any of them 10:52:56 the assembler that comes with win324th or what ever its called supports it 10:53:03 but that assemblers license is unacceptable 10:53:08 do you have NIH complex? :) 10:53:08 or i would ninja it 10:53:13 NIH ? 10:53:20 Not-Invented-Here 10:53:24 no 10:53:41 i would use the assembler that came with FPC if it would work in isforth but it wont 10:53:59 because in FPC coded definitions go in a separate segment to colon definitions and text and headers 10:54:12 they are all separate. i only separate code from headers 10:54:29 and the FPC assembler relies heavilly on the way FPC works. 10:54:50 i would use the one from win32 forth but its PURE gpl. and that would taint my license 10:55:22 i was given permission to use the one in bigforth i think. but it is totally unuseable 10:55:35 i dont know how ANYONE could use that gobbldegook lol 10:55:49 and its also bass ackwards 10:56:16 if someone wrote a useable assembler for isforth i would LOVE to use it. but i have some quirks that have to be catered to lol 10:56:38 tho... if it worked i could mayb modify it to cater to those (maybe) 10:57:06 i have some phobias. like cluster fuck unreadable code. makes me shudder 10:59:27 btw. in which segment allocates forth memory for malloc, when heap is occupied by HERE? 11:00:26 in isforth? 11:01:00 isforth has ONE block of memory that i split in tw. the lower half is code (list space - pointed to by here) 11:01:02 the other is head space 11:01:06 well in anyforth :) 11:01:15 isforths "allocate" word allocates a NEW heap from the OS 11:01:24 im going to assume thats how other forths do it to 11:01:42 tho... my allocate word is actually a full blown memory allocator 11:01:59 it allocates a heap and you can allocate pieces of said heap with a granularity of 16 bytes 11:02:38 if you use the linux syscall to allocate a buffer your going to have a granularity of 4k. allocate 50 bytes you get 4k buffer 11:03:00 also. in linux, dont think in terms of segments. its all a flat address space 11:03:06 think of it as sections 11:03:17 well i thought that compilation of words doesn't perform explicit allocations other than HERE +! 11:03:46 You get an allocation of PAGE_SIZE, depending on the CPU, right? 11:03:48 yes. MOST forths dont have a malloc type allocator 11:04:06 if you need 40 bytes for your decompressor to decompress your data you usually "allot" it 11:04:14 I440r: that 4K you get from mmap? :) 11:04:18 that puts it in forths heal 11:04:20 yes 11:04:25 I440r: also the alloc in isforth that's phk? 11:04:55 my allocate word uses mmap to allocate a large heap. you can then use allocate to bite of chunks of that as needed 11:04:59 phk? 11:05:22 phkmalloc, nevermind 11:05:33 isforths allocate word is a full blown memory manager 11:05:46 think of LINUX as the BIOS :) 11:06:01 and isforth is the OS (tho its kind of lacking in that regard as yet :) 11:06:04 A BIOS that doesn't suck :-) 11:06:10 heh 11:06:32 isforth doesnt use any external libraries. it does everything by using syscalls. 11:06:45 so memory allocation in isforth would have to use mmap. 11:06:51 I440r: my question was - what kind of full blown memmory manage? :) first-fit/best-fit/buckets of same-sized chunks broken from 4K page... 11:06:58 i didnt like having a granularity of 4k so i wrote a memory sub allocator 11:07:24 its not QUITE a "best fit" 11:08:11 i have linked lists of blocks of free memory) that are sorted into buckets of various memory size ranges 11:08:57 if you try allocate a 30 byte buffer your going to get a 32 byte buffer. which will be from bucket 2. bucket 2 can have any block of memory from 32 bytes to 63 bytes in size 11:09:18 Pool-based? 11:09:19 if i sorted the buckets smallest to largest then my allocator would be a true best fit 11:09:21 yes 11:09:29 i dont bother with that 11:10:00 Sorted the buckets? 11:10:06 if the first block of memory in the bucket is larger than you requres its split into 2 buckets and one is given to you. the other is then added to an appropriate bucket 11:10:10 no 11:10:31 each bucket contains descriptors for various memory buffers 11:10:35 Ah, so not pool-based. 11:10:45 it IS and it isnt heh 11:11:23 ok i have to organize my thoughts lol 11:11:43 http://www.isforth.com/ext1.php?t=memory 11:11:57 what happends when i try to allocate 16K buffer? 11:11:58 or you can read that. im not sure if that description does the allocator justice tho 11:12:00 thers alot in there 11:12:04 you get a 16k buffer 11:12:08 from mmap? 11:12:16 if there is not enough space in any existing pool a new one is created 11:12:27 no. you get it from my allocator 11:12:52 if you ask for a buffer thats larger than any available block a new pool is allocated and you get a piece or ALL of that 11:13:01 ok, then i'm going to dealloc it, how do you know how large it is and to whom return it? 11:13:30 you deallocate a buffer by passing its address to "free" 11:13:47 free will search all pools for an allocated buffer of that size and will deallocate it 11:14:05 if that deallocation deallocates the last buffer in the heap then the heap itself is returned to the OS 11:14:23 and as you deallocate buffers they are merged with adjacent free buffers 11:14:35 so if you have [ free ] [ allocated ] [free ] 11:14:39 and deallocate the middle buffer 11:14:47 ok, i'm going to read the sources :) 11:15:02 a NEW buffer is creates with a size equal to all 3 buffers 11:15:09 eep 11:15:37 its some complex code but ive been working on making it more readable. not sure how successfull i was at that lol 11:16:05 src/ext/memory.f is where you want to look tho 11:16:15 i'm looking in there right now 11:16:17 http://www.isforth.com/ext1.php?t=memory <-- suggest uyou read that and the sources together 11:16:48 the basic problem i was trying to solve was that mmap returns non-continuous range of pages 11:17:15 Physical or logical pages? 11:17:22 ya well you probably have heap randomization turned on 11:17:29 you can fix that. in fact... to run isforth you HAVE to 11:17:37 TreyB: logical 11:17:38 echo 1 >/proc/sys/kernel/randomize_va_space 11:18:05 well to properly lookup page sizes i had to maintain i growing hashtable 11:18:21 mmap was never suitable for allocating buffers for doing DMA (err there might be a parameter you can pass i forget) 11:18:32 (walking long list of allocated pages just isn't an option) 11:18:44 they probably arent long 11:18:59 unless you are allocating thousands of 16 byte buffers 11:19:22 which just might happend, when you running lisp interpretr atop of forth 11:19:41 tho. i had also considered hasing the buffers in this way so that deallocation could be faster 11:19:54 wouldnt take much of a change to add it 11:20:10 my "buckets" could be pointers to hash tables 11:20:48 so all 16 byte buffers get added to the first bucket but that bucket refers to a hash table of N lists of buffers 11:20:57 btw looking into src/bot, are you going to port isforth to DS? :) 11:21:04 just hash the address in question (not sure how to do that :) 11:21:07 nintendo? 11:21:11 yep 11:21:15 lol i was working on that yes 11:21:27 that's just the only game i was missing from ds 11:21:27 but i need an arm assembler 11:21:45 i have a hacked nintendo ds, a dserial2 cart and an xport-ii cart 11:21:59 that xport-ii cart cost almost twice as much as the ds itself did 11:22:28 i want to be able to telnet into a ds from my linux box and be at an isforth terminal 11:22:30 what for do you need xport cart? :) 11:22:43 FORTH!!!!!!!!!! lol 11:22:48 you have built-in wifi 11:23:08 and the drivers for it werent completed when i started working on this 11:23:19 i needed a way to communicate with the ds and the xport solved that 11:23:29 tho... the dserial-ii solves it in a better way 11:23:48 i would NEED to completely rewrite the wifi drivers in asm/forth 11:23:53 in order to use them 11:24:05 no fuckin way im using the C version 11:24:30 why not? 11:24:36 tho sgstair did an freekin awesome job RE'ing the hardware 11:24:52 because i want to have the FORTH do it 11:25:13 ah, programming language xenofobia :) 11:25:17 its just hardware. you poke in this value over here. enable that interrupt over there and ding! you got wifi 11:25:26 im not a fan of C 11:25:36 but thats not WHY i want it done in forth 11:25:43 i want it in forth because i want to learn HOW. 11:25:52 but this is all just a pipe dream atm 11:26:03 need an arm assembler ext for isforth first :0 11:29:38 asm is just detail, the bigger problem is how to design the gui (and on-screen keyboard is just not the answer) 11:30:12 which is why i wanted to telnet in to the ds 11:30:31 the ds key and emit would do I/O accross the telnet session 11:30:55 there would be words defined to input and output locally too. the touch screen and the display etc 11:31:09 the point of having forth on ds is that you can play around while you commute, not to telnet from your notebook to ds and run forth there 11:31:13 so you could write and test a game and the two I/O methods would not be mashing on each other 11:31:40 that could also be an option with the right extension. "stand alone mode" 11:31:54 but that would require a touch screen keyboard be the input 11:32:01 and the other display would be the output 11:32:26 you could dedicate the "start" button as a "reset this thing so i can break into my code" 11:32:50 or some vulcan nerve pinch button combination 11:33:27 but onscreen keyboard sucks (for writing anything but name of your pokemon character) 11:33:50 how would you suggest. the ds does not have a serial port so you cant attach some keyboard 11:34:09 and a touch screen keyboard is better than the lefty righty uppy downy select letter meothd thats built in 11:34:24 first, you can write and debug entire forth in the emulator (no xport needed) 11:34:42 and how do you USE that forth on the ds? 11:34:52 sure... you can write the entier forth and its application on the pc 11:35:01 then move it to the ds and use the app 11:35:03 you have cursor keys (and L) for the left hand, stylus in the right 11:35:08 but thats NOT developing an app ON the ds 11:35:16 suxors 11:35:32 the touch screen keyboard for input is superior to that method 11:35:37 with cursor keys you can select an input dictionary (all words, latest defined, most used, conditionals ... ) 11:35:39 you can type quite fast that way 11:35:46 and with L there's keyboard 11:35:47 ugh 11:36:04 i would become very annoyied with kaving to use that method lol 11:36:09 i've used lisp interpreter on pal which worked that way 11:36:14 palm 11:36:19 it would be faster to just TYPE ": blah my new definition goes here ; 11:37:15 well download zxds and run z80 forth in there to check it really sucks :) 11:38:33 lol 11:38:44 thers already a ds forth btw 11:39:07 but i dont think the sources are available. cant remember 11:39:11 there is? give a link 11:40:48 cant find one 11:41:07 but the #dsdev channel or maybe #gbadev has the author 11:41:10 not on this server tho 11:41:20 i forget where they are located but im sure you know of them 11:43:50 yea blitz.org 11:44:01 irc.blitz.org #dsdev and #gbadev 11:44:54 thers also a #dslinux there :) 11:44:56 btw 11:45:06 i'll ask there 11:45:30 Ah ds. I am looking for a forth for ARM. Any ideas? 11:45:53 well im gona go back to job searching, if u have any questions about isforth PM me here or email the address in the isforth release :) 11:46:01 ya. write one is the usual answer lol 11:46:06 which was on my todo list 11:46:08 indeed. 11:46:23 tho... there are some good free arm forths out there 11:46:37 ive seen a couple. some of them are for the acorn tho :/ 11:46:37 I'd like one for me beagleboard. 11:47:02 But ya. I guess writing one is where it's all at (: 12:29:45 --- quit: GeDaMo (hubbard.freenode.net irc.freenode.net) 12:29:45 --- quit: TR2N (hubbard.freenode.net irc.freenode.net) 12:30:25 --- join: GeDaMo (n=gedamo@212.225.107.61) joined #forth 12:30:37 --- join: TR2N (i=email@89-180-180-228.net.novis.pt) joined #forth 13:04:39 schme: Have you looked at muForth? I think it's for ARM. 13:05:13 Ah, cool apparently it targets ARM and AVR. 13:48:03 --- join: jewel_ (n=jewel@dsl-247-203-169.telkomadsl.co.za) joined #forth 14:38:00 --- quit: jewel_ (Read error: 113 (No route to host)) 15:01:29 --- quit: GeDaMo ("Leaving.") 17:06:52 --- join: nighty__ (n=nighty@210.188.173.245) joined #forth 20:05:20 --- quit: I440r (Read error: 110 (Connection timed out)) 20:06:02 --- join: I440r (n=mark4__@c-69-136-171-118.hsd1.in.comcast.net) joined #forth 21:35:35 --- quit: I440r ("Leaving") 21:49:11 is there a default forth looping construct which uses return stack for storing counter? 22:38:19 --- quit: jauaor () 23:59:59 --- log: ended forth/09.07.14