Перейти к содержимому


Фотография

bibi или удобство разработки eeprom-кода и операционных систем

OC eeprom bibi bios

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 13

#1 Оффлайн   swg2you

swg2you
  • Пользователи
  • Сообщений: 268
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

              

Отправлено 21 Июнь 2015 - 01:41

Писать программы для eeprom - то еще занятие. Попробуем облегчить этот процесс.
  • в \config\OpenComputers.cfg устанавливаем bufferChanges=false
Это отключит буферизацию, и все изменения файлов в каталогах сохранения будут немедленно отображены внутри игры
  • Загружаем игру в сингл, строим себе базу, ставим там компьютер, и инсталлируем на него OpenOS.
После этого, в каталоге \saves\%save_name%\opencomputers\ появится UID нашего виртуального "винчестера", со всем содержимым
  • Записываем туда файл bibi
local gpu = component.proxy(component.list("gpu")())
gpu.bind(component.list("screen")()) 

local cy=1
prn=function(...)
  local t={...}  
  for i=1,#t do t[i]=tostring(t[i]) end
  gpu.set(1,cy,table.concat(t, ' '))
  cy=cy+1
end

local readfile=function(f)
  for addr in component.list("filesystem") do
    local fs=component.proxy(addr)
    local h=fs.open(f)
    if h then
      --костыль для init.lua
      computer.getBootAddress=function() return addr end
      local s,r='',''
      while r do
        r=fs.read(h,math.huge)
        s=s..(r or "")
      end
      fs.close(h) 
      return s,f
    end
  end
end

prn('bibi: press a key to force init.lua') computer.beep(440)
local s,f=readfile('boot.lua')
if ({computer.pullSignal(1)})[1]=='key_down' or not s then 
  s,f=readfile('init.lua')
end

if s then
  local r,e=load(s,f)
  if r then r,e=pcall(r) end
  prn('bibi:', r, e)
else
  prn('bibi: no file')
end

prn('bibi: press a key to reboot')
repeat until ({computer.pullSignal()})[1]=='key_down'
computer.shutdown(true) 
  • И файл boot.lua
prn('Hello world', nil~=false)
После чего в OpenOS делаем:
  • flash -q bibi bibi
  • reboot
h_1434835970_5235428_e2d021c481.png
 
Наблюдаем наш хелловорлд и убеждаемся, что nil и false - это две большие разницы:
 
h_1434837050_8115362_ab38e16a39.png

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

Ошибки выполнения так:
h_1434837050_1573462_b1d2246271.png
  • А если нам захочется в OpenOS то мы нажмем секретную кнопку "а кей" когда наш bibi пискнет при старте.
Также в OpenOS мы попадем если bibi не найдет файла boot.lua. А если и init.lua не найдет, то скажет "no file" и будет ждать когда мы исправим ситуацию
 
ЗЫ
Не злоупотребляйте prn(), она очень служебная и не умеет scroll, конечно scroll это всего лишь условие и две строки, но зачем?!
Пишите свои prn-ы с преферансом и барышнями, предварительно поиграв ну хотя-бы с таким вот хелловорлдом:
Спойлер

Сообщение отредактировал swg2you: 21 Июнь 2015 - 03:46

  • Krutoy, Totoro, Fingercomp и 2 другим это нравится

#2 Оффлайн   LeshaInc

LeshaInc
  • Пользователи
  • Сообщений: 1 212
  • Уровень сигнала: 14,54%
  • В игре: 117 час. 41 мин.
  • ГородЛуна

Награды

                       

Отправлено 21 Июнь 2015 - 11:56

Ошибки компиляции нашего кода будут выглядеть так:h_1434837050_7948091_48364a2896.png


Lua - интерпретируемый язык, компиляции там нет. В твоём случае это ошибка синтаксиса. Тех кто называет Lua компилируемым языком нужно сжигать на костре.

Сообщение отредактировал LeshaInc: 21 Июнь 2015 - 11:56

  • NEO, Aselock и Kartze это нравится

#3 Онлайн   NEO

NEO
  • Пользователи
  • Сообщений: 1 760
  • Уровень сигнала: 4,5%
  • В игре: 36 час. 25 мин.
  • ГородСолнце

Награды

   3                        

Отправлено 21 Июнь 2015 - 11:59

Lua - интерпретируемый язык, компиляции там нет. В твоём случае это ошибка синтаксиса. Тех кто называет Lua компилируемым языком нужно сжигать на костре.

Видимо человек так себе это представляет, хотя и не правильно.


Сообщение отредактировал NEO: 21 Июнь 2015 - 11:59

  • LeshaInc это нравится

#4 Оффлайн   swg2you

swg2you
  • Автор темы
  • Пользователи
  • Сообщений: 268
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

              

Отправлено 21 Июнь 2015 - 13:03

*
Популярное сообщение!

Lua - интерпретируемый язык, компиляции там нет. В твоём случае это ошибка синтаксиса. Тех кто называет Lua компилируемым языком нужно сжигать на костре.

Видимо человек так себе это представляет, хотя и не правильно.

Цитаты из wikipedia.org:

  • "Компиляция — трансляция программы, составленной на исходном языке высокого уровня, в эквивалентную программу на низкоуровневом языке, близком машинному коду."
  • "Результатом работы компилятора может быть программа на специально созданном низкоуровневом языке, подлежащем интерпретации виртуальной машиной. Такой язык называется псевдокодом или байт-кодом."
  • "Интерпрета́ция — пооператорный (покомандный, построчный) анализ, обработка и тут же выполнение исходной программы или запроса (в отличие от компиляции, при которой программа транслируется без её выполнения)"

Цитата из описания load в официальной документации на lua.org:

  • "If there are no syntactic errors, returns the compiled chunk as a function; otherwise, returns nil plus the error message."

Своими словами:

  • load - компилирует текст программы в байт-код. Ком-пи-ли-ру-ет! Поэтому его ошибки это ошибки ком-пи-ля-ци-и.

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

--==--

Брысь отсюда!  )

Идите маны покурите и матчасть почитайте если нечего по делу сказать. Ишь ты, какие критиканы!

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



#5 Оффлайн   Alex

Alex
  • Администраторы
  • Сообщений: 3 763
  • Уровень сигнала: 48,64%
  • В игре: 393 час. 44 мин.

Награды

                 

Отправлено 21 Июнь 2015 - 14:43

Брысь отсюда!  )

Идите маны покурите и матчасть почитайте если нечего по делу сказать. Ишь ты, какие критиканы!

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

:D


  • Fingercomp это нравится

#6 Онлайн   NEO

NEO
  • Пользователи
  • Сообщений: 1 760
  • Уровень сигнала: 4,5%
  • В игре: 36 час. 25 мин.
  • ГородСолнце

Награды

   3                        

Отправлено 21 Июнь 2015 - 16:33

Цитаты из wikipedia.org:

  • "Компиляция — трансляция программы, составленной на исходном языке высокого уровня, в эквивалентную программу на низкоуровневом языке, близком машинному коду."
  • "Результатом работы компилятора может быть программа на специально созданном низкоуровневом языке, подлежащем интерпретации виртуальной машиной. Такой язык называется псевдокодом или байт-кодом."
  • "Интерпрета́ция — пооператорный (покомандный, построчный) анализ, обработка и тут же выполнение исходной программы или запроса (в отличие от компиляции, при которой программа транслируется без её выполнения)"

Цитата из описания load в официальной документации на lua.org:

  • "If there are no syntactic errors, returns the compiled chunk as a function; otherwise, returns nil plus the error message."

Своими словами:

  • load - компилирует текст программы в байт-код. Ком-пи-ли-ру-ет! Поэтому его ошибки это ошибки ком-пи-ля-ци-и.

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

--==--

Брысь отсюда!  )

Идите маны покурите и матчасть почитайте если нечего по делу сказать. Ишь ты, какие критиканы!

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

Каждый компилятор после своей работы оставляет файл с машинным или байт кодом.

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

У тебя бомбит :smile3:  :smile3:  :smile3:  Есть специальный компилятор LuaJIT http://luajit.org, а в OC стоит просто Lua interpreter.

Который интерпретирует.


Сообщение отредактировал NEO: 21 Июнь 2015 - 17:03

  • LeshaInc это нравится

#7 Оффлайн   swg2you

swg2you
  • Автор темы
  • Пользователи
  • Сообщений: 268
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

              

Отправлено 21 Июнь 2015 - 17:33

Каждый компилятор после своей работы оставляет файл с машинным или байт кодом.

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

У тебя бомбит :smile3:  :smile3:  :smile3:  Есть специальный компилятор LuaJIT http://luajit.org, а в OC стоит просто Lua interpreter.

Который интерпретирует.

Ух приставучий. Иди учись. Не трать моё время!



#8 Онлайн   NEO

NEO
  • Пользователи
  • Сообщений: 1 760
  • Уровень сигнала: 4,5%
  • В игре: 36 час. 25 мин.
  • ГородСолнце

Награды

   3                        

Отправлено 21 Июнь 2015 - 18:13

Ух приставучий. Иди учись. Не трать моё время!

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

Ты не понял термина, ну бывает.


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


Сообщение отредактировал NEO: 21 Июнь 2015 - 18:11


#9 Оффлайн   swg2you

swg2you
  • Автор темы
  • Пользователи
  • Сообщений: 268
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

              

Отправлено 21 Июнь 2015 - 18:28

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

Ты не понял термина, ну бывает.


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

Ок, ок. Прости за грубость. Спор действительно на пустом месте.

Пойду я, а то у меня еще мой коблоужас на сервере не достроен.

Еще рас прошу извинить и, надеюсь, мир?



#10 Оффлайн   Totoro

Totoro
  • Хранители Кода
  • Сообщений: 1 740
  • Уровень сигнала: 0,27%
  • В игре: 2 час. 13 мин.

Награды

                                      

Отправлено 21 Июнь 2015 - 19:34

Ребята, давайте жить дружно!

Пусть у swg2you Луа компилируется, а у NEO - интерпретируется.

:D


  • Ktlo и Kartze это нравится

#11 Оффлайн   LeshaInc

LeshaInc
  • Пользователи
  • Сообщений: 1 212
  • Уровень сигнала: 14,54%
  • В игре: 117 час. 41 мин.
  • ГородЛуна

Награды

                       

Отправлено 21 Июнь 2015 - 19:50

Totoro, Ты хочешь сказать что swg2you должен написать компилятор Lua?

#12 Оффлайн   Totoro

Totoro
  • Хранители Кода
  • Сообщений: 1 740
  • Уровень сигнала: 0,27%
  • В игре: 2 час. 13 мин.

Награды

                                      

Отправлено 21 Июнь 2015 - 19:59

Totoro, Ты хочешь сказать что swg2you должен написать компилятор Lua?

http://lua-users.org...uaCompilerInLua  ;)


  • Fingercomp это нравится

#13 Оффлайн   SergOmarov

SergOmarov
  • Пользователи
  • Сообщений: 564
  • Уровень сигнала: 0,32%
  • В игре: 2 час. 36 мин.

Награды

     

Отправлено 18 Октябрь 2015 - 14:52

Не пашет этот bibi, ошибка: boolean ожидается, передано string. Я ошибку не нашел, извольте исправить, автор)



#14 Оффлайн   Alex

Alex
  • Администраторы
  • Сообщений: 3 763
  • Уровень сигнала: 48,64%
  • В игре: 393 час. 44 мин.

Награды

                 

Отправлено 18 Октябрь 2015 - 15:22

Не пашет этот bibi, ошибка: boolean ожидается, передано string. Я ошибку не нашел, извольте исправить, автор)

Серж! Мне вот интересно, есть на форуме темы, которые ты не апнул. Тебе медаль некропостера уже давать надо. Ну тут еще крипер с ним. Тема программная, баги автору и т.п. Это хорошо, что там баг нашел.

 

Но 99% тем ты апаешь вообще просто так, типа мол, о, прикольно, или, мол, я тоже это когда-то хотел сделать. При чем темы чаще всего находишь, которые сдохли полгода-год назад :)


  • NEO и Fingercomp это нравится





Темы с аналогичным тегами OC, eeprom, bibi, bios

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных