GoGPT Best VPN GoSearch

Icône de favori OnWorks

perlbs2000 - En ligne dans le Cloud

Exécutez perlbs2000 dans le fournisseur d'hébergement gratuit OnWorks sur Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS

Il s'agit de la commande perlbs2000 qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks en utilisant l'un de nos multiples postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS

PROGRAMME:

Nom


perlbs2000 - création et installation de Perl pour BS2000.

Ce document a besoin d'être mis à jour, mais nous ne savons pas ce qu'il doit dire. S'il vous plaît envoyer un courriel
commentaires à [email protected] <mailto:[email protected]>.

SYNOPSIS


Ce document vous aidera à configurer, construire, tester et installer Perl sur BS2000 dans le POSIX
sous-système.

DESCRIPTION


Il s'agit d'un perl porté pour le sous-système POSIX dans BS2000 VERSION OSD V3.1A ou version ultérieure. Ce
peut fonctionner sur d'autres versions, mais nous avons commencé à le porter et à le tester avec 3.1A et nous sommes
utilisant actuellement la version V4.0A.

Vous aurez peut-être besoin des programmes GNU suivants pour installer perl :

gzip on BS2000
Nous avons utilisé la version 1.2.4, qui pouvait être installée directement avec un seul échec pendant
'faire un chèque'.

bison on BS2000
Le yacc fourni avec BS2000 POSIX n'a ​​pas fonctionné pour nous. Nous avons donc dû utiliser du bison. Nous devions
apporter quelques modifications à perl afin d'utiliser l'analyseur pur (réentrant) de bison. Nous avons utilisé
version 1.25, mais nous avons dû ajouter quelques modifications en raison d'EBCDIC. Voir ci-dessous pour plus de détails
concernant yacc.

Déballage Perl Distribution on BS2000
Pour extraire une archive tar ASCII sur BS2000 POSIX, vous avez besoin d'un système de fichiers ASCII (nous avons utilisé le
point de montage /usr/local/ascii pour cela). Maintenant, vous extrayez l'archive au format ASCII
système de fichiers sans conversion d'E/S :

cd /usr/local/ascii export IO_CONVERSION=NO gunzip < /usr/local/src/perl.tar.gz | pax -r

Vous pouvez ignorer le message d'erreur pour le premier élément de l'archive (cela ne semble pas
comme une archive tar / passer au fichier suivant...), c'est seulement le répertoire qui sera
créé automatiquement de toute façon.

Après avoir extrait l'archive, vous copiez l'intégralité de l'arborescence des répertoires dans votre système de fichiers EBCDIC.
Le présent Paisible vous utilisé Conversion E/S:

cd /usr/local/src IO_CONVERSION=OUI cp -r /usr/local/ascii/perl5.005_02 ./

Compilation Perl on BS2000
Il existe un fichier "hints" pour BS2000 appelé hints.posix-bc (car posix-bc est le nom du système d'exploitation
donné par `uname`) qui spécifie les valeurs correctes pour la plupart des choses. Le problème majeur est
(bien sûr) le jeu de caractères EBCDIC. Nous avons la version allemande EBCDIC.

En raison de nos problèmes avec le yacc natif, nous avons utilisé GNU bison pour générer un pur
(=réentrant) analyseur pour perly.y. Donc notre yacc est vraiment le script suivant :

-----8<-----/usr/local/bin/yacc-----8<----- #! /usr/bin/sh

# Bison comme yacc rentrant :

# enregistrer les paramètres : params="" while [[ $# -gt 1 ]] ; faire
params="$params $1"
décalage fait

# ajouter l'indicateur %pure_parser :

tmpfile=/tmp/bison.$$.y echo %pure_parser > $tmpfile cat $1 >> $tmpfile

# appel bison :

echo "/usr/local/bin/bison --yacc $params $1\t\t\t(Pure Parser)" /usr/local/bin/bison
--yacc $params $tmpfile

# nettoyer:

rm -f $tmpfile -----8<----------8<-----

Nous utilisons toujours le yacc normal pour a2p.y !!! Nous avons créé un lien logiciel appelé byacc pour
distinguer les deux versions :

ln -s /usr/bin/yacc /usr/local/bin/byacc

Nous construisons perl en utilisant GNU make. Nous avons essayé la marque native une fois et cela a fonctionné aussi.

USP,EP, BP Perl on BS2000
Nous avons encore quelques erreurs lors de "make test". Certains d'entre eux sont le résultat de l'utilisation du bison.
Empreintes de bisons analyseur erreur au lieu de syntaxe erreur, nous pouvons donc les ignorer. Ce qui suit
liste montre nos erreurs, vos résultats peuvent différer :

op/numconvert.......ÉCHEC des tests 1409-1440 op/regexp..........ÉCHEC des tests 483, 496
op/regexp_noamp.....ÉCHEC tests 483, 496 pragma/surcharge.....ÉCHEC tests 152-153,
170-171 pragma/avertissements.....ÉCHEC aux tests 14, 82, 129, 155, 192, 205, 207
lib/bigfloat........ÉCHEC des tests 351-352, 355 lib/bigfltpm........ÉCHEC des tests 354-355,
358 lib/complex.........Tests ECHEC 267, 487 lib/dumper.........Test ECHEC 43, 45
Échec des scripts de test 11/231, 95.24% d'accord. 57/10595 sous-tests ont échoué, 99.46 % d'accord.

Pose Perl on BS2000
Nous n'avons pas (encore) de nroff sur BS2000 POSIX, nous avons donc ignoré les erreurs lors de l'installation du
Documentation.

En utilisant Perl in le Coquille Posix of BS2000
BS2000 POSIX ne prend pas en charge la notation shebang ("#!/usr/local/bin/perl"), vous avez donc
d'utiliser les lignes suivantes à la place :

: # utilise perl
eval 'exec /usr/local/bin/perl -S $0 ${1+"$@"}'
si $running_under_some_shell ;

En utilisant Perl in "originaire de" BS2000
Nous n'avons pas encore beaucoup d'expérience dans ce domaine, mais essayez ce qui suit :

Copiez votre exécutable Perl sur un LLM BS2000 en utilisant bs2cp :

"bs2cp /usr/local/bin/perl 'bs2:perl(perl,l)'"

Vous pouvez maintenant le démarrer avec la commande (SDF) suivante :

"/START-PROG FROM-FILE=*MODULE(PERL,PERL),PROG-MODE=*ANY,RUN-MODE=*ADV"

Vous obtenez d'abord l'invite de ligne de commande BS2000 ('*'). Ici vous pouvez entrer vos paramètres,
par exemple "-e 'print "Hello World!\\n";'" (notez la double barre oblique inverse !) ou "-w" et le nom de
votre script Perl. Les noms de fichiers commençant par "/" sont recherchés dans le système de fichiers Posix,
d'autres sont recherchés dans le système de fichiers BS2000. Vous pouvez même utiliser des caractères génériques si vous mettez un "%"
devant votre nom de fichier (par exemple "-w checkfiles.pl %*.c"). Lisez votre manuel C/C++ pour
possibilités supplémentaires de l'invite de ligne de commande (recherchez PARAMETER-PROMPTING).

Flottant point anomalies on BS2000
Il semble y avoir un bogue dans l'implémentation de la virgule flottante sur les systèmes BS2000 POSIX
de telle sorte que l'appel int () sur le produit d'un nombre et d'un nombre de petite grandeur n'est pas le
même chose que d'appeler int () sur le quotient de ce nombre et d'un nombre de grande grandeur. Pour
exemple, dans le code Perl suivant :

mon $x = 100000.0 ;
mon $y = int($x * 1e-5) * 1e5; # '0'
mon $z = int($x / 1e+5) * 1e5; # '100000'
print "\$y est $y et \$z est $z\n" ; # $y est 0 et $z est 100000

Bien que l'on puisse s'attendre à ce que les quantités $y et $z soient identiques et égales à 100000, elles
différera et sera à la place 0 et 100000 respectivement.

En utilisant PerlIO et différent encodages on ASCII et EBCDIC partitions
Depuis la version 5.8, Perl utilise le nouveau PerlIO sur BS2000. Cela vous permet d'utiliser différentes
encodages par canal IO. Par exemple, vous pouvez utiliser

utiliser Encoder ;
open($f, ">:encoding(ascii)", "test.ascii");
print $f "Bonjour tout le monde !\n" ;
open($f, ">:encoding(posix-bc)", "test.ebcdic");
print $f "Bonjour tout le monde !\n" ;
open($f, ">:encoding(latin1)", "test.latin1");
print $f "Bonjour tout le monde !\n" ;
open($f, ">:encoding(utf8)", "test.utf8");
print $f "Bonjour tout le monde !\n" ;

pour obtenir deux fichiers contenant "Hello World!\n" en ASCII, EBCDIC, ISO Latin-1 (dans ce
exemple identique à l'ASCII) UTF-EBCDIC respectif (dans cet exemple identique à la normale
EBCDIC). Voir la documentation d'Encode::PerlIO pour plus de détails.

Comme la couche PerlIO utilise des E/S brutes en interne, tout cela ignore totalement le type de votre
système de fichiers (ASCII ou EBCDIC) et la variable d'environnement IO_CONVERSION. Si tu veux
obtenir l'ancien comportement, que les fonctions BS2000 IO déterminent la conversion en fonction du
système de fichiers PerlIO est toujours votre ami. Vous utilisez IO_CONVERSION comme d'habitude et dites à Perl,
qu'il doit utiliser la couche IO native :

exporter IO_CONVERSION=OUI
exporter PERLIO=stdio

Maintenant, votre IO serait ASCII sur les partitions ASCII et EBCDIC sur les partitions EBCDIC. Voir le
documentation de PerlIO (sans "Encode::" !) pour d'autres possibilités.

AUTEURS


Thomas Dornier

Utilisez perlbs2000 en ligne en utilisant les services onworks.net


Serveurs et postes de travail gratuits

Télécharger des applications Windows et Linux

Commandes Linux

Ad




×
Publicité
❤ ️Achetez, réservez ou achetez ici — gratuitement, contribue à maintenir la gratuité des services.