00:00:00 --- log: started retro/13.02.25 08:55:55 --- join: kumul (~mool@c-76-26-237-95.hsd1.fl.comcast.net) joined #retro 09:18:31 --- join: kumool (~mool@c-76-26-237-95.hsd1.fl.comcast.net) joined #retro 09:19:20 --- quit: kumul (Ping timeout: 256 seconds) 09:44:07 --- join: kumul (~mool@c-76-26-237-95.hsd1.fl.comcast.net) joined #retro 09:46:32 --- quit: kumool (Ping timeout: 256 seconds) 09:46:51 --- join: kumool (~mool@c-76-26-237-95.hsd1.fl.comcast.net) joined #retro 09:48:44 --- quit: kumul (Ping timeout: 246 seconds) 09:49:29 --- join: ncv (~quassel@unaffiliated/neceve) joined #retro 09:52:39 --- quit: kumool (Ping timeout: 252 seconds) 09:53:52 --- join: kumool (~mool@c-76-26-237-95.hsd1.fl.comcast.net) joined #retro 10:11:13 --- join: kumul (~mool@c-76-26-237-95.hsd1.fl.comcast.net) joined #retro 10:13:44 --- quit: kumool (Ping timeout: 256 seconds) 10:20:38 --- join: kumool (~mool@c-76-26-237-95.hsd1.fl.comcast.net) joined #retro 10:22:43 --- quit: kumul (Ping timeout: 252 seconds) 10:27:29 --- join: kumul (~mool@c-76-26-237-95.hsd1.fl.comcast.net) joined #retro 10:29:41 --- quit: kumool (Ping timeout: 246 seconds) 10:47:30 --- join: kumool (~mool@c-76-26-237-95.hsd1.fl.comcast.net) joined #retro 10:49:38 --- quit: kumul (Ping timeout: 246 seconds) 10:59:39 --- join: Mat2 (~claude@91-65-144-133-dynip.superkabel.de) joined #retro 10:59:49 hello 11:00:55 hey Mat2 11:01:03 hi tangentstorm 11:01:12 howe's going ?4 11:01:29 sorry, what is going on ? 11:02:06 good i guess. kind of frustrated that i haven't shipped anything :) 11:02:47 other than that just great. 11:03:01 I guess that mean you are an ebay seller 11:03:06 haha 11:03:17 no i meant shipping any of this code that i've been working on for a year and a half 11:03:39 ah, I know this source of frustation 11:05:58 by the way, the problem with the SDL terminal code was simply a bug with the DirectX drivers for windows supporting 8 bit modes. As I heard it work fine on Windows 8 11:06:39 huh! 11:07:07 well, it was frustrating, but i'm kind of glad we had those problems because it lead me to try zengl :) 11:07:39 it can be zengl suffers from the same bug 11:08:16 otherwise it is a nice alternative to SDL for Pascal 11:08:51 anyhow, I am not sure about further development of these library 11:12:18 i'm probably going to port it to retro pascal 11:12:32 assuming i ever get to that point :) 11:12:54 what are you up to? 11:13:08 for sure, you will [yoda mode] 11:13:34 :) 11:14:19 Saiwa progresses well 11:14:53 the state system is a bit complex but that can be factored after finishing 11:15:06 I mean factored out 11:15:12 are you still porting all the retro routines? 11:15:50 no, I have an initial function-set of around 20 routines 11:16:00 at current 11:16:18 is that enough to make the dictionary and all that? 11:16:22 yes 11:16:43 i don't suppose it's online? :) 11:17:04 at 1 march in its cureent state 11:17:10 ^current 11:18:15 i will be patient :) 11:18:46 at current experimenting with syntax features 11:19:44 for example, instead of closures I have typed conditionals which are bound to the function state (and type save) 11:21:20 i don't understand 11:21:49 in retro, you can define closures without application: 11:22:03 [ dup * ] :test 11:22:12 sorry, 11:22:20 : test [ dup * ] ; 11:22:38 : foo test do ; 11:22:45 or simply 11:22:49 [ dup * ] 11:22:56 : foo do ; 11:23:42 i'm surprised that works 11:25:04 in the last example that is dangerous because the closure is not bound to a specific application 11:26:43 yeah i thought you were saying it did a lot more than it does 11:27:10 moreover, the listener can only call the closure where a jump would be faster for the interpreter 11:27:26 ^yes 11:27:44 a conditional like these: 11:28:02 | 0n * | do :test 11:28:19 that's a conditional? 11:28:24 yes 11:28:29 what's the conditon? 11:29:11 the do function test the stack state and execute the conditional only depend on it 11:29:21 ^depending on iot 11:29:40 | 0n * | 1 | 1 < do :test 11:29:50 that is more intuitive 11:29:55 is 0n the condition? 11:30:04 no: 1 < 11:30:21 will execute | 1 | if tos < 1 11:30:40 in all other cases | 0n * | is executed 11:31:16 *if the type and stack state is compatible (only one stack item on the stack in this example) 11:31:28 0n duplicates tos 11:31:39 would not have guessed that 11:31:53 1n convert tos to a natural value 11:32:01 2n is swap 11:32:05 3n is rot 11:32:22 1i would convert tos to an integer 11:32:28 would you use that in actual code, or is this just for bootstrapping? 11:32:56 no, it will used for all code inclusive the bootstrapping one 11:33:22 that's the first time you've said something terrible :D 11:33:27 i would never remember all that 11:34:13 I write a book here beside coding: "The Saiwa programming language - An introduction" 11:34:13 is there a mnemonic system there that i'm not seeing? 11:34:20 yes 11:34:31 --- join: kumul (~mool@c-76-26-237-95.hsd1.fl.comcast.net) joined #retro 11:34:56 the first character is the stack item (0 means duplicating tos, 1 = tos, 2 = second stack item, 3 the third) 11:35:07 the next character is the type of these item 11:35:10 hrm... ok... i guess i can see the pattern for 1n 2n 3n, but 0n surprises me 11:35:55 does 0+ mean the same as 2 * ? 11:36:13 have the same effect i mean 11:36:36 the second character is the type (for conversion) 11:36:49 i = integer 11:36:52 n = natural 11:36:54 c = char 11:36:57 s = string 11:37:00 p = pointer 11:37:03 --- quit: kumool (Ping timeout: 276 seconds) 11:37:26 what does 10 0s do then? 11:37:34 produce 10 "10" on the stack? 11:38:05 10 is pushed as natural value on the stack 11:38:43 and 0s convert these value to a string, replacing the value with a pointer to the resulting string 11:38:55 and duplicate that 11:39:06 so "10" "10" 11:39:08 yes 11:39:55 i find prefixes confusing 11:40:09 i would call what you just described s0 11:40:15 because the s happens first 11:40:35 also it wouldn't look like a number anymore 11:41:19 but now that i understand the pattern, i do like the idea 11:42:10 the parser interpreting prefixes and postfixes, I have choosen the postfix character here because it is natural for a RPN language to specifiy the number before its action 11:43:01 oh because 3s doesn't 's' the top item on the stack 11:45:02 that was my reason. Saiwa convert all types if needed automatical (and this syntax ensures that always the type is guessed right or must be choosen explicite) 11:45:26 so the type-sytem is as strict as in Pascal 11:45:27 okay, it was surprising at first but it seems consistent. cool. 11:46:09 pascal's type system is too strict! :) 11:46:20 at least without generics 11:48:05 the language need a strict type system because the parser can compile routines to parallel executed routines this way if possible 11:49:19 so Saiwa is able to parallelize code automatical without hints from the programmer 11:49:26 cool 11:49:49 i guess it's not that pascal's system is too strict it's that it's not powerful enough 11:50:22 like i'm looking at some old ISO pascal code, and the guy had to duplicate 3 functions 11:50:50 they all walk through an array of records and look up values by name 11:50:58 I think every type system have some drawbacks 11:50:59 but three different record types 11:52:04 even though the code is word for word identical :/ 11:53:24 on the other (the very dark side), the type system of C is inconsistent and it is impossible to check up against some common type conflicts 11:54:07 one of the restrictest type-system I know is that of ADA 11:54:21 i've never used it but i've looked at it 11:54:37 that's because ADA support coroutines and parallel processing I guess 11:55:04 it's also a very type-rich system 11:55:16 yeah. 11:55:55 the type system of Saiwa is a compromise of both because it's late evaluated and you convert most types 11:56:45 it does sound like fun :) 11:57:57 :D at current there exist only a generic pointer type for example. I am thinking of extending it with specific pointer types (pointer to integer for example) 11:59:41 what about structured types like records? 12:01:14 I think to found a better alternative to structures, evaluating functions 12:01:32 (because Saiwa is a somewhat pure functional language) 12:02:35 like what? even haskell has records 12:02:56 they're just not mutable 12:08:15 I know. The thing is: In haskell a record is just syntactical sugar for defining functions 12:08:59 That is not a dependancy of the core language 12:09:15 i guess i don't understand what a defining function is 12:10:03 i mis-parsed that, didn't i? :) 12:10:26 a function which return a function executing the functionality for accessing a given "record" element 12:11:00 hmm.. ok 12:12:01 Forth do not have records either (but you can create words implementing records) 12:12:24 yeah. i'm writing a database :) 12:12:24 in Saiwa you can create functions implementing records at demand 12:12:46 or to be specific: The functionality of records 12:13:41 well... like i said, i look forward to trying it :) 12:13:55 i don't want to just keep pestering you with questions :D 12:16:56 because it is a uncommon language I will write a book beside "Programming in Saiwa - an introduction" 12:17:54 and because practice is the best teacher, I have an colleque who waiting using it for his 3D modelling 12:19:53 i'll definitely try it 12:22:48 thanks, that are 3 users (I really thing this language has potential) 12:39:23 hmm, division by zero is not good at all ;) 12:40:16 should the parser generate an error or should I encode it as result=zero instead ? 12:44:44 result=NaN maybe? 12:45:02 or if you're using crazy symbols why not the infinity one? 12:48:24 hmm, so much possibilites 12:56:42 --- quit: kumul (Read error: Connection reset by peer) 13:37:19 --- quit: ncv (Remote host closed the connection) 14:03:59 --- join: ncv (~quassel@92.83.227.80) joined #retro 14:03:59 --- quit: ncv (Changing host) 14:03:59 --- join: ncv (~quassel@unaffiliated/neceve) joined #retro 14:16:20 get some sleep, ciao 14:16:27 --- quit: Mat2 (Quit: Verlassend) 14:44:40 --- quit: ncv (Remote host closed the connection) 14:49:12 --- join: kumul (~mool@76.26.237.95) joined #retro 15:18:16 --- quit: kumul (Ping timeout: 245 seconds) 16:01:14 --- join: kumul (~mool@c-76-26-237-95.hsd1.fl.comcast.net) joined #retro 16:36:37 --- quit: kumul (Ping timeout: 272 seconds) 16:51:29 --- join: kumul (~mool@76.26.237.95) joined #retro 17:57:43 crcx: i've written a couple assemblers for ngaro, in various languages and with different names for the opcodes 17:58:02 this is the latest, ported from ngarotest.py: https://github.com/sabren/b4/blob/master/b4a/b4a.js 17:59:08 i think i might add ( ) syntax for stack comments and maybe something to allow writing strings and sequences of numbers 17:59:44 for my course i want something that looked more like assembly so it would be visually distinct from the forth level 18:00:58 i plan to port the core interpreter from commentary.txt/kernel.rx to this 18:03:21 i wasn't sure if you'd want it for the release because it breaks from the naming conventions. you're welcome to it but i wouldn't be at all bothered if you didn't want it. ;) 18:04:44 i don't think the ngaro.js changes or the retro.pas stuff are going to be ready and shippable in time for 11.5 though. :/ 18:06:11 if you want mineswpr, i have two versions: one in org-mode (kind of useless without emacs) and the other is the tangled retro source (kind of messy) 18:06:33 i'm really not happy with this but i don't have anything better yet 18:08:31 i've also been slowly working on https://github.com/sabren/b4/blob/master/ref/retro-trail.org 18:09:18 which is commentary.txt + kernel.rx partially put back together in org-mode 18:09:30 org-mode can generate kernel.rx from this file 18:10:31 and can also generate syntax-highlighted source: lpmc.ne.sabren.com/retro-language/doc/retro-trail.html 18:10:39 er http://lpmc.ne.sabren.com/retro-language/doc/retro-trail.html 18:10:51 clearly not finished 18:13:21 Sorry for just dumping all this here... I guess my point is if you can prioritize any of that, I'd be happy to focus on some part of it :D 18:13:38 also a few things here: https://github.com/sabren/b4/tree/master/rx 18:15:24 and this is a tool to syntax-highlight and inspect retro code, but mostly limited to the kernel.rx at the moment. not sure how useful it is in general, but it's kind of pretty. :) 18:15:27 https://github.com/sabren/b4/blob/master/go/untangle.py 18:15:37 the output in the console i mean. not the code :( 18:15:39 19:43:16 --- quit: kumul (Ping timeout: 245 seconds) 20:43:27 --- join: kumul (~mool@76.26.237.95) joined #retro 20:55:40 --- join: dessos (~dessos@c-174-60-176-249.hsd1.pa.comcast.net) joined #retro 21:14:06 --- quit: kumul (Ping timeout: 245 seconds) 21:56:39 --- quit: tangentstorm (Ping timeout: 244 seconds) 21:58:38 --- join: tangentstorm (~michal@108-218-151-22.lightspeed.rcsntx.sbcglobal.net) joined #retro 22:27:19 --- quit: harrison (Ping timeout: 264 seconds) 22:48:19 --- nick: tangentstorm -> tangentsleep 22:58:01 --- join: ncv (~quassel@92.83.227.80) joined #retro 22:58:01 --- quit: ncv (Changing host) 22:58:01 --- join: ncv (~quassel@unaffiliated/neceve) joined #retro 23:53:15 --- quit: ncv (Remote host closed the connection) 23:59:59 --- log: ended retro/13.02.25