LINUX.ORG.RU

Lua в ядре NetBSD

 ,


1

6

Согласно докладу Марка Балмера (Marc Balmer, разработчик NetBSD) на FOSDEM'13, прошедшего 2 и 3 февраля, в ядро NetBSD-current добавлен скриптовый язык lua. Работы в данном направлении ведутся уже, как минимум, с 2010-го года.

Использование языка lua в ядре позволяет ускорить разработку драйверов, изменения функционала ядра, а также его настройку. Более низкий порог вхождения по сравнению с языком C позволит в будущем упростить разработку и ускорить темпы развития проекта, а также увеличить интерес сообщества к проекту NetBSD и привлечь новых людей.

>>> Доклад

★★★★★

Проверено: mono ()
Последнее исправление: Binary (всего исправлений: 3)

Ответ на: комментарий от sv75

Там написано совсем не то, что вы утверждаете, вообще-то. А что по дефолту используется одно ядро, не нравится — ручкам говоришь, сколько использовать.

Хм, и правда, похоже я погорячился. Только не понятно, почему же тогда у меня всё равно на 1 ядре считает?..

Vudod ★★★★★
()
Ответ на: комментарий от baverman

Почти все проблемы, о которых он пишет, решаются путем использования соответсвующего биндинга, так что эта статья больше похоже на нытье лоровчанина в толксах, или даже толстый троллинг

annulen ★★★★★
()
Ответ на: комментарий от border-radius

В питоне любой файл - уже модуль, к функциям которого можно обратиться самым естественным образом. Никаких лишних телодвижений для того, чтобы сделать сырец модулем, не нужно.

Если можно обратиться к любой функции то это помойка.

Napilnik ★★★★★
()
Ответ на: комментарий от PolarFox

Надо просто случайно крякнуть не уткой, да ещё в какой-нибудь строчке, которую программа выполняет при очень редких условиях.

Даже самая суровая статическая типизация не заменит полностью юнит-тесты

annulen ★★★★★
()
Ответ на: комментарий от Napilnik

Ты хоть питон видел? Помойка - это, например, пых, где для каждого модуля не выделяется собственное пространство имён. А здесь module1.func и module2.func - разные вещи. Поведение пыха тоже можно симитировать (from module1 import *), но это лютое ССЗБ.

border-radius
()
Ответ на: комментарий от border-radius

Ты хоть питон видел?

Кто в линуксе его код не видел.

Помойка - это, например, пых, где для каждого модуля не выделяется собственное пространство имён. А здесь module1.func и module2.func - разные вещи.

Всё равно нельзя предоставлять другим модулям доступ к любой функции модуля даже если они будут называться по разному. Например, в модуле будут функции А, Б, В, Г. Функция А выполняет полезную работу и в строго определённые моменты дёргает функции Б, В, Г в определённом порядке, если порядок поменять то случится лажа и вообще, перед их использованием желательно что-то сделать с данными, чем и занимается функция А. И вдруг все функции модуля сделали доступными для вызова из других модулей, соответственно погромист может дёргать не только А но и Б, В, Г в любом порядке. Если привести биологическую аналогию, то поциента питонисты смогут кормить с ложечки не только через рот но и напрямую через желудок, кишечник и анал.

Napilnik ★★★★★
()
Ответ на: комментарий от Napilnik

любой функции модуля

разве доступ к функциям нельзя указывать в __init__.py? Для 3 питона кажется есть другое рещение - слоты.

Для луа достаточно сделать функцию локальной для таблицы или файла.

rikardoac
()
Ответ на: комментарий от bioreactor

Надо было бейсик встроить

И получится операционная система, на старых компах так и было. Причём жрало очень мало.

Napilnik ★★★★★
()
Ответ на: комментарий от Napilnik

соответственно погромист может дёргать не только А но и Б, В, Г в любом порядке.

Может, но зачем? Если в документации к модулю указано, что для внешнего вызова нужна только функция А (либо вообще подробно документирована только она), зачем дёргать остальные? Наличие защиты от дурака количество дураков не уменьшит, и не надо к программистам относиться как к обычным юзверям, не читающим документации на модули.

border-radius
()
Ответ на: комментарий от rikardoac

разве доступ к функциям нельзя указывать в __init__.py? Для 3 питона кажется есть другое рещение - слоты.

Лучше не запрещать доступ к функциям а разрешать только к нужным, так ли это в питоне, надо спрашивать у питонистов.

Napilnik ★★★★★
()
Ответ на: комментарий от Napilnik

разрешать только к нужным

это я и имел в виду. там (в __init__.py), насколько я помню, указывается список глобально доступных для этого модуля функций.

rikardoac
()
Ответ на: комментарий от border-radius

Может, но зачем? Если в документации к модулю указано, что для внешнего вызова нужна только функция А

То есть в языке по умолчанию запрограммирована помойка и чтобы ни во что не вляпаться нужно внимательно прочитать 100500 страниц документации, если она конечно есть и не устарела.

Наличие защиты от дурака количество дураков не уменьшит

А дорожная разметка со знаками и злыми полицаями не уменьшат количество дтп.

и не надо к программистам относиться как к обычным юзверям, не читающим документации на модули.

Намного удобнее залезть в интерфейсную часть модуля где сложены описания всех доступных функций и прочитать коменты и уже потом поискать в документации описание непонятного.

Napilnik ★★★★★
()
Ответ на: комментарий от Napilnik

чтобы ни во что не вляпаться нужно внимательно прочитать 100500 страниц документации

Ты знаешь много идиотов, которые сразу наобум пишут modulename.randomfuncname, не смотря, какие вызовы там есть вообще?

поискать в документации описание непонятного.

Вообще, ты какую-то суровую документацию видел, а не краткие описания необходимых вызовов в модуле, которые, кстати, можно (нужно) выполнить docstring-ами непосредственно в его коде.

border-radius
()
Ответ на: комментарий от rikardoac

это я и имел в виду. там (в __init__.py), насколько я помню, указывается список глобально доступных для этого модуля функций.

Какой-то С стиль, нет чтобы перечислять глобально доступные функции в самом модуле.

Napilnik ★★★★★
()
Ответ на: комментарий от Vudod

возможно, вторая часть написанного еще не реализована )

sv75 ★★★★★
()
Ответ на: комментарий от border-radius

Ты знаешь много идиотов, которые сразу наобум пишут modulename.randomfuncname, не смотря, какие вызовы там есть вообще?

То есть если документации под рукой нет и интернет потух а кодить надо то модули превращаются в тыкву?

а не краткие описания необходимых вызовов в модуле, которые, кстати, можно (нужно) выполнить docstring-ами непосредственно в его коде.

Часто приходится видеть документацию в которой есть не всё нужное а то до чего у разработчика дошли руки. Или после апгрейда движка сайта часть вики слилась в унитаз разработчиками конкурентных модулей, естественно, случайно.

Napilnik ★★★★★
()
Ответ на: комментарий от Napilnik

Ну так нечего разрабу на питон пенять, коль руки кривые и докстринги для функций не пишет. Вменяемые модули всегда их содержат, чтоб даже при потухшем инете можно было бы выполнить help(modulename) и увидеть справку по функциям, а затем help(modulename.funcname) для краткого описания конкретного вызова.

Зы. При чём здесь какие-то вики? Опять мимо.

border-radius
()
Ответ на: комментарий от Napilnik

То есть если документации под рукой нет и интернет потух а кодить надо то модули превращаются в тыкву?

Если к модулю нет документации, то это говно, а не модуль, и использовать его скорее всего не следует. Проблему на ровном месте придумал ты. Если требуется работать с приватным состоянием объекта, надо просто обзывать соответствующие идентификаторы объекта начиная с _. А top-level функция скорее всего будет входит в API модуля.

PolarFox ★★★★★
()
Ответ на: комментарий от annulen

OOLua или LuaBridge

То есть, по сути, автор всё сказал верно. Чистый луа ни на что не годен без соответствующих костылей?

baverman ★★★
()
Ответ на: комментарий от baverman

У автора просто парадигмы головного мозга, это не лечится. Plain old imperative is enough for everything, bljad. Хотя для оконного менеджера питон подошёл бы гораздо больше, тут я с ним согласен.

border-radius
()
Ответ на: комментарий от border-radius

Ну так нечего разрабу на питон пенять, коль руки кривые и докстринги для функций не пишет.

Язык с наркотической зависимостью от документации не может быть не кривым.

Вменяемые модули всегда их содержат

Вменяемые модули всегда содержат интерфейсную часть. В питоне она есть?

Зы. При чём здесь какие-то вики? Опять мимо.

Какое слово тебе непонятно?

Napilnik ★★★★★
()
Ответ на: комментарий от PolarFox

Если к модулю нет документации, то это говно, а не модуль, и использовать его скорее всего не следует.

Говно язык который любой хелловорд делает зависимым от документации - интерпретируемый ассемблер просто.

Napilnik ★★★★★
()
Ответ на: комментарий от PolarFox

Для хелловорлда документация не нужна.

Если хорошо написать, то и несколько страниц будешь изучать часами.

Но хелловорлд — не модуль.

А чем же он не модуль если без изменения содержимого исходника его можно в модуль превратить?

Napilnik ★★★★★
()
Ответ на: комментарий от Napilnik

А чем же он не модуль если без изменения содержимого исходника его можно в модуль превратить?

Можно. А что, в каких-то языках для этого надо менять исходник?

PolarFox ★★★★★
()
Ответ на: комментарий от PolarFox

А что, в каких-то языках для этого надо менять исходник?

Да и модуль обязан использовать ключевые слова unit, interface и implementacion. Соотвестсвенно доступными для внешнего использования являются только функции, типы, переменные, объекты, вызовы других модулей прописанные между interface и implementacion.

Napilnik ★★★★★
()
Ответ на: комментарий от Napilnik

Ну, питон предполагает, что у модуля интерфейс и реализация максимально совпадают, поэтому отдельных ключевых слов не делали.

PolarFox ★★★★★
()
Последнее исправление: PolarFox (всего исправлений: 1)

Это такой волшебный язык, где массивы с 1 нумеруются? Хотя что ещё с бздшников взять - с выбором лицензии они ещё и не так лоханулись, так что всё закономерно :)

Lennart
()
Ответ на: комментарий от Lennart

где массивы с 1 нумеруются

джва года жду такую фичу. кто сказал, что массивы должны нумероваться с нуля? дикость какая-то.

x4DA ★★★★★
()
Ответ на: комментарий от another

О драйверах и их написании ты тоже знаешь больше? :)

Здесь уже не знаю. С одной стороны, Линус не писал драйверов уже лет 20, с другой - он надзирает в том числе и за драйверными API. Когда он скажет что-то о том, как надо писать драйверы, обещаю внимательно слушать и много думать %)

tailgunner ★★★★★
()
Ответ на: комментарий от x4DA

кто сказал, что массивы должны нумероваться с нуля? дикость какая-то.

Кто вам сказал, что с нуля они нумеруются? С нуля начинаются смещения элементов от начала массива.

tailgunner ★★★★★
()
Ответ на: комментарий от Napilnik

То есть в языке по умолчанию запрограммирована помойка и чтобы ни во что не вляпаться нужно внимательно прочитать 100500 страниц документации, если она конечно есть и не устарела.

Есть договорённость, что все недоступные извне функции маркируются подчёркиванием. Если это сделано, то ничего читать не нужно. Нсли же программист такой дурак, что прямое указание на нежелательность использования метода или функции он игнорирует, это уже никто не излечит. Тем более что Питон --- язык интерпретируемый, а, значит, используя чужой модуль, вы имеете полный доступ к его коду.

Vudod ★★★★★
()
Ответ на: комментарий от Lennart

где массивы с 1 нумеруются

Вы так говорите, как будто это что-то очень плохое.

d_Artagnan ★★
()

Что там говорили о Java в ядре? Lua в ядро! Lua в массы!!!

VoDA ★★
()
Ответ на: комментарий от tailgunner

С одной стороны, Линус не писал драйверов уже лет 20

Это просто неправда. Не так давно была новость о том, что он написал драйвер для какой-то швейной машинки.

Vudod ★★★★★
()
Ответ на: комментарий от x4DA

где массивы с 1 нумеруются

джва года жду такую фичу

Fortran, с 1958 года.

Vudod ★★★★★
()
Ответ на: комментарий от Vudod

Не так давно была новость о том, что он написал драйвер для какой-то швейной машинки.

АТЕЦ СНОВА В ДЕЛЕ, все в машину!!1

tailgunner ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.