Pannyx

devel

Request #01


	(* Open-Suse Tumbleweed *)

% cdp
~/devel/proto
% lsi aej*.ad*
aej.ads
aej-daejana.adb
aej-daejana.ads
% cdq
~/devel/quickie
% stm sandbox_24001_m.adb
sandbox_24001_m.adb
% pp sandbox_24001_m.adb
with Ada.Command_Line;
with Ada.Exceptions;
with Ada.Text_IO;
with Aej.Daejana;
procedure Sandbox_24001_m is

use Ada; use Text_IO;
use Aej; use Daejana;

procedure Probe_01 is

begin
   Put(";"); New_Line;
   return;

end Probe_01;

begin
   Command_Line.Set_Exit_Status(Command_Line.Success);
   New_Line;

   Probe_01;

   New_Line;
   return;

exception
   when E : others =>
      New_Line(Standard_Error);
      New_Line(Standard_Error);
      Put(Standard_Error, "** ");
      Put(Standard_Error, Exceptions.Exception_Name(E));
      Put(Standard_Error, "! (");
      Put(Standard_Error, Exceptions.Exception_Message(E));
      Put(Standard_Error, ")");
      New_Line(Standard_Error);
      New_Line;
      Command_Line.Set_Exit_Status(Command_Line.Failure);

end Sandbox_24001_m;
% abr sandbox_24001_m

;

%

	(* Macs *)

% cda
~/devel/proto/aej
% lsi daejana.*
daejana.c
daejana.h
daejana.make
daejana.ml
daejana.py
daejana.rkt
% gcc -c -I${HOME}/devel/proto/aej daejana.c && lsi daejana.o
daejana.o
% cdq
~/devel/quickie
% stm sandbox_24001_m.c sandbox_24001_m.rkt sandbox_24001_m.ml sandbox_24001_m.py
sandbox_24001_m.c
sandbox_24001_m.rkt
sandbox_24001_m.ml
sandbox_24001_m.py
% pp sandbox_24001_m.c
#include <daejana.h>

static int_t probe_01 (void);


static int_t
probe_01 (void)
{

   printf(";\n");

   return 0;

}

int
main (int argc, char * argv [])
{

   error_flag = false;
   printf("\n");

   probe_01();

   printf("\n");
   if (error_flag) { exit(EXIT_FAILURE); }

   return EXIT_SUCCESS;

}

// sandbox_24001_m.c
% gcc -c -I${HOME}/devel/proto/aej sandbox_24001_m.c && { gcc -o sandbox_24001_m ~/devel/proto/aej/daejana.o sandbox_24001_m.o && {
   ↪ ./sandbox_24001_m; rm sandbox_24001_m; }; rm sandbox_24001_m.o; }

;

% pp sandbox_24001_m.rkt
#lang racket/base

(require aej/daejana)

(define (probe-01)
   (display ";") (newline)
)

((lambda ()
      (newline)

      (probe-01)

      (newline)
      (exit exit-state)
   )
)

;* sandbox_24001_m.rkt
% racket sandbox_24001_m.rkt

;

% pp sandbox_24001_m.ml
#mod_use "aej/daejana.ml" ;; open Daejana

let probe_01 () =
   print_string ";" ; print_newline () ;
   ignore ()

let _ =
   print_newline () ;

   probe_01 () ;

   print_newline () ;
   ignore ()

(* sandbox_24001_m.ml *)
% ocaml sandbox_24001_m.ml

;

% pp sandbox_24001_m.py
from aej.daejana import *

def probe_01 ():
   print(";")
   return

print()

probe_01()

print()

#  sandbox_24001_m.py
% py sandbox_24001_m.py

;

%

About how I like to keep things be available when I am using the Terminal.  For C, I wanted to show it as it must be shown right from the start in any good book about learning a programming language.  Already shown how nicely one could go along with it, using the zsh, here.  Next, there are lots of aliases defined in my ~/.zshrc, which is called for a shell when started to be used interactively.  Like that, I can switch directories at ease and you can see how I used one for Ada.  Which I would normally do for C, too; but later I have provided makefiles for more serious things.  These, called sandbox_24001_m, are meant to be changed, just so that I can show you more of very simple things.  When I find something interesting enough, then I increase the counting to keep it for later. 
One could spend much time explaining, showing my dotfiles, like ~/.zshenv, or the scriptfile, ~/opt/bin/nst, written in Python, which I have to create source files from what I have provided in ~/Templates; or what I have for Sublime Text, especially "~/Library/Application Support/Sublime Text/Packages/User/snippet.py", which makes things so comfortable.  But I'd rather write something for children for that, where everything would then be explained in such detail.  Here, I assume that you are experienced and have grown up over decades using Linux, or what there was available before that.  If you were one of our first penfriends, you could just ask!  Maybe later provide a bundle of files, one included of the kind which I use to keep notes about how to customize my environment, but for sure once in a while point out what it is like when you have later switched to use mostly Apple computers, of which I have experience for many years now, too.  So, I won't explain what you would do to have all these things available for your preferred distribution of Linux, for which → this is the recommended site to begin looking, trying out some.  Oh, I see that Centos is at place 59.  It's the one my, highly recommended, → provider for webspace has chosen and which seems to be reliable when used as a server.  My preferred one, last time I was looking, many years ago, now is at place ten, currently raising.  It's the only one I can recommend to have around, using an old, very affordable computer only for it.  Of course, if you happen to have one more level of the house left to where you have an Ethernet cable, too.  Like that, I have my three, ready to use.  Sitting here, parterre, I have my Mac Studio.  Which is the right place to have one of this kind, cos here, I have my nice desk, made of shisham wood, where I need the screen on another piece of furniture next to it.  Therefore, here, the Studio Display is what I want.  In the upper floor, a have a very long, new table, with a smaller ones piled up behind it, where an iMac fits nicely, sitting there at a closer distance.  This is as I must have it now, according to my taste!
Like this having lots of fun together, beginning with creating a nice repertoire of useful pieces of software, the next challenge of which will be to find out about how one can do pixel drawing!  No, one can not just continue using the SDL2‑Lib.  It just does not work anymore; like I had once seen it using a Mac mini.  Of course, later, there is no way around it, anyway, and nice in its own way, too, than to use Xcode to create a stub for an App, and once having found out about how to proceed from there, using Swift, do it like that.  But, wait, till then, I did find something more appealing in the beginning to have fun with.  Having it now, ready to use, where it is not so hard to read more about how to actually do it.  That they are good, you see, because they provide new versions after a few more months later.  Something very precious for me to have, especially, as there, we have this mature programming language, Scheme!  So, what we want on a Mac of the things we are used to have, other than C, which comes with Xcode, too, is called → Racket.
And there is Ocaml, for which I wanted to have the → Macports, too.
And then, there is Python, found as /usr/bin/python3 after getting Xcode, for which I am using the alias py.  This is what is left of having one useful scripting language.  No longer using Perl at the moment.  Which saves me from answering: Which one?  Only one more, and this is Php, which is what I need only for this one purpose, for my website.  Like that, the navigation and such things are provided.
There would be one more reason to still using Linux, too; because there, we can use the Dosbox for pixel drawing, too.  I once had ideas about providing a retro corner, using Watcom C with assembler.  I am not so serious about it now.  Yet, we might come back to it for the kids department later; hah!
Not to forget to mention → this, talking of my website.  Let's hope that you can see a difference, once you have it.  Strangely, here I do not, only when using Linux.
One of the things to take care about on your own, is to have the ebooks ready for the programming languages you are using.
If this sounds new to you, what I mentioned about my preferred and recommended equipment, find out for yourself what suits you best, beginning from → here!  How nice, I can see our three, which are those from which to choose at least one, in the middle, with the one I have in this house, right in the center position, like this: ( orange; red; purple; ).  No reason to chose the grey one, cos for that, we already have → this one, to make it complete, in silver, for which you add → this. As a matter of fact, I have added one for my iMac, too, switched on on special occasions, like our Facetime, or when I am watching what I have available there of our private collection!  See…!  Better two of this kind than the most expensive one.  Who would possibly have the need for a Big Mac?  But I can understand why someone would like to have the largest available of these good screens, like for showing off making a recording when sitting in front of it.  Sometimes I visualize a place where there would be many, many!  Mostly iMacs.  There for students to use, in big rooms, instead of what it looked like what we had available, many decades ago.  I would like Elon Musk to use his means to take over and do the required cleanup with Apple, too!  And provide what people can use as a replacement of YT; something for streaming.  Using the technology there is now, as it is meant to be done, conforming to values like freedom of speech.  One more of my wishlist, what he might like to call Xpedia!  Somehow the best mixture of an existing community, sharing their ideas and results of having spent much time for implementing, and professionals who have the know‑how and commercial experience to provide in an affordable way what people want.  In this spirit, let's have a good time exchanging like this, to express our creativity with what we already have!