00:00:00 --- log: started retro/13.03.02 01:26:02 --- join: Mat2 (~claude@91-65-144-133-dynip.superkabel.de) joined #retro 01:28:05 arithmetic primitives are implemented, now working on number parsing-function and then debug the compiler. After that is finished the saiwa interpreter is functionable 01:28:29 --- quit: Mat2 (Client Quit) 01:55:32 --- nick: tangentstorm -> sleepystorm 04:30:08 --- join: Mat2 (~claude@91-65-144-133-dynip.superkabel.de) joined #retro 04:30:16 good morning ! 04:32:20 the parser is now in a working state and some simple functions can be defined. If someone want to test the interpreter (all bug reprots are welcome) here are some explanations: 04:32:32 ^reports of course 04:33:57 first, there is a linux binary for x86-64 cpu's in the build directory. After starting the interpreter a welcome message in german wis appear on screen 04:35:58 ^will 04:37:22 characters are defined inside <'> limiters, so the application of 'a' push the ASCII code of these character onto the stack 04:38:49 please note I write application, because eache character defination is indeed an implicte function which execute immediatly and compile a literal value (the application) 04:41:00 In Saiwa each parsed define or execute a function, there exist no values ! The number 123 define a function which executed immediatly and push a constant value onto the stack! 04:42:32 There exist only functions and there functional applications which are evaluated at demand 04:43:36 For example: Let us define an implicit function which return the ASCII value of a given character: 04:43:41 'a' 04:44:09 the interpreter extend this token after evaluation and show us the type: 04:45:12 'a' [char:61] 04:46:00 this means the application of the function 'a' resulting in a value of 0x61. The interpreter then waits for the next input 04:46:29 'b' 04:46:43 >> 'b' [char:62] 04:47:14 there exist now two values on the stack, 64 and tos=62 04:47:45 let us try to add both values 04:47:51 + 04:48:09 >> [INTEGER] 04:48:16 what does this mean ? 04:50:30 the function + convert the first parameter from char to an integer automatical because the addition of two characters whould be otherwise irrational. 04:52:31 This means, that the second paramter must be interpreted as integer too (the + function requires two parameters) 04:53:09 let us now create a function for this concatentation: 04:53:26 :test 04:53:41 >> [FUNCTION]:[INTEGER] 04:55:42 the colon prefix mark this token as declarative immediate function. Its application create a new dictionary entry for the priour compiled code, reset the parser state and parse the next token. 04:56:31 hexadecimal numbers are declared with <0> as prefix: 04:56:48 0FFFF 04:57:07 >> [INTEGER:FFFF] 04:58:26 0FF 04:58:39 >> [INTEGER:ff] 04:58:52 a 05:01:33 the 'a' is an immediate function which takes two arguments, perform a logical and operation and return the result. Because some function names can be non intuitive there exist the feature of embedded commentaries: 05:02:00 0FFFF 0FF and 05:02:11 will perform the same operation 05:02:15 or: 05:03:10 0FFFF 0FF a(compute_mask) 05:04:05 is the same 05:04:51 otherwise remarks are signaled though the '#' character as prefix 05:05:02 # This is a comment 05:05:04 or: 05:05:10 #This is a comment 05:05:45 Let us testing the type system: 05:05:55 "This is a string" 05:06:16 >> [STRING> 05:06:30 042 05:06:53 >> [INTEGER:42] 05:07:14 + 05:08:00 works, because the application of the string function return a pointer and the integer can be an offset to it 05:08:35 042 "This is a string" + 05:10:31 fails because the application of a string (the content) can't be argument for addition to an integer ! 05:12:07 also: 05:12:22 'a' 'b' l 05:12:24 or: 05:12:36 'a' 'b' l(shift) 05:13:28 fails of course, left shifting of two character codes is useless 05:14:12 --- quit: Mat2 (Quit: Verlassend) 08:44:29 --- quit: erider (Remote host closed the connection) 08:56:23 --- join: kumul (~mool@c-76-26-237-95.hsd1.fl.comcast.net) joined #retro 09:30:31 --- join: kumool (~mool@c-76-26-237-95.hsd1.fl.comcast.net) joined #retro 09:32:13 --- join: mo (~mool@c-76-26-237-95.hsd1.fl.comcast.net) joined #retro 09:32:36 --- nick: mo -> Guest47960 09:33:17 --- quit: kumul (Ping timeout: 272 seconds) 09:34:57 --- quit: kumool (Ping timeout: 248 seconds) 10:18:30 --- join: kumul (~mool@c-76-26-237-95.hsd1.fl.comcast.net) joined #retro 10:20:47 --- quit: Guest47960 (Ping timeout: 272 seconds) 11:53:30 --- nick: sleepystorm -> tangentstorm 12:02:16 awww... i wanted to shift an n into another n and get an m... :( 12:02:38 I + n = h 12:02:48 > + < = X 12:03:14 o + o = 8 12:03:38 all you guys making your fancy languages and none of you get the basics right 12:03:46 : + ( = :( 12:12:48 --- join: kumool (~mool@c-76-26-237-95.hsd1.fl.comcast.net) joined #retro 12:16:03 --- quit: kumul (Ping timeout: 272 seconds) 12:51:20 --- join: kumul (~mool@c-76-26-237-95.hsd1.fl.comcast.net) joined #retro 12:54:03 --- quit: kumool (Ping timeout: 272 seconds) 12:56:09 --- quit: kumul (Read error: Connection reset by peer) 12:57:40 --- join: kumul (~mool@c-76-26-237-95.hsd1.fl.comcast.net) joined #retro 12:59:32 --- join: kumool (~mool@c-76-26-237-95.hsd1.fl.comcast.net) joined #retro 13:00:05 --- join: Mat2 (~claude@91-65-144-133-dynip.superkabel.de) joined #retro 13:00:16 hi @ all ! 13:00:34 hey mat2 :) 13:00:40 Hi ! 13:00:43 how do you see the stack in saiwa? 13:02:08 --- quit: kumul (Ping timeout: 248 seconds) 13:03:00 the first stack element is the entry parameter for a function, the second and third are optional parameters which are exchanged with the first one at demand 13:03:37 no i mean how to print it? 13:03:40 though either explicit type-casting or implicite type-conversation 13:03:41 like .s 13:04:50 this usage is not impklemented yet (it's a functionality of the core wordset) 13:04:56 ^implemented 13:05:11 fair enough. 13:05:48 well, i typed words and things happen and nothing crashed on me. :) 13:06:26 there exist a function for accessing the syscall interface of AVM which handles primitive side-effects like character output (the function is a monad) 13:06:41 ^^good to read ! 13:10:53 --- join: kumul (~mool@c-76-26-237-95.hsd1.fl.comcast.net) joined #retro 13:10:54 I'm at current debugging the compiler (the generated code seem to be ok but I will be sure about it) 13:11:55 * Mat2 is happy that the type-system is working as espected 13:13:03 --- join: mo (~mool@c-76-26-237-95.hsd1.fl.comcast.net) joined #retro 13:13:26 --- nick: mo -> Guest67097 13:13:42 (probably the word is written expected) 13:14:06 --- quit: kumool (Ping timeout: 256 seconds) 13:15:00 --- join: kumool (~mool@c-76-26-237-95.hsd1.fl.comcast.net) joined #retro 13:16:13 --- quit: kumul (Ping timeout: 272 seconds) 13:17:36 --- quit: Guest67097 (Ping timeout: 248 seconds) 13:18:57 however, you can turn off the state-tracing functionality (these [typ:value] messages if you change: 13:19:03 pParser pSaiwa = parserCreateHandle (0xFFFF, fPrintTypes); 13:19:09 to: 13:19:18 pParser pSaiwa = parserCreateHandle (0xFFFF, fPrintNoTypes); 13:21:39 I plan to add a function for turning this feature on and off at demand (like the variable error in FIG Forth for changing error messsages form outputting a simple error number to full error explanations) 13:21:57 ^from 13:23:11 --- join: kumul (~mool@c-76-26-237-95.hsd1.fl.comcast.net) joined #retro 13:26:21 --- quit: kumool (Ping timeout: 272 seconds) 13:50:03 --- join: kumool (~mool@c-76-26-237-95.hsd1.fl.comcast.net) joined #retro 13:52:19 --- quit: kumul (Ping timeout: 272 seconds) 14:34:30 --- join: kumul (~mool@c-76-26-237-95.hsd1.fl.comcast.net) joined #retro 14:37:55 --- quit: kumool (Ping timeout: 272 seconds) 14:38:23 --- join: kumool (~mool@c-76-26-237-95.hsd1.fl.comcast.net) joined #retro 14:39:44 --- quit: kumul (Ping timeout: 248 seconds) 14:44:32 the parser now handle hexadecimal and decimal values 14:44:52 --- nick: Mat2 -> Mat2-sleeping 14:55:19 --- join: erider (~chatzilla@unaffiliated/erider) joined #retro 14:55:49 hi all 15:11:15 --- join: kumul (~mool@c-76-26-237-95.hsd1.fl.comcast.net) joined #retro 15:14:39 --- quit: kumool (Ping timeout: 272 seconds) 15:21:34 --- join: kumool (~mool@c-76-26-237-95.hsd1.fl.comcast.net) joined #retro 15:24:00 --- quit: kumul (Ping timeout: 248 seconds) 16:04:13 --- quit: harrison (*.net *.split) 16:04:49 --- join: harrison (~quassel@74.207.247.226) joined #retro 16:29:34 --- join: kumul (~mool@c-76-26-237-95.hsd1.fl.comcast.net) joined #retro 16:32:16 --- quit: kumool (Ping timeout: 248 seconds) 18:35:32 --- join: kumool (~mool@c-76-26-237-95.hsd1.fl.comcast.net) joined #retro 18:37:53 --- quit: kumul (Ping timeout: 248 seconds) 18:38:36 --- join: kumul (~mool@c-76-26-237-95.hsd1.fl.comcast.net) joined #retro 18:41:45 --- quit: kumool (Ping timeout: 272 seconds) 19:03:32 --- join: kumool (~mool@c-76-26-237-95.hsd1.fl.comcast.net) joined #retro 19:06:27 --- quit: kumul (Ping timeout: 272 seconds) 19:08:37 --- join: kumul (~mool@c-76-26-237-95.hsd1.fl.comcast.net) joined #retro 19:11:31 --- quit: kumool (Ping timeout: 272 seconds) 19:24:15 --- quit: kumul (Quit: Leaving) 20:00:53 --- nick: tangentstorm -> tangentzen 20:07:37 --- quit: oPless (Read error: Operation timed out) 20:07:46 --- join: oPless (simon@lart.doosh.net) joined #retro 21:42:50 --- join: oPless_ (simon@lart.doosh.net) joined #retro 21:43:31 --- quit: oPless (Ping timeout: 245 seconds) 21:43:31 --- nick: oPless_ -> oPless 21:52:53 --- quit: tangentzen (Ping timeout: 245 seconds) 22:06:08 --- join: tangentzen (~michal@108-218-151-22.lightspeed.rcsntx.sbcglobal.net) joined #retro 23:39:20 --- nick: tangentzen -> tangentstorm 23:59:59 --- log: ended retro/13.03.02