Μάθε πώς να εγκαταστήσεις την 8th τοπικά, για να λύνεις τις ασκήσεις σου στο Exercism στον δικό σου υπολογιστή
Η 8th διανέμεται σε ένα ZIP αρχείο που τα περιλαμβάνει όλα, το οποίο περιέχει εκδόσεις της 8th για όλες τις πλατφόρμες που υποστηρίζει η έκδοση που κατέβασες. Οι εκδόσεις της 8th που έχεις είναι αδειοδοτημένες αποκλειστικά για εσένα και δεν επιτρέπεται να τις μοιραστείς.
Ξεκινώντας από τη σελίδα Get 8th,
Για να χρησιμοποιήσεις την 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 είναι πρόγραμμα γραμμής εντολών (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 στο λειτουργικό σύστημαthrow θα προκαλέσει εξαίρεση. Αν τρέχεις από την κονσόλα της 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
Αυτό θα δουλέψει επίσης με συσκευασμένα appdata, οπότε αν χρησιμοποίησες το bin/build για να δημιουργήσεις ένα εκτελέσιμο, μπορείς να χρησιμοποιήσεις με τον ίδιο τρόπο τα appdata που δημιούργησε, κάνοντας:
cat - path/to/appdata > newappdata
#! /usr/bin/env 8th<ENTER><CTRL+D>
chmod +x newappdata