00:00:00 --- log: started forth/16.09.13 00:18:29 holy channel, what the hell you all unleash here? :-D 00:19:04 do you guys use vim or emacs or other editor? 00:19:59 yunfan, other. :) 00:21:39 vi and drracket ) 00:27:18 i am a vimer , but i am now consider to try emacs way 00:28:01 the only problem is there're too many ) and ( in elisp 00:28:18 i was wondering if there is a emacs using forth instead of elisp 00:38:43 emacs is kinda the opposite of forth thinking don't you think? within forth I always made a little block editor. 00:39:18 you could write in in ans forth tho 00:39:20 hue hue hue 00:39:28 make it portable ans forth 2 00:39:57 hahaha just damn... :) 00:40:02 What if there was some way to abstract the mathematical implementation of a piece of software 00:40:16 and say resolutely what that abstraction was and if a piece of software fit that model 00:40:30 and we could share these abstractions with each other and implement them in our own ways 00:40:47 But not like OML which is bad 00:41:24 for example there could be a logical and mathematical definition of the http protocol which could be implemented in any forth 00:41:59 you could create mathematical definitions for domain specific languages as well 00:42:11 but it is up to the programmer to implement that model themselves 00:43:56 some models would not really be mathematical though 00:45:17 we could have repositories of these models and try to make them as logically and computationally efficient as possible. 00:45:48 You could have different "distributions" of different models each with customized mathematical formulae 00:46:21 For example the people who know calculus could probably come up with better mathematical models than people who do not. 00:47:45 This would allow for ultimate efficiency first of all because each forth user would write everything from scratch using their custom forth as their own completely custom and ultimate plaform to solve their problem 00:48:58 John[Lisbeth], this is the kind of thing that Dijkstra liked to try to accomplish. 00:53:46 are you saying Dijkstra wanted to find the most mathematically simple algorithms for things? 00:57:01 Is there someplace where I can find lots of computer algorithms like these? 00:57:04 ones that I can use for free? 00:57:27 --- quit: nal1 (Quit: WeeChat 1.4) 00:58:16 --- quit: proteusguy (Ping timeout: 260 seconds) 01:04:31 I saw some small text editor in forth on github 01:05:06 fk dijkstra, COBOL ftw 01:09:35 --- quit: mnemnion (Remote host closed the connection) 01:20:43 I think it could be done 01:20:56 a mathematical notation to share forth logic 01:21:25 always working to the bare minimum simplest fastest mathematical definition. Something easy to implement in any forth. 01:22:16 This "mathematical notation" exists already. 01:22:25 It is called Krivine machine. 01:22:38 r u that guy from earlier 01:22:46 also sure maybe it is the krivine machine but it will take me time to investigate that 01:22:58 * ASau shrugs. 01:23:59 One week in a library easily saves a year of experimentation. 01:25:36 is this the machine? https://www.irif.univ-paris-diderot.fr/~krivine/articles/lazymach.pdf 01:27:17 Yes, I think it is the "original" paper. 01:28:33 Ok first I need to understand the four rules 01:28:48 and then I need to implement it in assembler 01:29:47 is this the first one? (M N, S, E) -> (M, (S,(N,E)), E) ? 01:33:10 If you want to follow that way, you can find some other paper easier to follow. 01:33:18 E.g. ones by Biernacka et al. 01:33:40 Can I already get a kriving machine for my operating system? 01:33:45 or do I have to build it? 01:34:08 --- join: proteusguy (~proteusgu@183.88.71.215) joined #forth 01:34:08 --- mode: ChanServ set +v proteusguy 01:35:16 See, e.g., "From Interpreter to Compiler and Virtual Machine: A Functional Derivation" by Ager et al. 01:35:32 It has some step by step explanations. 01:37:42 how many people in the world know about and use krivine machines? 01:38:08 Fewer than use forth. hahahaha :) 01:39:20 O'Caml builds upon it, so pretty any person who wanted to know how it work on the lower levels, should be aware. 01:39:33 O'Caml? 01:39:38 You can estimate the number of O'Caml programmers yourself. 01:39:44 I thought O'Caml had a terrible type system 01:39:59 Ocaml is a great functional style language. I don't know many that are aware of Krivine machines. 01:40:41 But with a krivine machine I can just start producing whatever I want mathematically 01:40:57 I simply need to notate my math 01:41:06 in krivine 01:41:20 John[Lisbeth], yes but you can without as well. :) It's orthogonal to the point. 01:41:36 so once I have an empty krivine machine, what do I put in it? 01:43:38 I guess what I want to do is patch together mathematical functions 01:43:55 first of all I want to notate them in a way that is purely functional and where the math can be proven 01:44:06 and second of all that hte math can be shared 01:44:15 and also so that it is easy to connect functions together 01:44:35 And so then I will start putting math functions in there and trying to combine them together and make them more simple 01:44:39 and math will be my programming language 01:45:25 John[Lisbeth], if this is your real interest - executable algebraic expressions & proofs where the syntax more closely the written form - I suggest you try haskell. In haskell, every "program" is actually a proof utilizing an extremely expressive type system. 01:45:57 is haskell implemented in this krivine machine? 01:46:35 Don't believe so but it doesn't matter. Krivine machines are an implementation detail. The expressive potential is the same. 01:47:14 Somehow in my mind I believe a krivine machine to be as easy to use as a forth 01:47:34 John[Lisbeth], http://haskellbook.com/ and https://www.microsoft.com/en-us/research/people/simonpj/ and https://github.com/pushcx/hpffp-resources 01:48:31 haskell woudl have to be implemented in a krivine machine in assembly 01:48:41 or I would have to be able to modify haskells so that it was 01:48:53 and it would have to be the most minimal assembly krivine machine it could be 01:48:59 --- quit: ASau (Ping timeout: 250 seconds) 01:49:23 The last link is a repo of all the referred original papers from the book in the first link. Those papers are basically all the first order concepts behind functional programming and type systems that you're interested in. Serious formal maths stuff and quite powerful. More academic than practical, however, unless your program is properly constrained. Forth takes a far more practical approach rather than being "pure". 01:50:45 What syntax does a krivine machine us when you get into it? 01:50:55 an empty one 01:51:13 Why do you insist on the krivine machine? Whatever syntax you like. Your higher order language determines that. 01:51:34 I could be wrong but I have to explore the possibility since forth is sort of imperative and in my heart of hearts I Think functional is better 01:51:42 and krivine is four rules 01:52:49 forth is concatenative. You can make it functional or imperative as you like. It doesn't enforce any programming style but it probably better supports the functional style than imperative when used properly. 01:54:03 John[Lisbeth], I think if you like to be able to derive your entire system from first order lambda calculus principles you should definitely go straight to haskell. If, however, your interest is a practical system that doesn't contain anything it doesn't absolutely need and still inherently supports functional style constructs then give forth a shot. 01:54:28 Either direction you go - I'd recommend playing with it for 3-6 weeks and seeing how you take to it. 01:56:43 I don't think haskell is the solution I want 01:56:59 Although now I can see I can get alot out of haskell's user created functions 01:57:17 But it sounds like I need to implement my own krivine machine at least and then implement forth in the krivine machine 01:57:29 krivine is simpler to build in assembly than forth 01:57:38 and from krivine I can construct forth 01:57:45 perhaps even purely functional forth 01:57:57 and I can use monads for side effects 01:58:02 John[Lisbeth], I don't believe that to be a true statement but I doubt the order of complexity is so much that it matters either way. 01:58:29 I still have ot investigate krivines more 01:58:34 but I Think krivine and forth can live in harmony 01:58:49 perhaps I will just implement rpn in krivine 01:59:11 John[Lisbeth], honestly I think you've been sold a bill of goods but the only way to really know is to try it out. Either way you will learn something useful I expect. 01:59:34 I have to choose something purely functional over something not 01:59:51 If I can do it in four steps then that's great 02:00:43 and then I guess once I had rpn in krivine I would make some sort of math package manager 02:00:46 John[Lisbeth], I advise avoiding "pure" anything. Those things rarely break out of the realm of theoretical into the realm of useful. 02:01:15 I'll just have to test the speeds 02:01:24 but krivine allows me to create a language out of math 02:01:49 John[Lisbeth], krivine is in no way unique in that respect. 02:02:10 I'll just have to see the speeds 02:02:33 assembly -> krivine -> postfix -> math package manager 02:02:53 good luck 02:03:35 Once I've got postfix I've got the power of forth, right? 02:03:49 implementing postfix on krivine is minimal if krivine is straight assembler 02:03:58 no. you need a data stack and a call stack as well and pointfree syntax. 02:04:18 and a libked list 02:04:22 Perhaps I would have to implement those functionallyf irst 02:04:28 and then postfix 02:04:31 I'd have to play around with it 02:04:37 but once in krivine it is just playing with math nothing more 02:04:48 and call threading 02:05:15 krivine -> unknown -> postfix -> unknown -> math package manager 02:05:54 Postfix is all I want. I hated haskell because of how complex it had become 02:06:12 composition using words and atoms is key 02:06:50 John[Lisbeth], then you're more interested in concatenative rather than functional. 02:07:04 purely functional concatenative 02:07:57 concatenative is the best syntax I could hope for 02:08:07 Perhaps one rivals it but I don't know what it is 02:08:08 it's not missing anything. 02:08:19 whats not missing anything? 02:08:27 concatenative syntax. 02:08:44 it's absolutely expressive and flexible and simple. 02:08:57 Are you against me implmeneting postfix in a krivine machine? 02:09:04 nope. 02:09:13 do you think it is foolish? 02:09:42 John[Lisbeth], depends on your goals. At the very least it's likely a worthwhile learning experience. 02:10:19 reverse polish notation takes lisp notation and makes it way more compact and efficient 02:10:19 If your goal is to implement a forth then yes - it's silly and actually probably antithetical to forth thinking. 02:10:41 --- quit: nighty (Quit: Disappears in a puff of smoke) 02:10:44 "forth" thinking is just as arbitrary as "goldfish thinking" 02:10:58 If you wanna implement a forth-like concatenative language with other properties that you believe a krivine machine offers then it's definitely worth checking out. 02:11:17 John[Lisbeth], no it isn't. It's actually quite strict. 02:11:36 Technically speaking I am a nihilist 02:12:01 Every assertion in my mind I recognize as having a probability of being true or false. Nothing I hold to be absolutely true or false simply probability. 02:12:10 John[Lisbeth], FWIW I almost NEVER code in forth. I'm always building little forth-like languages with interesting properties. I just find the pointfree, concatenative syntax a great starting point. 02:12:26 I do too 02:12:52 So I have nothing against doing something un-forth-like. Just be clear as to what your goals are and make sure your decisions are aligned with those. 02:13:53 Just understand - as soon as you start introducing anything that isn't absolutely necessary in terms of complexity then you've left forth thinking and abandoned much of its value. 02:14:11 I stand by krivine 02:14:22 It's that discipline which is required to succeed with forth and languages that share its foundation. 02:14:38 the foundation of forth is make it yourself 02:14:48 each person's forth is their own 02:14:52 John[Lisbeth], as long as krivine machines are giving you something that you can't do better or live without then you're on the right track. 02:15:23 John[Lisbeth], that's not the foundation, that's just generally a common conclusion. :) 02:15:38 krivine -> math package manager -> unknown 02:15:45 go for it. 02:15:53 stop chatting and start coding! ;-) 02:16:09 I am too busy thinking to code right now 02:19:57 Don't think too far ahead when you're still playing with first order principles. Get something tiny working and then test your theories on top of it. Will constrain your thinking to real options. If you hit a brick wall then step back and try again. 02:20:59 Besides small progress points will encourage you to proceed. If you make a big design up front it will quickly become so intimidating you will never see it happen. 02:21:16 So for since I discovered forth I've been breaking all the walls 02:21:31 I need to run and run until I smack into something and get a trapped in a wrong assumption 02:21:36 and then break my way out again 02:21:52 It's a process that has not failed me yet 02:23:30 good luck 02:24:09 if you don't want to talk that's fine 02:24:25 I learn well by asking questions of people and bouncing my ideas off of them 02:24:28 haha I didn't say that. I thought you were thinking. 02:25:21 John[Lisbeth], what kind of development have you done before? Curious what kind of project history you have so I understand your context. 02:25:40 Well let me just tell you about me since this is such a small audience 02:26:14 My name is John M. Beck and I live in Washington near Seattle. I moved up here 16 years ago from Texas because my dad got a job at Microsoft. 02:26:47 I've been homeschooled my whole life. I dropped out of college twice because I just couldn't get interested in my course work. Especially the second time because I was so enveloped in my computer work. 02:27:24 My dad gave me lots of electronics from when I was young and groomed me to be a programmer. Part of my schooling was to play kids games on the computer which were not only learning but designed to teach mouse interfaces 02:28:02 My first computer of my own was a windows xp computer and I spent the better part of a year just exploring the menus in this system and autistically clicking buttons just poking to see what they would do. 02:29:47 When I was 16 I was using a Windows computer and I had set automatic updates to turn off. Despite this windows restarted proudly announcing "restarting for updates" causing me to get a bad grade on assignment I had procrastinated on. I decided that if I was truly the master of my own computer it would not restart without my permission, and so I installed ubuntu 10.04 02:29:59 --- join: true-grue (~true-grue@176.14.222.10) joined #forth 02:30:29 I spent 2 years distro hopping and then I learned C++. I hated c++ so I learned bash. The people in #bash were so upset at me they told me to leave and talk to the people in #haskell or they would ban me. 02:31:03 When using haskell I realized I wanted to abstract all the syntax into polish notation so I wouldn't have to think hard to parse. That lead me to lisp for a few months 02:31:25 in that time I learned emacs and I am talking to you through an emacs prompt in tmux on a freebsd virtual machine in microsoft azure 02:31:46 I on a whim decided to look up reverse polish notation and so how much like lisp it was and how low resources it was. 02:31:56 So what systems have you actually written? What apps? Or just experiment with languages thus far? 02:32:13 THe only real project I have ever written was a dynamic finite state machine in javascript. It is pretty well documented. 02:32:41 I made the mistake of making it GPL II and not LGBL and so I mourne the fact that I can never program javascript professionally with it. 02:32:43 that's a tool, not an app. :) so I'd say experimented. 02:33:09 I could have stayed in c++ my first language but I am glad I made it to forth 02:33:17 It's your code. You can re-license it however you like. 02:33:31 I have to contact a lawyer before I do 02:33:41 but it's not very good anyway I would be able to re-implement it in forth now 02:33:45 John[Lisbeth], no you don't. You change the license and say "here". 02:33:54 it's irrelavent because javascript forth 02:33:56 I have to run now I'm afraid. 02:34:03 ttyl 02:34:03 l8er 02:34:45 lol maybe f# really was a good solution then and I was just dumb 02:38:34 --- quit: proteusguy (Ping timeout: 240 seconds) 02:45:56 http://www.kevinalbrecht.com/code/joy-mirror/jp-joyjoy.html ooh shiny 02:46:10 I wonder what it would be like to be a script kiddie with mathematical equations 02:47:39 The hard part is getting it optimized for my hardware which is doable in postfix. But here lies the tricky tricky question. Do I implement postfix and then optimize or do I optimize and then implement postfix. Either way I am implementing the math package manager first 02:48:46 I think the math package manager should be mainly http 02:50:04 well nah first I've got to have something that takes data and incorperates that data into the language 02:51:13 that data would have to take some format 02:51:26 in that format I can implement the optimizations for my hardware 02:51:52 the implementations of the optimizations create somethign approximal to a joy style postfix 02:52:22 Once I have postfix I have almost everything I need to feel complete in a language 02:58:02 assembly -> krivine -> strict ans perhaps 03:03:06 assembly -> krivine -> solution to problem being solved 03:04:13 Ah here is my mistake. assembly -> krivine -> repl -> solution to problem 03:05:26 assembly -> krivine -> postfix -> repl -> solution 03:06:27 this satisfies me providing krivine is the best solution to kernels and postfix is the best solution to mathematical notation. 03:06:57 but for postfix I need postfix components 03:07:36 assembly -> krivine -> postfix components -> repl -> solution 03:08:20 assembly -> krivine -> unknown -> postfix -> repl -> solution 03:12:13 the assembly should optimize krivine for my hardware 03:12:35 krivine should directly implement postfix 03:15:23 assembly to produce smallest krivine. Krivine to produce most minimal purely functional postfix. Most minimal purely functional postfix written mostly in it's self and optomized for my hardware. postfix accepts mathematical equations 03:15:35 math as a universal language can be shared into postfix 03:19:09 --- join: nighty (~nighty@s229123.ppp.asahi-net.or.jp) joined #forth 03:25:44 from postfix I can actually implement math problems in a sane way 03:25:53 and from there it's just all math. The open world of math is my package manager 03:27:31 most minimal krivine in assembly -> most minimal joy in krivine -> math including the maths to optomize my system 03:31:07 --- join: mnemnion (~mnemnion@2601:643:8102:7c95:b815:6961:102b:7f7) joined #forth 03:35:32 --- quit: mnemnion (Ping timeout: 250 seconds) 03:40:34 The number of people who know about Krivine machines is definitely large enough. 03:40:51 It'll solve my needs 03:40:56 KMs are to O'Caml what SECD to Lisp and WAM to Prolog. 03:41:31 If a person is not interested in internals of his programming language, he may not know about it. 03:41:51 If he is, he knows at least the term. 03:41:59 ...And CAM to Haskell. 03:42:35 ur back hooray 03:42:43 ok so 03:43:09 I need to get into a krivine machine 03:43:14 You write too much text that mostly follows Forth propaganda. 03:43:26 Propaganda and reality is not the same. 03:43:28 --- join: proteusguy (~proteusgu@14.207.40.215) joined #forth 03:43:28 --- mode: ChanServ set +v proteusguy 03:43:40 I need access to a krivine machine 03:43:47 do you know where I can get it? 03:44:11 otherwise I've got to learn some math 03:44:15 O'Caml should still have backend based on results of ZINC. 03:44:48 "Some math" you speak of is mostly algorithmic side. 03:45:00 Like you need to know what it is and how to implement it. 03:45:08 You don't need foundations behind it. 03:45:44 It's hard to find a good explanation of the algorithm in plain english or on notation I understand 03:47:04 If it helps you, you can start from SECD machines. 03:47:22 IIRC, there was a person who decided to do what you want. 03:47:39 He has implemented several versions of SECD machines and published the code. 03:48:16 On DSLs. 03:48:28 Forth is very bad choice to implement DSLs. 03:49:10 If you need demonstration, check how many useful DSLs are implemented in Common Lisp, Racket, JavaScript, Haskell, and how many of them are implemented in Forth. 03:50:05 Next. 03:50:22 You don't seem to understand why Forth has postfix syntax. 03:51:12 DGASAU, quantity has nothing to do with appropriateness. Forth is an outstanding language for building DSLs. ANY isomorphic concatenative language excels as DSLs. 03:51:14 Which is important part of understanding Forth technology. 03:51:51 proteusguy: it has everything to do with appropriateness. 03:52:07 There's a fundamental reason why algebra uses infix notation. 03:52:58 you know what... I'm pretty sure when it comes down to it, C was a bad choice for writing an OS 03:53:06 yet, it seems to have survived for four decades in that role 03:53:08 DGASAU, perhaps it has something to do with popularity of the language and not appropriateness? Otherwise everything would be written in java, right? 03:53:28 DocPlatypus: C _was_ a good choice for writing an OS. 03:53:35 DocPlatypus: _for_its_time_ 03:53:38 infix notation has its flaws 03:53:58 What is the fundamental reason that algebra uses infix notation? 03:53:59 postfix notation is different and alien... until you get used to it. 03:54:57 proteusguy: The most important operations are commutative and associative. 03:55:30 technically yes, though subtraction and division are important as well 03:55:57 You get those as inverse of addition and multiplication. 03:55:57 and technically they are just the inverses of addition and multiplication respectively 03:56:27 however... get into expressions where parentheses have to be nested multiple times, and this is where postfix notation starts to look better 03:56:44 DGASAU, still waiting to hear your claimed advantage. Are you saying it's easier to re-work or simplify the expression? 03:56:45 2 2 + looks like an odd way to add two and two... 03:57:09 proteusguy: yes, it is a lot easier to operate with expressions written that way. 03:57:25 until you're doing something like (-(b^2)±sqrt(b^2-4*a*c))/(2*a) 03:57:27 DocPlatypus, that's just symptomatic of instruction. Not inherent in the syntax itself. 03:57:28 DocPlatypus: technically, postfix notation is prefix notation written backwards. 03:58:43 DGASAU, so why are scientific calculators RPN? We do lots of algebra and calculus there. I actually find breaking up algorithms in to RPN as easy or easier than infix. 03:58:44 You can get accustomed to that style, but I'm afraid that verb-object order is a little bit more widespread. 03:59:21 okay, let's look at infix notation first 03:59:25 2+2 03:59:32 DGASAU, so you're claim is that it's culturally superior and not inherently superior in terms of usefulness? 03:59:38 take two, get ready to add something to it, which is also two 03:59:42 2 2 + 03:59:47 (postfix) 03:59:53 take two, take another two, and add them 04:00:10 or... in Forth terms... 04:00:26 proteusguy: for the same reasons as Forth exists: broken or limited platform. 04:00:35 push a two on the stack, push a two on the stack, take the top two items off the stack and add them, putting the result back on the stack 04:00:47 DocPlatypus: you're following Krivine machine's operation. :) 04:01:14 RPN is easier to follow than many infix expressions with parentheses 04:01:18 especially if properly commented 04:01:37 and it beats the hell out of using a bunch of different variables to store the intermediate results just for readability 04:01:59 Can you rewrite at least your (-(b^2)±sqrt(b^2-4*a*c))/(2*a) in RPN? 04:02:07 You have 5 seconds to do that. 04:02:36 get real, it's going to take a bit longer than 5 seconds 04:02:42 Why? 04:02:53 DGASAU, that's an interesting claim but you've yet to provide any evidence that infix is better than postfix for algorithmic expressions. I think it's more culturally intuitive, but as a useful tool both for human thought and computer implementation I've found postfix to be more practical and automatically leads you to more more normalized structure. infix leaves too many bad options that it takes a lot of experience to figure out the right ones. 04:03:08 working with anything that complicated is just going to take a bit longer, maybe a couple minutes 04:03:38 DocPlatypus: so, you admit that you have to _work_ on it to convert to RPN. 04:04:01 let me make sure I even have that formula right 04:04:11 it has been a while since I've worked with it 04:04:23 Did I ask to write correct formula?? 04:04:33 I asked to rewrite what you have written. :) 04:04:35 DGASAU, as a short hand notation infix is quite convenient. But no one actually works out the problem like that on one line. Those parenthesis are there because of flaws in infix (and prefix). They are not a feature. 04:04:50 proteusguy: bullshit. 04:05:07 A lot of people worked and continue to work in infix on larger problems. 04:05:20 DGASAU, I see you're full of opinions and baseless assertions but devoid of evidence. You used to be better than that. 04:05:27 DGASAU: no, proteusguy is spot on. in a complex expression, parentheses are a flaw of infix 04:05:45 and I got it wrong... it's -b not -b^2 04:05:45 anyway 04:05:48 DocPlatypus: you don't need parentheses for the most important operations. 04:06:07 (assume a, b, and c are Forth locals in floating point) 04:06:27 DGASAU, by time you've eliminated the parenthesis you've simply created an inefficient version of the postfix model. :) 04:07:00 It is not "by the time". 04:07:12 You always have it from the very beginning. 04:07:25 b fnegate b f**2 4e0 a c f* f* f- fsqrt f+ 2e0 a f* f/ 04:07:33 b fnegate b f**2 4e0 a c f* f* f- fsqrt f- 2e0 a f* f/ 04:07:37 there 04:07:44 about a minute and a half, not bad I guess 04:08:01 if you really want the wrong version I wrote from memory just throw in f**2 after b in both 04:08:06 Still not seconds that you spent to write original expression. 04:08:16 DGASAU: so fucking what? 04:08:21 So fucking that! 04:08:33 That is clear demonstration that RPN is a lot inferior. 04:08:44 who really gives a shit that it takes longer than 5 seconds? 04:08:47 To any person who isn't brainwashed. 04:09:12 What happens with expressions that take few minutes to write in infix? 04:09:13 okay, how much is 2+3*4/5+6-7? 04:09:25 DocPlatypus, if you were putting this expression into an RPN calculator would you really do it in one long line? 04:09:30 you have one chance to guess the right answer. 04:09:39 proteusguy: maybe 04:10:04 $ awk 'BEGIN {print 2+3*4/5+6-7}' < /dev/null 04:10:04 3.4 04:10:09 DocPlatypus, haha I wouldn't. I would simplify those terms and construct the expression as a combination of simpler terms. 04:10:22 DGASAU: wrong. 04:10:26 DocPlatypus: bullshit. 04:10:45 Let's go out to #math and ask there. 04:10:54 it's 3 04:11:00 because my calculator said so :-) 04:11:19 answer's 3.4 :) 04:11:27 I don't care what #math says 04:11:38 haha you got one of them integer only calculators? :P 04:11:52 now... on the other hand... 04:11:59 That's the point: you're brainwashed fanatic who rejects any opinion not aligned with yours. :) 04:12:06 2 3 4 5 6 7 - + / * + 04:12:16 always evaluates to the same result. 04:12:25 DGASAU, pot, meet kettle - black. 04:13:29 I probably put those in an entirely different order but I think the point is clear. 04:14:04 "I probably put those in an entirely different order" indicates that you are not even sure, if you've got your notation correct in the first place. :D 04:14:24 it's an example 04:14:31 Yes, it is. 04:15:06 If you can't deal with an example, how can we be sure that you can deal with real problem? 04:15:17 the point is clear, RPN is unambiguous and there's no squabbling over order of operations when the parentheses aren't there 04:15:42 DGASAU: I actually write Forth code. when I'm writing a real program I get it right 04:15:48 when I'm on IRC who really gives a shit? 04:16:20 DocPlatypus: again, if you can't deal with an example, we can't be sure that you can deal with real problem. 04:16:55 I can deal with the real problem. 04:17:13 The example above indicates that you can't. 04:17:28 it was an example to prove a point about RPN versus infix 04:17:30 If you don't care with quality of your arguments, why are you entering disputes then? 04:17:59 Yes, and it demonstrated that you can't even get your RPN correct. 04:18:03 okay... the RPN version of the example above, works out to be 5 04:18:30 The notation must be so much superior that you can't get it correct in the first place! 04:18:52 or... the infix equivalent of 2+(3*(4/(5+(6-7)))) 04:19:00 DGASAU, back in my school days I could work things out in RPN much faster than infix. 04:19:06 which is enough to cross the eyes of some people reading code 04:19:46 proteusguy: back in my school days I could evaluate really complex expressions with 2 digits of precision a lot faster than anyone using calculator. So what? 04:19:50 formulas always look terrible in 1 dimensional form anyway 04:19:53 especially matrix stuff 04:20:04 you would arrive at exactly 3 by: 2 3 + 4 * 5 / 6 + 7 - 04:20:07 there 04:20:08 But I used table of decimal logarithms for it. 04:20:34 nha_: agreed. one reason I regret never learning TeX notation 04:20:34 it speaks to your absolutely baseless claim that infix is superior to postfix 04:21:06 how many times has DGASAU been kicked out of this channel anyway? 04:21:29 I mean, I have not followed it continuously but I know it's been at least a few. 04:21:39 none by me. in fact he's still here only cause I asked that he not be banned. 04:21:46 * proteusguy sometimes regrets. haha 04:21:49 DocPlatypus: ten years ago you'd be kicked faster than me, but since the generation changed... 04:22:08 nha_: linear algebra is very good example how RPN is so much superior to infix notation. :) 04:22:16 I don't think I started hanging here until 2008 or so 04:22:50 DGASAU, um... no. in fact you are trolling. you're in a forth channel (the ONLY channel you're on btw) and knocking the fundamental notation. It's like going into haskell and saying types suck! Please stop. 04:22:51 I think sane people mostly left by then already. 04:23:00 DGASAU, you're welcome to go. 04:24:01 Yeah, I'll probably stop for now. 04:24:02 DGASAU: maybe they got tired of you and left? 04:24:26 Sectants' arguments have mostly ended with "get out of our lawn." 04:25:15 DocPlatypus: some have openly told that they got tired of Forth, actually, but you may think whatever you wish. :) 04:25:44 whats the single worst thing about forth? 04:26:19 nha_: to me, that most of the better and feature-complete implementations are proprietary 04:26:50 specifically, that GNU Forth (Gforth) is still missing a fair amount of stuff that I'd want to use 04:27:08 * proteusguy did walk into the #haskell channel when first learning and asked why they call their list structure a list when, in fact, it behaves much more like a stack. :) Was a firestorm for two days. I think we're a lot more open here. 04:27:23 lol 04:27:30 you guys 04:27:34 you are both fucking wrong as shit 04:27:44 for C, maybe i'd say its because it is too easy to accidentally hit undefined behavior 04:27:47 k-machine is the most minimal machine it is just four functions 04:27:53 does everything you need 04:27:54 however rpn is better 04:28:01 or that it claims to be low level but it's not really low level enough when you need control over the stack or tail calls or something 04:28:06 and you should implement rpn in a k-machine if you understand rpn 04:28:13 nha_: I would agree. it is way, way too easy to accidentally leave a gaping security hole in a C program 04:28:35 rpn is superior but forth is inferior 04:28:43 forth is just one version of rpn and in a sense any rpn is like a forth 04:28:49 it's a bit more difficult in Forth but still easier than I would like 04:28:52 John[Lisbeth], there is, in fact, a 3 instruction forth. :) 04:29:01 * proteusguy drops mic. 04:29:17 talk to me about mathematical functions here 04:29:20 I still want to write my own Forth, though... just to say I've done it before 04:29:32 but I have not been in much of a coding mood the last few months 04:29:50 what they are saying is rpn is superior and it clearly is 04:29:56 once you get good at it you can copy math about straight over 04:30:02 the problem is on a GNU/Linux the outer shell still needs to be written in something like C or assembler 04:30:05 and you can compile it in your head 04:30:18 but 04:30:24 John[Lisbeth], describe for me a COMPUTER instruction that isn't a mathematical function. Not entirely clear what your definition of math is. 04:30:24 forth is not the best environment 04:30:35 I am a nihilist math is arbitrary 04:30:39 it is probably not though 04:31:02 it's a bitch to work with strings in Forth in certain cases 04:31:09 this dude just wants you guys to recognize that this little machine thing is better 04:31:18 but he wants you to give up rpn 04:31:34 which is dumb because we are probably all here for the rpn 04:31:47 John[Lisbeth], so you're giving me the Humpty Dumpty defintion of math? :) “When I use a word,” Humpty Dumpty said, in rather a scornful tone, “it means just what I choose it to mean—neither more nor less.” 04:31:47 but I've done some crazy stuff in Forth. I wrote a program that would make a bunch of graphics in PPM format 04:31:56 just about all of us if we were drawn tot his language must have learned rpn at some point 04:32:11 some of us were drawn in for the minimalism and realized that it was actually pleasant to use 04:32:17 actually, its output was a shell script to make them, as I decided it would be easier to write that way instead of opening a bunch of different files 04:32:29 I was drawn in because it was pleasant to use and found out it was minimal 04:32:42 IF all the heads in here got together 04:33:02 There's a guy who writes forth quite well. His company, however, required the code to be written in C. He then wrote a forth DSL that generates the C equivalent code. The output was quite readable and extremely well structured C code. Probably much better than the C team would have developed. 04:33:09 I was drawn in because I had heard about it in the 1980s when I was still learning BASIC and the weird syntax I remember reading in that old Mapping the Atari book stuck with me all these years 04:33:13 we could implement a single x86 krivine machine 04:33:26 and this dude and I can tweak it 04:33:29 and we can run benchmarks 04:33:56 John[Lisbeth], "we"? :-) I think only you and DGASAU were really interested in krivine machines. 04:34:10 no I just found out about those a few days ago 04:34:11 I am a lisper 04:34:22 I went to lisp because I liked the syntax of polish notation 04:34:25 itw as very similar to algebra 04:34:53 I think any ordinary person who passed highschool algebra could learn reverse polish notation 04:35:16 It's easy and it happens to be minimal and those two things are related 04:35:22 it is minimal because it is easy for the computer 04:35:34 it is easy for us just as it is easy for the computer because it is minimal 04:35:35 John[Lisbeth], I look forward to seeing your example. 04:35:59 My example is simply whatever the simplest krivine machine is in x86 which will take me a few months 04:36:42 as soon as I've got the krivine going I am going to implement the base of rpn, and as soon as I've got the base I'm going to implement a repl 04:36:49 I can't imagine such a simple device taking more than a weekend? 04:37:11 I have never written any assembly and the algorithm for the krivine machine is too complex for me to parse the equations 04:37:25 also there is the roadblock of actually writing good assembly 04:37:51 I can tell you how I'll program in it too 04:37:58 show don't tell. 04:38:05 It's just math 04:38:10 I want this language to just be math 04:38:12 nothing else 04:38:19 you can optimize in math 04:38:22 develop in math 04:38:35 the only thing you would require is to understand rpn 04:39:01 have you tried mathlab or the amazing scipy libraries for python? not rpn but real executable math. 04:39:05 --- quit: DocPlatypus (Ping timeout: 255 seconds) 04:39:17 I don't like the syntax of math I like the syntax of rpn 04:41:50 I can teach someone who knows highschool algebra rpn. I have been testing it out on people I meet so see how fast they can learn it. 04:42:25 if you star them out slow with things like + - / and * and build your way up to more complex version of those operators, then you can ease in more complex operators 04:42:32 every kid who learned physics in highschool in my time learned rpn. was never a problem 04:42:47 rpn allows what lisp allows but more efficiently 04:43:05 it's a brilliant way to write programs 04:43:17 easy for the computer easy for people, once they get used to it 04:43:34 and if we taught it to kids in school again, and we made computers work like that, then every highschooler in america could program a computer 04:43:52 and in many other countries where algebra is mandatory for all adults to learn 04:44:20 why is it so important that everyone can program a computer? 04:44:36 Because it will take work off of mankind. 04:44:55 And because I am afraid aliens already have something far better and I want to progress humanity's technology as far as possible in my lifetime 04:45:36 chips need to be written with this krivine machine plus a repl 04:45:37 i dont see how it takes work off 04:45:50 to automate manual labor isnt actually that easy 04:45:52 if the math checks out that is which I still have to verify with benchmarks and careful study 04:45:58 not manual labor 04:46:02 I mean the labor of programmers 04:46:18 If most people can learn algebra most people can program. That's what it means. 04:46:34 It would create a new era where most of the population could program a computer. 04:46:40 most people can learn to follow a linear progression of steps to solve algebra problems 04:46:46 and then are unable to apply it in their life 04:46:49 in any way at all 04:46:59 IT is because the syntax is so confusing to parse 04:47:13 with postfix you can redefine things to be easier on your eyes 04:47:15 all using math 04:47:28 math would be the modern language 04:47:30 changing the syntax wont fix the above problem 04:47:32 a universal format that we can use with aliens 04:47:55 this syntax is good 04:48:08 and it can be modified to work how you want it to 04:48:41 aliens speak math if they can reach us 04:48:50 they must understand it 04:49:02 if we can write programs in math then our computers will be compatible with theirs 04:49:16 if alien life exists its probably incomprehensible to humans 04:49:30 if they were intelligent, which I hope they are, then they would know maths 04:49:30 nha_, ah you mean they code in perl! 04:49:31 humans cant even communicate with for example dolphins 04:49:39 which evolved near us 04:49:44 it may even be that if we do this our system could be ahead of theirs who knows 04:49:47 and prob are what 60%+ similar in dna? 04:50:11 simpler computers, society of programmers, universal mathematical constants as language 04:50:23 rpn + krivine 04:51:22 this computer would be pure math 04:51:34 purely portable, except for your custom optimizations 04:51:43 capable of everything forth can do 04:52:09 I am willing to bet that with these four equations it woudld be at least less than 1k 04:52:47 I see the technology in this room as the most revolutionary thing in computer science. 04:53:23 Being 22 I know it's what I want to do for the rest of my life. 04:55:02 For you guys it's just an old argument but for me it's the epoch to what I have been working on for four years 04:55:31 John[Lisbeth], you have a github account? 04:55:36 yeah 04:56:10 meh I don't feel like resetting my github password 04:56:26 I have one file on there and it is a measly dynamic finite state machine in javascript under gpl 2. 04:56:47 well post your uri here when you start on your machine and perhaps you'll get some pr support.\ 04:56:47 I am never the type where I can just sit down and code, I have to make it better 04:57:30 six months of my life gone minimum 04:58:07 doesn't bode well for your project getting completed. 04:58:40 most of it will be learning assembly and learning the algorithm 04:58:54 and then the last bit is implementing rpn 05:00:17 John[Lisbeth]: technology behind Forth is actually half-century behind the other world. 05:00:32 forth yes, math no 05:00:34 John[Lisbeth]: again, you don't understand why Forth uses RPN. 05:00:38 DGASAU, honestly... you just can't help yourself? 05:00:41 lol 05:00:46 rpn is better 05:00:51 John[Lisbeth]: no, it isn't. 05:00:56 you'll never convince me by just saying normal math is better 05:00:58 But again, you need to understand why Forth uses RPN. 05:01:17 rpn superior 05:01:21 Until you understand the background, you can't get forwards. 05:01:31 Forth uses RPN not because it is superior. 05:01:48 I can get forwards just fine bubs. Thanks forr sticking around to give me the virtual machine but if that's not enough then iI don't know what is 05:01:59 In fact, it uses it because RPN is inferior but other reason invervenes. 05:02:08 rpn is superior 05:02:14 * DGASAU sighs. 05:02:16 a million times over 05:02:17 Read above. 05:02:28 A person who claims writing Forth can't get his RPN correct. 05:02:40 oh well he could debug it in like a minute 05:02:44 I have spent hours parsing regular math 05:03:00 polish works for me 05:03:08 it is the way I like to think 05:03:14 And he spends at least two times longer than normal to get it in the first place. 05:03:45 I have spent weeks or even months parsing regular math, but that doesn't prove anything. 05:03:52 I can implement whatever I want in the virtual machine 05:03:54 I want rpn 05:03:58 its my favorite 05:04:02 Because I haven't ever seen the same math written in postfix notation. 05:04:03 it was made in heaven by god just for me 05:04:19 put it all in postfix notation and see what happens 05:04:23 You write too many propaganda words. 05:04:35 Yes, put it all in postfix notation and see what happens. 05:04:49 its cause the internal forth sytem is imperative 05:04:52 You seem pretty determined to learn it the hard way. 05:05:02 you can write concatenative in a purely functional way 05:05:16 once you have purely functional in your virtual machine you have complete control 05:05:43 rpn is better if you just user it for a long time 05:05:53 but most people have to use it for a logn time before they realize how good it is 05:06:06 If you have ever studied quantum mechanics and got to propagators, you know that the distinction between "imperative" and "purely functional" is mostly notational. 05:06:06 and you are clearly upset at the very base not the notation 05:06:33 postfix rulz 05:06:57 It is a notation that works for whatever you can dream up 05:08:17 unfied notation is like a screwdriver and fixed notation is like a drill 05:09:11 and you can customize postfix however you damn well please including implementing your fancy schmancy math symbols 05:10:06 nothing stopping you from implementing infix in postscript. I bet its just a few lines of math. 05:10:25 You can customize infix as well, and you have practical programming languages doing that. 05:10:35 but infix is infinite in a sense 05:10:45 infinite complexity and a clusterfuck to parse 05:10:56 anybody can learn rpn 05:10:57 easy 05:11:03 and then they just make it exactly how they want 05:11:15 and I bet alot of them will not choose to put it in your math notations 05:11:15 Effective algorithms to parse infix were invented in sixties. 05:11:35 We would see a math langauge by now if that worked 05:11:50 the syntax is too strange toe encapsulate in text and have all math majors agree 05:11:57 and some things in math are still unproven 05:12:02 leaving gaps in our knowledge 05:12:14 So what? How is that relevant? 05:12:36 any turing complete system can do what any other turing complete system cam 05:12:43 the krivine machine is the bst most minimal turing complete system 05:12:52 rpn is the easiest to learn notation to put into that 05:13:07 you could teach it to little kids with pencil and paper 05:13:14 they used to do that in fact 05:13:15 "infinite complexity and a clusterfuck to parse" is plain bullshit. 05:13:54 I guarantee you if kids got ahold of my system and they grew up using it they would never in their right minds try to implement your wacko bullshit because it would be a clusterfuck. Too many people over history have touched math notations 05:14:09 Pf! 05:14:13 most math is still taught like how euclid did it 05:14:17 Alright, try that. :D 05:14:26 No, it isn't done that way. 05:14:36 throw out all the euclid crap. Throw out descartes 05:14:44 Why? 05:14:46 get rid of every single thing that is not completely necessary 05:14:49 make it easy 05:14:51 dead easy 05:14:57 so anybody who is an adult can be instructed to do it 05:15:02 and because it can run everything 05:15:05 math already runs everything 05:15:13 Math is not easy, and you can't make it a lot simpler than what it is now. 05:15:36 You'll find in my system that hte problems of forth have been replaced with clean crisp lambdas 05:15:43 and you will not run into the mistakes you saw in forth 05:16:15 Alright, let's see one example of big system that tries to replace everything with "clean crisp lambdas". 05:16:17 GHC. 05:16:27 lisp 05:16:29 I don't see it replacing C even. 05:16:35 Lisp too. 05:16:41 rpn > lisp > ghc 05:16:57 ghc is a mess. It might as well be regular expressions 05:17:01 At a company I worked for CL couldn't replace Java in the days of Java 5. 05:17:18 what was the reason? 05:17:34 Inferior technologically. 05:17:41 in what way though? 05:17:45 You need to rewrite a lot of stuff to get on par. 05:17:55 yeah 05:18:04 cause so many mainstream languages soak up all the devs 05:18:17 all the devs are lost in this syntax hell that is swirling around 05:18:26 and rpn is the way out of syntax hell 05:19:10 Somehow developers don't have problems with syntax at all. 05:19:18 cause they spend thirty years on it 05:19:23 IDEs handle it already. 05:19:27 a child could learn rpn in a day 05:19:31 they have in schools 05:19:56 if it was rpn then everyone who passes highschool could program not just devs who have put in 15+ years 05:20:21 it takes 2h to learn python 05:20:23 for a teenager 05:20:47 I think python is so antithetic to my philosophy I dont' bother to discuss it 05:21:00 i'm not a fan either, but 15+ years comment is absurd 05:21:27 it takes a long time to get your career going in computers 05:21:30 it shouldn't take so long 05:21:31 Learning rules of the language and the language are different things. 05:21:33 when kids nac learn it 05:21:53 You can find formal grammar for English, and it is context-free even. 05:22:03 maybe one day we'll replace english who knows 05:22:05 Now, why do you have all those TOEFL exams? 05:22:15 TOEFL? 05:23:23 I need to go to bed. I'll be back and I'm sure we'll all get well aquainted 05:24:02 Alright, you can find similar context-free grammar for Standard German. 05:24:23 Now, try to learn it within few days. 05:24:57 Just enough to pass some official exam to confirm B2 level. 05:25:19 C1 may require knowledge of non-context-free features. 05:25:29 Or may not, I don't know. 05:35:43 John[Lisbeth], you always can write it at first using for example 6502 asm it will be way easier, though emulated 05:38:58 --- quit: beretta (Ping timeout: 276 seconds) 05:45:42 I can't understand why people think that functional programming == lambdas. 05:47:51 There are so many computational models around. And some have "functional" characteristics. And you can invent your own model too! 05:50:57 --- quit: DGASAU (Read error: Connection reset by peer) 05:51:21 --- join: DGASAU (~user@lmpc.drb.insel.de) joined #forth 05:51:58 --- join: beretta (~beretta@cpe-184-58-116-76.columbus.res.rr.com) joined #forth 06:00:19 I'm flying to europe shortly. You all play nice. 06:05:20 --- quit: proteusguy (Ping timeout: 252 seconds) 06:26:01 --- join: mnemnion (~mnemnion@2601:643:8102:7c95:5d19:6f11:9065:ccbf) joined #forth 06:30:10 --- quit: mnemnion (Ping timeout: 250 seconds) 07:13:23 --- quit: dys (Remote host closed the connection) 08:12:08 --- quit: octophore (Ping timeout: 265 seconds) 08:15:16 --- join: octo_ (~octo@159.203.97.79) joined #forth 08:33:14 --- join: mnemnion (~mnemnion@2601:643:8102:7c95:5483:dcd9:f72b:c39b) joined #forth 08:37:34 --- quit: mnemnion (Ping timeout: 250 seconds) 09:38:52 --- join: mnemnion (~mnemnion@2601:643:8102:7c95:54bf:71cb:80b2:f1a5) joined #forth 09:42:59 --- quit: mnemnion (Ping timeout: 250 seconds) 09:53:20 --- join: dys (~dys@tmo-106-205.customers.d1-online.com) joined #forth 10:10:53 --- quit: dys (Remote host closed the connection) 10:11:35 Hi all, anyone know why I can't effectively set the value of LATEST in gForth? It works with no problem in JonesForth. 10:12:34 I'm trying to implement dlyund's BIND word in gForth: https://www.reddit.com/r/Forth/comments/4q2ue7/using_the_stack_instead_of_names_variables_does/d50jm3r?context=10000 10:14:37 : BLAH ." blah0" ; LATEST @ : BLAH ." blah1" ; BLAH LATEST ! BLAH 10:15:39 ^ will display blah1blah0 in JonesForth but blah1blah1 in gForth 10:25:43 most likely because jonesforth doesn't support wordlists and such? 10:27:24 Vendan: How would wordlists interfere with this? 10:28:06 LATEST is the "latest" word to be compiled 10:28:27 has nothing to do with it's visibility or wordlist presence and such, not truely 10:28:34 jonesforth uses it for both 10:28:41 --- join: DocPlatypus (~skquinn@c-73-166-108-48.hsd1.tx.comcast.net) joined #forth 10:28:56 but that's not a guarantee 10:30:32 also note that, as far as I can even tell, LATEST is not an ANS Forth word 10:30:51 LATEST points the latest link field and that's where the interpreter starts searching backwards from, no? 10:31:06 that's where jonesforth starts searching from 10:31:17 but that's an implementation detail 10:31:28 not a "this is how your forth must work to be a forth" 10:31:56 ...and : HERE DP @ ; is where you start compiling new words to? 10:32:43 no, it's just the data-space pointer 10:34:06 the relationship between data-space and code-space is implementation dependent 10:34:18 *normally* they are identical 10:36:23 Oh, like with Harvard Architecture vs. a Von Neumann architecure? 10:37:02 that's one reason to separate them, yeap 10:38:24 I suppose I should cut the umbilical cord of my now-ubilical Forth and do it like JonesForth. 10:39:21 be careful following jonesforth, I've noticed a few words implemented wrong in it 10:39:29 like 2SWAP 10:39:46 but it is a useful starting point 10:40:03 I've got a forth that I'm writing for the DCPU of notch fame 10:40:48 it's all written in forth, I build it on a linux forth and that produces the DCPU forth 10:41:06 soon I'll be able to just build it on the DCPU directly :D 10:41:21 Cool! 10:41:54 What happened to the game that it was designed for? 10:42:17 well, the original game, 0x10c, got canceled 10:42:38 :( 10:42:59 but there's been a couple games that have grabbed the DCPU spec and started building a game around it 10:43:09 I'm actually involved with one of them: Tech Compliant 10:43:12 :) 10:43:27 https://www.reddit.com/r/techcompliant/ if you are interested 10:43:47 already there hahas 10:46:52 --- join: mnemnion (~mnemnion@2601:643:8102:7c95:54bf:71cb:80b2:f1a5) joined #forth 11:02:42 --- quit: karswell` (Ping timeout: 244 seconds) 11:29:27 oooh 11:29:47 I was just thinking, some sort of fun portable CPU Simulator would be good for explaining Forth 11:30:55 --- quit: DGASAU (Ping timeout: 240 seconds) 11:31:07 wouldn't be terribly hard 11:31:32 though there are plenty of forths for all the different platforms out there 11:33:04 --- join: DGASAU (~user@lmpc.drb.insel.de) joined #forth 11:39:06 I'm having difficulty understanding the word PARSE, and can't really make sense of the signature provided, which is given as: char "ccc" 11:44:31 --- join: dys (~dys@x5f72524a.dyn.telefonica.de) joined #forth 11:47:43 it takes 1 parameter on the stack 11:48:02 and that's the "delimeter" character 11:48:40 then it reads the input buffer, looking for that delimiter 11:48:55 and returns a "counted string" 11:49:10 i.e. pointer to the start of the string, length of the string 11:52:38 --- join: Zarutian (~zarutian@168-110-22-46.fiber.hringdu.is) joined #forth 11:53:23 thank you 11:53:23 --- quit: Zarutian (Read error: Connection reset by peer) 11:53:25 --- join: Zarutian_ (~zarutian@168-110-22-46.fiber.hringdu.is) joined #forth 11:54:47 --- quit: pointfree (Ping timeout: 250 seconds) 12:17:03 --- quit: the_cuckoo (*.net *.split) 12:17:03 --- quit: Vendan (*.net *.split) 12:17:03 --- quit: APic (*.net *.split) 12:17:03 --- quit: gordonjcp (*.net *.split) 12:17:03 --- quit: beretta (*.net *.split) 12:17:03 --- quit: systemsgotyou (*.net *.split) 12:17:04 --- quit: groovy3shoes (*.net *.split) 12:17:04 --- quit: groovy2shoes (*.net *.split) 12:17:04 --- quit: djinni_ (*.net *.split) 12:17:04 --- quit: nighty-_ (*.net *.split) 12:17:04 --- quit: eatonphil (*.net *.split) 12:17:05 --- quit: diginet2 (*.net *.split) 12:17:05 --- quit: mnemnion (*.net *.split) 12:17:06 --- quit: carc (*.net *.split) 12:17:06 --- quit: Zarutian_ (*.net *.split) 12:17:06 --- quit: pdewacht (*.net *.split) 12:17:06 --- quit: dograt (*.net *.split) 12:17:07 --- quit: Keshl (*.net *.split) 12:17:07 --- quit: ovf (*.net *.split) 12:17:07 --- quit: cantstanya (*.net *.split) 12:17:07 --- quit: Quozl`_ (*.net *.split) 12:17:07 --- quit: probonono (*.net *.split) 12:17:08 --- quit: phadthai (*.net *.split) 12:17:08 --- quit: M-jimt (*.net *.split) 12:17:09 --- quit: DGASAU (*.net *.split) 12:17:09 --- quit: Uniju (*.net *.split) 12:17:09 --- quit: backer (*.net *.split) 12:17:09 --- quit: Skuzzzy (*.net *.split) 12:17:09 --- quit: DKordic (*.net *.split) 12:17:10 --- quit: malyn (*.net *.split) 12:17:10 --- quit: DocPlatypus (*.net *.split) 12:17:10 --- quit: nighty (*.net *.split) 12:17:10 --- quit: John[Lisbeth] (*.net *.split) 12:17:10 --- quit: segher (*.net *.split) 12:17:11 --- quit: npr (*.net *.split) 12:17:11 --- quit: taij33n (*.net *.split) 12:17:11 --- quit: nerfur (*.net *.split) 12:17:11 --- quit: dys (*.net *.split) 12:17:11 --- quit: ggherdov`_ (*.net *.split) 12:17:11 --- quit: jeremyheiler (*.net *.split) 12:17:12 --- quit: tangentstorm (*.net *.split) 12:17:12 --- quit: newcup (*.net *.split) 12:17:12 --- quit: true-grue (*.net *.split) 12:17:12 --- quit: irsol (*.net *.split) 12:17:12 --- quit: fiddlerwoaroof (*.net *.split) 12:17:12 --- quit: yunfan (*.net *.split) 12:17:13 --- quit: eldre (*.net *.split) 12:17:13 --- quit: Gracana (*.net *.split) 12:17:43 --- join: nighty (~nighty@s229123.ppp.asahi-net.or.jp) joined #forth 12:18:11 --- join: carc (~carc@unaffiliated/carc) joined #forth 12:18:11 --- join: mnemnion (~mnemnion@2601:643:8102:7c95:54bf:71cb:80b2:f1a5) joined #forth 12:18:21 --- join: groovy3shoes (~groovy2sh@unaffiliated/groovebot) joined #forth 12:18:21 --- join: groovy2shoes (~groovy2sh@unaffiliated/groovebot) joined #forth 12:18:21 --- join: djinni_ (~djinni@68.ip-149-56-14.net) joined #forth 12:18:21 --- join: nighty-_ (~cp@www.taiyolabs.com) joined #forth 12:18:21 --- join: eatonphil (weechat@2600:3c03::f03c:91ff:fe91:94a9) joined #forth 12:18:21 --- join: diginet2 (~diginet@107.170.146.29) joined #forth 12:19:34 --- join: nerfur (~nerfur@mail.freeside.ru) joined #forth 12:19:34 --- join: DGASAU (~user@lmpc.drb.insel.de) joined #forth 12:19:34 --- join: Keshl (~Purple@24.115.181.94.res-cmts.gld.ptd.net) joined #forth 12:19:39 --- join: ovf (sid19068@gateway/web/irccloud.com/x-tngcltpxpyuawauy) joined #forth 12:19:39 --- join: Quozl`_ (~quozl@download.laptop.org) joined #forth 12:19:39 --- join: probonono (~User@unaffiliated/probonono) joined #forth 12:20:12 --- nick: Keshl -> Guest50328 12:20:12 --- quit: ovf (Ping timeout: 240 seconds) 12:20:33 --- join: John[Lisbeth] (~user@52.165.40.155) joined #forth 12:20:33 --- join: systemsgotyou (~User@71.91.8.13) joined #forth 12:20:33 --- join: Vendan (~Vendan@li469-176.members.linode.com) joined #forth 12:20:33 --- join: the_cuckoo (~charlie@d51a50ae9.access.telenet.be) joined #forth 12:20:33 --- join: APic (apic@apic.name) joined #forth 12:20:33 --- join: gordonjcp (~gordonjcp@ilyushin.gjcp.net) joined #forth 12:20:51 --- join: cantstanya (~chatting@2001:41d0:8:c6c::1) joined #forth 12:20:54 --- join: npr (~npr@198.46.224.244) joined #forth 12:20:59 --- join: pointfree (~pointfree@c-174-62-81-78.hsd1.ca.comcast.net) joined #forth 12:22:13 --- join: segher (segher@bombadil.infradead.org) joined #forth 12:22:19 --- join: DocPlatypus (~skquinn@c-73-166-108-48.hsd1.tx.comcast.net) joined #forth 12:22:38 --- join: beretta (~beretta@cpe-184-58-116-76.columbus.res.rr.com) joined #forth 12:22:38 --- join: Uniju (~frog_styl@cpe-74-78-4-232.mass.res.rr.com) joined #forth 12:22:38 --- join: backer (~backer@cowbell.employees.org) joined #forth 12:22:38 --- join: Skuzzzy (~Skuzzzy@149-169-125-18.nat.asu.edu) joined #forth 12:22:38 --- join: DKordic (~user@93-86-150-126.dynamic.isp.telekom.rs) joined #forth 12:22:38 --- join: malyn (~malyn@54.201.34.233) joined #forth 12:23:03 --- join: taij33n- (UULNVn4xHJ@volans.uberspace.de) joined #forth 12:23:03 --- join: true-grue (~true-grue@176.14.222.10) joined #forth 12:23:03 --- join: irsol (~irsol@unaffiliated/contempt) joined #forth 12:23:03 --- join: fiddlerwoaroof (~fiddlerwo@unaffiliated/fiddlerwoaroof) joined #forth 12:23:03 --- join: yunfan (~roooot@unaffiliated/yunfan) joined #forth 12:23:03 --- join: eldre (~eldre@blip.afturgurluk.net) joined #forth 12:23:03 --- join: Gracana (~Gracana@pnnk.org) joined #forth 12:23:14 --- join: phadthai (mmondor@ginseng.pulsar-zone.net) joined #forth 12:23:38 --- join: tangentstorm (michal@2600:3c03::f03c:91ff:fec8:caab) joined #forth 12:23:38 --- join: M-jimt (jimtmatrix@gateway/shell/matrix.org/x-ozeshtzwnfrexrmz) joined #forth 12:23:40 --- join: Zarutian_ (~zarutian@168-110-22-46.fiber.hringdu.is) joined #forth 12:23:40 --- join: pdewacht (~repent@kulon.2k38.be) joined #forth 12:23:40 --- join: dograt (~dograt@unaffiliated/dograt) joined #forth 12:32:51 --- join: jeremyheiler (sid81469@gateway/web/irccloud.com/x-bnvkkpvmdnlhruih) joined #forth 12:43:00 --- quit: true-grue (Quit: Leaving) 13:00:25 --- join: ggherdov`_ (sid11402@gateway/web/irccloud.com/x-apdspdeyxdbzrkyp) joined #forth 13:01:10 --- join: true-grue (~true-grue@176.14.222.10) joined #forth 13:01:12 --- quit: ggherdov`_ (Excess Flood) 13:04:56 --- join: ovf (sid19068@gateway/web/irccloud.com/x-yyhyfoiqrpjopxbb) joined #forth 13:14:38 --- join: ggherdov`_ (sid11402@gateway/web/irccloud.com/x-nhlteyvrhwisndmm) joined #forth 13:33:13 --- join: dys (~dys@x5f72524a.dyn.telefonica.de) joined #forth 14:11:55 --- quit: eatonphil (Remote host closed the connection) 14:28:15 --- quit: tangentstorm (*.net *.split) 14:28:15 --- quit: M-jimt (*.net *.split) 14:28:31 --- join: tangentstorm (michal@2600:3c03::f03c:91ff:fec8:caab) joined #forth 14:28:43 --- join: M-jimt (jimtmatrix@gateway/shell/matrix.org/x-xtkiuiemfslumrwr) joined #forth 14:30:26 --- join: gyxile (~nick@cpc80309-grim18-2-0-cust167.12-3.cable.virginm.net) joined #forth 14:33:49 --- quit: ggherdov`_ (Ping timeout: 250 seconds) 14:34:10 --- quit: true-grue (Read error: Connection reset by peer) 14:38:20 --- join: ggherdov`_ (sid11402@gateway/web/irccloud.com/x-kmjbkirtqmluewsp) joined #forth 15:06:52 --- join: karswell (~user@100.143.189.80.dyn.plus.net) joined #forth 15:08:38 --- quit: nha_ (Quit: Leaving) 15:28:39 --- quit: nighty (Remote host closed the connection) 15:46:58 --- join: ASau (~user@netbsd/developers/asau) joined #forth 16:07:11 I'm back 16:07:26 Let me refresh my thoughts 16:07:49 reverse polish nation is pretty much the most efficient and regular way to express math 16:08:10 krivine machine is in hypothesis the most efficient machine to host a reverse polish notation interpreter 16:08:38 Within my krivine machine and my polish notation interpreter I can make certain optimizations that take advantage of my hardware 16:08:49 and implement certain features which have proved necessary in forth like threading 16:09:01 from there I have a system that just interprets math 16:09:13 and any equation which can be expressed in math can easily be expressed in this system 16:11:16 what is a krivine machine please? 16:13:04 It's just a really short math equation that represents a really tiny purely functional virtual machine 16:13:10 a competitor to the forth base 16:13:18 though not a good competetor to reverse polish notation by its self 16:18:17 --- nick: Zarutian_ -> Zarutian 16:22:34 so it basically an description of an Meele machine function with a spefic abilities? 16:25:24 I don't know about meele machine but I am not sure if meele machine is purely functional 16:25:27 I have to look it up 16:26:57 do you mean a mealy machine? 16:29:18 Meele machine has finite number of states. 16:29:32 Krivine machine has infinite. 16:29:54 Mealy, whatever. 16:44:38 --- join: nighty (~nighty@d246113.ppp.asahi-net.or.jp) joined #forth 16:48:51 --- quit: Zarutian (Quit: Zarutian) 17:08:15 well here are the machines I am considering 17:08:28 first of all whatever the most minimal forth machine is is a very valid candidate 17:08:35 --- quit: gyxile (Quit: Ex-Chat) 17:08:36 second of all, the krivine 17:08:38 mealy is now one 17:08:58 also apparently lisp and prolog have their own 17:09:10 so there are 5 in the candidacy list 17:21:03 Nishizaki et al., 2015 17:21:29 In case you want to try something really fresh. 17:21:54 "Simplification of abstract machine for functional language and its theoretical investigation." 17:22:23 Hiromitsu Nishizaki? 17:42:43 --- join: eatonphil (weechat@2600:3c03::f03c:91ff:fe91:94a9) joined #forth 17:58:28 I like the J1, but it's not exactly "virtual" 17:58:37 and def. not minimal :) 18:09:08 --- join: neceve (~ncv@79.114.94.112) joined #forth 18:09:08 --- quit: neceve (Changing host) 18:09:08 --- join: neceve (~ncv@unaffiliated/neceve) joined #forth 18:19:52 What is necessary is a sort of lisp machine in a postfix synta 18:20:23 and this lisp machine should be be both the kernel and the distribution 18:24:12 I think one of the main objectives of the kernel will be to run emacs, to run , to run xfce, to run firefox and chromium, and to use linux drivers 18:26:22 woahly crap 18:26:22 I think once those components run I can start replacing them 18:26:28 extensive plans much? 18:26:33 he he he 18:26:36 yep 18:26:45 to replace emacs I need to implement emacs lisp in math 18:26:52 to replace x I need to implement wayland in math 18:26:53 have you ever looked into OSDev? 18:27:09 Well my highest goal is to get this forked so I don't have to program on it 18:28:39 but the thing is these can be invented in math not in any language 18:30:19 implementing wayland in math sounds non-trivial 18:30:29 meh I dunno 18:30:36 I'll have to look into it 18:30:45 I think the drivers will be key 18:30:59 but implementing them in math is the secondary step 18:31:05 the first step is to get the regular programs running in this system 18:31:10 --- quit: beretta (Ping timeout: 276 seconds) 18:31:16 xfce chromium firefox and emacs 18:31:18 and xorg 18:31:30 these five programs are the main things I need for a good os 18:32:19 massive programs the result of decades, nay centuries of development time. 18:32:35 "Oh, I'll just reimplement them in math and call it a day" :D 18:33:45 you do realize most OSDev projects are considered insane successes if they manage to get out of bios driven video mode, right? :P 18:34:53 just from netbsd design 18:35:04 *just steal from netbsd design 18:35:18 https://67.media.tumblr.com/tumblr_lybcrznin41r4ftcko1_500.gif 18:35:27 John[Lisbeth]: is that netbsd or openbsd use lua for making kernel module? 18:35:56 I can't read lips 18:36:16 "and what does it mean"? maybe? 18:36:34 I dunno 18:36:45 "How hard can it be!?" 18:36:57 ahh, yeah, that makes more sense 18:37:00 I think xfce and x will be e z p z 18:37:11 emacs will be implemeenting elisp in math so also e z p z 18:37:21 chromium and firefox are the hard ones 18:37:36 mainly just getting rendering and environments right 18:37:45 are you talking some kind of "recompile" to "math"? 18:39:02 well no 18:39:08 I mean implementing an xfce-like design in math 18:39:13 and then a person hand typing it into a computer 18:40:42 and what is this "math"? Are you building a new programming language to build your kernel and OS in? 18:41:00 math is just reverse polish notation 18:42:21 My processor doesn't understand RPN... 18:43:37 --- join: beretta (~beretta@cpe-184-58-116-76.columbus.res.rr.com) joined #forth 18:52:58 you have to copy it in by hand 19:01:26 yunfan: it's almost certainly NetBSD of the two 19:02:58 I am thinking that within a krivine machine perhaps the first thing you should implement is a krivine machine that has an input and an output 19:03:08 and this would be like kvm / freebsd jails 19:03:15 I don't know much about NetBSD, but I read the OpenBSD mailing lists and I've never heard anything about lua beyond their use of lua's pattern matching. So that's probably right. 19:03:18 DocPlatypus: why ? 19:04:10 aha yes, its netbsd according t this news https://news.ycombinator.com/item?id=6562611 19:04:47 that's pretty darn cool 19:05:33 as i knew, the linux kernel developer's guide says dont implement your own lisp in your kernel module 19:05:45 why no one implement their own forth for that? 19:05:45 krivine support in a kernel woudl be minimal 19:05:55 isnt forth be much more suitable at that case 19:06:10 forth is good too 19:08:35 I think maybe I can get my fourth base in krivine down to less than 500 bytes 19:08:41 haha yunfan, man, that thread is... so HN. 19:09:05 Gracana: why do you say this? i havnt read the whole thread 19:09:14 1000 days ago, people were bitching about C. And Lua is also wrong for this purpose. Etc, etc. 19:09:27 It's just... I dunno, everybody has a nit to pick. 19:10:37 It's not that bad. It just made me laugh, because it's quite an old thread but it reads exactly the same as any other. 19:12:11 1000 days = 3 year, not too looooooooooooooong 19:12:53 i bet many people in this channel would be activity 30 years ago 19:12:59 Naw, not that long. But in terms of internet community growth and change, it's a while. 19:13:34 I wasn't alive 30 years ago 19:13:59 me too. but many does 19:14:56 for eg, i have subsribe the blog "programming in 21 century". that blog owner used to use forth for developing acade game in 1980s, 19:16:58 Oh, I love that guy! 19:17:02 Great blog. 19:18:11 Isn't his site statically generated using perl or something? 20:00:42 --- quit: dys (Ping timeout: 244 seconds) 20:39:46 --- join: nal (~nal@adsl-72-50-86-46.prtc.net) joined #forth 20:42:12 --- quit: nal (Client Quit) 20:47:50 --- quit: neceve (Quit: Konversation terminated!) 20:49:24 there are a few forthers in here 20:49:33 there are a few postfixers in concatenative 20:49:36 we should all get together 20:49:41 and combine our efforts 20:50:40 --- join: nal (~nal@adsl-64-237-235-210.prtc.net) joined #forth 20:51:15 it seems perhaps ans forth was not a good solution 20:51:52 that doesn't mean there isn't a solution though 20:52:18 it starts with the absolute smallest and simplest virtual machine 20:52:41 then you implement the smallest simplest postfix 20:54:31 from that simplest postfix you implement a repl 20:59:26 --- join: CodeTortoise (~textual@2602:306:37fe:b70:2db9:499d:24a1:2270) joined #forth 21:04:24 postfix is not rpn 21:10:13 --- join: reepca (~user@std-001.cune.edu) joined #forth 21:22:23 fine but I mean rpn 22:18:03 --- quit: karswell (Remote host closed the connection) 22:18:59 --- join: karswell (~user@100.143.189.80.dyn.plus.net) joined #forth 22:35:16 --- quit: karswell (Remote host closed the connection) 22:36:15 --- join: karswell (~user@100.143.189.80.dyn.plus.net) joined #forth 22:37:54 --- quit: CodeTortoise (Quit: My MacBook has gone to sleep. ZZZzzz…) 23:59:59 --- log: ended forth/16.09.13