Poster | Thread |
gonegahgah
| |
Re: What about AmigaAnywhere/AmigaDE? Posted on 9-Dec-2012 22:06:14
| | [ #41 ] |
|
|
|
Regular Member |
Joined: 5-Dec-2008 Posts: 148
From: Australia | | |
|
| @Chris_Y
Thanks for those. They all look fairly similar to each other though there are most likely differences between them.
@cdimauro
I had a look at the screen shots and some of the example code. The screenshots do indeed look good and may indeed be able to develop a new language; possibly even a new VP compiler.
But I'm developing something that is wholly open ended. What I'm writing is a different way and a different intent. With my approach you can create a closed language that is complete in itself - like a complete c or c++ compiler - or you can create a language and leave it still open to mods which is my intent with a new VP compiler. In other words you will be able to change the new VP compiler's functionality live. You couldn't do that with any of these.
@thread
One of the current 'features' of the old VP compiler that I will be removing is its present action of multiply resolving defines. Under mine defines will resolve to only one level. So for example if you were to do the following: .define mydef1 mydef2 .define mydef2 def3 .print mydef1 The current compiler would output: def3. Under my compiler it will output: mydef2.
Fortunately this 'feature' never gets used anyway so it should be harmless to remove it. Although it may seem like a lovely and clever thing to have; removing it allows me to do more powerful things.
Instead if you wanted what was in mydef2 to go into mydef1 you would be required to do the following in my VP compiler: .define mydef2 def3 .define mydef1 %mydef2 .print mydef1 Which would now output: def3.
One of the reasons that I am doing this is because I am also changing the way the VP compiler passes arguments in this respect. Though fortunately this doesn't impinge upon the existing include files in any fashion which always makes things easier.
Also, under the old compiler if you did the following: .define mydef arg1,arg2 mymacro mydef then the macro would receive arg1 as %1 and arg2 as %2. Under my new compiler the macro will instead receive arg1,arg2 as %1.
As I say, this doesn't affect any of the current include files provided with VP so although it may seem less magical; it actually allows more powerful things to be done. It also brings a greater consistency and predictability to the system.
I have other features in place that will allow coders to achieve anything they may have wanted to achieve using multi-level resolution of definitions. One such thing is that I am adding more generalised expanders using the '%' that was previously used just on single letters and on numbers for macro arguments. Here is an example form to show some of this: .print Hello %{__names_%currentgroup##_%currentrank} If I just did .print Hello __names_%currentgroup##_%currentrank it would just output to one level for example it might output: __names_allstars_3rd but using the %{} then checks if this is defined as something and replaces with that.
So you can still achieve multi-stem name constructions, if you need them, but in a more explicit and obvious manner.
That two things I will have to upgrade in the included include files will be some instances of the use of single letter expanders where they are presently immediately followed by letters, numbers &/or underscores (spaces are okay); and also the use of .mjoin. Fortunately I can use search and replace for the first but I will have to find all .mjoins and recode them.
Using .mjoin in its current fashion is now impractical under my new approach and you would instead use .mjoin() in a command instead. For example: .macro .printsum __.if %N=1 ____.eval %1 ____.print %e __.else ____.printsum %1+%2,.mjoin(3) ; Allows args 3 onwards to be passed as remaining args. __.endif .endm whereas the following was how you would previously do it: .macro .printsum __.if %N=1 ____.eval %1 ____.print %e __.else ____.mjoin 3 ; Joins argument 3 onwards together as %3 ____.printsum %1+%2,%3 __.endif .endm Last edited by gonegahgah on 09-Dec-2012 at 11:11 PM.
|
|
Status: Offline |
|
|
gonegahgah
| |
Re: What about AmigaAnywhere/AmigaDE? Posted on 10-Dec-2012 22:43:20
| | [ #42 ] |
|
|
|
Regular Member |
Joined: 5-Dec-2008 Posts: 148
From: Australia | | |
|
| Just adding another thing...
Old compiler's behaviour: .define mydef1 mydef2 .define mydef2 def3 .print mydef1 ; Outputs: def3
Under new compiler I said similar could be done by: .define mydef2 def3 .define mydef1 %mydef2 .print mydef1 ; Outputs: def3
But you will also be able to do similar by: .define mydef1 mydef2 .define mydef2 def3 .print %{mydef1} ; Outputs: def3
This first expands mydef1 to mydef2 then the %{} expands this to def3.
The %{} in my compiler only resolves one further level also as intended. You would have to use %{%{mydef}} to resolve another level again if you wanted.
I've also generalised the substring extraction. Substring extraction is another nice feature of VP. In the current compiler you can only do things like %3{3,7} or variations to extract subparts of arguments passed to macros. I will be extending this to all expansions and not just the numbered macro argument expansions. Example: %mydef{"(",")"} will be expanded/replaced by the contents between the first pair of parenthesis of the string that mydef defines. I will also be providing for example %2{} as a shorthand way to get the current length of the string in the argument or expander. Currently you need to use %2{1,999} to get the length.
Please remember these are compiler operations not actual code instructions. I spoke about the clever way that the VP compiler weaves compiler level operations with real code operations. ie. if is real code; .if is not real code; it is a compiler action.
So this substring extraction I'm explaining is a compiler operation that doesn't produce real code by itself. It might end up in real code if you put it there. ie. cpy %something{1,2}, iValue In this case if something were defined as 87654 then this will end up as: cpy 87, iValue
I'm also allowing compiler values to be used whereas the present compiler only allows fixed values. So for example you will be able to do %3{letternbr,letternbr} to get the next letter whereas you can't presently. |
|
Status: Offline |
|
|
Wildstar128
| |
Re: What about AmigaAnywhere/AmigaDE? Posted on 8-Apr-2013 16:12:58
| | [ #43 ] |
|
|
|
Regular Member |
Joined: 8-May-2006 Posts: 178
From: Unknown | | |
|
| @Bugala
I have AmigaAnywhere 2 and on another harddrive somewhere, AmigaAnywhere 1.
AA2 is an API SDK. The only major update in 2.00 to the one Amiga Inc. and current developers are doing is probably enhancements to the compiling toolchain. In other words, more development in native binary targets. There maybe a few more updates or bug fixes but I'm only hypothesizing there.
AA2 does not use Tao Intent.
|
|
Status: Offline |
|
|
number6
| |
Re: What about AmigaAnywhere/AmigaDE? Posted on 8-Apr-2013 16:58:01
| | [ #44 ] |
|
|
|
Elite Member |
Joined: 25-Mar-2005 Posts: 11540
From: In the village | | |
|
| @Wildstar128
Quote:
The only major update in 2.00 to the one Amiga Inc. and current developers are doing is probably enhancements to the compiling toolchain. |
Just to clarify, you're saying work on AmigaAnywhere2 has continued and is continuing, right?
#6
_________________ This posting, in its entirety, represents solely the perspective of the author. *Secrecy has served us so well* |
|
Status: Offline |
|
|
number6
| |
Re: What about AmigaAnywhere/AmigaDE? Posted on 31-Mar-2018 17:29:25
| | [ #45 ] |
|
|
|
Elite Member |
Joined: 25-Mar-2005 Posts: 11540
From: In the village | | |
|
| @thread
The Taos Operating System
3 year old thread with comments from ex-Tao employee and others, but surely newer info than anything in this AW thread. "Amiga" mentioned rather profusely throughout.
Link: courtesy Amiganews.de
#6
_________________ This posting, in its entirety, represents solely the perspective of the author. *Secrecy has served us so well* |
|
Status: Offline |
|
|
AmigaMac
| |
Re: What about AmigaAnywhere/AmigaDE? Posted on 31-Mar-2018 17:39:39
| | [ #46 ] |
|
|
|
Super Member |
Joined: 26-Oct-2002 Posts: 1094
From: 3rd Rock from the Sun! | | |
|
| @number6
Was certainly an interesting vicious circle of events surrounding the Amiga platform. A lot of horrible decisions made by those who thought they knew what was best for Amiga that really could have been avoided.
Last edited by AmigaMac on 31-Mar-2018 at 06:18 PM.
_________________
|
|
Status: Offline |
|
|
number6
| |
Re: What about AmigaAnywhere/AmigaDE? Posted on 31-Mar-2018 20:22:44
| | [ #47 ] |
|
|
|
Elite Member |
Joined: 25-Mar-2005 Posts: 11540
From: In the village | | |
|
| |
Status: Offline |
|
|