Go Programlama Dili

Başlatan gio, 11 Kasım 2009 - 20:14:03

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

gio

Google bugün Go programlama dilini lanse etti. Aslında 2007 yılında Rob Pike, Ken Thompson ve Robert Griesemer eşliğinde başlanmış. C/C++ nin yerini alması bekleniyormuş. Söz dizimine ve bazı özelliklerine bakınca c/c++, python, javascript, pascal, modula, oberon karışımı gibi  bir şey geldi.

http://golang.org/
http://www.youtube.com/watch?v=rKnDgT73v8s

package main

import "fmt"

func main() {
 fmt.Printf("Merhaba, Ubuntu Türkiye Topluluğu")
}



EK : Ubuntu 9.10 üzerinde Go'yu yüklemek için aydınlatıcı bir yazı ; http://ubuntuforums.org/showthread.php?p=8291692#post8291692

ayro

yaw nasıl kurulacağını anlamadım bir türlü :-/

http://golang.org/doc/install.html#tmp_57

gccgo diyor bir sürü şey diyor kafamı karıştırdı.Derleyicisini nasıl kruarım ?
Sistemi bilmeden istediğin gibi müdahile edemezsin!

gio

#2
@ayro,

http://golang.org/doc/gccgo_install.html burada gccgo için kurulum, kullanım basitçe anlatılmış.

svn checkout svn://gcc.gnu.org/svn/gcc/branches/gccgo gccgo
mkdir objdir
cd objdir
../gccgo/configure --enable-languages=c,c++,go
make
make install



---

gcc hariç ; 6g ile 64bit için, 8g ile 32bit için derleyip, çalıştırabiliyoruz. gcc den daha hızlı derliyormuş ama gcc ile üretilenin daha verimli çalıştığını belirtiyorlar.

6g merhaba.go
6l merhaba.6
./6.out


gibi


ek : gccgo 'yu yüklerken gmp ve mpfr kütüphanelerini istiyor. eğer öyle bir mesaj alırsanız;
http://gmplib.org/
http://www.mpfr.org/

yalnız bunları yüklememe rağmen gccgo yu yüklerken yine hata mesajı aldım. daha sonra tekrar deneyecem. 6g ile derleme basit geldi. zaten yepyeni bir dil öyle yüzüstü denemeler işte.

ayro

Alıntı Yapayrox@mr:~$ su
Password:
root@mr:/home/ayrox# svn checkout svn://gcc.gnu.org/svn/gcc/branches/gccgo gccgo
svn: Can't connect to host 'gcc.gnu.org': Connection refused
hata bende mi acaba ??
Sistemi bilmeden istediğin gibi müdahile edemezsin!

gio

bende herhangi bir bağlantı problemi vermedi. tekrar deneyebilir misiniz ?

heartsmagic

Teyit edeyim, bende de bağlantı problemi vermiyor. Geçici bir sorun olabilir.
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

ayro

Alıntı yapılan: gio - 13 Kasım 2009 - 23:09:36
bende herhangi bir bağlantı problemi vermedi. tekrar deneyebilir misiniz ?
hocam snaıyorum bizim üni ile ilgili bir problem olabilir.Kapatıyorlarda bağlantıları falan filan

tekrar denedim yine aynı sonuç
Sistemi bilmeden istediğin gibi müdahile edemezsin!

heartsmagic

svn için sınırlama vardır "firewall" arkasında ya da kısıtlama için ne kullanılıyorsa. Şöyle dene:

svn checkout http://gcc.gnu.org/svn/gcc/branches/gccgo gccgo
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

canosayan

bende de derlerken hata verdi. örnek program bile derlenmedi. merhaba dünya diyemedik. neyse artık.
Chmod bizim işimiz.

gio

Alıntı yapılan: canosayan - 15 Kasım 2009 - 07:31:44
bende de derlerken hata verdi. örnek program bile derlenmedi. merhaba dünya diyemedik. neyse artık.

Can merhaba.
gccgo ile mi derlemeye çalıştın ? Ken amcanın yeni derleyicisi ile derleyip çalıştırabildim.

canosayan

Alıntı yapılan: gio - 15 Kasım 2009 - 07:47:20
Alıntı yapılan: canosayan - 15 Kasım 2009 - 07:31:44
bende de derlerken hata verdi. örnek program bile derlenmedi. merhaba dünya diyemedik. neyse artık.

Can merhaba.
gccgo ile mi derlemeye çalıştın ? Ken amcanın yeni derleyicisi ile derleyip çalıştırabildim.

açıkçası bu şekilde derleme bilgim çok az. visiul studio kullanan kesimdendim önceden.
zaten genel amacım denemekti. 8g file.go tarzı bir kullanım vardı tanıtım sayfasında onu denedim.
gerçi kurulum tam mı onu da bilmiyorum bir yandan iş bir yandan kurulum yapıyordum.

bu işin wave i yok mudur?
Chmod bizim işimiz.

gio

#Google Go Vars
export GOROOT=~/go
export GOOS=linux
export GOARCH=386
PATH=${PATH}:$HOME/bin



GOARCH=386
şeklinde ayarladın değil mi ? belki gözünden kaçıp amd64 şeklinde kalmış olabilir mi ? Eğer değilse bile belki tam kurulum olmamıştır. Yoksa normalde derlemesi lazım.

canosayan

Alıntı yapılan: gio - 15 Kasım 2009 - 07:55:12
#Google Go Vars
export GOROOT=~/go
export GOOS=linux
export GOARCH=386
PATH=${PATH}:$HOME/bin



GOARCH=386
şeklinde ayarladın değil mi ? belki gözünden kaçıp amd64 şeklinde kalmış olabilir mi ? Eğer değilse bile belki tam kurulum olmamıştır. Yoksa normalde derlemesi lazım.

386 yaptım. neyse çok önemli değil. daha önemli işlerim var.
Chmod bizim işimiz.

ayro

svn den başka ne yapabilirim ? Golang denemek istiyorum.
Sistemi bilmeden istediğin gibi müdahile edemezsin!

gio

@ayro,

svn sadece gccgo için gerekiyor. diğer şekilde de derleniyor -eğer illaki  gccgo ile derlemek mühimse bilemiyorum. diğer türlüsü gayet basit zaten. en azından yazıp, kurcalığını kodları deneyebilirsiniz. svn hariç bir çözüm denk gelirse, paslamaya çalışırım.

heartsmagic

Alıntı yapılan: ayro - 15 Kasım 2009 - 22:00:40
svn den başka ne yapabilirim ? Golang denemek istiyorum.

Bu yukarıdaki sorunun için bir soru mu? Eğer öyleyse benim önerimi gördün mü?
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

ayro

Alıntı yapılan: heartsmagic - 16 Kasım 2009 - 01:57:42
Alıntı yapılan: ayro - 15 Kasım 2009 - 22:00:40
svn den başka ne yapabilirim ? Golang denemek istiyorum.

Bu yukarıdaki sorunun için bir soru mu? Eğer öyleyse benim önerimi gördün mü?
kusura bakma hocma görmemişim

root@mr:/home/ayrox# svn checkout http://gcc.gnu.org/svn/gcc/branches/gccgo gccgosvn: Working copy 'gccgo' locked
svn: run 'svn cleanup' to remove locks (type 'svn help cleanup' for details)


benim için problem değil.Golang 'ı bir şekilde derleyeyim yeter
Sistemi bilmeden istediğin gibi müdahile edemezsin!

heartsmagic

svn cleanup komutunu verip tekrar deneseydin. Öyle tavsiye vermiş.
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

ayro

hocam tam oluyordu
Alıntı Yapsvn: REPORT of '/svn/gcc/!svn/vcc/default': Chunk delimiter was invalid (http://gcc.gnu.org)
dedi.Komple alıntı

Alıntı Yaproot@mr:/home/ayrox# svn checkout http://gcc.gnu.org/svn/gcc/branches/gccgo gccgo
A    gccgo/libgcc/configure
A    gccgo/libgcc/static-object.mk
A    gccgo/libgcc/Makefile.in
A    gccgo/libgcc/gstdint.h
A    gccgo/libgcc/configure.ac
A    gccgo/libgcc/generic-morestack.c
A    gccgo/libgcc/empty.mk
A    gccgo/libgcc/config
A    gccgo/libgcc/config/t-softfp
A    gccgo/libgcc/config/ia64
A    gccgo/libgcc/config/ia64/__divxf3.asm
A    gccgo/libgcc/config/ia64/t-fprules-softfp
A    gccgo/libgcc/config/ia64/_fixunstfdi.asm
A    gccgo/libgcc/config/ia64/t-softfp-compat
A    gccgo/libgcc/config/ia64/t-ia64
A    gccgo/libgcc/config/ia64/_floatditf.asm
A    gccgo/libgcc/config/ia64/_fixtfdi.asm
A    gccgo/libgcc/config/ia64/tf-signs.c
A    gccgo/libgcc/config/t-tls
A    gccgo/libgcc/config/alpha
A    gccgo/libgcc/config/alpha/t-crtfm
A    gccgo/libgcc/config/libbid
A    gccgo/libgcc/config/libbid/_lt_sd.c
A    gccgo/libgcc/config/libbid/bid128_to_int64.c
A    gccgo/libgcc/config/libbid/_sd_to_df.c
A    gccgo/libgcc/config/libbid/bid_sqrt_macros.h
A    gccgo/libgcc/config/libbid/_ne_sd.c
A    gccgo/libgcc/config/libbid/bid_convert_data.c
A    gccgo/libgcc/config/libbid/_div_dd.c
A    gccgo/libgcc/config/libbid/bid32_to_bid64.c
A    gccgo/libgcc/config/libbid/_sd_to_tf.c
A    gccgo/libgcc/config/libbid/_ge_dd.c
A    gccgo/libgcc/config/libbid/_dd_to_df.c
A    gccgo/libgcc/config/libbid/bid128_sqrt.c
A    gccgo/libgcc/config/libbid/bid_decimal_data.c
A    gccgo/libgcc/config/libbid/ChangeLog
A    gccgo/libgcc/config/libbid/_usi_to_dd.c
A    gccgo/libgcc/config/libbid/_div_td.c
A    gccgo/libgcc/config/libbid/bid_inline_add.h
A    gccgo/libgcc/config/libbid/_eq_dd.c
A    gccgo/libgcc/config/libbid/bid64_scalb.c
A    gccgo/libgcc/config/libbid/_unord_sd.c
A    gccgo/libgcc/config/libbid/_isinfd32.c
svn: REPORT of '/svn/gcc/!svn/vcc/default': Chunk delimiter was invalid (http://gcc.gnu.org)
Sistemi bilmeden istediğin gibi müdahile edemezsin!

heartsmagic

Acaba sorun sende mi yoksa genelde mi? Ben de akşam bir dener geri bildirim yaparım.
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

ayro

export GOROOT=$HOME/go
export GOARCH=386
export GOOS=linux
export GOBIN=$HOME/bin
export PATH=$GOBIN:$PATH

mkdir bin
chmod 755 bin


yaptım(hepsi /home/ayrox dizininde) daha sonra
sudo apt-get install python-setuptools python-dev
sudo apt-get install mercurial

Çıkış yapıp tekrar girdim ardından ;

g clone -r release https://go.googlecode.com/hg/ $GOROOT

Alıntı Yaproot@mr:/home/ayrox# cd $GOROOT/src
root@mr:/home/ayrox/go/src# ./all.bash
installed quietgcc as /home/ayrox/bin/quietgcc but 'which quietgcc' fails
double-check that /home/ayrox/bin is in your $PATH
dedi :-/  fikri olan varmı ? Nerede yanlış yaptm ?
home/ayrox/ altında bin var !dedim .bin mi olacaktı sonra
mv bin .bin yaptım ;

Alıntı Yaproot@mr:/home/ayrox/go/src# ./all.bash
$GOBIN is not a directory or does not exist
create it or set $GOBIN differently

dedi sanırım mkdir .bin mi yapmam lazımdı napmam lazımdı ?
Sistemi bilmeden istediğin gibi müdahile edemezsin!

mce

Sorun nedir bilmiyorum ama buradaki anlatıma uyarak az önce problemsiz çalıştırdım.

Oluşturduğunuz klasörleri silip tekrar deneyin isterseniz.

sudo apt-get install bison gcc libc6-dev
apt-get install mercurial


Gerekli kurulumları yaptıktan sonra home dizininde go isimli bir klasör, onun içinde de go derleyicisinin bulunacağı bin adlı bir dizin oluşturun.
mkdir go
mkdir go/bin



gedit .bashrc
komutu ile bashrc dosyasını açıp aşağıdaki değerleri ekleyin.

export  GOROOT=/home/kullanıcadı/go/hg
export  GOOS=linux
export  GOARCH=386
export  GOBIN=/home/kullanıcıadı/go/bin


Eklemeleri yaptıktan sonra PATH değişkenini güncelleyin

export PATH=$PATH:$GOBIN

Şimdi yazdığınız komutlar işe yaramış mı kontrol edelim.

env | grep '^GO'

Eğer işe yaramışsa aşağıdakine benzer bir çıktı almanız gerekir, yoksa yukardaki adımları tekrar kontrol etmenizde fayda var.

GOBIN=/home/kullanıcıadı/go/bin/
GOARCH=386
GOROOT=/home/kullanıcadı/go/hg
GOOS=linux

Mercurial'i kullanarak kaynak kodu indirin

hg clone -r release https://go.googlecode.com/hg/ $GOROOT

İndirdiğiniz kodu derleyin

cd $GOROOT/src
./all.bash


Aşağıdaki mesaj ile işlem sona erecektir işler yolunda gittiyse

N known bugs; 0 unexpected bugs

Ben de N, 1 olarak yazdı.

Eğer bir problem olmadıysa yükleme bitti demektir.Deneme amaçlı hello.go isimli bir dosya oluşturup aşağıdakileri yazın.

package main

import "fmt"

func main() {
fmt.Printf("hello, world\n")
}


Derlemek için:
8g hello.go
yazın. 8g bilgisayarınıza göre 6g'de olabilir.

8l hello.8
komutunu da yazdıktan sonra program çalıştırılabilir hale gelmiş demektir.

./8.out

yazıp programı çalıştırabilirsiniz.

ayro

Sistemi bilmeden istediğin gibi müdahile edemezsin!

gotocan

$ env | grep '^GO' çıktısı:

GOBIN=/home/macellan/go/bin
GOARCH=386
GOROOT=/home/macellan/go/hg
GOOS=linux


İlginçtir path'i belirlememe rağmen 8g komutu bulunamıyor.
~go/bin dizinine girip ./8g komutunu verince derlemeyi yapabiliyorum.
Sizde de benzer bir sorun oldu mu?
goto www.gotocan.com;
http://ubuntucounter.geekosophical.net//img/ubuntu-user.php?user=28544
Nam-ı diğer : macellan

mce

8g yerine 6g deneyin bir de.