+1
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
c:\Program Files (x86)\Lua\5.1>lua.exe c:\temp\1.lua
0.0012512588885159
c:\Program Files (x86)\Lua\5.1>lua.exe c:\temp\1.lua
0.0012512588885159
c:\Program Files (x86)\Lua\5.1>lua.exe c:\temp\1.lua
0.0012512588885159
c:\Program Files (x86)\Lua\5.1>lua.exe c:\temp\1.lua
0.0012512588885159
c:\Program Files (x86)\Lua\5.1>type c:\temp\1.lua
print(math.random() )
Луа под виндой как-то отчаянно сосет хуй не умея настоящие random из Windows Crypto API.
В результате вызов 150 раз программы дает один и тот же random. Его конечно можно math.randomseed(os.time()), но то так, бо time это даже не милисекунды а сеунды.
Забавно что под никсами все зробит как треьба
:1$ lua51 1.lua
0.31260803123592
:2$ lua51 1.lua
0.13656691980388
:3$ lua51 1.lua
0.56430453367732
думаю оно читает /dev/random
Золотой хуй, что это такое? Или Сёма прав и прыщелуа не умеет в winapi?
Запостил: roskomgovno,
04 Июля 2018
roskomgovno 04.07.2018 02:32 # −1
TOPT 04.07.2018 03:06 # +1
Сам я с апи не работал, но попробуй через экзикуцию, os.execute(каманда в теминале)
roskomgovno 04.07.2018 22:00 # 0
Кстати, lua пока что мне нравится: куда меньше мутных углов чем даже в питоне. Мне кажется идеальный язык для обучения азазазам программированя
TOPT 05.07.2018 01:49 # 0
roskomgovno 05.07.2018 02:11 # 0
roskomgovno 05.07.2018 04:53 # 0
TOPT 05.07.2018 06:08 # 0
Zerobrain studio, можно юзать geany
TOPT 05.07.2018 08:01 # 0
У винды это дикий анус, хз куда ставит луарокс библы, хз где ищет интерплитатор либы и тд.
TOPT 05.07.2018 13:39 # 0
roskomgovno 05.07.2018 16:50 # 0
Да, Zerobrane забавная, мне понравилась
roskomgovno 07.07.2018 22:08 # 0
Почему я могу
?
Sim_salapim 07.07.2018 22:20 # −1
!
roskomgovno 07.07.2018 22:24 # +1
Dummy 11.10.2018 21:30 # 0
guest8 11.10.2018 21:34 # −999
DOKTOPuHXO 11.10.2018 22:38 # 0
TOPT 04.07.2018 03:16 # −1
package.cpath = package.cpath.."путь к папке с библами"
require("lib.dll");
У Линукса просто все хорошо с библами и ы одной папке лежат, а у винды хаос длл. По этому возможно из-за этого
roskomgovno 06.07.2018 21:17 # 0
Решение с вызовом через ":" тоже офигенное потому что позволяет одну и ту же функцию использовать и как метод и просто как функцию. В джаве так нельзя.
Единственное чего я пока не понял это волшебную силу скобочек при возвращении множества значений из функции
еще пример
3oJIoTou_xyu 07.07.2018 08:28 # 0
тут просто ты в принте присваиваешь в одно значение, и из ретурна соотвественно берется 1 первое значение.
То есть скобками ты ограничил область в 1 переменную.
Блжать банально.
local x,y = (pitux())
print(x,y) --1, nil
roskomgovno 07.07.2018 17:23 # 0
3oJIoTou_xyu 07.07.2018 08:33 # 0
Так и не понял чоита? Это та фича когда неопределнно возникает локаль self?
roskomgovno 07.07.2018 17:22 # 0
3oJIoTou_xyu 07.07.2018 17:41 # 0
или так
особенно это удобно когда делаешь около ООП
3oJIoTou_xyu 07.07.2018 17:49 # 0
С таблицой тоже так можно
roskomgovno 07.07.2018 17:53 # 0
3oJIoTou_xyu 07.07.2018 08:40 # 0
"petux":gsub("x","")?
3oJIoTou_xyu 07.07.2018 08:47 # 0
roman-kashitsyn 04.07.2018 13:53 # 0
Насколько я понимаю философию Луа, из коробки в ней ровно то, что можно запилить средствами СТАНДАРТНОЙ сишной либы.
Если сишный rand() на винде говно, значит, в луа он тоже говно.
Если в столь любимой тобой либе сишки нет возможности просмотреть каталог, луа этого тоже из коробки не умеет.
Ах да, вот же.
math.random ([m [, n]])
This function is an interface to the simple pseudo-random generator function rand provided by ANSI C. (No guarantees can be given for its statistical properties.)
roskomgovno 04.07.2018 17:00 # −1
да, я это уже понял. Потому она и переносима, что ничего кроме ANSI C там нет.
>>Если сишный rand() на винде говно, значит, в луа он тоже говно.
Внезапно оказалось что rand() на linux ведет себя точно так же, если ему не сделать srand.
Пример выше взят из openbsd: тамошние параноики реализовали rand так, что он дейтсвительно возвращает разные (хотя и псевдослучайные) значения. А на винде и линуксе надо делать srand().
Я обосрался, извините.
>>Если в столь любимой тобой либе сишки нет возможности просмотреть каталог
Ты мне так и не ответил, кстати: как посмотреть каталог в стандартной библиотеке любимого всеми современными программистами JavaScript?
Sim_salapim 04.07.2018 19:32 # −1
Плюю тебе прямо в харю - тьфу!..
roskomgovno 04.07.2018 21:19 # 0
Sim_salapim 04.07.2018 21:53 # −1
roskomgovno 04.07.2018 21:57 # 0
Конечно же ты стертор.
Sim_salapim 04.07.2018 23:36 # −1
p.s. руки так и чешутся, заколдовать тебя в свинью или старую жабу.
guest8 04.07.2018 23:37 # −999
Sim_salapim 04.07.2018 23:42 # 0
Ага, например ты. Пруфы, покажи нам пруфы!!!
guest8 04.07.2018 23:57 # −999
roskomgovno 05.07.2018 00:05 # −2
guest8 05.07.2018 00:14 # −999
guest8 05.07.2018 00:15 # −999
roskomgovno 05.07.2018 00:23 # −1
Sim_salapim 05.07.2018 00:52 # 0
3oJIoTou_xyu 05.07.2018 12:05 # 0
666_N33D135 05.07.2018 12:15 # 0
666_N33D135 05.07.2018 12:16 # 0
guest8 05.07.2018 13:06 # −999
666_N33D135 05.07.2018 13:12 # 0
666_N33D135 05.07.2018 13:13 # 0
666_N33D135 05.07.2018 13:13 # 0
6A9lHuCT 11.10.2018 23:20 # −102
3oJIoTou_xyu 05.07.2018 12:16 # 0
Пороль от этой: 123465
guest8 05.07.2018 12:21 # −999
3oJIoTou_xyu 05.07.2018 12:57 # 0
TOPT 06.07.2018 08:30 # 0
(сам забыл как правильно пишеться, копировал от сюда и долгое время понять не мог почему не заходит)
guest8 06.07.2018 09:17 # −999
TOPT 06.07.2018 09:20 # 0
guest8 06.07.2018 09:45 # −999
3oJIoTou_xyu 06.07.2018 10:58 # 0
guest8 06.07.2018 11:42 # −999
3oJIoTou_xyu 06.07.2018 12:40 # 0
tuberkulez 06.07.2018 12:40 # −5
tuberkulez 06.07.2018 13:15 # −6
roman-kashitsyn 06.07.2018 13:19 # +3
tuberkulez 06.07.2018 13:23 # −5
3oJIoTou_xyu 06.07.2018 13:38 # 0
guest8 06.07.2018 14:46 # −999
roskomgovno 07.07.2018 02:56 # 0
guest8 07.07.2018 12:18 # −999
666_N33D135 06.07.2018 14:17 # 0
3oJIoTou_xyu 06.07.2018 14:33 # 0
666_N33D135 06.07.2018 14:35 # −1
guest8 06.07.2018 14:46 # −999
3oJIoTou_xyu 06.07.2018 14:51 # −1
roskomgovno 06.07.2018 16:42 # 0
Прости, ты случайно эмм.. не на PHP пишешь?
tuberkulez 06.07.2018 17:05 # −2
roskomgovno 06.07.2018 23:06 # +1
Луа для того чтобы встраиваться в системы и быть plumbing code (aka "программирование-в-малом"): он чтобы легко и просто двигать сложные, написанные на сях объекты и вызывать функции. Чтобы скриптоваться внутри, короче.
В отличие от, например, Python, который сделан чтобы ты мог кросс-платформенно легко и просто писать.
Потому у питона есть свои абстракции (ну там например asyncio, которое на каждой ОС реализовано по разному) а в lua такого нет, потому что у lua нет задачи чтобы ты писал один код который везде бы работал макисмально производительно.
Зато lua можно скомпилировать подо что угодно, хоть под OpenVMS, хоть под DOS. Где есть ANSI C -- там есть lua (ну кроме import разишто), а Python придется долго и сложно портировать.
roskomgovno 09.07.2018 21:35 # 0
луа умеет хвостовую рекурсию.
MRI обосрамшись
CPython обосрамшись
Ожидаемо обгадился node.js
И только lua вертит этот код уже битый час
азахаха
Sim_salapim 10.07.2018 18:37 # 0
Так нахуя его учить?..
TOPT 11.07.2018 01:22 # +1
guest8 11.07.2018 02:24 # −999
Sim_salapim 11.07.2018 10:11 # 0
guest8 11.07.2018 11:13 # −999
666_N33D135 11.07.2018 12:05 # 0
roskomgovno 11.07.2018 21:34 # −1
roskomgovno 11.07.2018 21:36 # −1
Под винду на VB писать сложнее потому что он копилица в PCode и требуе рантайма для запуску
Но на VBS вполне могли написать говно для IE (хотя VBScript не совсем basic, вкак и VB).
Наконец, на VBA (тот же VB но внутри офиса) могли написать довольно много говна
guest8 11.07.2018 21:59 # −999
Sim_salapim 11.07.2018 22:06 # −1
roskomgovno 11.07.2018 22:11 # −1
Нет. Нужно ставить "Visual Basic 6.0: Run-Time Redistribution Pack" ну или бандлить его.
Кроме того если ты собираешься встраивать свой вирь в .exe файл то довольно очевидно что он не должен требовать рантайм.
>> так и в нативе,
Внезапно ты оказался прав (и такое бывает!) но рантайм все равно нужен. Ты будешь рантайм вместе с вирем дистрибить?
>>Бейсик компилит как в псевдокод, так и в нативе
>> можно тупо дёргать RTLMoveMemory.
Расскажи мне, о мудрый ослолюб, в каком месте MS-DOS я могу найти функцию RTLMoveMemory?
зы: ладно, ты все таки чуть-чуть прав, но я тоже
Though VB programs can be compiled into native code executables from version 5 on (до этого не могли!!!), they still require the presence of around 1 MB of runtime libraries. Core runtime libraries are included by default in Windows 2000 and later (радуйся!!), but extended runtime components still have to be installed (ахахахаха!). Earlier versions of Windows (95/98/NT), require that the runtime libraries be distributed with the executabl (так-то!)
Sim_salapim 11.07.2018 22:16 # −1
roskomgovno 11.07.2018 22:18 # −1
Там не было никаких функций ни для чего.
Справедливости говоря C тоже нужен рантайм VCRT чтобы работал всякий memcpy.
Но его вопервых можно статически линкануть (а в VB можно??) во-вторых если сидеть на чистом win32API (HeapAlloc вместо malloc) но он как-бы и не нужен
Sim_salapim 11.07.2018 22:22 # −1
Можно.
roskomgovno 11.07.2018 22:23 # −1
Пушо скомпилированный нативно и слинкованный статичеси с рантаймом код на VB не хуже кода на сях (хоть и больше) для написания вирей
правда я ХЗ чо там было с управлением памятью. Щетчик сцылок?
Sim_salapim 11.07.2018 22:26 # 0
guest8 11.07.2018 22:28 # −999
roskomgovno 11.07.2018 22:32 # 0
Впрочем, вероятно можно было линкануть нормальную либу с memmove чтобы не пикать и не покать
Sim_salapim 11.07.2018 22:36 # 0
roskomgovno 11.07.2018 22:39 # 0
В DDK макрос.
RtlMoveMemory macro
https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/content/wdm/nf-wdm-rtlmovememory
>>побайтное копирование с инкрементом "опасного" указателя
из рантаймахахахах
wdm.h:
зы: как реализован memmove я хз, вероятнее всего как ты, борманд, и говоришь: инкремент указателя
Sim_salapim 11.07.2018 22:44 # 0
Придите к общему соглашению, а я погожу...
6A9lHuCT 11.10.2018 23:23 # −102
guest8 11.07.2018 22:23 # −999
roskomgovno 11.07.2018 22:34 # −1
Ну про рантайму я там уже выше вику цитнул: с пятерки начали бандлить core в w2k. Но extended все равно не было: только core и только nt-based (в 9x не было)
Sim_salapim 11.07.2018 22:48 # 0
Ох, какая ересь!.. ;-)
roskomgovno 11.07.2018 22:53 # 0
Registration-free COM allows you to use an ActiveX DLL or ActiveX Control in your application without having to register the ActiveX on the end-users machine using regsvr32. It does this by creating a manifest file which if distributed with the executable means that no registration is required. This is only supported in versions of Windows XP and higher and some issues have been reported with XP but there is a hotfix available.
tl;dr: с winxp можно уже не, главное собрать манифест и забандлить его в PE
guest8 11.07.2018 23:11 # −999
roskomgovno 11.07.2018 23:14 # 0
Важно что технически это было реально. Просто если это появилось в XP, значит привыкли к этому все еще лет через пять после выхода, а в середине нулевых народ уже более интересовался .NET.
А там сборки могли быть в той же самой папке точно, либо в центральном хранилище говна (Global Assembly Cache aka GAC) и пхались туда коммандой regasm
guest8 11.07.2018 22:24 # −999
6A9lHuCT 11.10.2018 23:20 # −102
guest8 11.07.2018 22:39 # −999
roskomgovno 11.07.2018 22:40 # 0
guest8 11.07.2018 22:43 # −999
roskomgovno 11.07.2018 22:46 # 0
Ну примерно так работают всякие .NET .exeшники, думаю и все утилиты коие умеют делать .exe из python тоже так рабюотают
roskomgovno 11.07.2018 18:32 # 0
Что это такое?
Большинство ЯПов умеет итераторы, но обычно они хранят внутри себя некое состояние. Языки содержат сахар для дергания итератора за усико, пока тот не вернет null, false, eof или не кинет exception. Сахар обычно представлен как for, но на самом деле там под капотом дераегается какой-то next().
Это значит что итератор внутри себя содержит состояние.
Бывают еще такие итераторы, которые получают колбек, и пинают колбек пока состояние не кончица (в руби они популярны (там через блоки даже коллекции обходят)). В луа они тоже есть, их называют true(истинные) итераторы.
Но не таковы stateless: они делегируют хранение стейта циклу, сахару снаружи, и в lua это рабоатет.
Таким образом "gen" у нас не имеет состояния и может использоваться для одновременной итерации миллионом форов не создавая лишние объекты, экономя память и не напрягая GC.
А в вашем языке так можно?
roman-kashitsyn 11.07.2018 18:37 # −1
roskomgovno 11.07.2018 21:34 # 0
roskomgovno 16.07.2018 23:58 # 0
Например в Ruby это считается дурным тоном, в питоне не определились, а вот pil отзывается о таких вещах скорее положительно в том месте, где рассуждает о разнице между возвратом ошибки и, собссно, киданием error.
#динамопитухпроблемы
TOPT 17.07.2018 04:20 # 0