Kaj de Vos Posted November 22, 2021 Author Share Posted November 22, 2021 On 11/19/2021 at 8:44 PM, ilmenit said: I'm also curious how indexing of bytes on specific memory page will work, when with 8bit byte you can index values 0-255, not 1-256. Will it require using 16bit variable? You can index 1-255 within a byte! fine. For 257... you need a natural! index anyway. That only leaves the case of a series! of exactly 256 items. You can index it with a 16-bit natural!, or if you want to optimise the index to a byte!, you can shift the series! to 0-based indexing. Unlike REBOL, I defined pick series 0 to mean the same as pick series -1 That means you can do 0-based indexing on next series Simple as that. Quote Link to comment Share on other sites More sharing options...
TGB1718 Posted November 22, 2021 Share Posted November 22, 2021 On 11/20/2021 at 6:31 PM, zbyti said: So... I'm waiting for some large demo then I'm still waiting for something "Human Readable" Quote Link to comment Share on other sites More sharing options...
Kaj de Vos Posted November 22, 2021 Author Share Posted November 22, 2021 As long as you just wait, you will never learn to read it. Quote Link to comment Share on other sites More sharing options...
Kaj de Vos Posted November 22, 2021 Author Share Posted November 22, 2021 On 11/20/2021 at 1:23 PM, zbyti said: I also thought about it when I was filling arrays/memory with values in starfield example. You're drawing 255 scanlines, so your index fits in a byte!. You don't have to declare it as a byte! explicitly, it will be inferred as that. I suspect you have to limit it to 254 scanlines for NTSC compatibility, anyway. It's not a problem for this use case. Quote Link to comment Share on other sites More sharing options...
zbyti Posted November 22, 2021 Share Posted November 22, 2021 2 hours ago, Kaj de Vos said: You're drawing 255 scanlines, so your index fits in a byte!. You don't have to declare it as a byte! explicitly, it will be inferred as that. I suspect you have to limit it to 254 scanlines for NTSC compatibility, anyway. It's not a problem for this use case. I did it for reason which I don't remember exactly now, but then this was looks necessary to declare it as a byte! Quote Link to comment Share on other sites More sharing options...
Kaj de Vos Posted November 22, 2021 Author Share Posted November 22, 2021 Perhaps a loop alone doesn't declare its variable yet, I don't remember. It should, eventually. Quote Link to comment Share on other sites More sharing options...
drac030 Posted November 22, 2021 Share Posted November 22, 2021 (edited) 5 hours ago, Kaj de Vos said: As long as you just wait, you will never learn to read it. By this definition ("learn it") pretty much everything is "human-readable", even Egyptian hieroglyphs. Edited November 22, 2021 by drac030 1 Quote Link to comment Share on other sites More sharing options...
zbyti Posted November 22, 2021 Share Posted November 22, 2021 3 hours ago, drac030 said: By this definition ("learn it") pretty much everything is "human-readable", even Egyptian hieroglyphs. Pretty much everything is "human-readable" but not for everyone. Quote Link to comment Share on other sites More sharing options...
Kaj de Vos Posted November 23, 2021 Author Share Posted November 23, 2021 22 hours ago, drac030 said: By this definition ("learn it") pretty much everything is "human-readable", even Egyptian hieroglyphs. Not really, because that took the chance discovery of the Rosetta stone. But I understand what you mean. In any case, there is a large range between those. I put it that way, because @TGB1718 keeps insisting that he hasn't seen anything human-readable yet. He is from the UK, and the base example for Meta is Write "Hello, world!" Am I to understand that he can't read that? Then when will he be able to read that? When a dot is added at the end, as in COBOL? If he can't read simple examples, he will certainly consider larger examples unreadable, too. Many people, upon first seeing REBOL code, remark that it looks like human language. Yet some people keep insisting that it is unreadable. Could it be that REBOL and Meta are shapeshifters and manifest completely differently to different people? Or could the difference be in those people? Should I advise them to use COBOL instead? Or could it be that some people are whining because they are afraid to try something new, and they need to be pushed a bit to get over themselves? Quote Link to comment Share on other sites More sharing options...
TGB1718 Posted November 23, 2021 Share Posted November 23, 2021 1 minute ago, Kaj de Vos said: Am I to understand that he can't read that? don't be insulting, that is a simple example and it's pretty obvious what it does, I was talking about the larger examples and those that others have produced which in my opinion are not readable by any stretch of the imagination especially without some form of documentation to give us a clue what's happening. 5 minutes ago, Kaj de Vos said: Or could it be that some people are whining because they are afraid to try something new, and they need to be pushed a bit to get over themselves? You are the one who said "human readable" and didn't release any documentation, I try new things all the time, but usually there's a few clues on how to get started and it's not whining to ask for this information Quote Link to comment Share on other sites More sharing options...
Kaj de Vos Posted November 23, 2021 Author Share Posted November 23, 2021 I am asking, because you keep exaggerating that you haven't seen anything human-readable yet, so I have no idea where it is that you get stuck. You also keep repeating that there is no documentation, which is also an exaggeration, so I can only keep repeating that I wrote an extensive website as documentation, extensive information here on the forum, and that I curated a reading list of basic REBOl documentation that is mostly usable for Meta, until I have time to write Meta-specific versions. So now that we have established that you are past the Hello World example, where do you get stuck? Quote Link to comment Share on other sites More sharing options...
drac030 Posted November 23, 2021 Share Posted November 23, 2021 (edited) 1 hour ago, Kaj de Vos said: Not really, because that took the chance discovery of the Rosetta stone. Rosetta stone is not very relevant here, because now we are living in the times after the Rosetta stone (so one can learn hieroglyphs from a textbook), and also there were times when the knowledge of the hieroglyphs had not been lost, and you were able to learn them from a teacher. So for the sake of a better analogy, we can say that it is Greek instead of hieroglyphs (because the knowledge of Greek has never been lost). The point, at least as I understand it, may be somewhere else. You are claiming that Meta has "Human-friendly syntax" and is "Closer to human language than most computer languages". Perhaps it is so. But for the untrained eye, the examples available in this thread contain much too many usual code symbols (=, [], ~ etc.) to be recognized as a human language: perhaps it is "closer", but still not does not look like close enough. For example: unsafe!!! constant reference volatile byte! [ RTCLOK= ~14 ] In human language it would be rather something along the lines of label volatile byte number 20 as "RTCLOK". Edited November 23, 2021 by drac030 Quote Link to comment Share on other sites More sharing options...
Kaj de Vos Posted November 23, 2021 Author Share Posted November 23, 2021 As you say, I claim Meta is closer to human language than most computer languages, not that it is the same as human language. So everything is relative, and that opens up space to disagree. You can disagree with specific examples, but I don't think it's fair to deny in general that Meta is closer to human language than most computer languages. In fact, that is exactly where the pushback here keeps coming from: that Meta is different from most computer languages. Except Logo, which people should actually be familiar with from Atari history. The thing about the Atari-specific examples is that I had to extend the REBOL design to support hardware programming, and to support being much more efficient. So the Atari examples also look alien to REBOL programmers. They, too, need to learn these new extensions, and non-Logo programmers need to learn the entire language. Specifically the declaration dialect you mention is a new dialect that is not in REBOL. Semantically, it is more like C, because it needs those features. One thing about it is that it will in time disappear from most examples, once we have the Atari system predefined. In general, Meta will keep adding abstractions over time to make things easier. Having to learn new dialects works the same way in human language. Who wants to become a doctor, for example, needs to do a long and hard study, where one thing they learn is dialects to speak in with other doctors, even different ones for different specialisations. That's why I keep stipulating that Meta and dialects are not for free: they need to be learned before you get the benefits. I do think REBOL historically made a mistake there by presenting one-liner examples and claiming that all sorts of things would be easy. Quote Link to comment Share on other sites More sharing options...
Kaj de Vos Posted November 24, 2021 Author Share Posted November 24, 2021 On 11/15/2021 at 9:23 PM, zbyti said: unsafe!!! constant reference volatile byte! [ RND= ~D20A ] forever [ either RND < ~80 [write "/"] [write "\\"] ] write "workaround" program.xex 3.91 kB · 4 downloads without last line I have an error: out.c:26: Error: Expression expected out.c:26: Error: Illegal function call out.c:31: Error: Incomplete type 'void' out.c:31: Error: Incomplete type 'void' out.c:32: Warning: Parameter 'arguments' is never used 4 errors and 1 warnings generated. Fixed now. The output size is also reduced. 1 Quote Link to comment Share on other sites More sharing options...
Kaj de Vos Posted November 24, 2021 Author Share Posted November 24, 2021 Also fixed now that you couldn't use a single "\". 1 Quote Link to comment Share on other sites More sharing options...
Kaj de Vos Posted November 24, 2021 Author Share Posted November 24, 2021 Implemented is-odd and is-even for your use case. 1 Quote Link to comment Share on other sites More sharing options...
zbyti Posted November 24, 2021 Share Posted November 24, 2021 17 minutes ago, Kaj de Vos said: Implemented is-odd and is-even for your use case. unsafe!!! constant reference volatile byte! [ RND= ~D20A ] forever [ either is-odd RND [write "/"] [write "\"] ] 1 Quote Link to comment Share on other sites More sharing options...
Kaj de Vos Posted December 8, 2021 Author Share Posted December 8, 2021 On 11/15/2021 at 6:41 PM, zbyti said: yes. but compiler don't know that and communicate: Result is in file program.xex ok. now works again. Fixed now. I released a new compiler client with better checking of networking errors. 1 Quote Link to comment Share on other sites More sharing options...
zbyti Posted December 12, 2021 Share Posted December 12, 2021 (edited) I have read this to grasp idea of Rebol power Last time I had contact with Scala was 4-5 years ago but I can still read it easily: (1 until 100).map(i => (i % 3, i % 5) match { case (0, 0) => "FizzBuzz" case (0, _) => "Fizz" case (_, 0) => "Buzz" case _ => i }).foreach(println) and it seems very elegant to me. How elegant can that be in META? Edited December 13, 2021 by zbyti mixed link Quote Link to comment Share on other sites More sharing options...
zbyti Posted December 13, 2021 Share Posted December 13, 2021 11 hours ago, zbyti said: How elegant can that be in META? note to myself: In theory the META code can be just as elegant, and maybe even more, but in practice, seeing what REBOL programmers are doing in the linked thread I have serious doubts. we will wait, we'll see. Quote Link to comment Share on other sites More sharing options...
Kaj de Vos Posted December 13, 2021 Author Share Posted December 13, 2021 Note that "Fork" has hijacked the REBOL project and is turning REBOL 3 on its head. He calls his language Ren-C. It's quite far removed from REBOL now. Janko is working on his Rye language which is only partly inspired by REBOL. Most of the code in that thread is not REBOL. 1 Quote Link to comment Share on other sites More sharing options...
zbyti Posted December 13, 2021 Share Posted December 13, 2021 I wrote about REBOL programmers and what they do, you are one of them - we'll see how you develop META. Quote Link to comment Share on other sites More sharing options...
Kaj de Vos Posted December 13, 2021 Author Share Posted December 13, 2021 Implemented the modulo method and FizzBuzz: https://language.metaproject.frl/#examples 1 Quote Link to comment Share on other sites More sharing options...
zbyti Posted December 13, 2021 Share Posted December 13, 2021 (edited) I love pattern matching in Scala but must admit you are much better then "Fork" and "Janko" :] --- EDIT --- here, for your website: https://github.com/KarolS/millfork/blob/master/examples/crossplatform/fizzbuzz.mfk https://github.com/KarolS/millfork/blob/master/examples/crossplatform/fizzbuzz2.mfk https://github.com/KarolS/millfork/blob/master/examples/crossplatform/fizzbuzz_jp.mfk Edited December 13, 2021 by zbyti 1 Quote Link to comment Share on other sites More sharing options...
Kaj de Vos Posted December 13, 2021 Author Share Posted December 13, 2021 Thanks. It's a bit much to link to all of them, but I added the first one. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.