Welcome, Guest. Please login or register.
Amiga Kit Amiga Store Hollywood MAL AMIStore App Store A600 Memory

AuthorTopic: Os 3.1.4 - List of bug fixes and changes by component  (Read 32946 times)

0 Members and 1 Guest are viewing this topic.

Offline stx

Re: Os 3.1.4 - List of bug fixes and changes by component
« Reply #15 on: October 15, 2018, 12:41:54 PM »
Now for my contributions: This is not really that much. One thing is that you can drag windows out of the screen. This is actually less than it may look because it is primarily a job layers has to do, and layers was already modified quite a while ago to support this service. Intuition was only modified to make use of this service, and its "window movement" functions where adjusted for testing the window bounds differently if the feature is enabled. This is by default on the workbench, but not on custom screens, but every constom screen can request it by a flag or a tag.

What is the best way to detect if this feature is enabled or not? Using the library version or checking this flag?

Is there any documentation or updated include files on this?

Steve

 

Offline Thomas Richter

Re: Os 3.1.4 - List of bug fixes and changes by component
« Reply #16 on: October 15, 2018, 02:05:58 PM »
What is the best way to detect if this feature is enabled or not? Using the library version or checking this flag?
The flag is enabled by default for the workbench, and disabled for all custom or public screens. You can set it in OpenScreen() and friends. Yes, we need to publish an SDK on this. The flag is the same flag and the same name as in Os 4, so you can also check there right now.

Otherwise, there should be no need to check this after the screen has been opened. What do you need this information for?
 

Offline HammerD

Re: Os 3.1.4 - List of bug fixes and changes by component
« Reply #17 on: October 15, 2018, 02:22:04 PM »

For P96, it is known which parameters it expects where, so a "kludge" function in assembler just provides the missing data. "It is known" here means that there is a common subset of people that have access to P96 *and* the Os. For CGFx, this is not the case, so it remains completely unclear what exactly CGFx expects, which interfaces it needs and how we could provide them. We contacted Frank Mariak on the problem, and would be happy to provide intuition V45 to him to integrate CGfx into this release, and/or provide similar kludge functions or interfaces to make it work. Unfortunately, at this time not much happened yet, but we all hope that 3.1.4 will become successful enough to make it an attractive development target.

Hi Thomas, is it safe to say then at present CGFx is not compatible with OS 3.1.4 and should not be used until a fix is released?

Darren
AmigaOS 4.x Beta Tester - Classic Amiga enthusiast - http://www.hd-zone.com is my Amiga Blog, check it out!
 

Offline stx

Re: Os 3.1.4 - List of bug fixes and changes by component
« Reply #18 on: October 15, 2018, 02:25:08 PM »
What is the best way to detect if this feature is enabled or not? Using the library version or checking this flag?
The flag is enabled by default for the workbench, and disabled for all custom or public screens. You can set it in OpenScreen() and friends. Yes, we need to publish an SDK on this. The flag is the same flag and the same name as in Os 4, so you can also check there right now.

Otherwise, there should be no need to check this after the screen has been opened. What do you need this information for?

I'm updating the DragIt tool (see on Aminet) after a pause of 25 years! Currently I use the library version in order to detect out of screen window. I was just wondering if there was a better way to detect this feature and act accordingly.

 

Offline Thomas Richter

Re: Os 3.1.4 - List of bug fixes and changes by component
« Reply #19 on: October 15, 2018, 04:47:06 PM »
Hi Thomas, is it safe to say then at present CGFx is not compatible with OS 3.1.4 and should not be used until a fix is released?
No. CGfx is compatible to 3.1.4, but not to intuition V45. Intuition V45 is a bonus feature you have to install separately. It is not in the official ROM.
 

Offline Thomas Richter

Re: Os 3.1.4 - List of bug fixes and changes by component
« Reply #20 on: October 15, 2018, 05:04:45 PM »
One of my favourite play grounds is of course the shell. Since I bumped the version number, there must be something new. The new feature is that pipes are built-in, you no longer need support from external commands. This sounds like a minor change, but the big advantage is that any such external command does not have to repeat parsing the rather obscure shell syntax. The shell does it all itself. In particular, this goes for all the strange rules on backticks, asterisks and quotes that are easy to get wrong.

The pipes require support from the Queue-Handler, which is included in 3.1.4 as a handler that need to go to L: and that has to be mounted on startup. Be aware that you need to use this particular pipe handler, and not any of the alternatives you find in Aminet. The Queue-Handler in 3.1.4 is completely new from scratch and in no relation to the CBM implementation or any of the versions on Aminet that all have their little problems. The most prominent problem is handling of "break", i.e. if you abort one of the ends of a pipe. Queue-Handlers typically forget to also terminate the other end of the pipe then, causing CPU hogs or other problems. So make sure you get the right handler.

The syntax is as it used to be: A "|" connects the output of the left program to the input of the right program, such that for example
Code: [Select]
list | more
pipes the output of list through the pager. Additionally, we have "||" as command, which concatenates the output of the programs to the left of the double-bar to the program on the right, creating a new common stream.

Last but not least, there is one new built-in command, and that is (. No, no typo, the name of the command is really an opening bracket. It takes ) as last argument and executes all commands within brackets in a sub-shell. This sounds curious, but has its use in combinations such as
Code: [Select]
(list || dir) | more
which concatenates the output of list and dir, and then sends it to the pager.

Pipes have other uses, of course. For example, the commands "sort" and "search" also operate in pipes, such that
Code: [Select]
list | sort
gives a sorted output of list. There is no new option required for list for doing it - the existing commands are sufficient. Similarly, "search" in a pipe looks for a particular string coming through the pipe, and if so, prints it.

A couple of features had to wait as they came in too late. In my private experimental version, there is also a variant of the execute command that can also read its input from the pipe, such that
Code: [Select]
list lformat="...." | execute
executes a command sequence constructed by "list" without requring a temporary file.

Also, TAB expansion had to wait. There is a little bit of experimental code around, here and there, and a design as well that works very different from the currently existing hacks. In particular, I dislike the idea that the console has to do the expansion, because it (again) has to parse the pesky shell syntax - and getting this parsing right is non-trivial. So the shell shall do it, and this is precisely the idea. One way or another, it does require modifications to the console and also the shell, and we run out of time.
 
The following users thanked this post: Tygre

Offline NinjaCyborg

Re: Os 3.1.4 - List of bug fixes and changes by component
« Reply #21 on: October 15, 2018, 05:35:56 PM »
Does SuperFloppy mode also work with FAT formatted USB sticks, ZIP drives, memory cards and so on (assuming one has a USB stack or whatever)?
 

Offline Thomas Richter

Re: Os 3.1.4 - List of bug fixes and changes by component
« Reply #22 on: October 15, 2018, 06:25:21 PM »
Does SuperFloppy mode also work with FAT formatted USB sticks, ZIP drives, memory cards and so on (assuming one has a USB stack or whatever)?
Yes, but in a sense CrossDOS never had this issue to begin with. FAT formatted media always carry a boot block around that supplies this information, or a partition table. For this, CrossDOS supports two "flavours". One is the DosType "MSD\0" which identifies "super floppies" where the boot block is used to determine the size of the medium. You can also enable this mode with "SuperFloppy=1". The other one is the "partition mode" where the DosType is set to "MSH\0" and the last character of the mount name determines the partition. If the last character is a "C" it is the first partition, "D" is the second partition and so on.

So while "SuperFloppy" is supported, tthere was never really a need to for CrossDos.

Offline nbache

Re: Os 3.1.4 - List of bug fixes and changes by component
« Reply #23 on: October 15, 2018, 08:32:38 PM »
@ThomasRichter:

Quote
A couple of features had to wait as they came in too late. In my private experimental version, there is also a variant of the execute command that can also read its input from the pipe, such that
Code: [Select]
list lformat="...." | executeexecutes a command sequence constructed by "list" without requring a temporary file.
Neat!

In OS4, I can do the same with
Code: [Select]
list lformat="..." | execute IN: - can the 3,1,4 (non-experimental) one also do that?

(I don't run any 3.x systems any more, so I'm just asking out of academic interest).

Best regards,

Niels
 

Offline NinjaCyborg

Re: Os 3.1.4 - List of bug fixes and changes by component
« Reply #24 on: October 15, 2018, 10:13:50 PM »
I'n a bit rusty on my shell power usage but I recall IN: and OUT: being options I used to use in OS2 and 3, not sure if they were part of WShell or provided by the Andy Finkel Pipe implementation, or one of the other shell alternatives.
 

Offline Thomas Richter

Re: Os 3.1.4 - List of bug fixes and changes by component
« Reply #25 on: October 15, 2018, 10:37:02 PM »
In OS4, I can do the same with
Code: [Select]
list lformat="..." | execute IN: - can the 3,1,4 (non-experimental) one also do that?
There is no "IN:", but there is no need doing that in first place, at least for this version of execute. It reads more naturally without that. "Type" would be another command where piping would help but which I have not really looked into. It is a straight foreward modification.

To make "IN:" and "OUT:" work, you would only need to write a handler for it or have the queue-handler handle it. This is not rocket science either, but I rather believe that a better approach is to modify commands such that they support piping in a more natural way in first place as "sort" and "search" already do nowadays.

Offline kolla

Re: Os 3.1.4 - List of bug fixes and changes by component
« Reply #26 on: October 16, 2018, 10:22:22 AM »
Intuition was only modified to make use of this service, and its "window movement" functions where adjusted for testing the window bounds differently if the feature is enabled. This is by default on the workbench

So how does one turn it off?

Without being able to resize windows to become larger than screen (for example stretch a console wider to make sure C:Ed isn't hiding linefeeds), I see zero use in moving windows off-screen.
I have yet to see any description of how one can possibly move&resize a window in a way so that control gadgets become unavailable, and I find it rather frustrating to be limited by some made up use-case that only affects Windows users (as windows is the only earlier system I have ever heard of, or used, that suffers from this limitation.)
B5D6A1D019D5D45BCC56F4782AC220D8B3E2A6CC
 

Offline NinjaCyborg

Re: Os 3.1.4 - List of bug fixes and changes by component
« Reply #27 on: October 16, 2018, 10:28:28 AM »
If you can't move the mouse off the screen, then there's no way you can ever move a window's title bar gadget completely off the screen, so it's not an issue, unless using that chap's app where he lets you drag from anywhere in the window then it could be. On Windows you have windows that can be dragged and resized in many different ways like keyboard shortcuts and resizable borders.
 

Offline kolla

Re: Os 3.1.4 - List of bug fixes and changes by component
« Reply #28 on: October 16, 2018, 10:34:43 AM »
Code: [Select]
list lformat="...." | execute
executes a command sequence constructed by "list" without requring a temporary file.

So these are (will/would be) equivalent then?
Code: [Select]
type s:user-startup | execute
and
Code: [Select]
execute s:user-startup

I find it a little non-intuitive though, I would have expected this to work
Code: [Select]
list s:myscripts/#?.script lformat "%p%n" | execute

but from what I gather, it must be like this...
Code: [Select]
list s:myscripts/#?.script lformat "execute %p%n" | execute
B5D6A1D019D5D45BCC56F4782AC220D8B3E2A6CC
 

Offline NinjaCyborg

Re: Os 3.1.4 - List of bug fixes and changes by component
« Reply #29 on: October 16, 2018, 10:35:47 AM »
if the +s bit is set on those scripts then the execute is implicit, no?