LINUX.ORG.RU

Сообщения playX

 

Выпустил первую версию своего вроде как ЯП: Neo

Уже месяц с лишним пилю и пилю язык программирования, до этого был интерпретатор, потом стэковая vm и вот наконец вышло что то готовое!

И так в чем суть? Neo - язык программирования, синтаксис схож на синтаксис java и c#

Что в нем есть?

  • Трейты
  • Сруктуры
  • Генерики
  • Треды(Threads, не очень понимаю как правильно перевести)
  • JIT компилятор
  • Сборщик мусора
  • Классы

    Чего нету, но будет позже:


  • Взаимодействие с ФС(Открытие файлов, запись и чтение)
  • FFI с Растом и Си( Есть функция loadFunction что может загрузить функцию из Си, но это костыль)

    Исходники можно найти здесь
    скриншо..примеры можно посмотреть здесь, но пока что там не все возможности языка показаны

    Что о производительности?
    объектный тест фибоначи выполняется за 5.98s (в PyPy3 5.90s).

    Neo точно работает на двух платформах: macOS/ OS X и Linux другие не проверялись

    В общем жду адекватной критики и советов что добавить, а что изменить

 ,

playX ()

Почему люди не любят Gnome?

Сабж, вроде удобное окружение и простое, но некоторые его хейтят до посинения, за что же так?

 

playX ()

Помогите написать функцию в elisp

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

(setq rust-lang "rust")
(setq java-lang "java")
(setq cargo-command "cargo new")

(defun create-project(lang project-name)
  (interactive "Enter project language:")
  (cond ((eq lang 'rust-lang)
	 (interactive "Enter project name:")
	 (shell-command (concat cargo-command project-name)))
	(t "Unknown language"))
Но оно не хочет работать, ЧЯДНТ?

P.S прошу не бить тряпками, впервые пытаюсь что то написать для Emacs'a

 ,

playX ()

Не работает управление в Minecraft при использовании Gnome Shell

Сабж, накатывал Mate, все работал, но шикарный гном все же привычнее, как можно это все исправить?

 , ,

playX ()

Объясните насчет ffi,Rust и C#

Вот хочу я написать «ядро» программы на расте, а GUI на C#, добавил как зависимость discord-rs в Cargo toml и написал такое в lib.rs:

extern crate libc;
extern crate  discord;

use std::os::raw::c_char;
use std::ffi::CString;
use std::ffi::CStr;
use libc::c_char as cchar;

use discord::{Discord, ChannelRef, State};
use discord::model::{Event, ChannelType};
use discord::GetMessages;
use discord::model::ServerId;
#[no_mangle]
pub fn login(email: cchar, password: cchar) {
    let client = Discord::new(email, pass);
}

И в Program.cs
using System;
using System.Runtime.InteropServices;


namespace cs_rust
{



    class Program
    {
        [DllImport("libour_rust.so")]
        public static extern void login(IntPtr email, IntPtr password);
        static void Main(string[] args)
        {
            
            login(Marshal.StringToHGlobalAnsi("email"), Marshal.StringToHGlobalAnsi("pass"));
        }
    }
}

Но после добавления стороннего крейта при выполнении `dotnet run` мне выдает данную ошибочку:

Unhandled Exception: System.DllNotFoundException: Unable to load DLL 'libour_rust.so': The specified module or one of its dependencies could not be found.
 (Exception from HRESULT: 0x8007007E)
   at cs_rust.Program.login(IntPtr email, IntPtr password)
   at cs_rust.Program.Main(String[] args) in /home/aprokurov/Projects/Rust/cs_rust/Program.cs:line 21

С чем это может быть связано и как такое решается? Без крейта discord все работало

 , ,

playX ()

Не работает mcs от mono в Fedora

Сабж, хотел потыкать палочкой в C#, накатил mono-devel,MonoDevelop и внутри ИДЕ нажал кнопочку запуска, оно написало данное: «Couldn't connect to debugger», и я как порядочный линуксоид полез в терминал и набрал там `mcs` и получил такой выхлоп:

Unhandled Exception:
System.TypeInitializationException: The type initializer for 'System.Console' threw an exception. ---> System.TypeInitializationException: The type initializer for 'System.ConsoleDriver' threw an exception. ---> System.Exception: Magic number is wrong: 542
  at System.TermInfoReader.ReadHeader (System.Byte[] buffer, System.Int32& position) [0x0002b] in <373b6e083d6e45e498c9082a8eebd27f>:0 
  at System.TermInfoReader..ctor (System.String term, System.String filename) [0x00065] in <373b6e083d6e45e498c9082a8eebd27f>:0 
  at System.TermInfoDriver..ctor (System.String term) [0x00058] in <373b6e083d6e45e498c9082a8eebd27f>:0 
  at System.ConsoleDriver.CreateTermInfoDriver (System.String term) [0x00000] in <373b6e083d6e45e498c9082a8eebd27f>:0 
  at System.ConsoleDriver..cctor () [0x00062] in <373b6e083d6e45e498c9082a8eebd27f>:0 
   --- End of inner exception stack trace ---
  at System.Console.SetupStreams (System.Text.Encoding inputEncoding, System.Text.Encoding outputEncoding) [0x0000a] in <373b6e083d6e45e498c9082a8eebd27f>:0 
  at System.Console..cctor () [0x000a8] in <373b6e083d6e45e498c9082a8eebd27f>:0 
   --- End of inner exception stack trace ---
  at Mono.CSharp.Driver.Main (System.String[] args) [0x00019] in <6c6b2f38a076460eacf227054ff6f99a>:0 
[ERROR] FATAL UNHANDLED EXCEPTION: System.TypeInitializationException: The type initializer for 'System.Console' threw an exception. ---> System.TypeInitializationException: The type initializer for 'System.ConsoleDriver' threw an exception. ---> System.Exception: Magic number is wrong: 542
  at System.TermInfoReader.ReadHeader (System.Byte[] buffer, System.Int32& position) [0x0002b] in <373b6e083d6e45e498c9082a8eebd27f>:0 
  at System.TermInfoReader..ctor (System.String term, System.String filename) [0x00065] in <373b6e083d6e45e498c9082a8eebd27f>:0 
  at System.TermInfoDriver..ctor (System.String term) [0x00058] in <373b6e083d6e45e498c9082a8eebd27f>:0 
  at System.ConsoleDriver.CreateTermInfoDriver (System.String term) [0x00000] in <373b6e083d6e45e498c9082a8eebd27f>:0 
  at System.ConsoleDriver..cctor () [0x00062] in <373b6e083d6e45e498c9082a8eebd27f>:0 
   --- End of inner exception stack trace ---
  at System.Console.SetupStreams (System.Text.Encoding inputEncoding, System.Text.Encoding outputEncoding) [0x0000a] in <373b6e083d6e45e498c9082a8eebd27f>:0 
  at System.Console..cctor () [0x000a8] in <373b6e083d6e45e498c9082a8eebd27f>:0 
   --- End of inner exception stack trace ---
  at Mono.CSharp.Driver.Main (System.String[] args) [0x00019] in <6c6b2f38a076460eacf227054ff6f99a>:0 

Что это такое? Как это исправить?

 ,

playX ()

Квадратики в терминале и взаместо некоторых символов в Арче

Накатил арч, потыкать Jade Desktop, но не тут то было! Уже в гноме вместо некоторых символов из терминала или тех же звездочек лора квадратики, с чем это может быть связано?
Вот скриншот где у моего никнейма квадратик, как такое лечится? Смайлики в ВК месенджере тоже не показывает

 , ,

playX ()

C++ и OpenGL

Хочу попробовать что то на OpenGL написать, делаю такое в meson.build:

project('learing cpp', 'cpp')
src = ['source/includes/vec2.cpp','source/main.cpp']

incdir = include_directories('source/includes')

glu_dep = dependency('glm')
gl_dep = dependency('GL')
executable('main',src,include_directories:incdir,dependencies: [gl_dep,glu_dep])

И вот сам код на C++
#include <iostream>
#include <vec2.h>
#include <GL/glew.h>
#include <GL/glut.h>
#include <GL/glu.h>

using namespace std;


int main(int argc, char  **argv)
{
    glutInit(&argc, argv);
    return 0;
}

И это не хочет компилироваться ссылаясь на это:
c++  -o main 'main@exe/source_includes_vec2.cpp.o' 'main@exe/source_main.cpp.o' -Wl,--no-undefined -Wl,--as-needed -Wl,--start-group -lGL -Wl,--end-group  
main@exe/source_main.cpp.o: In function `main':
/home/adelprokurov/.cache/gnome-builder/projects/Cpplearning/builds/default-host-без версии/../../../../../../Projects/Cpplearning/source/main.cpp:21: undefined reference to `glutInit'
collect2: ошибка: выполнение ld завершилось с кодом возврата 1

В общем, гуру подскажите что делать то? Как это заставить работать?

 , ,

playX ()

C++ и Meson

Решил попробовать осилить C++, ну и Cargo как в расте там нету, так что просто использовал Makefile, но затем захотелось заиспользовать модный Meson, но не понятно как мне header файлы там прикреплять, может кто подскажет?

Makefile:

all: main

main: vec source/main.cpp
	g++ -o main vec2.o source/main.cpp -I source/

vec: source/vec2.cpp
	g++ -c -o vec2.o source/vec2.cpp -I source/


И вот как я пытался написать meson.build
project('learing cpp', 'cpp')
src = ['source/vec2.cpp','source/main.cpp']
#executable('main', sources: src, cpp_pch: ['includes/vec2.h','includes/vec2.cpp'])
gen_src = custom_target('gen',
                        input:['source/includes/vec2.cpp'],
                        output: ['vec2.o'],
                        command:['']
)
executable('main','source/main.cpp',gen_src,cpp_pch: 'source/includes/vec2.h')[/cmake]

 , ,

playX ()

Обновить Wayland в SailfishOS, возможно ли?

Сабж, дело в том что версия Wayland в SailfishOS не поддерживается winit, следовательно glutin, gfx-rs и прочее никак не заработает

 ,

playX ()

Какие есть хорошие учебники по LWJGL?

Сабж, есть конечно на ютубе видео туториал, но по видео ничему нормально не учусь

 ,

playX ()

Есть что то похожее на Dark Souls, только под онтопик?

Сабж, недавно решил заново зарубиться в Souls игры, Demon's Souls успешно поиграл на PS3, но хочется и на ПК что то поиграть из Souls игр, ну не ставить же ради Dark Souls винду

 

playX ()

Использует ли кто Haxe?

Сабж, спрашиваю ради интереса :) Сам использую для игрушек на HTML5/Android которые пишу для себя ну и проект школьный пилю по физике где на Haxe написал некоторую «игру» с использованием Nape.

 ,

playX ()

Посоветуйте IDE/Редактор кода для Haxe

Сабж, надо что бы автокомплит присутствовал, ибо VSCode в него нормально не может(по крайней мере я не понял как заставить работать), разве что импорты может нормально завершать.

Линукс тут при том что пишу на Haxe в Debian 10(Testing) под Linux транслируя в C++, а затем компилирую с помощью GCC

 ,

playX ()

На что съехать с Федоры?

Последнее время в Fedora Rawhide начинает падать Wayland-сессия гнома, и даже NVIDIA дрова не хотят заводится(до запуска GDM и X не доходит), в связи с этим вопрос: на что более менее стабильное съехать с федоры? Желательно не deb-based.

Что нужно от дистрибутива?

  • GNOME 3.26/KDE 5.12/Mate 1.20,
  • Не роллинг дистрибутив
  • С циклами релизов дабы иметь хоть какую то стабильность


Что уже пробовал:

  • Calculate: KDE часто просто напросто падает
  • Manjaro: Rolling-release
  • Fedora 27: Не многим отличается от Rawhide, пакеты старее на одну максимум две версии

 ,

playX ()

Gnome Builder, есть кто использует его?

Сабж, стоит ли его использовать? Как его правильно настроить? В общем интересует ваше мнение о нем.

 ,

playX ()

HTML, Jinja и изображения с БД

В обшем есть данная тема использующая Bootstrap, в ней есть данная часть кода:

              <div class="carousel-item"><img class="img-fluid" src="/static/images/4.jpg" alt="Second slide"/>
                <div class="carousel-caption d-none d-md-block"> </div>
              </div>
              <div class="carousel-item"><img class="img-fluid" src="/static/images/5.jpg" alt="Third slide"/>
                <div class="carousel-caption d-none d-md-block"> </div>
              </div>

И если это все смотреть уже в браузере то там есть слайды, я решил сделать так:
            <div class="carousel-inner" role="listbox">
                {% if latest_tovar_list %}
              <ul>
                  {% for tovar in latest_tovar_list %}
                    <div class="carousel-item active"><img class="img-fluid" src="{{tovar.image.url}}" alt="First slide"/>
                  {% endfor %}
                  <div class="carousel-caption d-none d-md-block"> </div>
              </div>
              </ul>
              {% else %}
              <p>Ничего нету :(</p>
              {% endif %}

Но это не работает как надо, если в БД есть всего 1 «tovar», то отображается все как надо, а вот если больше 1, то эти слайды не работают, изображения располгаются друг под другом.
Сам код на питоне:
def index(request):
    latest_tovar_list = Product.objects.order_by('-name')[:5]
    context = {'latest_tovar_list': latest_tovar_list}
    return render(request, 'mainPage/index.html', context)

Объясните мне, как заставить это все работать?

 , , ,

playX ()

WebkitGTK не собирается под macOS

Выдает ошибку об отсутствии данных звисимостей:

-- Checking for module 'atspi-2'
--   No package 'atspi-2' found
-- Could NOT find ATSPI (missing: ATSPI_INCLUDE_DIRS ATSPI_LIBRARIES) (Required is at least version "2.5.3")
-- Checking for module 'egl'
--   No package 'egl' found
-- Could NOT find EGL (missing: EGL_INCLUDE_DIRS EGL_LIBRARIES)
-- Checking for module 'gl'
--   No package 'gl' found
-- Checking for module 'glesv2'
--   No package 'glesv2' found
-- Disabling ENABLE_PLUGIN_PROCESS_GTK2 since ENABLE_X11_TARGET is disabled.
-- Disabling USE_REDIRECTED_XCOMPOSITE_WINDOW since ENABLE_X11_TARGET is disabled.
-- Checking for module 'geoclue-2.0'
--   No package 'geoclue-2.0' found
-- Could NOT find GeoClue2 (missing: VERSION_OK) (Required is at least version "2.1.5")
CMake Error at Source/cmake/OptionsGTK.cmake:210 (message):
  Geoclue is needed for ENABLE_GEOLOCATION.
Call Stack (most recent call first):
  Source/cmake/WebKitCommon.cmake:61 (include)
  CMakeLists.txt:152 (include)

Все эти пакеты искал в formulae.brew.sh, но там ничего не нашел, а самого WebkitGTK там нету.
Пробовал ставить webkitgtk из MacPorts, но после установки при сборке программы на GTK-RS и Webkit2GTK-RS все равно не видит webkitgtk.

Как собрать то этот вебкит под macOS?

 , , ,

playX ()

Система начинает тормозить при распаковке больших файлов.

Сабж, стоит начать распаковывать архив размером от 5 гб, так система сразу начинает тормозить, есть ли универсальное решение для данной проблемы?

 ,

playX ()

Racket, взаимодействие с базой данных в web-server

Сабж, а если точнее то как получать объекты что хранятся в базе данных и затем отобразить их на HTML странице?

Если использовал питон до достаточно было использовать Jinja:

{% for somedbobject in val %}
   {% somedbobject %}

 , , ,

playX ()

RSS подписка на новые темы