Linguagem nova implementação !

1. Linguagem nova implementação !

???
gokernel

(usa Linux Mint)

Enviado em 13/04/2019 - 11:12h

Olá pessoal !!!

Só estou postando esse para informar sobre a nova implementação da Summer Language.

Fazia algum tempo que desabilitei o projeto para corrigir alguns BUGS ... pois não tinha o compilador 64 bits para Windows, e só codava em 64 BITS para Linux ... quando fui testar em 64 BITS em Windows ( depois de instalar esse ), para minha surpresa não funcionava ... MOTIVO: a ABI 64 bits do Windows é diferente do Linux 64 bits ...

E foi REescrita:

// SUMMER LANGUAGE START DATE ( 27/08/2017 - 08:35 ):
// rewrite 01: 20/07/2018 - 11:10
// rewrite 02: 23/03/2019 - 08:50


Projeto Aqui:
https://github.com/gokernel2017/Summer

E Leia o arquivo: README.txt

OBS: no programa ( app ) SEM ARGUMENTO, para executar um "commando script" precisa da primeira letra ( $ ) ... se não tiver a primeira letra ( $ ), será chamado um comando externo.

OBS2: A implementação da word ( asm ) usa syntax com uma mistura do Microsoft VC e AT&T ... veja o arquivo ( assemble.sum )... DETALHE: funciona com mais de um comando Assembly por linha ( basta separar com | ).

E, caramba !!! ... tava difícil de postar algo por aqui ... Creio que o VOL está prestes a fechar as portas.... Certo ? ;)



  


2. Re: Linguagem nova implementação !

Jefferson Rocha
slackjeff

(usa Slackware)

Enviado em 13/04/2019 - 14:01h

Interessante como sempre, ja venho acompanhando o projeto faz um tempo.
Sobre o vol fechar a porta é mais fácil eu usar ubuntu que o vol cair fora. HHHA


I'M ROOT!

Slackware user since ~2008
Meu canal no youtube:
https://www.youtube.com/SlackJeff

Meu Site:
https://www.slackjeff.com.br/

Meus Programas estão aqui:
https://notabug.org/jeffersonrocha

E aqui:
https://github.com/slackjeff/







3. Re: Linguagem nova implementação !

???
gokernel

(usa Linux Mint)

Enviado em 15/04/2019 - 20:42h

Olá pessoal !

Atualizei o projeto e implementei mais uma "extension":

OBS:
Quando tiver melhor implementado para fazer o Render será usado:
-------------------------------------------------
sgBeginScene();
...
sgEndScene();
-------------------------------------------------

Críticas são bem-vindas !!!



4. Re: Linguagem nova implementação !

???
gokernel

(usa Linux Mint)

Enviado em 19/04/2019 - 17:35h


Olá pessoal !

Projeto atualizado com chamada de função com float ... OBS: precisa implementar melhor ...

03: Call Function with argument type ( float ) implemented... NEED IMPLEMENTATION !!!


OBS1: o programa ( sg ) já está implementado uma parte em OpenGL com SDL( 1.x ).

OBS2: O arquivo ( Makefile_sg ) está configurado para compilar para SDL sem OpenGL ... não configurei para compilar para OpenGL para não tomar muito do meu tempo ...

Agora já pode brincar com OpenGL ;)




5. Re: Linguagem nova implementação !

???
gokernel

(usa Linux Mint)

Enviado em 20/04/2019 - 15:58h

Nova primeira Release(Binário e código):
a: Windows 64 bits
b: Linux 64 bits

https://github.com/gokernel2017/Summer/releases

Falta melhorar algumas coisitas mas fica para depois ...

Exemplo usando OpenGL/SDL(1.x):
Arquivo: graphic.sg


//-------------------------------------------------------------------
//
// SG: Summer Graphic ( GL / DirectX / HTML Canvas ):
//
// Simple Example to test only.
//
// ----------------------------------------------
// EVENT MODEL:
//
// typedef struct {
// void *target; // OBJECT or Pointer to "object"
// int offsetX; // mouse x
// int offsetY; // mouse y
// int which; // mouse button: 1 | 3
// }TEvent;
//
// ----------------------------------------------
//
// BY: Francisco - gokernel@hotmail.com
//
//-------------------------------------------------------------------
//
var count = 10, buf;

var click = 0;

var x = 0, y = 0, dx = 0, dy = 0, MouseX = 0, MouseY = 0;

var angle_x = 30.0, angle_y = 30.0;


function DrawScene () {

sgBeginScene();
sgSet3D(); // set 3D projection mode using OpenGL.

glPushMatrix();

//glTranslatef (0.0, -1.5, -10.0); // -- cam up z
glTranslatef (0.0, 0.0, -3.0);

//-----------------------------------------
// rotate the world on mouse click
//-----------------------------------------
//
glRotatef (angle_x, 1.0, 0.0, 0.0);
glRotatef (angle_y, 0.0, 1.0, 0.0);

draw_cube(2); // #define GL_LINE_LOOP 2
// draw_piso();

glPopMatrix ();

sgSet2D(); // set 2D projection mode using OpenGL.
sgDrawText (buf, 100, 100, 64512); // COLOR_ORANGE

sgEndScene();
// sgClear ();
}


//-----------------------------------------------
//
// INFO:
// Implemented only in 64 BITS:
// .offsetX
// .offsetY
//
//-----------------------------------------------
//
function onMouseMove (e) {
x = e.offsetX;
y = e.offsetY;

dx = MouseX - x;
dy = MouseY - y;

// Used to set the projection angle ... SEE: draw_scene().
MouseX = x;
MouseY = y;

if (click) {
angle_x = angle_x - dy;
angle_y = angle_y - dx;

sprintf (buf, "Mouse X: %d Y: %d | count: %d", e.offsetX, e.offsetY, count);
count = count + 1;

DrawScene();
}
}

function onMouseDown (e) {
click = 1;
}

function onMouseUp (e) {
click = 0;
}

if (sgInit(0,0)) {

buf = malloc(150);

sgSetEvent (onMouseMove, "onmousemove");
sgSetEvent (onMouseDown, "onmousedown");
sgSetEvent (onMouseUp, "onmouseup");

sprintf (buf, "Mouse X: %d Y: %d | count: %d", 100, 100, count);

DrawScene();

sgRun (0);
}





6. Re: Linguagem nova implementação !

???
gokernel

(usa Linux Mint)

Enviado em 22/04/2019 - 11:44h


Nova atualização( 0.71.0 ) somente com código ( sem o binário ):

Um Simples Exemplo ( basic_gl.sg ):

//-------------------------------------------------------------------
//
// SG: Summer Graphic ( GL / DirectX / HTML Canvas ):
//
// Simple OpenGL Example ...
//
// TO SUMMER VERSION: 0.71.0
//
// BY: Francisco - gokernel@hotmail.com
//
//-------------------------------------------------------------------
//
#include "opengl.sg"

function draw () {

sgBeginScene();
sgSet2D(); // set 2D projection mode using OpenGL.

glColor3ub(255,130,30); // color orange

// Draw a Rectangle:
glBegin(GL_LINE_LOOP);
glVertex2f(100.0, 100.0); // -
glVertex2f(100.0, 500.0); // |
glVertex2f(700.0, 500.0); // -
glVertex2f(700.0, 100.0); // |
glEnd();

sgEndScene();
}

if (sgInit(0,0)) {

draw();

sgRun(0);
}


Bom para quem está aprendendo sobre OpenGL !!!



7. Re: Linguagem nova implementação !

???
gokernel

(usa Linux Mint)

Enviado em 23/04/2019 - 19:16h


Projeto atualizado com as WORDS ( for, break )... e ( console.log() ):



//-------------------------------------------------------------------
//
// Word ( for ) example compatible with NODE:
//
//-------------------------------------------------------------------
//
var a, b;

for (a = 1; a < 5; a++) {

console.log ("Value a: %d", a);

for (b = 1; b < 5; b++) {

console.log ("B: %d", b);

}

}


OBS: ainda não implementado o ( console.log ) para imprimir valor typo float ...




8. Re: Linguagem nova implementação !

???
gokernel

(usa Linux Mint)

Enviado em 24/04/2019 - 11:53h


Olá pessoal !

Nova atualização com as WORDS ( module, import ):

Essas são para carregar bibliotecas dinâmicas ( .dll ou .so ) e executar ...

OBS: Não está implementada para Linux 64 bits, somente para:
1: Windows 32 e 64 bits.
2: Linux 32 bits.

Exemplo:

//-------------------------------------------------------------------
//
// Module example using SDL 1.x
//
// FILE:
// module_SDL1.sum
//
// INFO:
// Not implemented for Linux 64 bits
//
// FOR SUMMER VERSION 0.71.0
//
// USAGE:
// sum module_SDL1.sum
//
//-------------------------------------------------------------------
//
#ifdef WIN32
module ("SDL", "sdl"); // in Windows: "SDL.dll"
#endif
#ifdef __linux__
module ("libSDL", "sdl"); // in Linux: "libSDL.so"
#endif

//----------------------------------------------------------
// lib_name: func_name: proto: sub_esp:
//----------------------------------------------------------
import ("sdl", "SDL_Init", "0i", 0);
import ("sdl", "SDL_SetVideoMode", "piiii", 0);
import (0, "SDL_Delay", "0i", 0);
import (0, "SDL_Quit", "00", 0);

sdl.SDL_Init (32);

sdl.SDL_SetVideoMode (800, 600, 16, 0); // color 16

console.log ("Plase Wait 3 Seconds ...");

SDL_Delay (3000);

SDL_Quit ();



Vou tentar implementar para Linux 64 bits ... aliás alguém tem que fazer o trabalho "baixo" ;).






9. Re: Linguagem nova implementação !

???
gokernel

(usa Linux Mint)

Enviado em 29/04/2019 - 10:51h

Olá pessoal !


Me deu muito trabalho mas glória ao Eterno Criador dos céus e da terra que conseguimos implementar módulos.


O cara ( Chris Wellons ) desse projeto me ajudou muito:
https://github.com/skeeto/dynamic-function-benchmark

Release 0.71.0 ( Binário e Código )
https://github.com/gokernel2017/Summer/releases

Foi relatado alguns bugs ... se você perceber algo de "anormal" ou o programa quebrar, favor me informar ( via E-MAIL ) ...

Falta implementar algumas coisas, mas fica para depois ...







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts