ROVM (원격 객체 가상 머신) v0.0.35b 릴리즈

weongyo의 이미지

홈페이지 : http://envlang.kldp.net

v0.0.35b 가 릴리즈되었습니다. 릴리즈 ChangeLog 는 여기 에서 확인 가능합니다.

이번 릴리즈에서 가장 많이 변경 및 추가된 부분은 아래의 부분들입니다.

0.0.35a -> 0.0.35b

    * ROVM Server
          o Multi-thread 를 이용한 스트레스 테스트에서 GC 및 메모리 할당 및
             해제가 안정적으로 수행되고 있음을 확인하였으며, 백만개의 반복되는 
             query 시 ROVM Server 가 안정적으로 실행되고 있음을 확인하였습니다. 
             이제 예외 사항에 대한 처리가 남았습니다.
          o 데몬으로 프로그램을 실행할 수 있도록 코드가 추가되었습니다. 아직 설정 파일 
             기능이 지원하지 않기 때문에, ROVM Server 소스를 직접 수정해 주셔야 합니다.
          o 클래스내에서 __del__ 메쏘드의 경우, finalizer 의 역활을 하는 메쏘드로써,
             GC 과정에서 ObjRef 가 제거될 경우, __del__ 메쏘드가 자동으로 호출될 
             수 있도록 하여 리소스 정리를 할 수 있도록 하였습니다. 
    * ROVM Interface
          o 현재 ROVM Server 에서 지원하는 35 개의 opcode 를 모두 지원하도록 
             업데이트하였습니다. 
    * ROVM Interface
          o regex 클래스 및 regex.regex 클래스가 새롭게 /test 카테고리에 
             추가되었습니다. 이제 정규 표현식을 원격에서 사용할 수 있게 되었습니다. 

== 적응하기 ==

새롭게 변경된 내용에 대한 자세한 설명은 홈페이지에 존재하는 ``Tutorial 문서''를 참조하시고, 설치 방법에 대해서는 ``ROVM 설치 문서''를 살펴보시기 바랍니다.

== 다운로드 ==

홈페이지를 방문하시면 다운로드를 받으실 수 있습니다. *꼭* 메뉴얼을 보시고 설치하여 테스트해보시기 바랍니다.

아래는 처음 릴리즈 때 ㅤㅆㅓㅅ던 내용입니다.

Quote:

== 인사 ==

제가 그 동안 짬짬히 시간을 내어 만든 VM (Virtual Machine) 의 첫번째 배포판을 공개하게 되어 기쁩니다.

프로그램 이름으로 ROVM 이라고 명명을 하였고, Remote Object Virtual Machine (이하 간단하게 ROVM) 의 약자로 구성하였습니다. 이름을 해석하면 그대로 `원격 객체 가상 머신'이 되겠습니다.

== 소개 ==

ROVM 는 envlang 의 한 부분 프로젝트로 시작되었으며 ROVM 의 목적은 별로 특별한 건 없지만

1. 매우 안정적인 Virtual Machine 을 만드는 것
2. 안전한 VM 을 만드는 것
3. 원격 Object 를 사용할 수 있도록 구현하는 것

이런 것들이 있습니다. 지금 릴리즈하는 v0.0.1a 는 그 시작으로 이제 겨우 두 개의 opcode (ipush 와 iadd) 만 구현해 놓은 상태입니다. 자세한 동작 방식은 홈페이지 http://envlang.kldp.net 를 보시면 해당 여러 HOWTO 들이 존재합니다.

== 어디에 쓰는 물건인고? ==

아직 어디 쓸데 없습니다. (-_-); opcode 두 개 밖에 없는 VM 을 어디에 쓰겠습니까. (만약 이전에 완성한 VM 을 보고자 한다면 여기 를 방문하시면 이전에 제가 만든 VM 을 보실 수 있습니다. Java VM (Kaffe 와 거의 비슷)입니다.) 현재 실험적으로 프로젝트는 진행 중에 있으며 많은 기능과 opcode 들이 추가되어야 하는 실정입니다. 그에 따라 계속 발전해 나갈 것입니다.

비록 아직 v0.0.1a 이지만, VM 을 구현해보고자 하는 분들이나 저와 같이 ROVM 형태의 VM 을 구현하고자 하는 분들에게는 매우 좋은 자원이 될 것으로 확신합니다. 소스를 보시면 아시겠지만, 매우 친철하게 정성껏 주석을 달았습니다. :D

그리고 이제 VM 의 시작이기 때문에, 전체적인 구조를 파악하는 것도 매우 쉬울 것입니다. 7500 줄 밖에 되지 않습니다!

아직 넘어야 할 산들이 너무 많네요.

감사합니다.

== 변경 사항 : 0.0.1b -> 0.0.7a ==

ROVM Server

* [기능추가] Garbage Collector (이하 GC) 가 추가되었습니다. ObjectRef 에 대한 GC 를 수행합니다.
* [기능추가] `CALL' opcode 추가.
* [기능추가] `ILOAD' opcode 추가.
* [기능추가] `IRETURN' opcode 추가. 총 지원하는 opcode 는 NOP, CPUSH, IADD, ILOAD, CALL, IRETURN, NEW 이 되겠습니다. ^^;
* [기능추가] 클래스 Method 에 대한 함수 호출이 가능해 졌습니다. 자세한 내용은 ``Tutorial 문서''를 참고하시기 바랍니다.
* [기 타사항] 버전 명명 룰을 조금 바꿔어 봤습니다. 버전은 <major>.<minor>.<opcode counter><version> 로 정하였습니다. 0.0.7a 의 의미는 7 개의 opcode 를 가지는 VM 버전 중 a 버전임을 의미합니다.
* [기타사항] 각 문서에 대한 내용들이 현재 버전에 맞게 수정되었습니다.

ROVM Client

* ROVM Server 에 새롭게 추가된 `CALL' opcode 를 지원할 수 있도록 코드가 보강되었습니다.

== 변경 사항 : 0.0.1a -> 0.0.1b ==

버전이 한단계 업그레이드 되었습니다.

ROVM Server

* [기능추가] `ENVLANG File Format' v0.1 에 대한 load 기능 추가.
* [기능추가] `NEW' opcode 추가. 이제 총 3 개의 opcode 들을 가지게 되었습니다.
* [기능변경] ROVM Server 의 기본 포트 번호를 기존 8888 번에서 4390 로 변경.
* [버그수정] Opcode 실행시 발생할 수 있는 Stack Overflow 수정.

ROVM Client

* 새롭게 추가된 `NEW' opcode 를 처리할 수 있도록 코드 보강.

ROVM Compiler

* 홈페이지에서 해당 설명서를 다운받으실 수 있습니다.
* 새롭게 추가된 패키지로써 ``ENVLANG File Format'' 형식의 바이너리 포맷을 간단하게 만드는 목적으로 제작되었습니다.

기타 사항

* ``ENVLANG File Format'' 에 대한 문서가 홈페이지에 등록되었습니다. 로드될 클래스의 실제 파일 형식에 대해 자세히 살펴보실 수 있습니다.

== 변경 사항 : 0.0.7a -> 0.0.10a ==

* NEW : `확장 모듈'의 작성이 가능해 졌습니다. 아직 개발해야 할 부분이 매우 많이 남아 있지만, C 혹은 C++ (공식 지원되지 않음) 을 이용하여 .so 혹은 .dll 형태의 확장 라이브러리를 작성하여 ROVM Server 내에서 클래스 처럼 다룰수가 있 습니다. ROVM Server 운영에서의 핵심 클래스 중 하나인 string 클래스 또한 확장 모듈' 형태로 구현이 되고 있습니다.
* NEW : `IPUSH' opcode 가 추가되었습니다. Integer 를 stack 상에 push 합니다.
* NEW : `SPUSH' opcode 가 추가되었습니다. 문자열을 stack 상에 push 하는 명령어입니다.
* NEW : `NEWARRAY' opcode 가 추가되었습니다. ROVM Server 에서 지원하는 각각의 type 에 대한 배열을 생성할 수 있게 되었습니다.
* NEW : "ENVLANG File Format" 이 v0.1 에서 v0.2 버전으로 개선되었습니다. v0.2 에서는 두 가지 변동 사항이 있었으며, 하나는 field 에 대한 개념 추가이며, 다른 하나는 Method 의 Local Max 를 지정할 수 있도록 변경된 점입니다.
* NEW : 새로운 문서 "확장 모듈 만들기"가 추가되었습니다.
* NEW : 새로운 패키지인 "ROVM Library" 가 추가되었습니다. 실제 ROVM Server 를 운영하는데, 핵심적인 역활을 하는 클래스들을 위한 패키지 입니다.
* NEW : `ROVM Server 의 설치'가 가능해졌습니다. 하지만 여전히 Configuration 쪽은 손수 설정해 주셔야 합니다.
* UP! : 각각의 문서가 현재 버전에 맞게 업데이트 되었습니다.
* UP! : ROVM Client 의 경우, SPUSH' opcode 와 NEWARRAY' opcode 를 다룰 수 있도록 기능 보강이 이루어졌습니다.
* BUG : ObjectRef 와 ArrayRef 의 할당 시점과 GC thread 의 실행 시점의 차이로 인해 발생할 수 있는 예외 상항을 수정하였습니다.

== 변경 사항 : 0.0.10a -> 0.0.20a ==

[ROVM Server]
-o NEW : 'DUP' opcode 추가되었습니다.
-o NEW : 'HPUSH', 'FPUSH', 'DPUSH' opcode 추가되었습니다.
-o NEW : 'FRETURN', 'DRETURN', 'RETURN', 'ARETURN' opcode 추가되었습니다.
-o NEW : 'POP', 'SWAP' opcode 추가되었습니다. 총 10 개의 opcode 가 새롭게 추가된 것입니다.
-o NEW : short, float, double 타입 추가되었습니다. 이 타입들 또한 ix86 에서의 각각의 C 언어 타입과 모양, 특징이 모두 같습니다. 이로써 ROVM Server 에서 지원하는 타입의 총 갯수는 9 개가 되었습니다.
-o UP! : ArrayRef 의 객체화. 이것의 변화로 인해서 프로토콜 변화 및 opcode 변화 등 많은 부분에서 변화점이 있었습니다.
-o CHG : Opcode `NEWARRAY' 의 형식이 변경되었습니다. 기존의 경우, type 을 입력 받도록 하였지만, 이제는 type 의 의존하지 않고 하나의 배열 속에 여러 type 항목을 넣을 수 있게 되었습니다.
-o BUG : GC Thread 상에서의 deadlock 상황 패치

[ROVM Library]
-o NEW : /core/array 클래스가 새롭게 추가되었습니다. 배열 (ArrayRef) 을 위한 클래스입니다.
-o UP! : /core/str 클래스에 split (T)[, split (TS)[, split (TSI)[ 메쏘드가 추가되었습니다. Python 혹은 Ruby 의 문자열 split 와 같은 역활을 합니다.

[ROVM Client]
-o UP! : ROVM Client 에 추가된 opcode 적용되었습니다.

[ROVM Interface]
-o NEW : 이번에 새롭게 패키지가 생성되었습니다. 이 패키지는 ROVM Client 의 C 언어 버전이라고 할 수 있겠는데요, 하지만 디버깅을 목적이 아니라 실제 ROVM Server 와의 연동을 편리하게 하기 위한 목적이 큽니다. 이제 아래와 같이 C 에서 코딩을 하여 ROVM Server 와 연동할 수 있습니다.

#include "rovm.h"

int
main (void)
{
  char *msg = "Hello World!, Hello World!";
  char *sep = "Wo";
  rovm_t *r;
  rovmret_t *ret;

  r = rovm_req ("192.168.58.129", 4390);
  if (!r)
    {
      fprintf (stderr, "Connection problem?\n");
      return -1;
    }

  r->ops.spush (r, msg, strlen (msg));
  r->ops.spush (r, sep, strlen (sep));
  r->ops.ipush (r, 3);
  r->ops.call (r, "split", "(TSI)[");

  ret = r->send (r);
  if (ret)
    r->printreturn (r, ret);
  else
    r->printerror (r);

  rovm_reqend (r);

  return 0;
}

[확장 모듈 부분]
-o UP! : [ROVM Extension] RvStr2ArrayRef (), RvSetFieldValue () 인터페이스 추가.

[프로토콜 부분]
-o CHG : [ROVM Protocol] 예약 명령어 'ERROR' 중 에류 메세지 관련 항목이 수정되었습니다.

[문서 부분]
-o `Tutorial 문서' 중 StringRef 에 대한 내용이 추가되었습니다.
-o 전체적인 내용이 현재 버전에 맞게 수정되었습니다.

== v0.0.20a -> v0.0.35a==
새로운 버전 v0.0.35a 가 릴리즈되었습니다. 릴리즈 ChangeLog 는 여기 에서 확인 가능합니다.

이번 릴리즈에서 가장 많이 변경 및 추가된 부분은 아래의 부분들입니다.

    * 새로운 OPCODE 15 개 추가되었습니다. 모두 산술 연산과 관련된 명령어들입니다. * 확장 모듈 작성을 위한 라이브러리에 많은 기능이 추가되었습니다. 대부분 문자열과 배열에 관한 부분입니다.
    * str 클래스array 클래스에 대한 레퍼런스 문서가 새로 추가되었으며, 그에 따른 메쏘드의 갯수가 많이 증가하였습니다. Python 과 Ruby 에게 감사를..

그 외의 자세한 부분은 ChangeLog 를 확인하시기 바랍니다.

[/]

댓글

Stand Alone Complex의 이미지

얼마전 kldp wiki의 recent page 목록에서 ROVM 페이지가 등록되어있는것(내용은 deleteme였지만)을 보고 "누군가가 VM를 만들고 있나보다"라고 생각했었는데 역시 저의 예상이 틀리지 않았군요. 화이팅입니다!

RET ;My life :P

ed.netdiver의 이미지

오효효~ 멋집니다.
특히 공개합니다 라고 공표, 선언하는 부분이 특히 눈부시군요. :D
기대와 관심을 갖고 지켜보겠습니다.
:D :D :D :D :D

--------------------------------------------------------------------------------
\(´∇`)ノ \(´∇`)ノ \(´∇`)ノ \(´∇`)ノ
def ed():neTdiVeR in range(thEeArTh)

dummy999의 이미지

이게 무엇을 모티브로한 가상머신인가요?
제가 자세히는 모르겠군요..
가상머신하면 의뢰 virtual pc나 vmware같은걸 말할텐데..

혹.. jre같은 프레임워크나 런타임엔진을 말하는건지..

스샷이라도 올려주시면 대충감이라도 잡을수있을거같네요
그리고 리눅스용인가보네용..

------------------------------------
F/OSS bless you... ^^*

badsaram의 이미지

이전에 만드신 Java VM을 보고 싶어서 링크를 따라갔는데

못 찾겠습니다. ㅡㅅㅡ;;

어떻게 하면 얻을 수 있는지 알려주세요 ^^

잘 부탁드려요 ^^ (뭘?)

weongyo의 이미지

dummy999 wrote:
이게 무엇을 모티브로한 가상머신인가요?
제가 자세히는 모르겠군요..
가상머신하면 의뢰 virtual pc나 vmware같은걸 말할텐데..

혹.. jre같은 프레임워크나 런타임엔진을 말하는건지..

스샷이라도 올려주시면 대충감이라도 잡을수있을거같네요
그리고 리눅스용인가보네용..

http://envlang.kldp.net 에 방문하시면 첫 페이지에 만든 이유가 대충 나와 있습니다. 설명된 내용이 모티브의 전부는 아닙니다. 그 일부분이 ROVM 에서 구현하고자 하는`네트워크' 언어입니다.

virtual pc나 vmware 와 같은 것은 cpu 를 가상으로 흉내내는 것이구요, 이 프로그램은 Java Virtual Machine 이나 .NET VM 과 비슷하다고 할 수 있을 것 같습니다.

badsaram wrote:
이전에 만드신 Java VM을 보고 싶어서 링크를 따라갔는데

못 찾겠습니다. ㅡㅅㅡ;;

어떻게 하면 얻을 수 있는지 알려주세요 ^^

이전에 만든 Java VM 의 경우, 이름이 eserver 였습니다. 링크를 누르시면 바로 해당 eserver CVS 트리입니다. 현재 패키지로 묶여 제공되지 않으며, CVS 접근을 통해 다운로드 받으셔야 합니다.

그리고 VM core 에 해당하는 부분은 $eserver_prefix/src/call.c 파일에 존재합니다.

감사합니다.

weongyo의 이미지

0.0.1b 에서 0.0.7a 로 버전업을 이루었습니다. 해당 버전에 대한 ChangeLog 입니다.

0.0.7a

* [기능추가] Garbage Collector (이하 GC) 가 추가되었습니다. ObjectRef 에 대한 GC 를 수행합니다.
* [기능추가] `CALL' opcode 추가.
* [기능추가] `ILOAD' opcode 추가.
* [기능추가] `IRETURN' opcode 추가. 총 지원하는 opcode 는 NOP, CPUSH, IADD, ILOAD, CALL, IRETURN, NEW 이 되겠습니다. ^^;
* [기능추가] 클래스 Method 에 대한 함수 호출이 가능해 졌습니다. 자세한 내용은 ``Tutorial 문서''를 참고하시기 바랍니다.
* [기 타사항] 버전 명명 룰을 조금 바꿔어 봤습니다. 버전은 <major>.<minor>.<opcode counter><version> 로 정하였습니다. 0.0.7a 의 의미는 7 개의 opcode 를 가지는 VM 버전 중 a 버전임을 의미합니다.
* [기타사항] 각 문서에 대한 내용들이 현재 버전에 맞게 수정되었습니다.

weongyo의 이미지

새 버전이 릴리즈 되었습니다. 감사합니다.

weongyo wrote:
홈페이지 : http://envlang.kldp.net

이번 업그레이드에서 가장 중점에 둔 점은 `확장 모듈 작성' 과 배열 타입 지원, 그리고 안정성입니다.

== 변경 사항 : 0.0.7a -> 0.0.10a ==

* NEW : `확장 모듈'의 작성이 가능해 졌습니다. 아직 개발해야 할 부분이 매우 많이 남아 있지만, C 혹은 C++ (공식 지원되지 않음) 을 이용하여 .so 혹은 .dll 형태의 확장 라이브러리를 작성하여 ROVM Server 내에서 클래스 처럼 다룰수가 있 습니다. ROVM Server 운영에서의 핵심 클래스 중 하나인 string 클래스 또한 확장 모듈' 형태로 구현이 되고 있습니다.
* NEW : `IPUSH' opcode 가 추가되었습니다. Integer 를 stack 상에 push 합니다.
* NEW : `SPUSH' opcode 가 추가되었습니다. 문자열을 stack 상에 push 하는 명령어입니다.
* NEW : `NEWARRAY' opcode 가 추가되었습니다. ROVM Server 에서 지원하는 각각의 type 에 대한 배열을 생성할 수 있게 되었습니다.
* NEW : "ENVLANG File Format" 이 v0.1 에서 v0.2 버전으로 개선되었습니다. v0.2 에서는 두 가지 변동 사항이 있었으며, 하나는 field 에 대한 개념 추가이며, 다른 하나는 Method 의 Local Max 를 지정할 수 있도록 변경된 점입니다.
* NEW : 새로운 문서 "확장 모듈 만들기"가 추가되었습니다.
* NEW : 새로운 패키지인 "ROVM Library" 가 추가되었습니다. 실제 ROVM Server 를 운영하는데, 핵심적인 역활을 하는 클래스들을 위한 패키지 입니다.
* NEW : `ROVM Server 의 설치'가 가능해졌습니다. 하지만 여전히 Configuration 쪽은 손수 설정해 주셔야 합니다.
* UP! : 각각의 문서가 현재 버전에 맞게 업데이트 되었습니다.
* UP! : ROVM Client 의 경우, SPUSH' opcode 와 NEWARRAY' opcode 를 다룰 수 있도록 기능 보강이 이루어졌습니다.
* BUG : ObjectRef 와 ArrayRef 의 할당 시점과 GC thread 의 실행 시점의 차이로 인해 발생할 수 있는 예외 상항을 수정하였습니다.

meowmeow의 이미지

흥미로운 프로젝트군요.

자바의 rmi 같은 접근법과 어떻게 차이가 있는지 알아보고 싶군요. 자바만 배운 사람으로써...

:)

weongyo의 이미지

새 릴리즈가 나왔습니다!!!

이번 릴리즈의 핵심은 `여기' 를 누르시면 볼 수 있습니다!

== 변경 사항 : 0.0.10a -> 0.0.20a ==

[ROVM Server]
-o NEW : 'DUP' opcode 추가되었습니다.
-o NEW : 'HPUSH', 'FPUSH', 'DPUSH' opcode 추가되었습니다.
-o NEW : 'FRETURN', 'DRETURN', 'RETURN', 'ARETURN' opcode 추가되었습니다.
-o NEW : 'POP', 'SWAP' opcode 추가되었습니다. 총 10 개의 opcode 가 새롭게 추가된 것입니다.
-o NEW : short, float, double 타입 추가되었습니다. 이 타입들 또한 ix86 에서의 각각의 C 언어 타입과 모양, 특징이 모두 같습니다. 이로써 ROVM Server 에서 지원하는 타입의 총 갯수는 9 개가 되었습니다.
-o UP! : ArrayRef 의 객체화. 이것의 변화로 인해서 프로토콜 변화 및 opcode 변화 등 많은 부분에서 변화점이 있었습니다.
-o CHG : Opcode `NEWARRAY' 의 형식이 변경되었습니다. 기존의 경우, type 을 입력 받도록 하였지만, 이제는 type 의 의존하지 않고 하나의 배열 속에 여러 type 항목을 넣을 수 있게 되었습니다.
-o BUG : GC Thread 상에서의 deadlock 상황 패치

[ROVM Library]
-o NEW : /core/array 클래스가 새롭게 추가되었습니다. 배열 (ArrayRef) 을 위한 클래스입니다.
-o UP! : /core/str 클래스에 split (T)[, split (TS)[, split (TSI)[ 메쏘드가 추가되었습니다. Python 혹은 Ruby 의 문자열 split 와 같은 역활을 합니다.

[ROVM Client]
-o UP! : ROVM Client 에 추가된 opcode 적용되었습니다.

[ROVM Interface]
-o NEW : 이번에 새롭게 패키지가 생성되었습니다. 이 패키지는 ROVM Client 의 C 언어 버전이라고 할 수 있겠는데요, 하지만 디버깅을 목적이 아니라 실제 ROVM Server 와의 연동을 편리하게 하기 위한 목적이 큽니다. 이제 아래와 같이 C 에서 코딩을 하여 ROVM Server 와 연동할 수 있습니다.

#include "rovm.h"

int
main (void)
{
  char *msg = "Hello World!, Hello World!";
  char *sep = "Wo";
  rovm_t *r;
  rovmret_t *ret;

  r = rovm_req ("192.168.58.129", 4390);
  if (!r)
    {
      fprintf (stderr, "Connection problem?\n");
      return -1;
    }

  r->ops.spush (r, msg, strlen (msg));
  r->ops.spush (r, sep, strlen (sep));
  r->ops.ipush (r, 3);
  r->ops.call (r, "split", "(TSI)[");

  ret = r->send (r);
  if (ret)
    r->printreturn (r, ret);
  else
    r->printerror (r);

  rovm_reqend (r);

  return 0;
}

[확장 모듈 부분]
-o UP! : [ROVM Extension] RvStr2ArrayRef (), RvSetFieldValue () 인터페이스 추가.

[프로토콜 부분]
-o CHG : [ROVM Protocol] 예약 명령어 'ERROR' 중 에류 메세지 관련 항목이 수정되었습니다.

[문서 부분]
-o `Tutorial 문서' 중 StringRef 에 대한 내용이 추가되었습니다.
-o 전체적인 내용이 현재 버전에 맞게 수정되었습니다.

weongyo의 이미지

새로운 버전 v0.0.35a 가 릴리즈되었습니다. 릴리즈 ChangeLog 는 여기 에서 확인 가능합니다.

이번 릴리즈에서 가장 많이 변경 및 추가된 부분은 아래의 부분들입니다.

    * 새로운 OPCODE 15 개 추가되었습니다. 모두 산술 연산과 관련된 명령어들입니다. * 확장 모듈 작성을 위한 라이브러리에 많은 기능이 추가되었습니다. 대부분 문자열과 배열에 관한 부분입니다.
    * str 클래스array 클래스에 대한 레퍼런스 문서가 새로 추가되었으며, 그에 따른 메쏘드의 갯수가 많이 증가하였습니다. Python 과 Ruby 에게 감사를..

그 외의 자세한 부분은 ChangeLog 를 확인하시기 바랍니다.

[/]
weongyo의 이미지

v0.0.35b 가 릴리즈되었습니다. 릴리즈 ChangeLog 는 여기 에서 확인 가능합니다.

이번 릴리즈에서 가장 많이 변경 및 추가된 부분은 아래의 부분들입니다.

0.0.35a -> 0.0.35b

    * ROVM Server
          o Multi-thread 를 이용한 스트레스 테스트에서 GC 및 메모리 할당 및
             해제가 안정적으로 수행되고 있음을 확인하였으며, 백만개의 반복되는 
             query 시 ROVM Server 가 안정적으로 실행되고 있음을 확인하였습니다. 
             이제 예외 사항에 대한 처리가 남았습니다.
          o 데몬으로 프로그램을 실행할 수 있도록 코드가 추가되었습니다. 아직 설정 파일 
             기능이 지원하지 않기 때문에, ROVM Server 소스를 직접 수정해 주셔야 합니다.
          o 클래스내에서 __del__ 메쏘드의 경우, finalizer 의 역활을 하는 메쏘드로써,
             GC 과정에서 ObjRef 가 제거될 경우, __del__ 메쏘드가 자동으로 호출될 
             수 있도록 하여 리소스 정리를 할 수 있도록 하였습니다. 
    * ROVM Interface
          o 현재 ROVM Server 에서 지원하는 35 개의 opcode 를 모두 지원하도록 
             업데이트하였습니다. 
    * ROVM Interface
          o regex 클래스 및 regex.regex 클래스가 새롭게 /test 카테고리에 
             추가되었습니다. 이제 정규 표현식을 원격에서 사용할 수 있게 되었습니다. 

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.