World: r4wp
[#Red] Red language group
older newer | first last |
PeterWood 4-May-2013 [7515] | I have consolidated the current Red/System V2 wish list on the Github wiki - https://github.com/dockimbel/Red/wiki/Red-System-v2-Wish-List |
DocKimbel 5-May-2013 [7516x3] | Thanks Peter. Could you please add a message like "Wish moved to v2 wish list on wiki" to each related tickets and close them? |
Also, having details for #27 and #28 would helpful. As is, I don't understand them. | |
Also each wish has to be motivated by some need, else it will be likely rejected if the need is not obvious to me. | |
Pekr 5-May-2013 [7519] | Quite extensive list. If there are no show-stoppers, I would proceed with Red first, e.g. getting us onto IOS, Android, bindings to native APIs, I/O, parse, etc. :-) |
Kaj 5-May-2013 [7520] | A lot of that needs to go through Red/System, so it's hard setting priorities |
PeterWood 5-May-2013 [7521] | I've closed the issues and will write up #27 and #28 (as I understand them) and add to the needs as I understand them. |
Kaj 5-May-2013 [7522] | Nice list, Peter |
PeterWood 5-May-2013 [7523] | Quite a few are youre Kaj :-) |
Kaj 5-May-2013 [7524] | Yes, but it's important to have them in a more structured form |
DocKimbel 5-May-2013 [7525x3] | Right, having a more formal specification like Python's PEP would be nice. |
Pekr: it's for Red/System 2.0, so it's not a short-term task. | |
Also, probably half of them will be rejected, or superseded by other features. | |
Arnold 6-May-2013 [7528x3] | No rejected items yet, looking good! Point 5 and 17 both have a wish for a BREAK. |
What do we need GOTO for in Red? GOTO END-PROGRAM ;) | |
Array type +1 | |
DocKimbel 7-May-2013 [7531] | Arnold: I haven't processed the list yet. |
Pekr 7-May-2013 [7532] | Array type + 2, no matter if you processed it :-) |
DocKimbel 7-May-2013 [7533] | Having an array type is probably not as useful as you might think. The only real advantage I see is the ability to add optional bound-checking, which should protect from a whole class of errors. |
PeterWood 7-May-2013 [7534] | Array syntax is a little more "average" programmer friendly than allocating memory and user pointers though :-) |
Arnold 7-May-2013 [7535] | But only just a little! :D @Doc I guessed that! It looks other way for outsider(s) (undecided) |
DocKimbel 7-May-2013 [7536x3] | Peter, it is possible to add literal array notation support without adding an array type. |
Also, even if you can statically allocate memory, you still need dynamic allocations too. | |
Peter, what kind of "array syntax" do you have in mind? | |
Arnold 7-May-2013 [7539] | For other purposes arrays are not a replacement for pointers. But for the majority of small uses of arrays they take away the need for the administration overhead. It is handy and easy. |
Gregg 7-May-2013 [7540] | Is there a Red/System page that states its goals? e.g., Is Red/System meant to be bare bones, or do you see adding some higher level elements, like D. I ask because D has various array types, and didn't know if you planned to implment a few core elements at the lowest level, so they can be used in Red/System, and then just exposed to Red. |
DocKimbel 7-May-2013 [7541x3] | Goals are stated since the beginning here: http://static.red-lang.org/red-system-specs.html#section-1 |
Red/System is supposed to remain small in order to be usable as a Red dialect for low-level programming. I don't have any plans to add higher-level features, because they will overlap or collide with Red's own features. | |
So, it's fine to add Red/System features as long as it helps Red language construction or extends the low-level accessing abilitites. | |
Gregg 7-May-2013 [7544] | Thanks Doc. |
PeterWood 7-May-2013 [7545x2] | I''ll add an idealistic array wish page to the Github Wiki. |
It's here https://github.com/dockimbel/Red/wiki/Ideal-array-capabilities Comments appreciated. | |
Gregg 7-May-2013 [7547] | Re #7, while I understand the reasoning behind the op names, I prefer remove/append/take/insert. I'm OK with other terms, though REBOL's choices are nice. I used to write OO stuff with ops named based on the data structure, e.g. push/pop for stacks, but Bertrand Meyer's argument for Linnaean naming conventions swayed me a long time ago. |
Arnold 8-May-2013 [7548] | @arrayproposal: I really like the index to run from 1 to 10 and not from 0 to 9. I suspect this is because I happen to be a human-being not a computer. Maybe I could live with this different in Red (1 - 10) and Red/System (0 - 9), because Red is higher level and Red/System being low level, but that might be confusing too. |
GrahamC 8-May-2013 [7549] | where does I/O appear in the list of priorities and timetable? |
MaxV 8-May-2013 [7550] | +1 Arnold |
PeterWood 8-May-2013 [7551x8] | For Red or Red/System Graham? |
I/O for Red/System is likely to be a library rather than in the language itself. If I remember correctly Kaj's C lib provides I/O support. | |
I/O support for Red is very high on the Red todo list - basic I/O support is essential for Nenad for Nenad to write Red/System V2 (which itself is essential for "production ready" Red. | |
I believe that object! datatype and an improved 'LOAD function are pre-cursors to I/O in Red and the reason that i/O isn't top of the priority list. (Of ocurse, I may be wrong) | |
Gregg I will note your suggestion in the wiki. | |
(Though I suspect that my initial wish is very much a "wish to far"). | |
Arnold, MaxV - The array wish includes the ability for the programmer to choose between zero-based and one-based indeces as it allows the user to specific the array range. | |
This really is a mega-wish list. It is very possible that adds far too much bulk to Red/System to be added in the language. At least the list could be the basis for the spec for a Red/System lib to provide much of the functionality. | |
GrahamC 8-May-2013 [7559] | @PeterWood - Red thanks |
DocKimbel 8-May-2013 [7560x2] | My first impressions on your proposition: 1) arr[i] is a useless syntactic addition as we already have indexed accesses: arr/i 2) #7 and #8 are going way too far from the Red/System application domain, it's basically a series abstraction. Red internal API already provides series (the internal API is not yet completed nor formalized though), so this is both unneeded and overlapping with Red standard library. What you might not realize is that you already have array-like capabilities with Red/System pointers (including structs and c-strings). If you want automatic memory management in Red/System, you won't have it, low-level programming requires a manual management of memory for accuracy and avoiding unnecessary burdens. The only array-like part that Red/System is really missing right now is the literal array-like declarations, which can be achieved without a new formal array! type. As I said earlier, adding a array! type would only add bound-checking abilities (which is a nice feature to have) and provide you with #5 as a side-effect (not very useful anyway, as array would be fixed-size). |
One of Red/System DSL goals is to be as close as possible to the hardware, not as far as possible. This implies that no arbitrary abstraction layers will be ever added to Red/System that can't be more or less directly mapped onto some hardware features. Exceptions exist when some targets do not provide a basic feature that others are providing. For example, ARMv5 family do not have integer division, nor modulo support, so I had to implement it manually in the ARM emitter in assembler: https://github.com/dockimbel/Red/blob/master/red-system/targets/ARM.r#L372 Another one is the runtime exception system recently added (THROW) to Red/System, which also required a specific assembler routine: https://github.com/dockimbel/Red/blob/master/red-system/targets/ARM.r#L2008 | |
PeterWood 8-May-2013 [7562] | Thanks for the clarificaiton, it's helpful. I keep thinking of Red/System as a standalone langauge (because I like it so much). |
DocKimbel 8-May-2013 [7563x2] | I like it too and I think we can improve it significantly in 2.0. |
Being able to do whatever C does without its outdated syntax and bloated toolchains is a dream coming true. ;-) | |
older newer | first last |