Εγκατάσταση της 8th τοπικά

Μάθε πώς να εγκαταστήσεις την 8th τοπικά, για να λύνεις τις ασκήσεις σου στο Exercism στον δικό σου υπολογιστή


Εγκατάσταση της 8th

Η 8th διανέμεται σε ένα ZIP αρχείο που τα περιλαμβάνει όλα, το οποίο περιέχει εκδόσεις της 8th για όλες τις πλατφόρμες που υποστηρίζει η έκδοση που κατέβασες. Οι εκδόσεις της 8th που έχεις είναι αδειοδοτημένες αποκλειστικά για εσένα και δεν επιτρέπεται να τις μοιραστείς.

Κατέβασε το αρχείο zip

Ξεκινώντας από τη σελίδα Get 8th,

  • συμπλήρωσε τη φόρμα με το όνομά σου και το email σου και διάλεξε την έκδοση Free. Πρέπει να αποδεχτείς την άδεια της 8th.
  • Το 8th-dev θα σου στείλει ένα email για να σε επαληθεύσει. Κάνε κλικ στον σύνδεσμο στο email εγγραφής.
  • Το 8th-dev θα συνθέσει ένα μοναδικό αρχείο zip για εσένα και θα σου στείλει ένα email σχετικά. Ψάξε για τον σύνδεσμο "download here" σε εκείνο το email.

Εγκατάσταση

Για να χρησιμοποιήσεις την 8th, θα χρειαστεί να αποσυμπιέσεις το αρχείο zip σε οποιονδήποτε φάκελο έχεις πρόσβαση.

Στο zip περιλαμβάνονται αρκετοί φάκελοι:

φάκελος περιγραφή
bin Εκτελέσιμα της 8th για όλες τις υποστηριζόμενες πλατφόρμες
docs Το εγχειρίδιο και οι οδηγοί
libs Βιβλιοθήκες υποστήριξης της 8th (κώδικας σε 8th)
samples Δείγματα κώδικα που συνοδεύουν τους οδηγούς και το εγχειρίδιο
keys Το 'id.blob' που περιέχει τα κλειδιά σου και τα στοιχεία εγγραφής σου

Χρήστες Pro+: να θυμάσαι ότι τα κλειδιά κρυπτογράφησης στο id.blob είναι μοναδικά για κάθε συγκεκριμένη έκδοση της 8th που κατεβάζεις και είναι σημαντικά για τη δημιουργία κρυπτογραφημένων εφαρμογών που μπορούν να διανεμηθούν. Αν μετακινήσεις την 8th έξω από το πακέτο διανομής της και δεν μπορεί να βρει το id.blob , τότε αν τρέξεις 8th -v θα εμφανίσει custid: id.blob? ως υπενθύμιση ότι δεν μπορεί να βρει τις πληροφορίες ταυτοποίησης.

Ανεξάρτητα από την πλατφόρμα στην οποία αναπτύσσεις, μπορείς να παράγεις εφαρμογές για οποιαδήποτε πλατφόρμα υποστηρίζει η 8th.

Μόλις αποσυμπιέσεις το αρχείο zip, μπορείς να τρέξεις την 8th απευθείας. Για παράδειγμα, αν την εγκατέστησες στο /opt/8th σε 64-bit Linux, τότε θα πρέπει να μπορείς να πληκτρολογήσεις /opt/8th/bin/lin64/8th με όποιες παραμέτρους θέλεις και θα πρέπει να δουλέψει σωστά. Κάνε κάτι παρόμοιο σε macOS ή Windows.

Αν προσθέσεις τον φάκελο του εκτελέσιμου της 8th στη μεταβλητή περιβάλλοντος PATH του συστήματός σου, θα μπορείς να πληκτρολογείς απλώς 8th αντί για ολόκληρη τη διαδρομή του.

Χρήση της 8th

Η ίδια η 8th είναι ένα πρόγραμμα γραμμής εντολών. Δεν προορίζεται να ξεκινάει με κλικ σε ένα εικονίδιο στην επιφάνεια εργασίας. Μπορείς να δημιουργήσεις με αυτήν κανονικά προγράμματα με γραφικό περιβάλλον που μπορούν να ξεκινήσουν με αυτόν τον τρόπο, αλλά ο ίδιος ο μεταγλωττιστής της 8th είναι πρόγραμμα γραμμής εντολών (CLI).

Αν τρέχεις σε Windows και χρησιμοποιείς κέλυφος MSys ή Cygwin, τότε μπορεί να χρειαστεί να χρησιμοποιήσεις το ελεύθερα διαθέσιμο πρόγραμμα winpty για να δουλέψουν σωστά τα προγράμματά σου σε λειτουργία κονσόλας. Οι πρόσφατες εκδόσεις των Windows 10 δεν φαίνεται να το χρειάζονται.

Αν τρέχεις σε MacOS, διάβασε αυτό το νήμα του φόρουμ της 8th.

Η γραμμή εντολών της 8th μοιάζει κάπως έτσι:

8th [options] [[-f] file...] [-e 'code'...]

Όπου η επιλογή [-f] file σημαίνει "ερμήνευσε τα περιεχόμενα του αρχείου" και το -e code σημαίνει "ερμήνευσε αυτόν τον συγκεκριμένο κώδικα της 8th". Και οι δύο επιλογές μπορούν να δοθούν πάνω από μία φορά στη γραμμή εντολών και το αποτέλεσμα είναι σωρευτικό. Με άλλα λόγια:

8th -f first.8th -f second.8th

θα ερμηνεύσει τα περιεχόμενα του αρχείου first.8th και μετά τα περιεχόμενα του αρχείου second.8th . Σημείωσε ότι αν θέλεις απλώς να τρέξεις ένα αρχείο 8th, δεν χρειάζεται να πεις 8th -f first.8th , μπορείς αντ' αυτού να πληκτρολογήσεις απλώς 8th first.8th .

Αυτές είναι όλες οι επιλογές γραμμής εντολών που καταλαβαίνει η 8th:

επιλογή περιγραφή
-b Εκκινεί το βοηθητικό πρόγραμμα bin/build
-D dir ορίζει τον κατάλογο home στο dir (η προεπιλογή εξαρτάται από το λειτουργικό σύστημα)
-e str Ερμηνεύει τη συμβολοσειρά str ως κώδικα της 8th
-ee str Ερμηνεύει τη συμβολοσειρά str ως κώδικα της 8th και τερματίζει μετά
-f nm Ερμηνεύει το αρχείο με όνομα nm
-g Ενεργοποιεί το debug και τον έλεγχο του SED
-G Ορίζει την απαιτούμενη έκδοση GL (π.χ. 3.1)
-h Εμφανίζει τη βοήθεια
-H N Ορίζει το μέγεθος του ιστορικού της κονσόλας σε N γραμμές (προεπιλογή: 100)
-k N Ορίζει τα μεγέθη της στοίβας δεδομένων και της στοίβας r σε N στοιχεία (προεπιλογή: 128K)
-l Περισσότερες πληροφορίες debug
-r N Ορίζει το μέγεθος της στοίβας δεδομένων των callbacks σε N στοιχεία (προεπιλογή: 256)
-s N Ορίζει το μέγεθος της στοίβας αναδρομής σε N byte (προεπιλογή: 0, που σημαίνει την προεπιλογή του συστήματος)
-S Εμφανίζει τους οδηγούς SDL που εντοπίστηκαν και τερματίζει
-v Εκτυπώνει την έκδοση της 8th και τερματίζει
-vv Ίδιο με το -v αλλά με πρόσθετες πληροφορίες για σκοπούς debug
-x Απενεργοποιεί τον έλεγχο τύπων και ορίων της στοίβας
-z Ενεργοποιεί την καταμέτρηση στοιχείων δεδομένων
-Z Όπως το -z, αλλά περιλαμβάνει τη βιβλιοθήκη 'debug/allocs'
-? nm Εκτυπώνει τη βοήθεια για το στοιχείο 'nm'
-- Σηματοδοτεί το τέλος των επιλογών της 8th

Γενικά δεν θα χρειαστεί να χρησιμοποιήσεις τις επιλογές -k , -r ή -s . Παρέχονται σε περίπτωση που σου φανούν χρήσιμες, για παράδειγμα αν τα 128K στοιχεία στη στοίβα κάθε φορά είναι πολύ λίγα (για να είμαστε ειλικρινείς, αν ισχύει αυτό, καλύτερα να αλλάξεις τον αλγόριθμό σου...).

Αν δεις ότι χρησιμοποιείς συχνά επιλογές γραμμής εντολών, μπορείς απλώς να χρησιμοποιήσεις ένα "shell script" (σε macOS ή Linux) ή ένα "batch file" (σε Windows, που λέγεται και "command file") για να ξεκινάς την 8th με τις επιλογές που προτιμάς.

Μπορείς επίσης να δημιουργήσεις ένα αρχείο πηγαίου κώδικα 8th στον φάκελο app:datadir , με όνομα settings.8th . Αν υπάρχει, το REPL της 8th θα το φορτώσει κατά την εκκίνηση και θα εκτυπώσει ένα σχετικό μήνυμα. Για λόγους ασφαλείας, αυτό το αρχείο δεν αναζητείται ούτε φορτώνεται σε μια συσκευασμένη εφαρμογή.

Για να κλείσεις την 8th, κάνε οποιοδήποτε από τα παρακάτω:

  • Πληκτρολόγησε bye και πάτησε ENTER . Αυτό θα πει στην 8th να τερματίσει κανονικά
  • Πληκτρολόγησε 1 die και πάτησε ENTER . Αυτό θα πει στην 8th να τερματίσει μη κανονικά και να επιστρέψει τον κωδικό κατάστασης 1 στο λειτουργικό σύστημα
  • Πάτησε το πλήκτρο Ctrl+C δύο φορές γρήγορα στη σειρά, ή Ctrl+D μία φορά. Και τα δύο λένε στην 8th να τερματίσει αμέσως
  • Σε μια εφαρμογή που τρέχει, η κλήση του throw θα προκαλέσει εξαίρεση. Αν τρέχεις από την κονσόλα της 8th, στις περισσότερες περιπτώσεις θα επιστρέψεις εκεί. Αν τρέχεις ένα αρχείο ή μια συσκευασμένη εφαρμογή, θα εκτυπωθεί ένα μήνυμα και η εφαρμογή θα τερματιστεί.

Εκτέλεση προγραμμάτων 8th

Η 8th μπορεί να τρέξει τα προγράμματά σου σε διάφορες λειτουργίες:

λειτουργία περιγραφή
interactive Ξεκίνα απλώς την 8th και πληκτρολόγησε τον κώδικά σου στην κονσόλα
script Βάλε τον κώδικά σου σε ένα αρχείο κειμένου και τρέξ' το με 8th mycode.8th (για παράδειγμα). Δες τη συμβουλή παρακάτω...
app Μετέτρεψε τον κώδικά σου σε συσκευασμένη εφαρμογή χρησιμοποιώντας το build script (ή την επιλογή -b της γραμμής εντολών)

Χρήστες Pro+: Μπορείς να δημιουργήσεις κρυπτογραφημένες εφαρμογές για να αποθαρρύνεις χάκερ και άλλα κακόβουλα άτομα

Στα δύο τελευταία σενάρια, ο κώδικάς σου πρέπει να βρίσκεται σε αρχεία απλού κειμένου (π.χ. όχι σε μορφή επεξεργαστή κειμένου). Τυχόν βοηθητικά αρχεία θα πρέπει να τοποθετούνται στον ίδιο φάκελο με τον κώδικά σου ή σε έναν υποφάκελό του. Μπορείς να προσπελάσεις αυτά τα άλλα αρχεία στην 8th καλώντας το app:asset .

Μια "app" είναι ένα αυτόνομο πρόγραμμα που τρέχει μόνο του, όπως κάθε άλλο πρόγραμμα για την πλατφόρμα-στόχο, και δεν χρειάζεται να το τρέξει η 8th μέσω της γραμμής εντολών. Τα περιεχόμενά της μπορούν να κρυπτογραφηθούν για να αποθαρρύνουν χάκερ, όπως αναφέρθηκε παραπάνω. Οι λεπτομέρειες για τη δημιουργία αυτόνομων εφαρμογών βρίσκονται στην ενότητα για τη χρήση του εργαλείου build.

Συμβουλή: αν τρέχεις σε macOS, Linux ή συστήματα RPI, μπορείς να κάνεις το script σου να τρέχει σαν κανονική εντολή συστήματος:

  • Κάνοντας το αρχείο εκτελέσιμο: chmod +x scriptname
  • Βάζοντας ως πρώτη γραμμή του κώδικά σου: #! /usr/bin/env 8th
  • Βεβαιώσου ότι ένα σχετικό εκτελέσιμο της 8th βρίσκεται στο PATH σου

Αυτό θα δουλέψει επίσης με συσκευασμένα appdata, οπότε αν χρησιμοποίησες το bin/build για να δημιουργήσεις ένα εκτελέσιμο, μπορείς να χρησιμοποιήσεις με τον ίδιο τρόπο τα appdata που δημιούργησε, κάνοντας:

cat - path/to/appdata > newappdata
#! /usr/bin/env 8th<ENTER><CTRL+D>
chmod +x newappdata