[Python] Цифровые раскопки: заводим Python 1.0.1
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Всем привет! Сегодня мы будем пытаться собрать Python 1.0.1 (1994 год) на современном железе при помощи современного компилятора. Даже если Вы, как Python разработчик, никогда не компилировали проект на Си, то не волнуйтесь, я проведу Вас через весь путь. Я предполагаю, что у Вас:
- установлен какой-нибудь дистрибутив Линукс
- make
- компилятор для make
мои версии
SPL
Fedora 33 x64
make 4.3
gcc 10.2.1
На другом дистрибутиве и с более старыми/новыми версиями компилятора и make тоже должно работать.
Для пользователей macOS инструкция для линукс должна сработать.
если установлен windows
SPL
Вы можете скомпилировать Python и в Windows.
Для этого Вам нужен make для Windows, он есть в составе MinGW
Для начала идем на официальный сайт и скачиваем архив с исходным кодом.
Загрузка исходников
В 1994 году никакого Гитхаба еще не было в помине, поэтому скачиваем с legacy HTTP сервера :-).
Для этого переходим по ссылке и выбираем 1.0.1.
После загрузки и распаковки открываем терминал в папке с питоном.
Сборка Python
Для сборки сначала необходимо запустить скрипт configure для конфигурации, а затем собрать проект при помочь make.
configure должен отработать нормально, после него надо запустить make.
make выплевывает слишком много информации по умолчанию, поэтому рекомендую использовать флаг s:
make -s
Нам показали ошибки, предупреждения и дали подсказку, что произошел конфликт между названиями функций — getline из файла Objects/fileobject.c уже определена в stdio.h
Чтож, переименовываем! Открываем ваш любимый редактор и заменяем getline на скажем Py_getline. В этом же файле указана функция filegetline, поэтому если Вы заменили getline на Py_getline во всем файле, то эту функцию Вам надо переименовать обратно: она используется вне это файла и поэтому переименовывать ее не стоит.
После переименования функции можно снова попробовать запустить сборку командой
make -s
О, теперь ошибки нет)
Правда осталась куча предупреждений, но и без из фикса можно запустить наш древний питон.
Для этого надо ввести в терминал (открытый в той же папке, т.е в корневой папке с исходниками)
./python
Должен открыться питоновский REPL.
В python 1.0.1 не было огромного количества привычных нам функций, нет даже help и exit.
Если Вы вдруг захотели установить древний питон, то рекомендую воспользоваться командой
make install
Ее надо запустить от суперпользователя (например с помощью команды sudo). Но!
При этом ваш прежний питон будет недоступен, в случае если он вызывался по команде python, а не например python2/3.
Что дальше?
Дальше было бы неплохо исправить предупреждения, потому что некоторых из них могут вести к некорректной работе.Я создал репозиторий на Github, в котором первый коммит это оригинальный Python 1.0.1, а в 2 изменения, которые позволяют скомпилировать Python 1.0.1 актуальным компилятором (ну т.е те изменения, о которых я рассказывал в этой статье).
Если Вы захотите исправить предупреждения или еще что-то улучшить, то милости прошу сделать Pull Request.
Ну а у меня на этом все.
Счастливого Нового года и Рождества!
===========
Источник:
habr.com
===========
Похожие новости:
- [Хранилища данных, Производство и разработка электроники, Научно-популярное, Накопители, Электроника для начинающих] Вспомнить всё. Разбираемся в полупроводниковой памяти
- [Программирование, Обработка изображений, Геоинформационные сервисы, CGI (графика), Космонавтика] Об эффективном использовании памяти при отображении картографических данных
- [Работа с видео, Разработка мобильных приложений, Компьютерная анимация, Продвижение игр] Наш 2020-й в видеороликах: итоги года от Alconost Video
- [Системное администрирование, Разработка под iOS, Разработка под MacOS] 1008F — или как раскирпичить свой Mac
- [Git] Бранч-стратегии при разработке в Git
- [.NET, C#] Интеграция с “Госуслугами”. Особенности реализации задачи средствами Workflow Core (часть III)
- [Высокая производительность, Администрирование баз данных, Big Data, Визуализация данных] Что под капотом у BI? Детальный разбор технологии In-Memory OLAP
- [Разработка веб-сайтов, JavaScript, Node.JS] Обзор npm 7
- [Python, Программирование, Разработка систем связи, Научно-популярное, Космонавтика] Принимаем и декодируем передачи SSTV с МКС
- [JavaScript, Программирование, Дизайн мобильных приложений, TypeScript] Автоматизируем локализацию макетов в Figma
Теги для поиска: #_python, #_python, #_c, #_python
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 22:56
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Всем привет! Сегодня мы будем пытаться собрать Python 1.0.1 (1994 год) на современном железе при помощи современного компилятора. Даже если Вы, как Python разработчик, никогда не компилировали проект на Си, то не волнуйтесь, я проведу Вас через весь путь. Я предполагаю, что у Вас:
мои версииSPLFedora 33 x64
make 4.3 gcc 10.2.1 На другом дистрибутиве и с более старыми/новыми версиями компилятора и make тоже должно работать. Для пользователей macOS инструкция для линукс должна сработать. если установлен windowsSPLВы можете скомпилировать Python и в Windows.
Для этого Вам нужен make для Windows, он есть в составе MinGW Для начала идем на официальный сайт и скачиваем архив с исходным кодом. Загрузка исходников В 1994 году никакого Гитхаба еще не было в помине, поэтому скачиваем с legacy HTTP сервера :-). Для этого переходим по ссылке и выбираем 1.0.1. После загрузки и распаковки открываем терминал в папке с питоном. Сборка Python Для сборки сначала необходимо запустить скрипт configure для конфигурации, а затем собрать проект при помочь make. configure должен отработать нормально, после него надо запустить make. make выплевывает слишком много информации по умолчанию, поэтому рекомендую использовать флаг s: make -s
Нам показали ошибки, предупреждения и дали подсказку, что произошел конфликт между названиями функций — getline из файла Objects/fileobject.c уже определена в stdio.h Чтож, переименовываем! Открываем ваш любимый редактор и заменяем getline на скажем Py_getline. В этом же файле указана функция filegetline, поэтому если Вы заменили getline на Py_getline во всем файле, то эту функцию Вам надо переименовать обратно: она используется вне это файла и поэтому переименовывать ее не стоит. После переименования функции можно снова попробовать запустить сборку командой make -s
О, теперь ошибки нет) Правда осталась куча предупреждений, но и без из фикса можно запустить наш древний питон. Для этого надо ввести в терминал (открытый в той же папке, т.е в корневой папке с исходниками) ./python
Должен открыться питоновский REPL. В python 1.0.1 не было огромного количества привычных нам функций, нет даже help и exit. Если Вы вдруг захотели установить древний питон, то рекомендую воспользоваться командой make install
Ее надо запустить от суперпользователя (например с помощью команды sudo). Но! При этом ваш прежний питон будет недоступен, в случае если он вызывался по команде python, а не например python2/3. Что дальше? Дальше было бы неплохо исправить предупреждения, потому что некоторых из них могут вести к некорректной работе.Я создал репозиторий на Github, в котором первый коммит это оригинальный Python 1.0.1, а в 2 изменения, которые позволяют скомпилировать Python 1.0.1 актуальным компилятором (ну т.е те изменения, о которых я рассказывал в этой статье). Если Вы захотите исправить предупреждения или еще что-то улучшить, то милости прошу сделать Pull Request. Ну а у меня на этом все. Счастливого Нового года и Рождества! =========== Источник: habr.com =========== Похожие новости:
|
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 22:56
Часовой пояс: UTC + 5