Send commitlog mailing list submissions to
commitlog@lists.openmoko.org
To subscribe or unsubscribe via the World Wide Web, visit
http://lists.openmoko.org/mailman/listinfo/commitlog
or, via email, send a message with subject or body 'help' to
commitlog-requ...@lists.openmoko.org
You can reach the person managing the list at
commitlog-ow...@lists.openmoko.org
When replying, please edit your Subject line so it is more specific
than "Re: Contents of commitlog digest..."
Today's Topics:
1. r5796 - trunk/gta02-core/bom (wer...@docs.openmoko.org)
2. r5797 - in trunk/gta02-core/bom: . test test/1 test/2
(wer...@docs.openmoko.org)
3. r5798 - trunk/gta02-core/bom (wer...@docs.openmoko.org)
4. r5799 - trunk/gta02-core/bom (wer...@docs.openmoko.org)
--- Begin Message ---
Author: werner
Date: 2010-01-26 17:36:41 +0100 (Tue, 26 Jan 2010)
New Revision: 5796
Modified:
trunk/gta02-core/bom/Makefile
trunk/gta02-core/bom/gta02-core.inv
trunk/gta02-core/bom/part2order
Log:
BOM processing: added price optimization algorithm for quantity discounts.
Modified: trunk/gta02-core/bom/Makefile
===================================================================
--- trunk/gta02-core/bom/Makefile 2010-01-26 15:03:30 UTC (rev 5795)
+++ trunk/gta02-core/bom/Makefile 2010-01-26 16:36:41 UTC (rev 5796)
@@ -3,7 +3,7 @@
all: gta02-core.ord
gta02-core.ord: part2order gta02-core.par fic/fic.inv gta02-core.inv
- perl part2order fic/fic.inv gta02-core.inv gta02-core.par
+ perl part2order 20 fic/fic.inv gta02-core.inv gta02-core.par
# \ >$@ || { rm -rf $@; exit 1; }
gta02-core.par: bom2part fic/fic.equ ../gta02-core.lst gta02-core.inv
Modified: trunk/gta02-core/bom/gta02-core.inv
===================================================================
--- trunk/gta02-core/bom/gta02-core.inv 2010-01-26 15:03:30 UTC (rev 5795)
+++ trunk/gta02-core/bom/gta02-core.inv 2010-01-26 16:36:41 UTC (rev 5796)
@@ -1,2 +1,2 @@
#INV
-GTA02-CORE TST 99999 1 USD 0
+GTA02-CORE TST 99999 USD 1 0
Modified: trunk/gta02-core/bom/part2order
===================================================================
--- trunk/gta02-core/bom/part2order 2010-01-26 15:03:30 UTC (rev 5795)
+++ trunk/gta02-core/bom/part2order 2010-01-26 16:36:41 UTC (rev 5796)
@@ -2,6 +2,7 @@
require "parser.pl";
+$mult = shift(@ARGV);
&parse;
@@ -9,8 +10,9 @@
{
local ($id) = @_;
- my $n = $inv{$id}[0];
- return $want{$id} < $n ? $want{$id} : $n;
+ my $s = $inv{$id}[0];
+ my $n = $want{$id}*$mult;
+ return $n < $s ? $n : $s;
}
@@ -21,6 +23,48 @@
for (sort { &number($b) <=> &number($a) } keys %want) {
my $n = &number($_);
+ $n -= $n % $mult;
next unless $n;
- print "$_ $n\n";
+ my @f = @{ $inv{$_} };
+ my $max = shift @f;
+ my $currency = shift @f;
+ my @qty;
+ my @price;
+ my %index;
+ my $best_qty;
+ my $best_price = undef;
+ while (@f) {
+ my $q = shift @f;
+ my $p = shift @f;
+ if (defined $index{$q}) {
+ $price[$index{$q}] = $p;
+ } else {
+ push(@qty, $q);
+ push(@price, $p);
+ $index{$q} = $#qty;
+ # @@@ this fails if smaller quantities following a large quantity
+ # differ from the quantities preceding them. E.g., 1 10 100 25
+ # wouldn't yield correct results.
+ }
+ for (my $i = $#qty; $i >= 0; $i--) {
+ my $order = 0;
+ my $price = 0;
+ my $left = $n;
+ for (my $j = $#qty; $j >= $i; $j--) {
+ while ($left >= ($j == $i ? 1 : $qty[$j])) {
+ $left -= $qty[$j];
+ $order += $qty[$j];
+ $price += $price[$j]*$qty[$j];
+ }
+ }
+ next if $order > $max;
+ if (!defined $best_price || $price < $best_price) {
+ $best_price = $price;
+ $best_qty = $order;
+ }
+ }
+ }
+ next if !defined $best_price;
+ print "$_ $best_qty $currency $best_price\n";
+# tested until price composition. todo: demand adjustment
}
--- End Message ---
--- Begin Message ---
Author: werner
Date: 2010-01-26 21:42:25 +0100 (Tue, 26 Jan 2010)
New Revision: 5797
Added:
trunk/gta02-core/bom/test/
trunk/gta02-core/bom/test/1/
trunk/gta02-core/bom/test/1/1.inv
trunk/gta02-core/bom/test/1/1.par
trunk/gta02-core/bom/test/1/Makefile
trunk/gta02-core/bom/test/2/
trunk/gta02-core/bom/test/2/2.inv
trunk/gta02-core/bom/test/2/2.par
trunk/gta02-core/bom/test/2/Makefile
Modified:
trunk/gta02-core/bom/gta02-core.inv
trunk/gta02-core/bom/parser.pl
trunk/gta02-core/bom/part2order
Log:
- bom/test/: added regression tests for part2order
- bom/parser.pl: documented global variables set by parser
- bom/part2order: part numbers are now adjusted and we can take parts from
multiple inventories
Modified: trunk/gta02-core/bom/gta02-core.inv
===================================================================
--- trunk/gta02-core/bom/gta02-core.inv 2010-01-26 16:36:41 UTC (rev 5796)
+++ trunk/gta02-core/bom/gta02-core.inv 2010-01-26 20:42:25 UTC (rev 5797)
@@ -1,2 +1,2 @@
#INV
-GTA02-CORE TST 99999 USD 1 0
+GTA02-CORE TST 999999 USD 1 0
Modified: trunk/gta02-core/bom/parser.pl
===================================================================
--- trunk/gta02-core/bom/parser.pl 2010-01-26 16:36:41 UTC (rev 5796)
+++ trunk/gta02-core/bom/parser.pl 2010-01-26 20:42:25 UTC (rev 5797)
@@ -6,6 +6,15 @@
}
+#
+# "bom" populates the following global variable:
+#
+# $cmp{component-reference}[0] = value
+# $cmp{component-reference}[1] = footprint
+# $cmp{component-reference}[2] = field1
+# ...
+#
+
sub bom
{
if (/^#End Cmp/) {
@@ -20,6 +29,17 @@
}
+#
+# "equ" populates the following global variables:
+#
+# $id{item-number} = "namespace item-number"
+# This is used for heuristics that look up parts commonly referred to by
+# their part number.
+#
+# $eq{"namespace0 item-number0"}[] = ("namespace1 item-number1", ...)
+# List of all parts a given part is equivalent to.
+#
+
sub equ
{
my @f = split(/\s+/);
@@ -32,6 +52,20 @@
}
+#
+# "inv" populates the following global variables:
+#
+# $id{item-number} = "namespace item-number"
+# This is used for heuristics that look up parts commonly referred to by
+# their part number.
+#
+# $inv{"namespace item-number"}[0] = items-in-stock
+# $inv{"namespace item-number"}[1] = currency
+# $inv{"namespace item-number"}[2] = order-quantity
+# $inv{"namespace item-number"}[3] = unit-price
+# [2] and [3] may repeat.
+#
+
sub inv
{
my @f = split(/\s+/);
@@ -44,6 +78,21 @@
}
+#
+# "par" populates the following global variables:
+#
+# $parts{component-ref}[0] = namespace
+# $parts{component-ref}[1] = item-number
+# [0] and [1] may repeat
+#
+# $want{"namespace item"} = number of times we may use the part. If multiple
+# parts are eligible for a component, each of them is counted as desirable
+# for each component.
+#
+# $comps{"namespace item"}{component-ref} = 1
+# Set of components a part may be used for.
+#
+
sub par
{
my @f = split(/\s+/);
@@ -53,7 +102,7 @@
my @id = splice(@f, 0, 2);
my $id = "$id[0] $id[1]";
$want{$id}++;
- push @{ $comps{$id} }, $ref;
+ $comps{$id}{$ref} = 1;
}
}
Modified: trunk/gta02-core/bom/part2order
===================================================================
--- trunk/gta02-core/bom/part2order 2010-01-26 16:36:41 UTC (rev 5796)
+++ trunk/gta02-core/bom/part2order 2010-01-26 20:42:25 UTC (rev 5797)
@@ -17,11 +17,43 @@
}
+#
+# The heuristics here aren't very nice. We give zero-cost stock priority over
+# any other stock, when we go by stock size up to the quantity we need. The
+# idea is to exhause local stock (zero-cost) first, then try to obtain the
+# parts with as few orders as possible.
+#
+# It would be better to have some sort of priority, so that we can express a
+# preference among stock we already own. Also, if non-zero-cost stock has widly
+# different prices, the smallest order cost may not be a good indicator of
+# which source we prefer.
+#
+# Furthermore, the algorithm doesn't consider the number of sources we use in
+# total or things like lead time, shipping cost, customs, etc.
+#
+
+sub rank
+{
+ local ($a, $b) = @_;
+
+ my $na = &number($a);
+ my $nb = &number($b);
+ my $pa = $inv{$a}[3];
+ my $pb = $inv{$b}[3];
+
+#print STDERR "a=$a b=$b na=$na nb=$nb pa=$pa pb=$pb\n";
+ return 1 if !$pa && $pb;
+ return -1 if $pa && !$pb;
+ return $na <=> $nb if $na != $nb;
+ return $pb <=> $pa;
+}
+
+
for (keys %parts) {
$parts++;
}
-for (sort { &number($b) <=> &number($a) } keys %want) {
+for (sort { &rank($b, $a) } keys %want) {
my $n = &number($_);
$n -= $n % $mult;
next unless $n;
@@ -65,6 +97,21 @@
}
}
next if !defined $best_price;
- print "$_ $best_qty $currency $best_price\n";
-# tested until price composition. todo: demand adjustment
+ print "$_ $best_qty $currency $best_price";
+ my $id = $_;
+ while (keys %{ $comps{$id} }) {
+ last if $best_qty < $mult;
+ $best_qty -= $mult;
+ my $ref = (sort keys %{ $comps{$id} })[0];
+#print STDERR "$id: $ref + ", join("|", keys %{ $comps{$id} }), "\n";
+ my @f = @{ $parts{$ref} };
+ while (@f) {
+ my @id2 = splice(@f, 0, 2);
+ my $id2 = "$id2[0] $id2[1]";
+ $want{$id2}--;
+ delete $comps{$id2}{$ref};
+ }
+ print " $ref";
+ }
+ print "\n";
}
Added: trunk/gta02-core/bom/test/1/1.inv
===================================================================
--- trunk/gta02-core/bom/test/1/1.inv (rev 0)
+++ trunk/gta02-core/bom/test/1/1.inv 2010-01-26 20:42:25 UTC (rev 5797)
@@ -0,0 +1,2 @@
+#INV
+TEST TST 999999 ARS 1 0.1 10 0.05
Added: trunk/gta02-core/bom/test/1/1.par
===================================================================
--- trunk/gta02-core/bom/test/1/1.par (rev 0)
+++ trunk/gta02-core/bom/test/1/1.par 2010-01-26 20:42:25 UTC (rev 5797)
@@ -0,0 +1,10 @@
+#PAR
+TP001 TEST TST
+TP002 TEST TST
+TP003 TEST TST
+TP004 TEST TST
+TP005 TEST TST
+TP006 TEST TST
+TP007 TEST TST
+TP008 TEST TST
+TP009 TEST TST
Added: trunk/gta02-core/bom/test/1/Makefile
===================================================================
--- trunk/gta02-core/bom/test/1/Makefile (rev 0)
+++ trunk/gta02-core/bom/test/1/Makefile 2010-01-26 20:42:25 UTC (rev
5797)
@@ -0,0 +1,2 @@
+all:
+ perl -I../.. ../../part2order 1 1.par 1.inv
Added: trunk/gta02-core/bom/test/2/2.inv
===================================================================
--- trunk/gta02-core/bom/test/2/2.inv (rev 0)
+++ trunk/gta02-core/bom/test/2/2.inv 2010-01-26 20:42:25 UTC (rev 5797)
@@ -0,0 +1,3 @@
+#INV
+TEST TST 3 EUR 1 0
+ALT TST 999999 EUR 1 0.1
Added: trunk/gta02-core/bom/test/2/2.par
===================================================================
--- trunk/gta02-core/bom/test/2/2.par (rev 0)
+++ trunk/gta02-core/bom/test/2/2.par 2010-01-26 20:42:25 UTC (rev 5797)
@@ -0,0 +1,6 @@
+#PAR
+TP001 TEST TST ALT TST
+TP002 TEST TST ALT TST
+TP003 TEST TST ALT TST
+TP004 TEST TST ALT TST
+TP005 TEST TST ALT TST
Added: trunk/gta02-core/bom/test/2/Makefile
===================================================================
--- trunk/gta02-core/bom/test/2/Makefile (rev 0)
+++ trunk/gta02-core/bom/test/2/Makefile 2010-01-26 20:42:25 UTC (rev
5797)
@@ -0,0 +1,2 @@
+all:
+ perl -I../.. ../../part2order 1 2.par 2.inv
--- End Message ---
--- Begin Message ---
Author: werner
Date: 2010-01-26 22:56:39 +0100 (Tue, 26 Jan 2010)
New Revision: 5798
Modified:
trunk/gta02-core/bom/Makefile
trunk/gta02-core/bom/bom2part
trunk/gta02-core/bom/workflow.fig
Log:
- bom/workflow.fig: added more items, updated workflow
- bom/Makefile: fixed building of files under bom/fic/
- bom/Makefile: write order list to .ord file instead of standard output
- bom/bom2part: final diagnostic was missing a newline
Modified: trunk/gta02-core/bom/Makefile
===================================================================
--- trunk/gta02-core/bom/Makefile 2010-01-26 20:42:25 UTC (rev 5797)
+++ trunk/gta02-core/bom/Makefile 2010-01-26 21:56:39 UTC (rev 5798)
@@ -1,21 +1,34 @@
-.PHONY: all spotless
+upload=wer...@sita.openmoko.org:public_html/gta02-core/
+COPY=rsync -e ssh --progress
+KITS=20
+
+.PHONY: all spotless upload
+
+
all: gta02-core.ord
gta02-core.ord: part2order gta02-core.par fic/fic.inv gta02-core.inv
- perl part2order 20 fic/fic.inv gta02-core.inv gta02-core.par
-# \ >$@ || { rm -rf $@; exit 1; }
+ perl part2order $(KITS) \
+ fic/fic.inv gta02-core.inv gta02-core.par >$@ || \
+ { rm -rf $@; exit 1; }
gta02-core.par: bom2part fic/fic.equ ../gta02-core.lst gta02-core.inv
perl bom2part fic/fic.equ ../gta02-core.lst gta02-core.inv \
>$@ || { rm -rf $@; exit 1; }
fic/fic.equ:
- $(MAKE) -C fic/fic.equ
+ $(MAKE) -C fic fic.equ
fic/fic.inv:
- $(MAKE) -C fic/fic.inv
+ $(MAKE) -C fic fic.inv
+workflow.pdf: workflow.fig
+ fig2dev -L pdf $< >$@ || { rm -f $@; exit 1; }
+
+upload: workflow.pdf
+ $(COPY) workflow.pdf $(UPLOAD)/bom-workflow.pdf
+
spotless:
$(MAKE) -C fic spotless
rm -f gta02-core.par gta02-core.ord
Modified: trunk/gta02-core/bom/bom2part
===================================================================
--- trunk/gta02-core/bom/bom2part 2010-01-26 20:42:25 UTC (rev 5797)
+++ trunk/gta02-core/bom/bom2part 2010-01-26 21:56:39 UTC (rev 5798)
@@ -43,4 +43,4 @@
$bad++;
# print join("#", ($ref, @f)), " -> $id{$f[0]}\n";
}
-print STDERR "$bad/$total unmatched" if $bad;
+print STDERR "$bad/$total unmatched\n" if $bad;
Modified: trunk/gta02-core/bom/workflow.fig
===================================================================
--- trunk/gta02-core/bom/workflow.fig 2010-01-26 20:42:25 UTC (rev 5797)
+++ trunk/gta02-core/bom/workflow.fig 2010-01-26 21:56:39 UTC (rev 5798)
@@ -7,52 +7,82 @@
Single
-2
1200 2
+6 450 7200 6480 8775
+4 0 0 50 -1 12 12 0.0000 4 150 540 450 7380 .sch\001
+4 0 0 50 -1 12 12 0.0000 4 150 540 450 7605 .lst\001
+4 0 0 50 -1 12 12 0.0000 4 105 540 450 7830 .csv\001
+4 0 0 50 -1 12 12 0.0000 4 150 540 450 8055 .inv\001
+4 0 0 50 -1 12 12 0.0000 4 150 540 450 8280 .equ\001
+4 0 0 50 -1 12 12 0.0000 4 150 540 450 8505 .par\001
+4 0 0 50 -1 12 12 0.0000 4 150 540 450 8730 .ord\001
+4 0 0 50 -1 1 12 0.0000 4 195 2010 1350 7380 schematics (for KiCad)\001
+4 0 0 50 -1 1 12 0.0000 4 195 2220 1350 7605 BOM generated by KiCad\001
+4 0 0 50 -1 1 12 0.0000 4 195 2520 1350 8055 inventory with stock and cost\001
+4 0 0 50 -1 1 12 0.0000 4 195 3045 1350 7830 GTA02 EE component stock at
FIC\001
+4 0 0 50 -1 1 12 0.0000 4 195 5130 1350 8280 part number equivalences, e.g.,
manufacturer vs. distributor\001
+4 0 0 50 -1 1 12 0.0000 4 195 2910 1350 8505 component to part number(s)
map\001
+4 0 0 50 -1 1 12 0.0000 4 195 5025 1350 8730 list of parts to order, with
price and component references\001
+-6
+6 450 6075 3150 6750
+4 0 0 50 -1 14 12 0.0000 4 180 2700 450 6255 Source file (in SVN)\001
+4 0 0 50 -1 12 12 0.0000 4 150 1890 450 6480 Generated file\001
+4 0 0 50 -1 18 12 0.0000 4 210 1830 450 6705 Program (in SVN)\001
+-6
+6 4005 1575 11025 6075
+2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 4
+ 1 1 2.00 60.00 60.00
+ 9000 3150 9000 3375 7425 3375 7425 3825
2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
1 1 2.00 60.00 60.00
- 5400 2250 5400 2700
+ 7200 4050 7200 4500
+2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 4
+ 1 1 2.00 60.00 60.00
+ 10350 3150 10350 4950 7425 4950 7425 5175
2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
1 1 2.00 60.00 60.00
- 6750 2250 6750 2700
+ 7200 4725 7200 5175
+2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 4
+ 1 1 2.00 60.00 60.00
+ 4950 3375 4950 4950 6975 4950 6975 5175
2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
1 1 2.00 60.00 60.00
- 6750 2925 6750 3375
+ 7200 5400 7200 5850
2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
1 1 2.00 60.00 60.00
- 5400 2925 5400 3375
-2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 4
+ 7200 3150 7200 3825
+2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
1 1 2.00 60.00 60.00
- 3150 3600 3150 3825 4275 3825 4275 4275
-2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 4
+ 10350 2475 10350 2925
+2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
1 1 2.00 60.00 60.00
- 5400 3600 5400 3825 4500 3825 4500 4275
-2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 4
+ 9000 2475 9000 2925
+2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
1 1 2.00 60.00 60.00
- 6750 3600 6750 4050 4725 4050 4725 4275
+ 7200 2475 7200 2925
2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
1 1 2.00 60.00 60.00
- 4500 4500 4500 4950
+ 7200 1800 7200 2250
2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 4
1 1 2.00 60.00 60.00
- 6750 4050 6750 5400 4725 5400 4725 5625
-2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+ 9675 1800 9675 2025 9000 2025 9000 2250
+2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 3
1 1 2.00 60.00 60.00
- 4500 5175 4500 5625
+ 9675 2025 10350 2025 10350 2250
2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 4
1 1 2.00 60.00 60.00
- 3150 3825 3150 5400 4275 5400 4275 5625
-2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
- 1 1 2.00 60.00 60.00
- 4500 5850 4500 6300
-4 1 0 50 -1 14 12 0.0000 4 195 2700 6075 2205 inventory-fic-ee.csv\001
-4 1 0 50 -1 18 12 0.0000 4 165 1095 5400 2880 fic2vendor\001
-4 1 0 50 -1 18 12 0.0000 4 165 675 6750 2880 fic2inv\001
-4 1 0 50 -1 12 12 0.0000 4 150 945 6750 3555 fic.inv\001
-4 1 0 50 -1 12 12 0.0000 4 195 945 5400 3555 fic.equ\001
-4 1 0 50 -1 14 12 0.0000 4 195 1890 3375 3555 gta02-core.inv\001
-4 1 0 50 -1 18 12 0.0000 4 210 990 4500 4455 bom2part\001
-4 1 0 50 -1 12 12 0.0000 4 195 1890 4500 5130 gta02-core.par\001
-4 0 0 50 -1 14 12 0.0000 4 195 1755 1350 8280 Original file\001
-4 0 0 50 -1 12 12 0.0000 4 150 1890 1350 8505 Generated file\001
-4 0 0 50 -1 18 12 0.0000 4 210 900 1350 8730 Program\001
-4 1 0 50 -1 18 12 0.0000 4 210 1110 4500 5805 part2order\001
-4 1 0 50 -1 12 12 0.0000 4 195 1890 4500 6480 gta02-core.ord\001
+ 4950 1800 4950 3375 6975 3375 6975 3825
+4 1 0 50 -1 18 12 0.0000 4 210 990 7200 4005 bom2part\001
+4 1 0 50 -1 18 12 0.0000 4 210 1110 7200 5355 part2order\001
+4 1 0 50 -1 12 12 0.0000 4 195 1890 7200 6030 gta02-core.ord\001
+4 1 0 50 -1 12 12 0.0000 4 195 1890 7200 3105 gta02-core.lst\001
+4 1 0 50 -1 12 12 0.0000 4 195 945 9000 3105 fic.equ\001
+4 1 0 50 -1 12 12 0.0000 4 150 945 10350 3105 fic.inv\001
+4 1 0 50 -1 14 12 0.0000 4 195 2700 9675 1755 inventory-fic-ee.csv\001
+4 1 0 50 -1 18 12 0.0000 4 165 675 10350 2430 fic2inv\001
+4 1 0 50 -1 18 12 0.0000 4 165 1095 9000 2430 fic2vendor\001
+4 1 0 50 -1 18 12 0.0000 4 165 1035 7200 2430 eeschema\001
+4 1 0 50 -1 14 12 0.0000 4 150 675 7200 1755 *.sch\001
+4 1 0 50 -1 14 12 0.0000 4 195 1890 4950 1755 gta02-core.inv\001
+4 1 0 50 -1 12 12 0.0000 4 195 1890 7200 4680 gta02-core.par\001
+-6
+4 0 0 50 -1 2 16 0.0000 4 255 3345 450 675 BOM Processing - Workflow\001
--- End Message ---
--- Begin Message ---
Author: werner
Date: 2010-01-26 23:11:00 +0100 (Tue, 26 Jan 2010)
New Revision: 5799
Modified:
trunk/gta02-core/bom/bom2part
Log:
- bom/bom2part: better diagnostics for unmatched parts
Modified: trunk/gta02-core/bom/bom2part
===================================================================
--- trunk/gta02-core/bom/bom2part 2010-01-26 21:56:39 UTC (rev 5798)
+++ trunk/gta02-core/bom/bom2part 2010-01-26 22:11:00 UTC (rev 5799)
@@ -39,7 +39,7 @@
next;
}
- print STDERR "unmatched: $_\n";
+ print STDERR "unmatched: $_ (", join(", ", @f), ")\n";
$bad++;
# print join("#", ($ref, @f)), " -> $id{$f[0]}\n";
}
--- End Message ---
_______________________________________________
commitlog mailing list
commitlog@lists.openmoko.org
http://lists.openmoko.org/mailman/listinfo/commitlog