Highlights from Elsinore 2023: The Return of Uncle Andy's Fireside Chat

undefined
 
The Return of Uncle Andy's
Fireside Chat
 
Andy Shiers, COO
 
 
 
Geoff
Testing
Announcements
Miscellaneous
 
 
Agenda
 
B3349
 
Odiham
 
Alton (the office)
 
Golden Pot
 
RAF Odiham
 
South Warnborough
Geoff
 
 
Pete
Tell that #.(f←∘⊢)¨0
Streeter ..
.. to stop driving his company car like a
#.{⍵}.(# #).{⍵} lunatic ! ..
 
.. <rant> .. </rant>
 
Without Geoff Streeter none of us would
be here today
Please raise a glass to him and wish him
a long and happy retirement
Geoff
 
(with blackcurrent
cordial of course !)
 
[It depresses me that of the fulltime employees I
started first.  From now on it may be Gramps
Andy's Fireside Chat]
 
 
Largest workspace I've seen ?
2T(erabytes)
HttpCommand
500000 times in single process
 
Matters Arising
 
 
Ours are for demo/development
purposes only
We can help but you/your IT department
should set them up
Reduces security discussions
You can always strip bits out of our
installation
eg help, ws, samples
 
Docker Containers
 
 
Standard QAs
"Shuffle" QAs
Code coverage
Aarush working on improving this and on new
generation of QAs
Fuzz testing
 
Testing
''⎕R(('')⎕R''⍕)''
#.(f←∘⊢)¨0
(,#).(@0)∘⊢⍬
#.{⍵}.(# #).{⍵}
3 1 {⍸≡↓↓{+/,⍵}⌺⍺⊢⍵}⍪0 0
What do these do ?
All killed the interpreter
 
 
Runs continually with special interpreter
Uses American Fuzzy Lop 
(not a rabbit)
Generates expressions of interest
~2E11 expressions run so far
Failures
Running for too long
Waiting on input
 
Fuzz Tests
 
Try each expression with all standard
interpreters
Investigate all the errors
Eliminated many bugs
Peter and Silas leading the way
 
 
 
Fuzz Tests
 
 
files←0 1(
NINFO 
OPT('Wildcard' 1)('Recurse' 2)) dir,'/*'
19.0.47734 Windows:    0 31125 149184 0
On Windows (>18.2.47791) 
NINFO is now faster
Non-Windows were already "quick"
19.0.47853 Windows:    0 1109 5348 0
Thank you Stefano for suggesting the improvement !
 
 
 
Fuzz Tests: 
ninfo on Windows
 
 
Withdrawals:
R-interface (19.0)
819
 (20.0)
Array Editor (20.0)
Syncfusion (20.0)
19.0:
Release for user meeting
macOS and Intel/ARM support
New packaging on macOS
 
 
Announcements
 
 
Has been withdrawn in 19.0
The code we relied on is no longer publicly
available, and is out of date
Use Kimmo Linna's Rserve
https://github.com/kimmolinna/rsconnect
 
 
Withdrawal of the R-interface
 
Use {X} 
c
 Y instead
 
 
 
Withdrawal of 
819
 in 20.0
 
Best used monadically when doing case-less comparisons
 
 
 
'δυ
σσ
εύ
ς
'
 – Odysseus (Ulysses)
Both 
σ
 and 
ς
 are Sigma, 
ς
 is 
used at end of non-
capital letters only words
       
 
c '
δυσσεύς'
δυ
σσ
εύ
σ
 
 
wc and folding
 
 
It will exist in 20.0 onwards !
Does not error if any elements are not
character:
       
c 'Andy' # (↑'Pete' 'Karen') 1.1
  andy  #  pete   1.1
           karen
 
Refs are not followed but just returned unaltered
 
Benefits of 
c
 
 
Has been removed from 19.0
David Liebtag sadly passed away last March
Future plans based on Array Notation,
but nothing else to say yet
 
Array Editor
 
 
Dyalog will stop including Syncfusion libraries in
20.0 onwards
Dyalog's Syncfusion support agreement will
terminate in September 2024
But we have always said that you should take out your own
support contract directly with Syncfusion if you use it in
production
You may continue to use Syncfusion in conjunction
with 19.0 and earlier of Dyalog
Talk to sales@dyalog.com if you have questions or
concerns
 
Syncfusion
 
32-bit on Windows, AIX and Pi only
On Pi will remain until we feel 32-bit Raspberry Pi O/S has
too few users
32-bit Dyalog APL does NOT run on 64-bit Raspberry Pi O/S
 
An aside: 32-bit, Classic
 
Classic
 
Find letter-pairs that occur at least 10 times in the set of common surnames:
 
]load [SALT]/tools/data/names.dyalog
 
(
⊢⌷⍨∘⊂
10
⍸⍤
/),
⍥⊂∘≢⌸⎕
C
⊃⍪⌿⊢⌺
2¨'[^\w]'
R''
'UCP'1
names.Surnames
 
Classic equivalent:
(
⊢⌷⍨∘⊂
10
U2378
U2364≤
/),
U2365
⊂∘≢⎕
U2338
C
⊃⍪⌿⊢⎕
U233A2¨
 
'[^\w]'
R''
U2360'UCP'1
U2286 names.Surnames
Just move off Classic !
 
 
Is an early revision of what 19.0 will be
Not everything I mention is quite there yet
Any workspace saved in it will be )LOADable
in the released 19.0
But not necessarily vice-versa
You will have to uninstall and reinstall the GA
release
 
 
19.0 User Meeting release
 
 
19.0 is expected to be the last version to
be built for Intel-based macs
Intel-based versions of Dyalog for mac
run (well) under Rosetta
19.0 will be available as a native ARM-
based application
on or soon after release of 19.0
 
Mac support
 
 
Similar to Linux
tty based version, separate RIDE
Homebrew based
Still Work In Progress
Let Stefan know if you're interested
stefan@dyalog.com
Do you still want the existing packaging ?
 
Additional mac packaging
 
 
Is no more
use 
https://dyalog.github.io/ride
macOS User Guide will become very small
will start to review all the non-Windows User
Guides
Have you seen the cheat-sheets
anything you'd like one about ?
fiona@dyalog.com
 
RIDE User Guide etc.
 
 
)ed foo[1]
LOG_FILE & ⎕se.⎕wg'Logfile'
DYALOG_GUTTER_ENABLE
⎕dr and Booleans (and squoze bit)
New I-Beams
⎕se.Caption can be updated
dynamically
 
 
Miscellaneous
 
 
fx'foo' 'goo'
 
fx 'goo' '
'
 foo
 )si
#.goo[1]*
#.foo[1]
 
      
)ed 
#.goo[1]*
 
Opens the editor on goo[1]
Same as double clicking or hitting <ED>
 
 
 
)ed has more relaxed arguments
 
]config LOG_FILE
 … .\default_*.dlf
⎕se.LogFile
… .\default_000.dlf
 
Log_File can now contain "*"
Will use the first available (ie not locked) log
file
Multiple instances of APL will use separate
logfiles
⎕se.LogFile reports the log file used by this
instance of Dyalog
 
LOG_FILE & ⎕se.LogFile
Enabled
┌   :if 1
│    1
└   :endif
  1
Disabled
  :if 1
   1
  :endif
1
Enabled
┌   :if 1
│    [
└   :endif
Do not try this
with user
meeting 19.0 !
Disabled by default in tty interface
Otherwise you have problems with copy and paste
 
DYALOG_GUTTER_ENABLE
 
 
dr
 reports the type of the argument as it is
held in the workspace after squeezing the
argument
(*)
Singleton Booleans are held (effectively) as
short ints
      
dr ¨2=2 (2 3)
83 11
 
dr and Booleans
 
 
It is assumed that if you change the type of
an array, you want to preserve that type
"Sticky bit" is set
Subsequent calls to 
dr won't squeeze
      
dr 
0 323 
dr 2=2 2
 
323
 
Dyadic 
dr and "sticky bit"
 
 
WARNING: 
Although documentation is provided for
I-Beam functions, any service provided using I-Beam
should be considered as "experimental" and subject to
change – without notice - from one release to the
next. Any use of I-Beams in applications should
therefore be carefully isolated in cover-functions that
can be adjusted if necessary.
 
 
 
New I-Beams
 
 
Report state of .NET Core
Results are cached
Use as early as you can in your code
We may already have done so !
2250
⌶⍬
 
 
 
 
 
 
 
New I-Beams: 2250
 
AIX: 
¯1 0  .NET interface is not supported by this interpreter
Windows: 2 1  
 
Framework is available
Linux: 1 1                  
 .NET Core is available
 
 
New I-Beams: 2250
⌶⍬
 
 
Vince:
"
I have logged a low priority issue 20306 for the lack of a
more helpful error message.  There is also a bonus issue
in there--that 2250
 returns loading bridge error
information in Klingon
."
2250
0
2 0  T
─ '┐
 ┌"
┬┼┤
─ '
┌"┐") 
P"
"┐| F
'─# 
(86ø
D)┐'
D)┐'
 APL 18.2
C'┐##
┌"
┬┼┤
─182.
ø 
# 
 ┐ ─" &─"#
 $
┐  "─!%
"─
. V─"#
  18.2.46299 '┐# 
% 
┌%$ &─"#
  18.2.46408 " 
"─┐$─" 
#  ──
.
 
 
New I-Beams: 2250
 
 
1302
Set/query AplCoreName and/or MaxAplCores
     1302
⌶⍬
 c:\apl\aplcores\190U64_aplcore_*  10000
    {}1302
0           
 Don't drop aplcores
    {}1302
'/aplcores/andys' 
 change name
    {}1302
'/tmp/andys' 10   
 set both
 
 
New I-Beams
 
Can already set in registry
[HKEY_CURRENT_USER\Software\Dyalog\Dyalog APL/W-64 19.0
Unicode\Captions]
"Session"="{VER_A}{VER_B}{SCHARS}{BITS} {PID} {WSID}:{SNSID}"
 
       
se.Caption
190U64 12100 CLEAR WS:(
SE)
 
 
Windows: 
se.Caption
 
Now can set dynamically
        
se.Caption←'Andy {PID}'
        
se.Caption
   Andy {PID}
 
To always get the current value:
 
Windows: 
se.Caption
 
⎕NA 'I user32
|
GetWindowText* P 
>
0T I'
GetWindowText 
SE.Handle 255 255
 
What about
 
 
(Maybe) 
 in saved in output
 
Same for )load, )xload, )copy & )pcopy
 
DMX
 
       
'andys'
FTIE 1
             
      
dmx.(↑{
 (
⍎⍵
)}¨↓
nl 2)
 Category                                            Component file system
 DM                 FILE NAME ERROR        'andys'
FTIE 1               
 EM                                                        FILE NAME ERROR
 EN                                                                     22
 ENX                                                                    11
 HelpURL           https://help.dyalog.com/dmx/19.0/Componentfilesystem/11
 InternalLocation                                           qfile1.c  4438
 Message                                        andys: Unable to open file
 OSError                  1 2  The system cannot find the file specified.
 Vendor                                                             Dyalog
 
       '.'
wg'APLVersion'
 Windows-64  19.0.47901.0  W  Development
 
DMX
 
 
json 
dmx
{"Category":"Component file system","DM":["FILE NAME ERROR","      'an
      dys'
FTIE 1","             
"],"EM":"FILE NAME ERROR","EN":22,"E
      NX":11,"HelpURL":"https://help.dyalog.com/dmx/19.0/Componentfile
      system/11","InternalLocation":["qfile1.c",4438],"Message":"andys
      : Unable to open file","OSError":[1,2,"The system cannot find th
      e file specified."],"Vendor":"Dyalog"}
 
dmx 
nv ¯2
 
Wouldn't this be nice ?
 
 
Thank you for listening
 
 
 
 
andys@dyalog.com
 
 
And that's that !
Slide Note
Embed
Share

Elsinore 2023 witnessed the impactful return of Uncle Andy's Fireside Chat, featuring discussions on various agenda items, heartfelt moments for Geoff, and updates on testing, Docker containers, and fuzz testing. The event showcased the dedication to innovation, retirement celebrations, workspace challenges, and ongoing improvements in QA processes.

  • Elsinore 2023
  • Fireside Chat
  • Innovation
  • Testing
  • Workplace

Uploaded on Sep 28, 2024 | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

E N D

Presentation Transcript


  1. Elsinore 2023 The Return of Uncle Andy's Fireside Chat Andy Shiers, COO

  2. Agenda Geoff Testing Announcements Miscellaneous The Return of Uncle Andy's Fireside Chat 1

  3. Geoff Odiham RAF Odiham South Warnborough Golden Pot Alton (the office) The Return of Uncle Andy's Fireside Chat 2

  4. Pete Tell that #.(f ) 0 Streeter .. .. to stop driving his company car like a #.{ }.(# #).{ } lunatic ! .. .. <rant> .. </rant> The Return of Uncle Andy's Fireside Chat 3

  5. Geoff Without Geoff Streeter none of us would be here today Please raise a glass to him and wish him a long and happy retirement (with blackcurrent cordial of course !) [It depresses me that of the fulltime employees I started first. From now on it may be Gramps Andy's Fireside Chat] The Return of Uncle Andy's Fireside Chat 4

  6. Matters Arising Largest workspace I've seen ? 2T(erabytes) HttpCommand 500000 times in single process The Return of Uncle Andy's Fireside Chat 5

  7. Docker Containers Ours are for demo/development purposes only We can help but you/your IT department should set them up Reduces security discussions You can always strip bits out of our installation eg help, ws, samples The Return of Uncle Andy's Fireside Chat 6

  8. Testing Standard QAs "Shuffle" QAs Code coverage Aarush working on improving this and on new generation of QAs Fuzz testing The Return of Uncle Andy's Fireside Chat 7

  9. What do these do ? All killed the interpreter The Return of Uncle Andy's Fireside Chat 8

  10. Fuzz Tests Runs continually with special interpreter Uses American Fuzzy Lop (not a rabbit) Generates expressions of interest ~2E11 expressions run so far Failures Running for too long Waiting on input The Return of Uncle Andy's Fireside Chat 9

  11. Fuzz Tests Try each expression with all standard interpreters Investigate all the errors Eliminated many bugs Peter and Silas leading the way The Return of Uncle Andy's Fireside Chat 10

  12. Fuzz Tests: ninfo on Windows files 0 1( NINFO OPT('Wildcard' 1)('Recurse' 2)) dir,'/*' 19.0.47734 Windows: 0 31125 149184 0 On Windows (>18.2.47791) NINFO is now faster Non-Windows were already "quick" 19.0.47853 Windows: 0 1109 5348 0 Thank you Stefano for suggesting the improvement ! The Return of Uncle Andy's Fireside Chat 11

  13. Announcements Withdrawals: R-interface (19.0) 819 (20.0) Array Editor (20.0) Syncfusion (20.0) 19.0: Release for user meeting macOS and Intel/ARM support New packaging on macOS The Return of Uncle Andy's Fireside Chat 12

  14. Withdrawal of the R-interface Has been withdrawn in 19.0 The code we relied on is no longer publicly available, and is out of date Use Kimmo Linna's Rserve https://github.com/kimmolinna/rsconnect The Return of Uncle Andy's Fireside Chat 13

  15. Withdrawal of 819 in 20.0 Use {X} c Y instead 819 c To upper case To lower case Folded 1 1 0 1 3 (default) - Best used monadically when doing case-less comparisons The Return of Uncle Andy's Fireside Chat 14

  16. wc and folding ' ' Odysseus (Ulysses) Both and are Sigma, is used at end of non- capital letters only words c ' ' The Return of Uncle Andy's Fireside Chat 15

  17. Benefits of c It will exist in 20.0 onwards ! Does not error if any elements are not character: c 'Andy' # ( 'Pete' 'Karen') 1.1 andy # pete 1.1 karen Refs are not followed but just returned unaltered The Return of Uncle Andy's Fireside Chat 16

  18. Array Editor Has been removed from 19.0 David Liebtag sadly passed away last March Future plans based on Array Notation, but nothing else to say yet The Return of Uncle Andy's Fireside Chat 17

  19. Syncfusion Dyalog will stop including Syncfusion libraries in 20.0 onwards Dyalog's Syncfusion support agreement will terminate in September 2024 But we have always said that you should take out your own support contract directly with Syncfusion if you use it in production You may continue to use Syncfusion in conjunction with 19.0 and earlier of Dyalog Talk to sales@dyalog.com if you have questions or concerns The Return of Uncle Andy's Fireside Chat 18

  20. An aside: 32-bit, Classic 32-bit on Windows, AIX and Pi only On Pi will remain until we feel 32-bit Raspberry Pi O/S has too few users 32-bit Dyalog APL does NOT run on 64-bit Raspberry Pi O/S The Return of Uncle Andy's Fireside Chat 19

  21. Classic Find letter-pairs that occur at least 10 times in the set of common surnames: ]load [SALT]/tools/data/names.dyalog ( 10 /), C 2 '[^\w]' R'' 'UCP'1 names.Surnames Classic equivalent: ( 10 U2378 U2364 /), U2365 U2338 C U233A2 '[^\w]' R'' U2360'UCP'1 U2286 names.Surnames Just move off Classic ! The Return of Uncle Andy's Fireside Chat 20

  22. 19.0 User Meeting release Is an early revision of what 19.0 will be Not everything I mention is quite there yet Any workspace saved in it will be )LOADable in the released 19.0 But not necessarily vice-versa You will have to uninstall and reinstall the GA release The Return of Uncle Andy's Fireside Chat 21

  23. Mac support 19.0 is expected to be the last version to be built for Intel-based macs Intel-based versions of Dyalog for mac run (well) under Rosetta 19.0 will be available as a native ARM- based application on or soon after release of 19.0 The Return of Uncle Andy's Fireside Chat 22

  24. Additional mac packaging Similar to Linux tty based version, separate RIDE Homebrew based Still Work In Progress Let Stefan know if you're interested stefan@dyalog.com Do you still want the existing packaging ? The Return of Uncle Andy's Fireside Chat 23

  25. RIDE User Guide etc. Is no more use https://dyalog.github.io/ride macOS User Guide will become very small will start to review all the non-Windows User Guides Have you seen the cheat-sheets anything you'd like one about ? fiona@dyalog.com The Return of Uncle Andy's Fireside Chat 24

  26. Miscellaneous )ed foo[1] LOG_FILE & se. wg'Logfile' DYALOG_GUTTER_ENABLE dr and Booleans (and squoze bit) New I-Beams se.Caption can be updated dynamically The Return of Uncle Andy's Fireside Chat 25

  27. )ed has more relaxed arguments fx'foo' 'goo' )ed #.goo[1]* fx 'goo' ' ' foo Opens the editor on goo[1] Same as double clicking or hitting <ED> )si #.goo[1]* #.foo[1] The Return of Uncle Andy's Fireside Chat 26

  28. LOG_FILE & se.LogFile Log_File can now contain "*" Will use the first available (ie not locked) log file Multiple instances of APL will use separate logfiles se.LogFile reports the log file used by this instance of Dyalog ]config LOG_FILE .\default_*.dlf se.LogFile .\default_000.dlf The Return of Uncle Andy's Fireside Chat 27

  29. DYALOG_GUTTER_ENABLE Enabled Enabled Disabled by default in tty interface Otherwise you have problems with copy and paste :if 1 [ :endif :if 1 1 :endif 1 Disabled Do not try this with user meeting 19.0 ! :if 1 1 :endif 1 The Return of Uncle Andy's Fireside Chat 28

  30. dr and Booleans dr reports the type of the argument as it is held in the workspace after squeezing the argument(*) Singleton Booleans are held (effectively) as short ints dr 2=2 (2 3) 83 11 The Return of Uncle Andy's Fireside Chat 29

  31. Dyadic dr and "sticky bit" It is assumed that if you change the type of an array, you want to preserve that type "Sticky bit" is set Subsequent calls to dr won't squeeze dr 0 323 dr 2=2 2 323 The Return of Uncle Andy's Fireside Chat 30

  32. New I-Beams WARNING: Although documentation is provided for I-Beam functions, any service provided using I-Beam should be considered as "experimental" and subject to change without notice - from one release to the next. Any use of I-Beams in applications should therefore be carefully isolated in cover-functions that can be adjusted if necessary. The Return of Uncle Andy's Fireside Chat 31

  33. New I-Beams: 2250 Report state of .NET Core Results are cached Use as early as you can in your code We may already have done so ! 2250 The Return of Uncle Andy's Fireside Chat 32

  34. New I-Beams: 2250 AIX: 1 0 .NET interface is not supported by this interpreter Windows: 2 1 Framework is available Linux: 1 1 .NET Core is available The Return of Uncle Andy's Fireside Chat 33

  35. New I-Beams: 2250 Vince: "I have logged a low priority issue 20306 for the lack of a more helpful error message. There is also a bonus issue in there--that 2250 returns loading bridge error information in Klingon." 2250 0 2 0 T ' " ' " ") C P" " | F ' # (86 D) ' D) ' APL 18.2 C' ## " 182. # " & "# $ " !% " . V "# 18.2.46299 ' # % %$ & "# 18.2.46408 " " $ " # . The Return of Uncle Andy's Fireside Chat 34

  36. New I-Beams 1302 Set/query AplCoreName and/or MaxAplCores 1302 c:\apl\aplcores\190U64_aplcore_* 10000 {}1302 0 Don't drop aplcores {}1302 '/aplcores/andys' change name {}1302 '/tmp/andys' 10 set both The Return of Uncle Andy's Fireside Chat 35

  37. Windows: se.Caption Can already set in registry [HKEY_CURRENT_USER\Software\Dyalog\Dyalog APL/W-64 19.0 Unicode\Captions] "Session"="{VER_A}{VER_B}{SCHARS}{BITS} {PID} {WSID}:{SNSID}" se.Caption 190U64 12100 CLEAR WS:( SE) The Return of Uncle Andy's Fireside Chat 36

  38. Windows: se.Caption Now can set dynamically se.Caption 'Andy {PID}' se.Caption Andy {PID} To always get the current value: NA 'I user32|GetWindowText* P >0T I' GetWindowText SE.Handle 255 255 The Return of Uncle Andy's Fireside Chat 37

  39. (Maybe) in saved in output What about Same for )load, )xload, )copy & )pcopy The Return of Uncle Andy's Fireside Chat 38

  40. DMX 'andys' FTIE 1 dmx.( { ( )} nl 2) Category Component file system DM FILE NAME ERROR 'andys' FTIE 1 EM FILE NAME ERROR EN 22 ENX 11 HelpURL https://help.dyalog.com/dmx/19.0/Componentfilesystem/11 InternalLocation qfile1.c 4438 Message andys: Unable to open file OSError 1 2 The system cannot find the file specified. Vendor Dyalog '.' wg'APLVersion' Windows-64 19.0.47901.0 W Development The Return of Uncle Andy's Fireside Chat 39

  41. DMX json dmx {"Category":"Component file system","DM":["FILE NAME ERROR"," 'an dys' FTIE 1"," "],"EM":"FILE NAME ERROR","EN":22,"E NX":11,"HelpURL":"https://help.dyalog.com/dmx/19.0/Componentfile system/11","InternalLocation":["qfile1.c",4438],"Message":"andys : Unable to open file","OSError":[1,2,"The system cannot find th e file specified."],"Vendor":"Dyalog"} dmx nv 2 Wouldn't this be nice ? The Return of Uncle Andy's Fireside Chat 40

  42. And that's that ! Thank you for listening andys@dyalog.com The Return of Uncle Andy's Fireside Chat 41

More Related Content

giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#