Добро пожаловать!

Я Дож, программирование — моё хобби. По мере того, как я осваиваю что-то новое, стараюсь об этом написать пост.
На текущий момент в блоге затронуты следующие темы: vim, free pascal, lisp, forth, m4
Занимаюсь разработкой своего языка под названием DEmbro, подбробней: wiki и svn
Для постов, не связанных с программированием, у меня есть отдельное жж.
Показаны сообщения с ярлыком svn. Показать все сообщения
Показаны сообщения с ярлыком svn. Показать все сообщения

августа 10, 2012

DEmbro v0.11 -> v0.12

Планируется серьёзное переписывание ядра и системы команд DEmbro, а именно

  1. Расширенные возможности работы с шитым кодом: несколько отдельных буферов, возможность стирать часть кода.
  2. Расширенные возможности работы со словарём: возможность менять поведение словаря в некоторых случаях (например, когда происходит создание слова с именем, которое уже есть в словаре: сгенерировать исключение, создать новое, заменить старое, сделать что-то ещё), возможность удалять созданные ранее команды, поддержка механизма локальных слов.
  3. Упразднить универсальный стек W, который может работать с любым типом данных, до стека, умеющего работать только с ячейками. Добавить команды по работе с byte, word, dword в памяти по указателям.
  4. Стабилизировать систему команд для чисел с плавающей точкой.
  5. Вынести команды по работе со стеками R и L, унифицировать хранение traceback данных (точки возврата из команд) в R, унифицировать работу с исключениями.
  6. Пронести работу с исключениями в ядро, вынести возможность их обработки вне de32.dll/libde32.so, без «undefined behavior» как сейчас.
  7. Отщепить от «дембро-машины» так называемое «дембро-состояние», сделать возможность одной дембро-машине иметь несколько дембро-состояний. Это нужно для реализации многопоточности: сейчас все стеки и данные привязаны к глобальной дембро-машине и потому ни о какой многопоточности не может быть и речи.
  8. Собственно, реализовать многопоточность.
  9. Перевести основную часть функций по работе со строками и исходным кодом на «классические фортовские строки», т.е. на пару ячеек: размер строки и указатель на начало строки. В DEmbro сейчас основным типом строк является str — строки со счётчиком ссылок, но во многих случаях можно обойтись без них, а работают они медленно.
  10. Унифицировать шитый код, написать нормальную дампилку, может быть добавить новый «меташитый код». :)
  11. Исправить устаревшие названия на новые.
В связи с этим, готовлюсь повысить версию до v0.12. Сейчас выбираю стабильную ревизию, чтобы выделить её в отдельный бранч на свне.


Читать дальше......

февраля 25, 2010

TortoiseSVN из командной строки

При всем моем уважении к командной строке, TortoiseSVN по своей наглядности не заменяем ни одним консольным клиентом.

Но даже и TortoiseSVN можно запускать из консоли, избегая контекстное меню, вызовом

TortoiseProc /command:сюда имя команды /path:сюда путь для которого выполнить команду

для директории, либо
TortoiseProc /command:сюда имя команды /pathfile:сюда путь до файла для которого выполнить команду

для файла. В частности, вот две самые частоиспользуемые команды
TortoiseProc /command:update /path:"d:\proj\svn"
TortoiseProc /command:commit /path:"d:\proj\svn"

Я создал два bat-файла c этими действиями и раскидал по нужным мне директориям. Каждый раз переписывать в этих бат-файлах значение переменной /path: не хочется, к счастью, можно воспользоваться возможностями бат-файла. А именно, не вдаваясь в подробности, %~dp0 возвращает текущую директорию. Поэтому udate.bat и commit.bat окончательно выглядят так:
TortoiseProc /command:update /path:"%~dp0"

TortoiseProc /command:commit /path:"%~dp0"



Кроме того, гораздо удобнее не переходя к командной строке, а прямо из редактора (имею ввиду vim, под которым все делаю) горячими клавишами коммитить и апдейтить. Я выбрал клавиши F3 и F4 и прописал для них следующие две строки в _vimrc:
map <F3> :!<нужная директория>\commit.bat<CR>
map <F4> :!<нужная директория>\update.bat<CR>


Конечно, это не гибкое решение, так как не получится команды использовать из двух проектов, впрочем мне это и не надо. Если такое необходимо, то можно проделать следующее: 1) запускать TortoiseProc прямо для текущей директории (в которой открыт vim) - мне этого явно недостаточно 2) написать функцию setsvn, которая будет ставить директорию, для которой запускать TortoiseProc - мне это делать явно влом.

Так же стоит посмотреть в сторону всяких плагинов под вим, облегчающих работу с свн, например этот
vcscommand.vim

У приведенных выше маппингов есть недостаток, даже два: после выполнения манипуляций с свн потребуется дважды нажать на Enter (в cmd и vim). Этого можно избежать, переписав команды менее наглядным образом
map <F3> :!start cmd /c <нужная директория>\commit.bat<CR><CR>
map <F4> :!start cmd /c <нужная директория>\update.bat<CR><CR>


Подробнее можно почитать тут: Автоматизация TortoiseSVN.


Читать дальше......

Постоянные читатели

Обо мне

Моя фотография
Мой e-mail: vitek_03(at)mail(dot)ru