ГНУ Класпат
Програмер(и) | ГНУ пројекат |
---|---|
Стабилно издање | 0.99
/ 16. март 2012. |
Репозиторијум | |
Написан у | Ц и Јава |
Оперативни систем | Мулти платформни |
Тип | Библиотека |
Лиценца | ГПЛ |
Веб-сајт | www |
ГНУ Класпат је пројекат чији је циљ да створи имплементацију стандардних библиотека у облику слободног софтвера за Јава програмски језик. Упркос огромној величини библиотеке која треба да се направи, велики део посла је већ урађен, укључујући Свинг, КОРБА, и друге важне делове.] Класпат програмери су имплементирали скоро све класе са Јавине платформе 1.4 и 5.0. Класпат тако може да се користи за покретање популарних софтвера базираних на Јави као што су Вузе и Еклипс.
ГНУ Класпат је био један од приоритетних ГНУ пројеката. Док је изворни код "званичне" имплементације Сун Мајкросистемс-а био доступан, лиценца није дозвољавала дистрибувију било којих измена. Ово је била једна од главних препрека за многе пројекте који нису могли да напредују без мењања овог кода. ГНУ Класпат заједница за развој обухвата институције које су фокусиране на истраживање Јава виртуелних машина, као и компаније које су заинтересоване за пружање алтернативних Јавиних система за извршавање.
ГНУ Класпат је део задужбине за слободни софтвер. Првобитно је развијен одвојено од ГНУ-овог компајлера за Јаву због не адекватне лиценце, али касније су ова два пројекта спојена.
Лиценца
[уреди | уреди извор]ГНУ Класпат је лиценциран под ГНУ-овом општом јавном лиценцом са изузетком везивања. Ово је лиценца за слободни софтвер. Сви кодови су формално у власништву задужбине за слободни софтвер, и њен власник је обавезан својим уговорним обавезама програмера.[тражи се извор]
Коришћење
[уреди | уреди извор]ГНУ Класпат користе многе бесплатне Јавине имплементације (као Кафе, СејблВМ, ЏемВМ, КАКАО, Џикс РВМ, ВМкит) јер свака потпуно опремљена Јавина виртуелна машина мора да обезбеди имплементацију стандардних класних библиотека.
Нека друга коришћења укључују:
- ГНУ-ов компајлер за Јаву, који може да компајлира Јавин код у страндардне самосталне извршиоце.
- GCJAppletViewer[1] за покретање Java аплет-а са командне линије ако нису подржани у претраживачу који се користи.
- IKVM.NET, који спаја Јаву са .NET Framework-ом
- JNode, оперативни систем који покреће Јавине апликације. Овај систем је написан у Јави.
- Специјализоване виртуелне машине као што је Јаос за спајање са Обероном, и ЈамаикаВМ за уграђен систем са реалним гаранцијама
- Виртуелне машине за рачунарство са кластерима, које имају и до 128 процесора на Маринет-у.[2]
- IcedTea пројекат који користи ГНУ Класпат као замену за власничке елементе ОпенЈДК-а.
Историја
[уреди | уреди извор]Развој ГНУ Класпат-а је почео 1998. године са пет програмера. Током историје, спајао се неколико пута са другим пројектим који су имали сличне циљеве (Кафе, либгцј). У прошлости, ГНУ Класпат је снабдевао своју виртуелну машину (Јафар). Како је Класпат постао основна библиотека, дељена у много различитих пројеката, ова виртуелна машина је све мање пажње добијала и сада више није подржана.
Након имплементирања већине Јавиних 1.4 АПИ, рад на пројекту је постао много више оријентисан на багове него на АПИ развој. 24. октобра 2006. године, имплементација последње 1.4 класе која је фалила, HTML писач, је извршена. Брзина развоја (математички прорачуната преко просечног броја линија кода по дану) је достигла највећу могућу за 2006. годину.
Име ГНУ Класпат је првобитно предложио Бредли М. Кун једном од првих развојних програмера, Полу Фишеру. У то време, је постојала велика забринутост за заједницу бесплатних Јавиних имплементација због коришћења Сан-овог оригиналног занака на Јавиним имплементацијама. Кун је предложио назив $CLASSPATH, која представља променљиву окружења коју је користила већина Јавиних система како би указала где су Јавине библиотеке смештене на рачунару. Пошто се $CLASSPATH често користио и као име путање, укључивао је реч јава (као што је /usr/lib/java
), то је био начин да пробуди име Јава а да се не изговори буквално. Фишер и други програмери нису волим употребу знака $ као ни велика слова која су се користила у Класпат-у.
Развојни тим
[уреди | уреди извор]Одржавалац се брине о легалној страни пројекта, припрема редовна издања пројеката и извршава проверу квалитета. Одржавалац такође даје дозволе за приступ ЦВС-у.
ГНУ Цласспатх нема формалну хијерархију. Рад се обавља највише на основу техничких могућности и не постоји строга подела послова. Све промене кода се прво постављају на листу за дискусију као закрпе где могу додатно да се мењају или одбацују ако је потребно. Пројекат обично прима између пет и осам закрпа дневно.
Развој прекривености кодом ГНУ-ове Класпат библиотеке се може пратити преко ОпенЈДК6[3] и ОпенЈДК7.[4]
Спајање виртуалних машина
[уреди | уреди извор]ГНУ Класпат садржи класе из званичног Јавиног АПИ именског простора. Онде где се захтева или је веома препоручљиво да се користи изворни код, извршавање се обавља из неколико "ВМ" класа. Име неке ВМ класе одговара називу класе која захтева изворни код, плус додатни ВМ префикс: ВМ Објекат, ВМ Стринг и тако даље. ВМ класе, које се чувају одвојено од остатка кода, су приватни и финални пакети. Методе ових класа садрже кључну реч изворни, указујући на неопходност подршке изворне библиотеке. Такве библиотеке су омогућили аутори Јава виртуалних машина, стога ГНУ Класпат може бити повезан са скоро сваком Јава виртуелном машином ако су извори те виртуалне машине доступни и могу да се модификују.
Подршка за карактеристике нових језика у Јави 1.5
[уреди | уреди извор]Пре верзије 0.95, свака ГНУ Класпат верзија се састојала од две одвојене објаве; једна, која представља главну грану развоја и друга који је носила садржај више експерименталних грана, поправке и додатке, као што су генериче, гране за набрајање и коментаре, које се појављују у Јави 1.5.[5]
Од верзије 0.95,[6] Јавини 1.5 додаци како што су генерички су били потпуно стпојени са главном граном. Грана може бити изграђена коришћењем Еклипс компајлера, ецј, како би се направио Јава 1,5 изворни код. У случају ГЦЈ-а, ецј се користи како би се обавила почетна фаза, а онда да се преведе биткод у изворни код. Од верзије 0.95 па надаље, ГНУ Класпат такође подржава израду и покретање новог ГПЛ Јава компајлера отвореног кода који користи ГНУ Класпат и дозвољава да ГНУ Кластпат библиотеке, алати и недовршене верзије буду компајлиране са јавак-ом.
Класе из домена omg.org
[уреди | уреди извор]ГНУ Класпат не прихвата ниједан код који нема бесплатну лиценцу, или који је аутоматски направљен од кода који нема бесплатну лиценцу. Стандардни Јава АПИ садржи велики број класа из омг.орг домена које су обично направљене из ИДЛ фајлова, и објављене од стране Групе за управљање објектима. "Употреби, али не и модифуј" лиценца ових фајлова се сматра не-бесплатном. Из тог разлога, поменуте ГНУ Кластпат класе су написане од нуле, користећи се само званичним ОМГ спецификацијама. Због тога је овај део ГНУ Класпат-а слободан као и било који други код у пројекту.
Види још
[уреди | уреди извор]- Апач хармони
- ГНУ компајлер за Јаву
- IKVM.NET
- ЏемВМ
- ЈамаикаВМ
- Jaos
- ЏиксРВМ
- Кафе
- IcedTea
- Бесплатне Јава имплементације
- Јавина библиотека класа
Референце
[уреди | уреди извор]- ^ GCJ applet viewer Архивирано на сајту Wayback Machine (18. септембар 2009), Koders.
- ^ "Jupiter", EECG, U Toronto.
- ^ "GNU Classpath Library Coverage against OpenJDK6", J API Архивирано на сајту Wayback Machine (6. септембар 2015), Fuseyism.
- ^ "GNU Classpath Library Coverage against OpenJDK7", J API Архивирано на сајту Wayback Machine (4. март 2016), Fuseyism.
- ^ "GNU Classpath "95% and counting" 0.19 released", The GNU Project (announcement), Software, The Free Software Foundation, 2005-11-02, retrieved 31 May 2011.
- ^ "The release of GNU Classpath 0.98 "Better Late Than Never", The GNU Project (announcement), Software, The Free Software Foundation, 2009-02-05.
Спољашње везе
[уреди | уреди извор]- Званични веб-сајт
- "Automatically generated documentation, including source code", Classpath.
- "Builder", Classpath: test runs and binary compatibility tests
- A GNU Classpath developer (May 2006), "The state of free java project collaborations", GNU/Linux weekly news (article).
- "Permeable Development", SMI (World Wide Web log), CH: ETHZ, 2006-01-25.