|
Welcome to the JALv2 homepage. JALv2 is a rewrite of
Wouter van Ooijen's famous Just Another Language.
More JAL bits and libraries can be found:
- jallib -- libraries for everything
-
http://code.google.com/p/jallib/
- Rob Hamerling's Homepage for all Microchip device files
-
http://www.robh.nl/
- Single Multiple with Constant Calculator
-
http://www.casadeyork.com/jalv2/cmul.cgi
- Original JAL
-
www.voti.nl/jal/index_1.html
- Stef's PIC Pages
- http://pic.flappie.nl
- Wattystuff
-
http://www.wattystuff.net/tiki/tiki-index.php?page=PIC+Micro
- Bert van Dam Pages
-
http://members.home.nl/b.vandam/
- Yahoo Group
-
http://tech.groups.yahoo.com/group/jallist
|
Release history:
- 2.4o -- 8 May 2011
- src/jal/build.sh was missing from the source package
- generalized the PIC optimizer, converted the various
optimizers (data, branch, movlp, movbsr) to use the
new code.
- don't allow variables named built-in functions
(COUNT/WHEREIS/DEFINED)
- FOR cexpr... where cexpr is one larger than a variable
could otherwise hold (eg, 256 for a BYTE variable) will
now work correctly.
- FOR var... now works correctly. Formerly, if var was modified
withing the loop the results could change.
- Fixed documentation of FOR and the example for tasks.
- There are times when a parameter to an inline function
*cannot* be replaced (eg, if a constant is passed to a parameter,
and the parameter is the master of another variable).
bugreport_20100920
- Moved the `# errors, # warnings' output to the very end,
averting the confusion over how a file with errors or warnings
will report `0, 0'
- Added another error -- universal arrays require a constant
subscript
- A function returning a multi-bit caused the compiler to crash
- Introduced records:
RECORD id IS
type id0 [ '[' cexpr ']' ][, ...]
...
END RECORD
- assign from str[0] fails when str is an array reference
- add/subtract on 16 bit cores, where the destination is
multi-byte and volatile does *not* need to be done in a
temporary as is needed with the 12/14 bit cores.
- casting with bits doesn't work correctly
- bit indexing of arrays doesn't work correctly
- fixed report where flexible arrays fail in 2.4o
(bad fix to assign from str[0])
- put the compiler version into the log file
- The following: DWORD(t & !0xf) caused a compiler failure
- Expanded the optimization sections of the JALv2 Compiler
Options and JALv2 PRAGMAs documents.
- Blindly checking for equality with (-1U) can lead to issues
on machines with varying integer sizes (for example, a 64-bit
machine with 32-bit unsigned, but 64-bit size_t)
- Minor record issues: COUNT(xx.yy) and USING xx.yy did not
work (xx was never fully dereferenced).
- Fixed flexible arrays (accidently removed a counter bump)
- 2.4n -- 2 June 2010
- added inline assembly statement mulwf (thanks hawkdavid52)
- pic_value_is_zero doesn't work with pointers
(bugreport_20100502)
- broken arrays passed to functions
(bugreport_20100523)
- fixed `asm bank ' for 16 bit cores
- Implicitly created pseudo-variables must be created in the same
block as the true variable (bugreport_20100506).
- On the 16 bit cores, if a pseudo-variable is implicitly created,
the l_main label is somehow deleted causing the generated
code to not work.
- minor optimization when using 'case' with bit values.
assign the bit to a temporary first to avoid shifting/masking
for each case.
- 'case 0' on a multi-bit variable fails
- Added 14 bit hybrid support (thanks Rob!)
- Fixed the defined() operator to return a bit (as documented)
so no more warnings or need to compare with 'true'
- Issue a diagnostic if a value overflows a UNIVERSAL (is > 32 bits)
(bugreport_20100424)
- Allow octal constants (0q...)
- In some circumstances an aliased value would get confused
- Invalid assert on add with the 14 bit hybrid
- The logic in UNIVERSAL value overflow was wrong, causing a
spurious message in edge cases.
- The MOVLB optimizer was not seeing functions only called
indirectly.
- Added '\\' to the language documentation.
|
Lastest release files (JALv2 2.4o):
- README.txt
- archive/README.txt
- Binaries (win32 and linux with chipdef files)
- archive/jalv24o.zip
- Sources
- archive/jalv24osrc.zip
Archive
Bleeding edge files. Warning -- these are probably in the midst
of being tested, and some features may not work. Always look at the
README file to see what changes have come in! The version is always
one higher than the last release.
- README.txt
- archive/beta/README.txt
- Binaries (win32 and linux with chipdef files)
- archive/beta/jalv24p-beta.zip
- Sources
- archive/beta/jalv24p-betasrc.zip
Documentation
Curious Perversions
These are just some minor projects I've done that probably don't
belong in either a MicroController, or in JAL. Use at your own
risk!
|