Ubuntu Türkiye

Yazılım => Programlama => Genel => Konuyu başlatan: gio - 11 Kasım 2009 - 20:14:03

Başlık: Go Programlama Dili
Gönderen: gio - 11 Kasım 2009 - 20:14:03
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
Başlık: Ynt: Go Programlama Dili
Gönderen: ayro - 13 Kasım 2009 - 18:36:47
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 ?
Başlık: Ynt: Go Programlama Dili
Gönderen: gio - 13 Kasım 2009 - 19:09:20
@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.
Başlık: Ynt: Go Programlama Dili
Gönderen: ayro - 13 Kasım 2009 - 20:39:06
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 ??
Başlık: Ynt: Go Programlama Dili
Gönderen: gio - 13 Kasım 2009 - 23:09:36
bende herhangi bir bağlantı problemi vermedi. tekrar deneyebilir misiniz ?
Başlık: Ynt: Go Programlama Dili
Gönderen: heartsmagic - 14 Kasım 2009 - 01:42:01
Teyit edeyim, bende de bağlantı problemi vermiyor. Geçici bir sorun olabilir.
Başlık: Ynt: Go Programlama Dili
Gönderen: ayro - 14 Kasım 2009 - 12:38:06
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ç
Başlık: Ynt: Go Programlama Dili
Gönderen: heartsmagic - 15 Kasım 2009 - 02:50:16
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
Başlık: Ynt: Go Programlama Dili
Gönderen: canosayan - 15 Kasım 2009 - 07:31:44
bende de derlerken hata verdi. örnek program bile derlenmedi. merhaba dünya diyemedik. neyse artık.
Başlık: Ynt: Go Programlama Dili
Gönderen: 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.
Başlık: Ynt: Go Programlama Dili
Gönderen: canosayan - 15 Kasım 2009 - 07:50:19
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?
Başlık: Ynt: Go Programlama Dili
Gönderen: 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.
Başlık: Ynt: Go Programlama Dili
Gönderen: canosayan - 15 Kasım 2009 - 17:40:50
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.
Başlık: Ynt: Go Programlama Dili
Gönderen: ayro - 15 Kasım 2009 - 22:00:40
svn den başka ne yapabilirim ? Golang denemek istiyorum.
Başlık: Ynt: Go Programlama Dili
Gönderen: gio - 16 Kasım 2009 - 01:50:24
@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.
Başlık: Ynt: Go Programlama Dili
Gönderen: 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ü?
Başlık: Ynt: Go Programlama Dili
Gönderen: ayro - 17 Kasım 2009 - 21:08:02
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
Başlık: Ynt: Go Programlama Dili
Gönderen: heartsmagic - 18 Kasım 2009 - 00:10:09
svn cleanup komutunu verip tekrar deneseydin. Öyle tavsiye vermiş.
Başlık: Ynt: Go Programlama Dili
Gönderen: ayro - 18 Kasım 2009 - 15:52:54
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)
Başlık: Ynt: Go Programlama Dili
Gönderen: heartsmagic - 18 Kasım 2009 - 16:04:10
Acaba sorun sende mi yoksa genelde mi? Ben de akşam bir dener geri bildirim yaparım.
Başlık: Ynt: Go Programlama Dili
Gönderen: ayro - 23 Kasım 2009 - 14:14:22
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ı ?
Başlık: Ynt: Go Programlama Dili
Gönderen: mce - 23 Kasım 2009 - 15:11:27
Sorun nedir bilmiyorum ama buradaki (http://unixlab.blogspot.com/2009/11/installing-googles-go-language-on.html) 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.
Başlık: Ynt: Go Programlama Dili
Gönderen: ayro - 23 Kasım 2009 - 22:26:48
eyw hocam oldu
Başlık: Ynt: Go Programlama Dili
Gönderen: gotocan - 24 Kasım 2009 - 00:45:50
$ 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?
Başlık: Ynt: Go Programlama Dili
Gönderen: mce - 24 Kasım 2009 - 12:05:41
8g yerine 6g deneyin bir de.
Başlık: Ynt: Go Programlama Dili
Gönderen: gotocan - 24 Kasım 2009 - 15:14:36
Bilgisayarım intel. Bu yüzden 8g olması gerekiyor.
Sorunumun path ile ilgili olduğunu düşünüyorum ama kurulumda neyi eksik yaptığımı anlamadım.
Neyse sağlık olsun. :) Zaten ~go/bin içinden 8g dosyasını çağırınca derleme yapılabiliyor.
Başlık: Ynt: Go Programlama Dili
Gönderen: gio - 24 Kasım 2009 - 15:25:06
Alıntı yapılan: gotocan - 24 Kasım 2009 - 15:14:36Bilgisayarım intel. Bu yüzden 8g olması gerekiyor.

64 bit(amd64) için 6g,
32 bit(386) için 8g diye demişler.
Intel derken kavram karmaşası(amd64 olayı) olmasın ?

Alıntı Yaphere is also a suite of compilers with different (and odd) names for each architecture: 6g for the 64-bit x86, 8g for the 32-bit x86, and more.

http://golang.org/doc/go_tutorial.html#tmp_32


Başlık: Ynt: Go Programlama Dili
Gönderen: gotocan - 24 Kasım 2009 - 19:17:33
Evet kavramları karıştırmışım biraz.
32 bit desem daha doğru olur.
Nitekim bulunduğu klasörden ./8g olarak çalıştırınca düzgün bir derleme yapabiliyorum.
Eğer yanlış derleyici kullanıyor olsaydım derleme gerçekleşmezdi diye düşünüyorum.

Esenlikler...
Başlık: Ynt: Go Programlama Dili
Gönderen: gio - 24 Kasım 2009 - 19:43:05
tamam şimdi anladım. ben de karıştırmışım :)
gccgo ile derlemeyi denediniz mi hiç ? 64bit işlemcilerde yüklerken bir sorunu hallederken başka biri çıkıyor. bir türlü sorunsuz gccgo kurulumu yapamadım.