Showing posts with label Eclipse. Show all posts
Showing posts with label Eclipse. Show all posts

2020-10-25

2020-10-25 Sunday - GNU Compiler Collection (GCC) 10.2


 

For one who seeks to be a master of their craft - you must continually attend to sharpening the saw.

Today: A deep dive back into C++ POSIX threaded programming, using the G++ compiler, available with the GNU Compiler Collection (GCC 10.2) - and exploring the differences in C++17, and the experimental implementation of some C++20 features.

GCC References

Eclipse: C/C++ Development Toolkit (CDT) Resources

Although I usually rely on Microsoft Visual Studio (or Visual Studio Code) as my primary IDEs - I'm forcing myself to use Eclipse ("2020-09" CDT release) - so that I maintain familiarity & proficiency:

  • https://www.eclipse.org/cdt/
    • https://www.eclipse.org/cdt/documentation.php  
      • "The C/C++ Development Toolkit (CDT) is a collection of Eclipse-based features that provides the capability to create, edit, navigate, build, and debug projects that use C and/or C++ as a programming language."
      • "The CDT does not include the necessary compilers and debuggers to convert C/C++ code into executable programs and to debug those programs, but it does provide the frameworks that allow such tools to be integrated in a consistent fashion. This allows you to mix and match such tools depending on your project requirements."
  •  ...which leads to suggesting:

Cygwin

  • https://cygwin.com/
  • Once you have the GCC G++ elements installed, run "g++ -v" at the command line, and you should get something like this:

Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-cygwin/10/lto-wrapper.exe
Target: x86_64-pc-cygwin
Configured with: /mnt/share/cygpkgs/gcc/gcc.x86_64/src/gcc-10.2.0/configure --srcdir=/mnt/share/cygpkgs/gcc/gcc.x86_64/src/gcc-10.2.0 --prefix=/usr --exec-prefix=/usr --localstatedir=/var --sysconfdir=/etc --docdir=/usr/share/doc/gcc --htmldir=/usr/share/doc/gcc/html -C --build=x86_64-pc-cygwin --host=x86_64-pc-cygwin --target=x86_64-pc-cygwin --without-libiconv-prefix --without-libintl-prefix --libexecdir=/usr/lib --with-gcc-major-version-only --enable-shared --enable-shared-libgcc --enable-static --enable-version-specific-runtime-libs --enable-bootstrap --enable-__cxa_atexit --with-dwarf2 --with-tune=generic --enable-languages=c,c++,fortran,lto,objc,obj-c++ --enable-graphite --enable-threads=posix --enable-libatomic --enable-libgomp --enable-libquadmath --enable-libquadmath-support --disable-libssp --enable-libada --disable-symvers --with-gnu-ld --with-gnu-as --with-cloog-include=/usr/include/cloog-isl --without-libiconv-prefix --without-libintl-prefix --with-system-zlib --enable-linker-build-id --with-default-libstdcxx-abi=gcc4-compatible --enable-libstdcxx-filesystem-ts
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 10.2.0 (GCC)

Or, alternatively, you may wish to try LLVM

LLVM & Clang

"The LLVM Project is a collection of modular and reusable compiler and toolchain technologies. Despite its name, LLVM has little to do with traditional virtual machines. The name "LLVM" itself is not an acronym; it is the full name of the project."

"LLVM began as a research project at the University of Illinois, with the goal of providing a modern, SSA-based compilation strategy capable of supporting both static and dynamic compilation of arbitrary programming languages. Since then, LLVM has grown to be an umbrella project consisting of a number of subprojects, many of which are being used in production by a wide variety of commercial and open source projects as well as being widely used in academic research. Code in the LLVM project is licensed under the "Apache 2.0 License with LLVM exceptions" "

  • "clang fully implements all of standard C++98 except for exported templates (which were removed in C++11), all of standard C++11, C++14, and C++17, and most of C++20."

Suggested Books:


  • "Coverage begins with the basics, then ranges widely through more advanced topics, including many that are new in C++17, such as move semantics, uniform initialization, lambda expressions, improved containers, random numbers, and concurrency. The tour even covers some extensions being made for C++20, such as concepts and modules, and ends with a discussion of the design and evolution of C++."
Some older books, that may also be of interest as background reading:

Useful Tutorials - General C++

Useful Tutorials - POSIX Threads

References

2020-06-20

2020-06-20 Saturday - Development Tooling Updates


Photo by Alex Kondratiev on Unsplash

I've spent some time this evening updating a few of my development tools:

 go (1.14.4)


R (4.0.1)


Node.js (14.4.0)


Java, OpenJDK (14.0.1)


Python (3.8.3)


Visual Studio Code (1.46.1)


Visual Studio 2019 (16.6.2)


Eclipse (2020-06, 4.16)


Sparx Enterprise Architect (15.1, Build 1529)


LibreOffice (6.4.4)


Windows 10, Version 2004

2020-02-24

2020-02-24 Monday - Quick Visual Guide to Setup Kotlin for Eclipse 4.14 (2019-12)

A quick visual guide to setup Kotlin 1.3 in Eclipse 4.14 (2020-12)

This posting was motivated by the elegant Kotlin implementation that Christian Hujer posted to Github today (for Conway's Game of Life) - which led me to spend a little time today revisiting Kotlin.

The conciseness of the Kotlin language is notable when comparing Christian's two implementations: Kotlin vs. Java.


References:

 

 Setup Steps:

 

0.0 Precondition:

  • JDK 1.8 installed   
  • Eclipse 4.14 (2019-12) installed

1.0 Install the Kotlin Eclipse Plugin




2.0 Kotlin Preferences: Building

  • Check box to enable incremental compiler usage.

  

3.0 Kotlin Preferences: Code style 

  • Accept default Code style 


4.0 Kotlin Preferences: Compiler

  • Configure JVM target version: 1.8
  • Configure JDK Home: <your path to JDK 1.8


  5.0 Create a new Kotlin Project (e.g. "HelloWorld")



6.0 Verify that your Project's Properties "Java Build Path > Libraries" has Java JRE 8 configured


 7.0 Create a Kotlin File




  8.0 Name the file (e.g. "HelloWorld")



 9.0 Create the "main" function



10. Remember to "Run-As" a Kotlin Application




Additional Reading:

Building RESTful APIs with Kotlin

 More Kotlin Tutorials & Exercises

2019-04-20

2019-04-20 Saturday - Eclipse IDE v4.11 Release 2019-03 JSON Schema Validation Issues

During some recent testing of the latest release of the Eclipse IDE, v4.11, Release 2019-03 - I discovered some issues with JSON Schema Validation:

First:

While looking for a better JSON editor - I installed this plugin:

But, I observed that
  • It appears that when this plugin is installed - JSON Schema Validation (i.e. after registering the file pattern and schema URL via Window > Preferences > JSON > JSON Catalog) no longer works.
  • I repeated this test several times, by uninstalling the plugin - confirming that Schema Validation worked - and then re-installing the plugin and confirming that Schema Validation no longer worked.
  • I did not see any errors being logged to the Eclipse log file.
  • Tested with Java JDK 12, on a Windows 10 laptop
 Issue #26 Submitted

Second:

While experimenting with the JSON Schema Validation capabilities of the latest Eclipse release (v4.11, 2019-03) - I noted an error in the log (see my stackoverflow submission) - even though validation appeared to be working.

  • relequestual replied soon after: "JSON Schema core dev here. Yeah this looks fine in terms of JSON Schema. No idea why an error is being throw" 
 Issue #546541 Submitted:

Subsequently:

  • It appears that the exception is no longer thrown


  • ....a different error messages shows in the log - with a different exception is thrown. 

References:


Observation: 

There are quite a few open bugs within the Eclipse WTP Source Editing and wst.json component - that have not been addressed in years...

2018-05-10

2018-05-10 Thursday - Useful Eclipse Plugin: GitHub Flavored Markdown viewer


An Eclipse plugin providing an accurate view of GitHub Flavored Markdown (.md) files           



Note:

  • "You may wish to add the exclusion pattern .*.md.html to your projects .gitignore file, which will prevent their inclusion in version control operations"

2016-05-25

2016-05-25 Wednesday - Fixing my GDB (and Eclipse CDT Debugging capability)

I previously had my Windows 10 development machine configured to successfully develop and debug C++ programs from within Mars Eclipse - leveraging CDT and Cygwin.

I recently made some changes to my system configuration - and broke my Cygwin GDB debugging functionality.

After spending a few hours exploring the problem, I thought sharing this post might help someone else minimize their cycle time if they have a similar problem...

The first clue was in a Windows Command Prompt, I got the following error when trying to launch GDB:
"ImportError: No module named site"
Also, in Eclipse, when attempting to launch the debugger for a C++ program, I encountered this error message:
 "Could not determine DGB version using command gdb --version"
I  read several forum postings - and these were the relevant takeaways:
Now, in my environment, I had setup Python 2.7.11 and Python 3.5.1 - and since GDB relies on Python 2.7 - I thought, "ah, perhaps one of my library installs / updates has resulted in a broken dependency situation". So, I uninstalled and re-installed them both. 
No joy.
I then uninstalled and re-installed Cygwin.
No joy.
Then I tried alternating where PYTHONHOME and PYTHONPATH pointed...to 2.7 vs 3.5
No joy.
Finally, I removed the System Variables for PYTHONHOME and PYTHONPATH.
Success. 
When in the Cygwin bash shell (or Windows Command Prompt window) - the Windows System Variables for PYTHONHOME and PYTHONPATH were conflicting with the Python 2.7 version that is bundled with Cygwin - and a dependency for GDB.

So I then just added the dir for Python 3.5 directly to the PATH environment variable. 

Problem solved.

2016-03-04

2016-03-04 Friday - GCC, The GNU Compiler Collection

Today I've spent time setting-up my Windows 10 development environment to be able to work with GCC, the GNU Compiler Collection - and integrating that into my Eclipse IDE.

1.0 Cygwin Setup

At the time of this writing Cygwin 2.4 was the latest available

The Cygwin documentation may be of help, if you are not familiar with it

See: Using GCC with Cygwin
There are a number of packages that you'll want to select for installation - that are not auto-selected in the default (Base package) Cygwin installation configuration:

  • Here are some additional packages that I either selected to be installed for my setup - or were added as dependencies of packages I selected...
    • Admin
      • libattr1
    • Archive
      • bzip2
      • libarchive13
      • libbz2_1
      • xz
    • Base
      • (take the defaults)
    • Database
      • libdb5.3
      • libmysqlclient18
      • libsqlite3_0
    • Devel
      • autoconf2.5
      • binutils
      • bison
      • byacc
      • cccc
      • clang
      • clang-analyzer
      • clisp
      • cmake
      • cmake-doc
      • cppunit
      • cygwin-devel
      • dmalloc
      • flex
      • gcc-core
      • gcc-g++
      • gcc-objc
      • gcc-objc++
      • gdb
      • libargp
      • libcloog-isl4
      • libtdll7
      • make
      • mcpp
      • patch
      • patchutils
      • w32api-headers
      • w32api-runtime
      • windows-default-manifest
    • Doc
      • clang-doc
      • cygwin-doc 
    • Interpreters
      • clisp
      • gawk
      • libguile17 
      • m4
      • perl
      • perl_autorebase
      • pre_base
      • python
    • lib
      • libargp
      • libatomic1
      • libattr1
      • libblkid1
      • libclang3.7
      • libclog-isl4
      • libcrypt0
      • libcurl4
      • libedit0
      • libexpat1
      • libffi6
      • libgcc1
      • libgdbm4
      • libgmp10
      • libgomp1
      • libssapi_krb5_2
      • libiconv
      • libiconv2
      • libidn11
      • libintl8
      • libisl10
      • libisl13
      • lib5crypto3
      • libkrb5_3
      • libkrb5support0
      • libllvm3.7
      • liblzma5
      • liblzo2_2
      • libmcpp0
      • libmpc3
      • libmpfr4
      • libncursesw10
      • libnettle4
      • libnghttp2_14
      • libobjc4
      • libopenldap_2_4_2
      • libopenssl100
      • libp11-kit0
      • libpcre1
      • libpipeline1
      • libpsl5
      • libquadmath1
      • libreadline7
      • libsigsegv2
      • libsmartcols1
      • libsqlte3_0
      • libssp0
      • libstdc++6
      • libtasn1_6
      • libunistring2
      • libuuid-devel
      • libuuid1
      • libvtv0
      •  libxml2
      • p11-kit
      • p11-kit-trust
      • popt
      • zlib0
    • Math
      • clisp
      • libgmp10
      •  libmpc3
      • libmpfr4
    • Net
      • ca-certificates
      • curl 
      • libopenldap2_4_2
      • libssh2_1
      • libtasn1_6
      • openssl
    • Perl
      • perl
      • perl_autorebase
      • perl_base 
    • Python
      • python
    • Shells
      • bash
      • clisp
      • dash
      • mintty
    • System
      • libattr1
      • libcom_err2
      • rebase
    • Text
      • groff
      • less
      • patchutils
    • Utils
      • diffutils
      • libssal2_3
      • patchutils
      • rebase


2.0 Eclipse CDT

At the time of this writing, CDT 8.8.1 was the latest available.

You can install the CDT version of Eclipse by downloading from here:
 
If you have an existing Eclipse environment already setup, and you just want to add the CDT plugins - you can add this p2 software repository link via the Help > Install New Software menu option

If you will be using Cygwin GCC compilers, then you'll probably want to make it your default:




You'll eventually need to debug something, so check to see that you have the correct debugger installed and configured properly for CDT:


Doug Schaefer is co-head of the Ecllipse CDT project - and has a few blog posts that may be of interests to CDT users


3.0 GCC, The GNU Compiler Collection References

4.0 Success! Code Compiled (...and ran)


5.0 Debugging

You'll need to setup a Debug profile for your program, and specify the executable - and source file





 Set your breakpoints, and begin a debugging session...



6.0 Additional References

If you run into an issue such as "Symbol 'cout' could not be resolved", or "Symbol 'std' could not be resolved" - you may need to manually add the appropriate Cygwin include directories, select the correct toolchain entry, and try closing and opening the project. These links were helpful to me in resolving this issue:




2014-11-28

2014-11-28 Friday - Dev Lab Upgrades

Although my role these days is primarily as an architect - I continue to keep my hands firmly familiar with the full technology stack of tooling for developing solutions on different platforms.  A core belief in my view is that architects must not lose touch with their coding skills...and even better, when they are active contributors within an organization...

This post will be a bit messy over the next few days as I continue to add links, commentary, and clean-up the list with the final bits of software upgrades and installations.

My current primary dev machine is a Sony Viao VPC-F23BFX/B notebook running Windows 7 64 bit, with 8GB of RAM, with an Intel Core i7-2670QM processor (quad core, 8 threads, 2.20 GHz), a 640 GB internal hard drive, an NVIDIA Geforce GT 540M GPU, dual external LG Flatron E2260 LED-backlit LCD monitors, and two external USB attached Western Digital My Book drives (an older  2x500MB drive configured with RAID 1, and a more recent 2 TB drive). Additionally, I leverage various cloud hosting service providers when additional hardware/server test configurations are needed.

I've kept several older versions of Eclipse handy as part of my personal Dev Lab environment - but this week decided to discard them and work exclusively in the 4.4 (Luna) release.

Additionally, there are a number of tools which I've spent some time upgrading to their latest releases:


Virtual Machines...
- Oracle VM VirtualBox 4.3.20
[which I use when I need to work in a Linux environment - currently preferring Fedora Desktop 20 - with plans to upgrade to Fedora 21, when it is available as a GA release after December 9th]

Mobile Development Tools...
- Android Development Tools (ADT) 23.0.2


Static Code Analysis Tools...
- FindBugs 3.0.0
- PMD 5.2.1
- Checkstyle 6.1.1


Source Code Management
- Git 1.9.4
- Apache Subversion 1.8.10 [...pending build from source]



Build Tools...
- Jenkins 1.588
- Apache Ant 1.9.4
- Apache Maven 3.2.3


Programming Languages...
- PHP 5.6.3
- Python 3.4.2
- Scala 2.11.4
- R 3.1.2
- Groovy 2.4.0-beta-4
- Julia 0.3.3
- Perl 5.20.1 [changes since 5.18]
- Clojure 1.6.0
- Ruby 2.1.5
- Java 8


Libraries...
- Apache Commons Math 3.3
- Apache POI 3.11-beta3
- Apache Camel 2.14.0
- Apache Commons Lang 3-3.3.2


Application Servers...
- Apache Tomcat 8.0.15
- Jetty 9.2.5
- ElasticSearch 1.4.1
- Node.js 0.10.33


Distributed Computing Tools...
- Apache Storm 0.9.3
- Apache Zookeeper 3.4.6


Database Technologies...
- Apache Cassandra 2.1.2
- MariaDB 10.0.15
- Datomic 0.9.5078


IDEs...
- Eclipse Luna 4.4.1


For my Eclipse Luna environment, I'm still evaluating the mix of the following plugins that I've installed...


PHP (PDT)
http://download.eclipse.org/tools/pdt/updates/3.3.2

Python
http://pydev.org/updates


http://marketplace.eclipse.org/content/easyshell
http://pluginbox.sourceforge.net


CDT
http://download.eclipse.org/tools/cdt/releases/8.5/


http://pmd.sourceforge.net/pmd-5.2.1/usage/integrations.html#eclipse
http://sourceforge.net/projects/pmd/files/pmd-eclipse/update-site/


http://findbugs.sourceforge.net/downloads.html
http://findbugs.cs.umd.edu/eclipse


http://marketplace.eclipse.org/content/checkstyle-plug
http://eclipse-cs.sourceforge.net/update/

http://marketplace.eclipse.org/content/oracle-enterprise-pack-eclipse-luna
http://download.oracle.com/otn_software/oepe/luna


http://marketplace.eclipse.org/content/red-hat-jboss-developer-studio-luna
https://devstudio.redhat.com/updates/8.0/


http://aws.amazon.com/eclipse/


https://dl-ssl.google.com/android/eclipse/


StatET (for R)
http://www.walware.de/goto/opensource
http://download.walware.de/eclipse-4.4



https://developers.google.com/eclipse/
https://developers.google.com/eclipse/docs/install-eclipse-4.4
https://dl.google.com/eclipse/plugin/4.4


http://marketplace.eclipse.org/content/nodeclipse
http://www.nodeclipse.org/
http://www.nodeclipse.org/updates/


http://subclipse.tigris.org/update_1.10.x

If you have used Subclipse in a previous version of Eclipse - and then think, "oh, why don't I try Subversive this time?" (or vice versa)  - then you'll probably find these links helpful (eventually)...

Restore Eclipse subversion project connection
http://stackoverflow.com/questions/166220/restore-eclipse-subversion-project-connection

Cannot connect existing project to SVN using Subversive
http://www.eclipse.org/forums/index.php/t/398103/

2011-02-26

2011-02-26 Saturday - Aptana Pydev "no such file to load"

I've discovered an issue with the latest release of the Aptana Pydev plugin for Eclipse (Aptana Pydev 1.6.5.2011022501).

An internal error occurred during: "Loading bundle: C:\eclipse\configuration\org.eclipse.osgi\bundles\1026\1.cp\bundles\bundle-development.ruble".
(LoadError) no such file to load -- ruble/ui

Also tote: I'm running Eclipse Helios 3.6.2.r362_v201102120-9gF78Gs1FrIGnHDHWkEcopoN8AmxeZflGDGKQi
Build id: M20110210-1200

I posted a message to this thread:
https://aptanastudio.tenderapp.com/discussions/problems/2144-an-internal-error-occured-during-loading-bundle-ruble

and also found a similar sounding previously reported problem here:
https://aptanastudio.tenderapp.com/discussions/questions/779-remove-aptana-studio-3-beta-conflict-with-pydev

2009-02-07

2009-02-07 Saturday - Eclipse Financial Platform

A new Eclipse project has been proposed: Financial Platform.

Given my previous experience leading the design and development of commercial software in the banking and financial services sector, I am intrigued by their vision / goals.

WordCount

Copyright

© 2001-2026 International Technology Ventures, Inc., All Rights Reserved.